ChatGLM3-6B最新版 云端部署及微调教程【喂饭版】

ChatGLM3-6B最新版 云端部署及微调教程【喂饭版】

1 GPU云平台选择

1.1 选择AutoDL平台链接

注册并实名制
高校学生证可以打骨折(应该是95or98折)
在这里插入图片描述

1.2 创建实例

通过算力市场-选择一个显存在24G或以上的(24G部署足够用)
需要扩容【完整的glm3-6b模型≈47G,AutoPanel 实例监控显示,可能含有缓存;微调存储的数据巨大,此前测试 每一次保存的checkpoint的大小为10G】
镜像选择【PyTorch / 2.1.0 / 3.10(ubuntu22.04) / 12.1,官方微调要求Python3.10,部署运行Python3.8】
点击创建实例
在这里插入图片描述

1.3 AutoPanel实例监控

点击AutoPanel,可以实时查看实例的CPU、GPU、系统(数据)盘用量等。

下图为安装完所有依赖及clone仓库后的盘用量,因此推荐1.2的数据盘扩容
在这里插入图片描述

1.4 进入Jupyterlab

左侧为AutoDL可视化的盘符及路径
新建 终端1。「这里为指令内容」

「进入数据盘」
root@autodl-container-42a44688ad-94e2291b:~# cd autodl-tmp

「开启AutoDL的学术加速」
root@autodl-container-42a44688ad-94e2291b:~/autodl-tmp# source /etc/network_turbo
设置成功
注意:仅限于学术用途,不承诺稳定性保证

「更新包管理器,有提示输入 y    确认」
root@autodl-container-42a44688ad-94e2291b:~/autodl-tmp# sudo apt-get update

在这里插入图片描述

1.5 拉取仓库

安装lfs并拉取模型仓库,拉取地址已在下方标注

「拉取lfs 安装包」
root@autodl-container-42a44688ad-94e2291b:~/autodl-tmp# sudo apt-get install git-lfs
........
Setting up git-lfs (3.0.2-1ubuntu0.2) ...

「安装lfs并初始化」
root@autodl-container-42a44688ad-94e2291b:~/autodl-tmp# git lfs install
Git LFS initialized.

「拉取魔塔社区的完整glm3-6b模型代码」
「 git clone https://www.modelscope.cn/zhipuai/chatglm3-6b.git 」
「时间可能为大几十分钟,不要管,让终端1 一直运行,直到完整出现下部所有代码」
root@autodl-container-42a44688ad-94e2291b:~/autodl-tmp# git clone https://www.modelscope.cn/zhipuai/chatglm3-6b.git
Cloning into 'chatglm3-6b'...
remote: Enumerating objects: 140, done.
remote: Total 140 (delta 0), reused 0 (delta 0), pack-reused 140
Receiving objects: 100% (140/140), 47.10 KiB | 1.21 MiB/s, done.
Resolving deltas: 100% (64/64), done.
Filtering content: 100% (15/15), 23.26 GiB | 21.25 MiB/s, done.

在这里插入图片描述

1.6 拉取Chatglm3-6B代码仓库

新建一个终端(终端2)并cd 进入autodl-tmp文件目录,开启学术加速并克隆官方代码

「开启学术加速   source /etc/network_turbo」
root@autodl-container-42a44688ad-94e2291b:~/autodl-tmp# source /etc/network_turbo
设置成功
注意:仅限于学术用途,不承诺稳定性保证

「从 GitHub上clone 官方仓库 」
「 git clone https://github.com/THUDM/ChatGLM3.git 」
root@autodl-container-42a44688ad-94e2291b:~/autodl-tmp# git clone https://github.com/THUDM/ChatGLM3.git
Cloning into 'ChatGLM3'...
remote: Enumerating objects: 1549, done.
remote: Counting objects: 100% (244/244), done.
remote: Compressing objects: 100% (149/149), done.
remote: Total 1549 (delta 124), reused 182 (delta 93), pack-reused 1305 (from 1)
Receiving objects: 100% (1549/1549), 17.80 MiB | 1.12 MiB/s, done.
Resolving deltas: 100% (864/864), done.

在这里插入图片描述

1.7 安装项目依赖a(部署)

新建一个终端(终端3),创建虚拟环境 ,cd autodl-tmp/ChatGLM3进入文件夹

「开启学术加速,尽量每一次开终端先运行这个加速」
root@autodl-container-42a44688ad-94e2291b:~# source /etc/network_turbo
设置成功
注意:仅限于学术用途,不承诺稳定性保证

「使用conda 创建一个名为 UMTCDS 的虚拟环境」
root@autodl-container-42a44688ad-94e2291b:~# conda create -n UMTCDS python=3.10

「激活虚拟环境 source activate 你的环境名称 」
root@autodl-container-42a44688ad-94e2291b:~# source activate UMTCDS
(UMTCDS) root@autodl-container-42a44688ad-94e2291b:~# cd autodl-tmp/ChatGLM3

「安装项目依赖 pip install -r requirements.txt」
「一定开启学术加速,不然2mb/s 下载到你发疯。大概10分钟之内下载完毕」
(UMTCDS) root@autodl-container-42a44688ad-94e2291b:~/autodl-tmp/ChatGLM3# pip install -r requirements.txt

在这里插入图片描述
项目部署的依赖a已经全部安装完成
在这里插入图片描述

1.8 安装项目依赖b(微调)!

cd进入微调的目录,在安装依赖之前,先安装几个包,目的是解决微调依赖安装报错的问题

