Windows:ChatGLM-6B的搭建、训练及部署

项目地址:Github:https://github.com/THUDM/ChatGLM-6B/Hugging Face Hub(模型地址):https://huggingface.co/THUDM/chatglm-6b

操作系统:Windows 7/python版本:python-3.8.8/独立显卡:NVIDIA GeForce RTX 2070 Super 8G。

安装完成环境,启动web_demo.py报错了:RuntimeError: Library cublasLt is not initialized

私以为是CUDA版本的问题,Windows 7最高支持版本10.2 ,想升级到11.*,需要升级成Windows10试一下。

2023.07.26 19:00

升级到Windows10可以正常运行了。

软硬件要求:

  • python版本要求:3.8以上
  • Windows系统:Windows 10及以上,推荐有NVIDIA显卡(最好NVIDIA显卡20系列以上)
  • 显卡要求:显存必须6G以上GPU

一、搭建步骤

1.首先下载项目:https://github.com/THUDM/ChatGLM-6B和模型:https://huggingface.co/THUDM/chatglm-6b

将模型放到项目的子文件中:

比如将项目放在D:\ChatGLM-6B;可以在ChatGLM-6B文件夹建立子文件夹chatglm-6b:将模型放到里面。

提示:模型比较大,下载需要等待。

2.将NVIDIA GeForce显卡驱动升级到最新版本,驱动下载地址:https://www.nvidia.com/Download/index.aspx# 

安装cudatoolkithttps://developer.nvidia.com/cuda-toolkit-archive

在C:\Program Files\NVIDIA Corporation\NVSMI启动命令行:输入 nvidia-smi 可以看到cuda的版本。

如果提示类似“command not found”的信息,则CUDA没有成功安装或者没有正确添加环境变量。

3.安装pytorch(注意cuda版本号)

PyTorch

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu117

4.进入到项目D:\ChatGLM-6B目录下,执行以下命令,进行安装相关包:

pip3 install -r requirements.txt

至此环境已经安装完成。

二、启动项目

使用pycharm或者其他IDE打开项目

1.启动web

运行web_demo.py,需要修改代码中的几个参数(模型地址/量化方式):

tokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm2-6b", trust_remote_code=True)
model = AutoModel.from_pretrained("THUDM/chatglm2-6b", trust_remote_code=True).half().cuda()

修改为:

tokenizer = AutoTokenizer.from_pretrained("chatglm2-6b", trust_remote_code=True)
model = AutoModel.from_pretrained("chatglm2-6b", trust_remote_code=True).half().quantize(4).cuda()

注意:

half().quantize(4).cuda()这个需要根据你电脑实际显卡GPU进行更改。

# 6G 显存可以 4 bit 量化
model = AutoModel.from_pretrained("model", trust_remote_code=True).half().quantize(4).cuda()
# 10G 显存可以 8 bit 量化
model = AutoModel.from_pretrained("model", trust_remote_code=True).half().quantize(8).cuda()
# 14G 以上显存可以直接不量化
model = AutoModel.from_pretrained("model", trust_remote_code=True).half().cuda()

如果需要启动局域网访问,

demo.queue().launch(share=False, inbrowser=True)

修改为:

demo.queue().launch(share=True, inbrowser=True, server_name='0.0.0.0', server_port=9072)

server_port为端口号,当然也可以不修改,使用默认端口号。

2.启动api接口

同上修改模型地址/量化方式

python web_demo.py
3.启动命令行模式

同上修改模型地址/量化方式

python cli_demo.py

三、训练、验证模型

1.训练

安装依赖:pip install rouge_chinese nltk jieba datasets

创建train.json文件,格式:

{
"content": "你的问题?",
"summary": "你的答案。"
}

配置OK之后,执行

bash train.sh

 

注意:

  训练的时候关闭启动的网页,接口或者命令行,这些因素对训练的速度都有影响。下面是我训练一个问题的结果,之前没关运行的接口跑的特别慢,关闭后速度大幅度提升。最终跑了1day4小时22分钟。。。

2.验证

同理修改evaluate.sh后执行:

bash evaluate.sh
3.部署

参考启动项目用训练生成的模型替换模型地址,训练生成的模型路径一般为:

\ptuning\output\adgen-chatglm-6b-pt-128-2e-2

 

posted @ 2023-07-26 17:28  新*  阅读(2065)  评论(2编辑  收藏  举报