chatglm3-6b部署和微调
本文详细介绍了在AutoDL服务器上部署ChatGLM3-6B大模型的全过程,包括环境配置、模型下载和启动测试,以及两种微调方法。首先租用4090显卡服务器,配置Python 3.8和CUDA 11.8环境,通过HuggingFace或镜像站下载模型文件。提供了终端交互和网页交互两种启动方式,并说明本地访问方法。重点演示了基于ToolAlpaca数据集的多轮对话微调和基于AdvertiseGen数
学习记录📝
文章目录
部署chatglm3-6b
项目地址:https://github.com/THUDM/ChatGLM3
一、Autodl租用服务器
在autodl中租用4090显卡,pytorch版本2.0.0,python 3.8,CUDA 11.8。
二、ChatGLM3-6B 部署
1.环境准备
打开终端
配置好学术资源加速后克隆项目
source /etc/network_turbo
git clone https://github.com/THUDM/ChatGLM3.git

创建虚拟环境,初始化conda,并激活虚拟环境
conda create --name myenv python=3.10
conda init
conda activate myenv

安装依赖包:
cd ChatGLM3 # 进入项目目录
pip install --upgrade pip # 更新pip
pip install -r requirements.txt # 安装项目核心依赖
pip install jupyter_client # 补充安装jupyter相关依赖


2.模型文件下载
提供2种下载方式,优先推荐HuggingFace拉取:
- 方式1(推荐):HuggingFace + Git LFS拉取
cd /root/autodl-tmp # 切换到存储目录
sudo apt update # 更新软件包
sudo apt-get install git-lfs # 安装git-lfs
source /etc/network_turbo # 启动学术加速(可选)
git clone https://huggingface.co/THUDM/chatglm3-6b # 克隆模型仓库
(unset http_proxy && unset https_proxy) # 取消代理(如需)
git lfs install # 初始化git-lfs
cd chatglm3-6b # 进入模型目录
git lfs pull # 拉取大模型文件
git lfs ls-files # 验证文件完整性



- 方式2(备用):镜像站下载(地址:https://hf-mirror.com/THUDM/chatglm3-6b/tree/main),下载后同上同步到autodl目录
3.模型启动测试
- 修改模型地址:将配置文件中的模型路径指向
/root/autodl-tmp/chatglm3-6b
配置文件为/root/autodl-tmp/ChatGLM3/basic_demo/cli_demo.py

- 启动方式:
① 终端交互:python cli_demo.py

② 网页交互:
streamlit run web_demo_streamlit.py

③ 访问地址:http://127.0.0.1:6006
首先,复制好ssh登录指令和密码,用自己的登录指令替换下面的内容:
ssh -CNg -L 6006:127.0.0.1:8501 root@connect.westc.gpuhub.com -p 22688
接着,在windows powershell中连接
输入密码后若无报错,说明已正确连接,这时可以访问 http://127.0.0.1:6006
三、多轮对话微调(基于 ToolAlpaca 数据集)
1. 前置准备
-
安装微调依赖:
pip install transformers==4.30.2 accelerate sentencepiece astunparse deepspeed -
克隆数据集仓库:
cd ~ && git clone https://github.com/tangqiaoyu/ToolAlpaca.git

-
调整数据格式:
chmod +x /root/ChatGLM3/finetune_chatmodel_demo/scripts/format_tool_alpaca.py /root/ChatGLM3/finetune_chatmodel_demo/scripts/format_tool_alpaca.py --path "/root/ToolAlpaca/data/train_data.json"
2. 微调参数配置
cd /root/ChatGLM3/finetune_chatmodel_demo/scripts # 进入脚本目录
# 编辑finetune_pt_multiturn.sh文件,修改以下路径
BASE_MODEL_PATH=/root/autodl-tmp/chatglm3-6b # 基础模型路径
DATASET_PATH=/root/formatted_data/tool_alpaca.jsonl # 格式化后数据集路径
3. 启动微调
cd /root/ChatGLM3/finetune_chatmodel_demo # 进入微调目录
chmod +x /root/ChatGLM3/finetune_chatmodel_demo/scripts/finetune_pt_multiturn.sh
/root/ChatGLM3/finetune_chatmodel_demo/scripts/finetune_pt_multiturn.sh
- 微调耗时:约3小时,完成后会输出训练指标(如train_loss=0.2645),并将微调后的模型保存至
output/tool_alpaca_pt-xxxx目录
4. 微调模型调用
cd /root/ChatGLM3/composite_demo # 进入调用目录
# 启动微调后模型(替换端口/密码参数)
MODEL_PATH="/root/autodl-tmp/chatglm3-6b" PT_PATH="/root/ChatGLM3/finetune_chatmodel_demo/output/tool_alpaca_pt-20231110-210524-128-2e-2" streamlit run main.py
# 本地端口映射
ssh -CNg -L 6006:127.0.0.1:8501 root@connect.westb.seetacloud.com -p 17077
- 访问地址:
http://127.0.0.1:6006,密码:12cClLO9/KdN
四、输入输出微调(基于 AdvertiseGen 数据集)
1. 前置准备
-
安装微调依赖(同多轮对话微调):
pip install transformers==4.30.2 accelerate sentencepiece astunparse deepspeed -
下载并解压数据集:
cd ~ wget -O AdvertiseGen.tar.gz https://cloud.tsinghua.edu.cn/f/b3f119a008264b1cabd1/?dl=1 tar -xzvf AdvertiseGen.tar.gz -
调整数据格式:
chmod +x /root/ChatGLM3/finetune_chatmodel_demo/scripts/format_advertise_gen.py /root/ChatGLM3/finetune_chatmodel_demo/scripts/format_advertise_gen.py --path "/root/AdvertiseGen/train.json"
2. 微调参数配置
cd /root/ChatGLM3/finetune_chatmodel_demo/scripts # 进入脚本目录
# 编辑finetune_pt.sh文件,修改以下路径
BASE_MODEL_PATH=/root/autodl-tmp/chatglm3-6b # 基础模型路径
DATASET_PATH=/root/formatted_data/advertise_gen.jsonl # 格式化后数据集路径
3. 启动微调
cd /root/ChatGLM3/finetune_chatmodel_demo # 进入微调目录
pip install astunparse # 补充安装依赖
chmod +x /root/ChatGLM3/finetune_chatmodel_demo/scripts/finetune_pt.sh
/root/ChatGLM3/finetune_chatmodel_demo/scripts/finetune_pt.sh
4. 微调模型验证与调用
-
终端测试模型:
cd /root/ChatGLM3/finetune_chatmodel_demo python inference.py \ --pt-checkpoint "/root/ChatGLM3/finetune_chatmodel_demo/output/advertise_gen_pt-20231201-155239-128-2e-2" \ --model /root/autodl-tmp/chatglm3-6b -
网页调用模型:
cd /root/ChatGLM3/composite_demo MODEL_PATH="/root/autodl-tmp/chatglm3-6b" PT_PATH="/root/ChatGLM3/finetune_chatmodel_demo/output/advertise_gen_pt-20231201-155239-128-2e-2" streamlit run main.py # 本地端口映射 ssh -CNg -L 6006:127.0.0.1:8501 root@connect.westb.seetacloud.com -p 26185 -
访问地址:
http://127.0.0.1:6006,密码:KbUhLQF47v44
更多推荐


所有评论(0)