首页 > 系统相关 >如何在Windows本地运行一个大语言模型

如何在Windows本地运行一个大语言模型

时间:2023-12-16 16:33:21浏览次数:36  
标签:本地 Windows 模型 ChatGLM3 CUDA https GPU 显卡 安装

ChatGLM3 是智谱AI和清华大学 KEG 实验室联合发布的新一代对话预训练模型,可以在消费级显卡上轻松运行一个离线的对话机器人。 它功能强大,配置过程简单,对初学者比较友好。 本文记录了ChatGLM3的环境配置过程,希望能对跟我一样的新手朋友起到帮助。   0     准备工作:

  1. 准备一台装有Nvidia显卡的电脑
  2. 安装最新的Nvidia显卡驱动
  3. 安装Pythonminiconda
以上步骤比较简单,而且你的电脑上可能已经具备,就不作介绍了。   接下来介绍以下步骤:
  1. 安装CUDA
  2. 安装CUDNN
  3. 安装Pytorch
  4. 下载并运行ChatGLM3

一、安装CUDA

CUDA(Compute Unified Device Architecture)是由NVIDIA推出的并行计算平台和编程模型,用于利用GPU进行通用目的的并行计算。 它允许开发人员使用C/C++、Fortran、Python等编程语言在NVIDIA GPU上编写并行程序,加速计算任务。 它是我们调用GPU能力的基础。   先查看显卡支持的最高CUDA版本 命令行输入 nvidia-smi ,确认显卡最高支持的版本,例如 cuda 12.x 0   CUDA安装 https://developer.nvidia.com/cuda-11-8-0-download-archive?target_os=Windows&target_arch=x86_64&target_version=11&target_type=exe_local 这里建议安装11.8 0 下载安装包,安装完毕后用 nvcc-V 查看CUDA版本,能显示版本号说明安装成功。 0    

二、安装CUDNN

CuDNN(CUDA Deep Neural Network library)是NVIDIA针对深度神经网络(DNN)开发的加速库。 它提供了针对深度学习任务的高度优化的GPU加速计算操作,包括卷积神经网络(CNN)和循环神经网络(RNN)等。 CuDNN为深度学习框架提供了基础性的加速支持。 它是依赖于CUDA的,所以我们在安装CUDA之后再才安装它。   下载地址:https://developer.nvidia.com/rdp/cudnn-archive 选择与CUDA相匹配的版本下载,CUDA 11.8 对应 CuDNN 8.6 0 解压后把lib、bin、include等3个目录拷贝到CUDA的安装目录下,并把这3个目录和添加到环境变量中  

三、安装PyTorch

PyTorch是一个开源的机器学习框架,由Facebook开发并维护。 它基于Python,提供了丰富的工具和库,用于构建和训练机器学习模型,尤其擅长处理深度神经网络。 PyTorch提供了易于使用的张量计算和自动微分功能,使得构建和训练神经网络变得更加灵活和高效。 它依赖CUDA和CuDNN,所以放在第三步安装。   访问该地址以生成安装命令:https://pytorch.org/get-started/locally/ 0 在该页面选择适合自己的配置会自动生成相应的安装命令,以下是适合我电脑的命令: pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118   验证安装成功的办法是进入python环境,import torch看是否报错,如果不报错且 torch.cuda.is_available() 结果为 True 则表示GPU可以在python中使用了。 0  

四、下载并运行ChatGLM3

 
# 下载项目代码
git clone https://github.com/THUDM/ChatGLM3

# 切到demo目录
cd ChatGLM3/composite_demo

# 创建conda环境
conda create -n glm3 python=3.10

# 切到conda环境
conda activate glm3

# 安装依赖
pip install -r requirements.txt

# 安装Jupyter内核
ipython kernel install --name glm3 --user

# 安装pytorch
## 如果没有Nvidia显卡,用下面这行命令,它会利用cpu来代替gpu工作,但性能低且巨吃内存
pip install torch torchvision torchaudio
## 如果有Nvidia显卡,用下面这行命令
## 在前面的第三步,我们已经安装过pytorch,但那是安装在全局环境,这里安装在conda中我们新建的glm3环境中
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

# 启动dmeo(第一次启动会自动下载模型,耗时较长)
streamlit run main.py

# 一般来说,下载模型会失败,需要给命令行设置科学代理
# 如果你已经在本机启动了科学代理,把1087换成你的科学代理的端口号然后执行以下命令
set http_proxy=http://localhost:1087
set https_proxy=http://localhost:1087
# 然后再尝试执行上面的启动demo命令,直到启动成功为止

 

  启动demo成功后的运行效果如下: 0   可以看到,模型跑起来之后,CPU、GPU和内存的占用并不高,但是12G显存一直是占满状态。 0   关于ChatGLM3的更多文档,可以参考项目首页 https://github.com/THUDM/ChatGLM3

