赞
踩
选用AutoDL平台进行部署,租用GPU型号建议选用一张4090,显存一定要选用24G的,CUDA版本尽量选最新的。
完成服务器的租用和环境搭建后,选择快捷工具中的“JupyterLab”进入服务器查看。
autodl-tmp文件夹为数据盘,后续将模型及模型权重下载到这个文件夹中。
初始化git-lsf命令
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
sudo apt-get install git-lfs
git lfs install
执行完上述命令,得到”Git LFS initialized.“提示后,即表明初始化已完成。
模型ChatGLM3的地址为:https://github.com/THUDM/ChatGLM3
ChatGLM3模型权重文件的地址:https://huggingface.co/THUDM/chatglm3-6b
接下来就可以进行ChatGLM3-6b模型的克隆和模型权重文件的下载,由于文件较大下载过程比较慢或直接报错,因此,可以先设置学术资源加速再进行下载:
#学术资源加速
source /etc/network_turbo
然后进行模型克隆
#克隆模型
git clone https://github.com/THUDM/ChatGLM3
下载完成后,可以看到在”autodl-tmp“文件中新增了一个”ChatGLM3“的文件夹
#切换到模型文件夹进行后续的依赖安装
cd ChatGLM3
#安装环境依赖
pip install -r requirements.txt
安装好模型运行的环境依赖后,可以在autodl-tmp文件夹下新建一个models文件夹,下载ChatGLM3-6b模型权重文件
#克隆chatglm3-6b的参数、权重等文件
git clone https://huggingface.co/THUDM/chatglm3-6b
安装完成后,对比一下”autodl-tmp/models/chatglm3-6b“文件夹中已下载的文件和huggingface中”Files and Versions“中的提供的文件,查看是否全部下载完毕,有些情况下,七个较大的模型权重文件无法统一下载下来,需要再次逐个安装
权重文件的安装方式:
#学术资源加速
source /etc/network_turbo
#权重文件下载
wget https://huggingface.co/THUDM/chatglm3-6b/resolve/main/pytorch_model-00001-of-00007.bin
到此,已经完成了ChatGLM3-6b模型在远程服务器的安装部署,接下来检验是否部署成功
进入到“basic_demo”文件夹中,选中“cli_demo.py”文件,将其中的模型读取代码改为自己的模型下载路径
# MODEL_PATH = os.environ.get('MODEL_PATH', 'THUDM/chatglm3-6b') #源码中的路径
MODEL_PATH = os.environ.get('MODEL_PATH', '/root/autodl-tmp/models/chatglm3-6b') #替换为自己的下载路径,相对路径'../../models/chatglm3-6b'也可以
更改后保存代码,然后运行
(base) root@autodl-container-789011a29e-5a4fb1f0:~# cd autodl-tmp/ChatGLM3/basic_demo #切换到要运行的文件所在的文件夹
(base) root@autodl-container-789011a29e-5a4fb1f0:~/autodl-tmp/ChatGLM3/basic_demo# python cli_demo.py #运行代码
出现如下页面即表示已经部署成功!
在“autodl-tmp/ChatGLM3/basic_demo”文件夹中,ChatGLM3提供了三种基本的对话交互页面:
在执行上述脚本之前,都需对脚本的模型加载路径、网页端口等内容进行修改
第2.3节中已实现,所以在这里不再复现。
对于web_demo_gradio.py
,除修改模型加载路径外,还需要修改端口设置,因为AutoDL平台需以6006端口启动访问服务
修改完成后,即可在终端执行该脚本,具体如下:
需要注意的是,不能直接点击给出的链接进行跳转,而是需要在AutoDL的实例页面,点击所用实例的**“自定义服务”,然后在弹出的窗口中再点击“访问”**,就会跳转到gradio的交互页面
更改模型加载路径
web_demo_streamlit.py
中没有指定端口号的代码,因此端口号的修改在终端的命令行操作时进行修改
执行完成后,页面的打开方式与上述的gradio的打开方式一致
如果需要更全面的网络演示,建议使用“composite_demo”。
首先切换到/root/autodl-tmp/ChatGLM3/composite_demo
文件夹,然后通过conda新建一个环境,并在该环境下安装所需依赖,注意python版本需要是3.10及以上版本。
# 创建名为“chatglm3-demo”且版本为3.10的python环境
conda create -n chatglm3-demo python=3.10
# 更新bashrc中的环境变量
conda init bash && source /root/.bashrc
# 激活进入该环境
conda activate chatglm3-demo
# 在该环境下安装所需依赖
pip install -r requirements.txt
# 使用 Code Interpreter 还需要安装 Jupyter 内核
ipython kernel install --name chatglm3-demo --user
完成上述的安装操作后,即可进行程序的运行。
本项目也是基于streamlit创建的用户界面,以便与ChatGLM3进行交互,该项目中main.py
作为主程序,调用demo_chat
、demo_ci
和demo_tool
三个子程序。各子程序会调用其他的脚本实现对应的功能,demo_chat.py
子程序会调用client.py
进行模型加载。
因此需要更改client.py
中的模型加载路径
第一次运行时可能还会报一些缺少相关包的错误,可能因为“requirements.txt”没有包括所有的包,这种情况直接按提示安装对应的包就可以。
# 执行命令
streamlit run main.py --server.address 127.0.0.1 --server.port 6006
ChatGLM3 Demo 拥有三种模式:
官方给出了对话模型和基座模型的微调示例,模型微调的相关脚本在 /root/autodl-tmp/ChatGLM3/finetune_chatmodel_demo
文件夹下,微调示例参考官方文档。
#创建名为“ChatGLM3-Tuning”且版本为3.10的python环境
conda create -n ChatGLM3-tuning python=3.10
#激活进入该环境
conda activate ChatGLM3-tuning
#在该环境下安装所需依赖
pip install -r requirements.txt
# 使用 Code Interpreter 还需要安装 Jupyter 内核
ipython kernel install --name ChatGLM3-tuning --user
官方示例中使用AdvertiseGen 数据集来进行微调,因此,在此示例中也使用AdvertiseGen 数据集。
首先在autodl-tmp/
目录下建立一个data
文件夹
然后从官方提供的 Google Drive 或者 Tsinghua Cloud 中下载 AdvertiseGen 数据集,将解压后的 AdvertiseGen 目录放到 data
目录下并自行转换为如下格式数据集。
请注意,现在的微调代码中加入了验证集,因此,对于一组完整的微调数据集,必须包含训练数据集和验证数据集,测试数据集可以不填写。或者直接用验证数据集代替。
{"conversations": [{"role": "user", "content": "类型#裙*裙长#半身裙"}, {"role": "assistant", "content": "这款百搭时尚的仙女半身裙,整体设计非常的飘逸随性,穿上之后每个女孩子都能瞬间变成小仙女啦。料子非常的轻盈,透气性也很好,穿到夏天也很舒适。"}]}
还需要在autodl-tmp/data
文件夹下新建一个AdvertiseGen_fix
文件夹用来存放转换格式后的数据集。
进入lora_finetune.ipynb
文件,更改数据集所在的位置
运行代码,成功后在autodl-tmp/data/AdvertiseGen_fix
文件夹下就会出现转换格式成功的数据集。
在lora_finetune.ipynb
文件中,更改数据集和模型所在的位置
运行代码
微调成功后,可以看到在finetune_demo/output
文件夹下多了很多个checkpoint-*
的文件夹,这些文件夹代表了训练的轮数。
选择最后一轮的微调权重,并使用inference进行导入
到此就完成了使用单张 GPU Lora 来微调 ChatGLM3-6B 模型,使其能生产出更好的广告。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。