本文旨在记录项目的进度及试错过程,本文根据清华大学的开源项目ChatGLM3进行实现,本次实现基于AutoDl的GPU算力平台(相较便宜)的ubuntu操作系统,使用pytorch2.1.1 , python3.10.12 (建议大于3.10),cuda版本为11.8。

如有问题欢迎指出!

一:部署

        本文参考GitHub - THUDM/ChatGLM3: ChatGLM3 series: Open Bilingual Chat LLMs | 开源双语对话语言模型

chatglm3-6b · 模型库 (modelscope.cn)       

        1.1打开终端下载项目仓库并且打开项目文件

git clone https://github.com/THUDM/ChatGLM3
cd ChatGLM3

aacd370bbdee446a94e19693e26b9bc8.png

        1.2安装项目依赖库

pip install -r requirements.txt

5f775fdc9a654701a7c1e39046a48bc9.png

        1.3下载模型实现和参数

        因为从huggingface下载模型较慢及对网络有要求,本文将从ModelScops​​​​​​社区进行下载模型。

        首先下载modelscope API

pip install modelscope

276ac41cfc9645a7848302709703f06b.png

        进入python

python

输入下列代码:

 

from modelscope import snapshot_download
model_dir = snapshot_download("ZhipuAI/chatglm3-6b", revision = "v1.0.0")

2d0fd86f80334e25b487f7ff2332b7ed.png模型自动开始下载 如图下载完成

bfdddc4df0334a8c86963d22a5979643.png

exit()

exit()退出pyhon

        1.4寻找模型实现和参数路径

find / -name chatglm3-6b

83ebbfb40dde4b5bad32cde0e2aa1a41.png

复制改路径。

1.5进入ChatGLM3/basic_demo/cli_demo.py文件夹修改第六行

将'THUDM/chatglm3-6b'8010d00a91474c2fb3dbc3b37d2c6990.png

修改为'/root/.cache/modelscope/hub/ZhipuAI/chatglm3-6b'(刚才复制的路径)

并按Ctrl+S保存修改

1c646038317b46fa827b9d2802376baa.png

1.6运行cli_demo.py程序

进入终端打开cli_demo.py所在文件夹

cd basic_demo
python cli_demo.py

如图成功加载参数并且运行程序就算部署成果,web端也使用同样的方法修改模型权重路径

6a446f6fcc074ed79c45a8bd7edb3a3b.png

二.使用Lora方法微调(python要求在3.10以上\)

        2.1上传微调文件

        文件格式:


{"context": "hello", "target": "hi,I am ChatGLM3"}

        将微调数据集上传到ChatGLM3/finetune_basemodel_demo/scripts目录下(autodl平台下直接拖就可以了)

151ac0d66edc42cbab0da3f2c3370b88.png

2.2修改finetune_lora.sh文件

寻找train.json文件地址

find / -name train.json

将这两行修改成模型参数文件的绝对路径,和train.json的绝对路径

a5f888a24d5a4ba4b367f9dd0ecbfc74.png

改为:7ebce6e5febe442d9bc8aba5408be487.png

修改gpu_num 根据自己的情况而写

2.3 更新python>3.10,并且安装依赖库

终端输入:

conda install python==3.10.12

 

进入finetune_basemodel目录安装依赖库

pip install -r requirements.txt

436abfc2b95a4e79ba76b96b670aa24b.png

2.4进行微调训练

python finetune.py

进行微调:

进入finetune_basemod

命令行输入下列添加执行权限给 finetune_lora.sh 脚本

chmod +x ./scripts/finetune_lora.sh

c9a1f7ff49e44b42a027e2f6624a8c52.png

运行脚本:

./scripts/finetune_lora.sh

微调训练完成:

c3e50add771d4e89bfe7f4c418b30ba0.png

2.5测试微调结果

 

 

        进入ChatGLM3/finetune_basemodel_demo/output/text-20231126-212336-1e-4/pytorch_model.plt  复制改文件路径

 

3a17f39872324e5b96d7f801a265c229.png

如图修改inference.py 原模型路径和微调参数路径:

6e7d2755442340158ca4cfe68a99f5b5.png

运行测试程序:

 python inference.py 

7a4b42997aaa40d0a992fc568aa13f5a.png

微调成功

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