标签:本地,Windows,模型,ChatGLM3,CUDA,https,GPU,显卡,安装
From: https://www.cnblogs.com/hapjs/p/17904987.html

相关文章

  • 值迭代与策略迭代(有模型)
     先说一下我初始理解,就是图片上面有三部曲,然后他是一个有模型的算法,然后假如说我让他训练100次就是,用python来表达就是forepisodein(100),这个就是最外面的那一层循环,然后每次episode,就是上面三部曲,但是第一步初始化环境是会根据上一个episode来变化的,从第一个episode开始讲......
  • 基于LSTM模型的时间序列预测(车厢重量预测),Python中Keras库实现LSTM,实现预测未来未知数
    简介LSTM是一种常用的循环神经网络,其全称为“长短期记忆网络”(LongShort-TermMemoryNetwork)。相较于传统的循环神经网络,LSTM具有更好的长期记忆能力和更强的时间序列建模能力,因此在各种自然语言处理、语音识别、时间序列预测等任务中广泛应用。问题场景:对一节火车进行装载货物,......
  • 聊聊GLM基座模型的理论知识
    概述大模型有两个流程:预训练和推理。预训练是在某种神经网络模型架构上,导入大规模语料数据,通过一系列的神经网络隐藏层的矩阵计算、微分计算等,输出权重,学习率,模型参数等超参数信息。推理是在预训练的成果上,应用超参数文件,基于预训练结果,根据用户的输入信息,推理预测其行为。G......
  • 机器学习的方法主要可以分为以下几类¹²³: 1. **监督学习**:在监督学习中,我们有一个
    机器学习的方法主要可以分为以下几类¹²³:1.**监督学习**:在监督学习中,我们有一个标记的数据集,我们的目标是训练一个模型,使其能够预测新数据的标签。常见的监督学习算法包括:  -线性回归  -逻辑回归  -支持向量机(SVM)  -最近邻居(KNN)  -决策树......
  • Windows电脑上的多开工具与分布式计算的关系
    在Windows电脑上,多开工具和分布式计算之间存在着一定的关系。多开工具是一类软件,可以帮助用户在一台电脑上同时打开多个相同或不同的应用程序实例,从而提高工作效率。而分布式计算则是利用多台计算机的闲置资源来共同完成复杂的计算任务,通过将任务分发到各个计算节点上并将计算结果......
  • 访问上传至.Net服务器本地的文件。
    1porgame.cs添加以下代码//使用默认静态文件目录wwwrootapp.UseDefaultFiles();app.UseStaticFiles();2在项目跟目录下创建wwwroot文件,需要提供访问的视频放在这个文件夹下面!!!注意,要区分大小写,我之前访问不了,就是创建的是WWWRoot.3访问方式!!!注意是服务器地址+......
  • JVM虚拟机系统性学习-运行时数据区(虚拟机栈、本地方法栈)
    虚拟机栈虚拟机栈为每个线程所私有的,如下图:栈帧是什么?栈帧存储了方法的局部变量表、操作数栈、动态链接和方法返回地址等信息栈内存为线程私有的空间,每个方法在执行时都会创建一个栈帧,执行该方法时,就会将该方法所对应的栈帧入栈局部变量表:用于存储方法参数和定义在方法体内部的局部......
  • python二分类模型精度低怎么办
    在二分类模型中,如果模型的精度较低,可能需要采取一些措施来改进模型性能。本文将介绍一些常见的方法和技巧,帮助提高二分类模型的精度。1.数据预处理确保对数据进行适当的预处理是提高模型精度的重要步骤。常见的数据预处理方法包括:-数据清洗:处理缺失值、异常值等。-特征选择:选择对目......
  • windows C++
    https://en.cppreference.com/w/cpp/string/basic_stringstd::basic_string C++ Stringslibrary std::basic_string Definedinheader <string>  template<   class CharT,   class Traits = std::char_traits<CharT>,   class......
  • IntelliJ IDEA无公网远程连接Windows本地Mysql(开发调试必备,提高开发效率!!!)
    IDEA作为Java开发最主力的工具,在开发过程中需要经常用到数据库,如mysql数据库,但是在IDEA中只能连接本地数据库,有时候需要访问其他地方如家里或者公司的数据库,将无法访问,内网的局限性导致我们只能在同一网络访问,无法跨网络访问,所以,本例将介绍如何在异地也可以实现远程连接......