「进入ChatgGLM3 微调demo 目录」
(UMTCDS) root@autodl-container-42a44688ad-94e2291b:~/autodl-tmp/ChatGLM3# cd finetune_demo

「下初安装微调依赖的代码先别急着做」
(UMTCDS) root@autodl-container-42a44688ad-94e2291b:~/autodl-tmp/ChatGLM3/finetune_demo# pip install -r requirements.txt

报错问题1:
安装 mpi4py 库时出现编译报错

x86_64-conda_cos6-linux-gnu-cc: command not found
      failure.
      removing: _configtest.c _configtest.o
      error: Cannot compile MPI programs. Check your configuration!!!
      [end of output]

解决方案:
先安装编译器再安装mpi4py包

conda install gcc_linux-64
pip install mpi4py

在这里插入图片描述

报错问题2:
依旧是mpi4py包,这个应该是官方在写依赖txt文件时候没有处理好关系,导致安装依赖复杂化

error: subprocess-exited-with-error
  
  × Building wheel for mpi4py (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [82 lines of output]

解决方案:
安装一个mpi4py的前序包(我编的名字)

sudo apt install libmpich-dev    # for MPICH

所以先将下出代码运行完毕再安装 微调的依赖包

(UMTCDS) root@autodl-container-42a44688ad-94e2291b:~/autodl-tmp/ChatGLM3/finetune_demo# sudo apt install libmpich-dev    # for MPICH
(UMTCDS) root@autodl-container-42a44688ad-94e2291b:~/autodl-tmp/ChatGLM3/finetune_demo# conda install gcc_linux-64
(UMTCDS) root@autodl-container-42a44688ad-94e2291b:~/autodl-tmp/ChatGLM3/finetune_demo# pip install -r requirements.txt

在这里插入图片描述
出现这个即为微调的依赖包全部安装完毕
在这里插入图片描述

2 Chatglm3-6B部署

2.1 修改原有代码中的模型地址

所有demo运行前,都需要到xxxxxx_demo.py中修改模型位置
如果你按照上文一步一步来,则这里按照下处代码修改

cli_demo.py

line5  MODEL_PATH = os.environ.get('MODEL_PATH', 'THUDM/chatglm3-6b')

修改为

line5  MODEL_PATH = os.environ.get('MODEL_PATH', '/root/autodl-tmp/chatglm3-6b')

在这里插入图片描述

2.2 运行chatglm3-6b对话模型

按照2.1 修改好模型地址并保存后
cd 进入 /autodl-tmp/ChatGLM3/basic_demo
后输入 python cli_demo.py 执行

(UMTCDS) root@autodl-container-42a44688ad-94e2291b:~/autodl-tmp/ChatGLM3/basic_demo# python cli_demo.py
Setting eos_token is not supported, use the default one.
Setting pad_token is not supported, use the default one.
Setting unk_token is not supported, use the default one.
Loading checkpoint shards: 100%|█████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:01<00:00,  3.64it/s]
欢迎使用 ChatGLM3-6B 模型,输入内容即可进行对话,clear 清空对话历史,stop 终止程序

用户:你好,请介绍一下你自己

ChatGLM:你好,我是 ChatGLM3-6B,是清华大学KEG实验室和智谱AI公司共同训练的语言模型。我的目标是通过回答用户提出的问题来帮助他们解决问题。由于我是一个计算机程序,所以我没有自我意识,也不能像人类一样感知世界。我只能通过分析我所学到的信息来回答问题。

到此,chatglm3-6b的部署运行环节已经结束,你也可以尝试其他demo文件夹的glm3的运行方式。

在这里插入图片描述

3 ChatGLM3-6B微调(看看别做)

原因如下:在glm系列中,微调后的模型文件夹内应该包含config.json等数十个配置文件,但GitHub上最新的chatglm3-6b version可能如图内官方人员说的,没有适配,所以使用最新版微调的计划 error。
在这里插入图片描述
在这里插入图片描述

3.1 升级实例配置

关闭实例-点击控制台-更多-升降配置

在这里插入图片描述
这里在GPU数量选择2 即可。
「md 微调时候 一个GPU直接爆了emmm」
在这里插入图片描述
题外话:这是我一边写这篇文章,一边微调的,两张卡利用率直接拉满了
在这里插入图片描述

3.2 准备数据集

升级配置点击确定-开机-进入JupyterLab
在这里插入图片描述

3.3 按照官方的要求进行微调
OMP_NUM_THREADS=1 torchrun --standalone --nnodes=1 --nproc_per_node=2 finetune_hf.py data/20240819/  /root/autodl-tmp/chatglm3-6b  configs/ptuning_v2.yaml

在这里插入图片描述

3.4 运行完成后可以转去研究GLM4-9B了,因为GLM3最新版已经不维护了,如果群内有动静,我会继续将微调部分更新完成。
"""
Created on 2024-08-18
Last modified on 2024-08-20
Author: Lime Xu
Email: bradley.xsq@gmail.com
"""
3.5 温馨提示:AutoDL平台社区里的chatglm3-6b的很多镜像,功能比较完善,但是在查阅代码时候,我个人!!!个人!!觉得里面的微调代码是chatglm-6b的,也就是说,不是最新的chatglm3-6b的代码,所以大家使用的时候,注意一下。别出现项目要求的是完整的glm3,结果里面代码出现了glm1的,就可尴尬了,会被导师🐴

好了,祝愿大家阅读顺利,部署成功,任何问题可以在评论区or gmail联系我,空了我会即时回复!谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lime Bradley

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值