学习记录📝


部署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                       # 验证文件完整性

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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


Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