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


相关推荐
Y学院13 小时前
企业级Dify私有化部署全攻略(Docker Compose生产环境实战)
人工智能·docker·语言模型
dualven_in_csdn13 小时前
【AI】初步使用dify
语言模型
前端摸鱼匠14 小时前
【AI大模型春招面试题24】什么是“注意力分数”?如何计算?其大小反映了什么?
人工智能·算法·ai·面试·大模型·求职招聘
tq108614 小时前
从工具调用到符号思维:持久化Lisp元编程循环中的大语言模型
开发语言·语言模型·lisp
熊猫钓鱼>_>14 小时前
ERNIE-Image 深度测评:百度 8B 小模型如何撼动文生图格局
百度·ai·大模型·llm·ernie·image·图像生成
重生之我要成为代码大佬15 小时前
pytorch与视觉检测
人工智能·pytorch·深度学习·大模型·视觉检测
龙侠九重天15 小时前
Prompt Engineering 实战指南:如何高效与大模型对话
ai·语言模型·自然语言处理·llm·prompt·提示词工程
Zzj_tju15 小时前
大语言模型技术指南:LoRA、QLoRA、全参微调怎么选?训练资源与参数配置详解
人工智能·语言模型·自然语言处理
拓朗工控1 天前
当大模型遇上大电网:算力与电力的“双向奔赴”
大模型·算力·电网·电力
DavidSoCool1 天前
win11系统使用DockerDesktop搭建Dify实现知识库问答
ai·大模型·知识库·dify