目录
硬件:主要是GPU卡内存要足够,本次搭建使用的RTX4090卡一张,单卡内存24G,为什么选择4090?主要是4090在推理方面,可以媲美A100,尽管在训练方面一般,但是推理真的是性价比非常高的,管制之后,一张4090的卡行情在1.6W-2.2W元,RTX4090原本是在游戏领域。NVIDIA发布的RTX 40系列移动版显卡,并首次给笔记本带来了RTX 4090级别的型号,是一款性能非常好的显卡。
软件:操作系统windows10,内存32G,64位。
? ? ?我现在假定,你的主机是什么软件都没有安装(但cuda驱动先自己安装上,没有安装的也可以看前面的博文),从一个空白的主机开始搭建,一步一步搭建清华ChatGLM3 6B。所以首先是安装Anaconda,Anaconda是开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项,用起来非常方便。
? ? 1)下载Anaconda:Free Download | Anaconda
? ? ? 我直接下载的是它的最新版本,对应的python版本为3.11
? ? ? 下载好之后一路next就可以
? ? ?安装详细参考文档可以参考这个:Anaconda详细安装及使用教程(带图文) - 知乎
? ? ?测试是否安装好conda的命令,进入到dos命令行窗口,输入:conda --version
? ? ?? ??
(1)创建虚拟环境:conda create -n py27 python=2.7
? (2)激活虚拟环境:conda activate env_name(环境名称)
? (3)? 退出虚拟环境: deactivate env_name(环境名称)
(4)删除虚拟环境:conda remove -n env_name(环境名称) --all
(5)查看已创建的虚拟环境:conda env list ?或 conda info -e ?或 ?conda info --env
? ? 在此,我们利用conda创建glm3的python虚拟环境
? ? ?命令:conda create -n glm3 python=3.10
? ? ?进入glm3环境,效果如下:activate?glm3
? ?
? ? 因为要从阿里的魔塔社区通过git方式拉去相关镜像和代码,因此需要安装一下git版本控制软件git是世界上最先进的分布式版本控制系统,包括github,git以及阿里魔塔等都是基于git开发出来的代码版本管理平台,所以我们先安装git.
? ?下载地址:https://git-scm.com/download/win
? ?下载之后也是一路next安装就可以
? ? git软件安装参考:Windows下的详细Git安装_windows git安装-CSDN博客
? ? 最后安装成功验证:git --version
? ? ? 为了让python能够识别和使用gpu,我们需要一个包来识别出gpu,正好有那么一款机器学习的库有这个功能,它就是pytorch,PyTorch是一个开源的Python机器学习库,基于Torch,用于自然语言处理等应用程序。PyTorch既可以看作加入了GPU支持的numpy,同时也可以看成一个拥有自动求导功能的强大的深度神经网络。pytorch的版本非常重要,和cuda的版本,以及python的版本都很有关系,具体使用哪个版本,可以到pytorch官网查看(怎么安装pytorch也可以看我之前的文章【AI】Windows配置GPU Cuda驱动和Pytorch框架_配置了cuda驱动-CSDN博客)
? ? ? 最关键的步骤之一,就是确定torch和torchVsion的版本,如果版本没有配套,就很容易出现各种妖孽的问题,确定地址是pytorch的官网:Start Locally | PyTorch
根据实际从官网生成了适合我们的pytorch安装命令
conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia
这个torch版本很重要,一定要适配,否则会出现诸如找不到cuda或者算法精度跑不出来的之类的要求问题。
前面已经完成了Cuda驱动、pytorch和torchVsion的安装,现在我们要测试一下是否能使用GPU环境。测试在python_gpu环境种,执行如下代码:
import torch
print(torch.cuda.is_available())
显示为True表示配置成功,可以成功调用cuda
当然也可以参考这里面的代码,测试一下gpu是否正常运行
#coding=gbk
# This is a sample Python script.
import torch
# Press Ctrl+空格 to execute it or replace it with your code.
# Press Double Shift to search everywhere for classes, files, tool windows, actions, and settings.
def test_gpu():
import time
import torch
# 测试gpu计算耗时
A = torch.ones(5000, 5000).to('cuda')
B = torch.ones(5000, 5000).to('cuda')
startTime2 = time.time()
for i in range(100):
C = torch.matmul(A, B)
endTime2 = time.time()
print('gpu计算总时长:', round((endTime2 - startTime2) * 1000, 2), 'ms')
# 测试cpu计算耗时
A = torch.ones(5000, 5000)
B = torch.ones(5000, 5000)
startTime1 = time.time()
for i in range(100):
C = torch.matmul(A, B)
endTime1 = time.time()
print('cpu计算总时长:', round((endTime1 - startTime1) * 1000, 2), 'ms')
# Press the green button in the gutter to run the script.
if __name__ == '__main__':
print(torch.cuda.is_available())
test_gpu()
? 从魔塔社区下载chatGLM3的源代码
? 命令:git clone https://github.com/THUDM/ChatGLM3
? ? 这里面requirements.txt记录了安装要以来的各种包
? ? ?进入到glm3 python虚拟环境执行安装,预计要等到好几个小时
? ? ?命令:conda activate glm3
? ? ? 升级一下pip版本,这样下载更快点
? ? ?命令:pip install --upgrade pip
? ? ? 执行依赖安装
? ? ? 命令:pip install -r requirements.txt?
要等个把小时,安装完了以后,建议再执行下,确保torch版本ok:? ? ?
conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia
下载预训练模型
命令:git clone https://www.modelscope.cn/ZhipuAI/chatglm3-6b.git
? 6b的有7个2个g大小左右的大文件7个,但是下载速度还是非常快的
进入到basic_demo修改:cli_demo.py,把模型修改为自己下载的模型路径
再进入到glm3 python环境执行该脚本:python?cli_demo.py
这就部署好了推理版本了,可以输入问题,进行问答,答案不咋地,但是也算答了
?启动页面版本:python??web_demo_streamlit.py,这样执行会报错
应是这个命令:streamlit run web_demo_streamlit.py