chatglm3-6b部署和微调

学习记录📝

文章目录

  • 一、Autodl租用服务器
  • [二、ChatGLM3-6B 部署](#二、ChatGLM3-6B 部署)
  • [三、多轮对话微调(基于 ToolAlpaca 数据集)](#三、多轮对话微调(基于 ToolAlpaca 数据集))
    • [1. 前置准备](#1. 前置准备)
    • [2. 微调参数配置](#2. 微调参数配置)
    • [3. 启动微调](#3. 启动微调)
    • [4. 微调模型调用](#4. 微调模型调用)
  • [四、输入输出微调(基于 AdvertiseGen 数据集)](#四、输入输出微调(基于 AdvertiseGen 数据集))
    • [1. 前置准备](#1. 前置准备)
    • [2. 微调参数配置](#2. 微调参数配置)
    • [3. 启动微调](#3. 启动微调)
    • [4. 微调模型验证与调用](#4. 微调模型验证与调用)

部署chatglm3-6b

项目地址:https://github.com/THUDM/ChatGLM3

一、Autodl租用服务器

在autodl中租用4090显卡,pytorch版本2.0.0,python 3.8,CUDA 11.8。


二、ChatGLM3-6B 部署

1.环境准备

打开终端

配置好学术资源加速后克隆项目

powershell 复制代码
source /etc/network_turbo
git clone https://github.com/THUDM/ChatGLM3.git

创建虚拟环境,初始化conda,并激活虚拟环境

powershell 复制代码
conda create --name myenv python=3.10
conda init
conda activate myenv

安装依赖包:

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


2.模型文件下载

提供2种下载方式,优先推荐HuggingFace拉取:

  • 方式1(推荐):HuggingFace + Git LFS拉取
powershell 复制代码
  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

② 网页交互:

powershell 复制代码
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

  • 调整数据格式:

    Bash 复制代码
    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. 微调参数配置

Bash 复制代码
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. 启动微调

Bash 复制代码
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. 微调模型调用

Bash 复制代码
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

  • 下载并解压数据集:

    Bash 复制代码
    cd ~
    wget -O AdvertiseGen.tar.gz https://cloud.tsinghua.edu.cn/f/b3f119a008264b1cabd1/?dl=1
    tar -xzvf AdvertiseGen.tar.gz
  • 调整数据格式:

    Bash 复制代码
    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. 微调参数配置

Bash 复制代码
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. 启动微调

Bash 复制代码
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. 微调模型验证与调用

  • 终端测试模型:

    Bash 复制代码
    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
  • 网页调用模型:

    Bash 复制代码
    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


相关推荐
带娃的IT创业者1 小时前
开源新纪元:深度解析小米 MiMo Code 的技术架构与实战应用
架构·开源·大模型·小米·代码生成·技术架构·mimo code
zhayujie3 小时前
如何设计一个 Agent 友好的 CLI 工具
ai·大模型·agent·cli·harness
phltxy4 小时前
LangChain从模型调用到应用编排
人工智能·深度学习·语言模型·langchain
m0_738120724 小时前
AI安全实战系列(四):Lab04 Multi-Agent——多智能体攻击分析
服务器·开发语言·人工智能·安全·网络安全·语言模型
猿的天空21 小时前
AI视觉原生统一!商汤开源视觉任务大统一模型SenseNova-Vision
人工智能·计算机·ai·程序员·大模型·编程·智能体
疯狂学习GIS1 天前
AI Agent 操作 QGIS 实测:Codex 与 Claude Code 能自己出图吗
人工智能·ai·大模型·gis·agent·qgis·codex
带娃的IT创业者1 天前
当推理速度突破物理极限:深度解析 MiMo-v2.5-Pro-UltraSpeed 的 1000 TPS 架构革命
人工智能·架构·大模型·架构优化·mimo·tps·推理速度
蓦然回首却已人去楼空1 天前
Build a Large Language Model (From Scratch) 第三章 编码注意力机制
人工智能·深度学习·语言模型
衣舞晨风1 天前
什么样的 AI 网关算是一个好网关
网络·人工智能·网关·ai·大模型·ai网关
Databuff1 天前
个人用的桌面级开源智能体有哪些?OpenOcta 八爪鱼上手与对比
人工智能·ai·语言模型·开源·开源软件