ChatGLM2-6B本地部署或云端部署配置过程

1、电脑配置

首先,本地部署先看一下自己的电脑配置够不够:

 如果要是用CPU运行的话,要保证有32G内存才可以。

2、项目和模型下载

从github上下载源代码

 git clone https://github.com/THUDM/ChatGLM2-6B

 从Hugging Face Hub上下载模型

 git clone https://huggingface.co/THUDM/chatglm2-6b

 模型下载后放入源代码项目文件夹内。如图:

 ChatGLM2-6B-Demo的百度网盘连接:ChatGLM2-6B-demo_免费高速下载|百度网盘-分享无限制 (baidu.com)

 3、conda环境配置

以下是我在自己电脑上的配置过程,因为网络不算稳定,直接使用requirement.txt下载不了。

conda create -n chat python=3.8
以下是根据pytorch官网copy的下载2.0版本的指令:
pip install torch==2.0.0+cu118 torchvision==0.15.1+cu118 torchaudio==2.0.1 --index-url https://download.pytorch.org/whl/cu118

以下是自行安装requirement里面的第三方库,这样不容易出意外:
pip install protobuf -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install transformers==4.30.2 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install cpm_kernels -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install gradio -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install mdtex2html -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install sentencepiece -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install accelerate -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install sse-starlette -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install streamlit -i https://pypi.tuna.tsinghua.edu.cn/simple

最后
更新charset_normalizer依赖库,不然必报错。
pip install --upgrade charset_normalizer
安装CLI所用到的charset_normalizer依赖库,不然必报错。
pip install pyreadline
如果你需要使用Demo2方式运行,一定要安装Streamlit依赖库才可以正常运行,该库可以用来实现打字机效果,建议直接无脑安装。
pip install streamlit streamlit-chat

 如果网络稳定,建议用以下官方的方式进行安装:

创建虚拟环境:
conda create -n chat python=3.8
安装部署所需的环境:
pip install -r requirements.txt
安装微调所需的环境:
pip install rouge_chinese nltk jieba datasets
额外需要的依赖:
pip install tensorboard

4、运行

一共有3种启动方式,分别是目录中的cli_demo.pyweb_demo.pyweb_demo2.py三个文件,三种启动方式对应着3种UI界面,所实现的功能都是一样的,只不过操作交互上存在些许不同而已。

激活环境
conda activate chat
cd到项目文件夹下
cd ChatGLM-6B-demo
启动对应的文件(这里给出三种):
python web_demo.py
python web_demo1.py
python cli_demo.py

我采用的是cli_demo.py的方式运行的,如图:

 5、模型微调(以下是根据官方教程加上自己的理解做的笔记)

官方教程:【官方教程】ChatGLM2-6B 部署与微调_哔哩哔哩_bilibili

 在github仓库中有做好的微调可以直接用(和上面源码是一个链接):THUDM/ChatGLM2-6B: ChatGLM2-6B: An Open Bilingual Chat LLM | 开源双语对话语言模型 (github.com)

 主要是两种微调方式(支持多轮对话数据集和生成任务数据集):

  • 基于P-tuning V2的参数高效微调
  • 全参数微调

做模型微调需要了解哪些原理?共有哪些方式可以做微调?

 这种微调方式难度比较高、实现困难、不可控、不稳定。虽然可以用,但一般不建议采用这种方式进行微调

 

 这种就是对模型权重做优化,通过对模型进行进一步的训练来更新参数,使得模型适配专业领域,这个PPT中包含两种方式:

  • 左边的是对模型进行全参数微调(这种效果比较好,但需要更好的GPU资源),比如用ChatGLM2-6B,需要对60亿个参数进行更新和调整。至少需要13*4=52G的显存进行全参数微调
  • 右边的是对模型进行参数高效微调(资源有效的情况下可以用),不会再对60亿的参数进行全部的调整,只引入非常少(如几十万或者几百万)的参数做微小的调整,再把这些参数加到原来的模型权重中。对于这部分的原理:神经网络训练本身就是做的矩阵运算,再超大型矩阵上附上一个旁路(非常小,5000*10或者5000*5),降低运算成本,最后将小的微调矩阵加到原本的大矩阵上,对大矩阵进行更新。

GitHub仓库中使用的微调(参数高效微调):

对应的是源代码文件中的ptuning文件夹里面的train.shevaluate.sh

 

使用官方提供的广告数据集,对chatglm2-6b使用P-tuningV2进行微调:

将下载好的数据集放到ptuning文件夹中,文件结构如图:

 在配置好的conda环境中,cd到ptuning文件夹路径下运行指令:

bash train.sh

train.sh文件设置如图:

train.sh 中的 PRE_SEQ_LEN 和 LR 分别是 soft prompt 长度和训练的学习率,可以进行调节以取得最佳的效果。P-Tuning-v2 方法会冻结全部的模型参数,可通过调整 quantization_bit 来被原始模型的量化等级,不加此选项则为 FP16 精度加载。

在默认配置 quantization_bit=4、per_device_train_batch_size=1、gradient_accumulation_steps=16 下,INT4 的模型参数被冻结,一次训练迭代会以 1 的批处理大小进行 16 次累加的前后向传播,等效为 16 的总批处理大小,此时最低只需 6.7G 显存。若想在同等批处理大小下提升训练效率,可在二者乘积不变的情况下,加大 per_device_train_batch_size 的值,但也会带来更多的显存消耗,根据实际情况酌情调整。

最后,运行成功并训练:

  • 1
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
为了将ChatGPT模型本地化部署,您可以按照以下步骤进行操作: 1. 下载模型: 首先,您需要从OpenAI获取ChatGPT模型的权重文件。您可以在OpenAI平台上订阅并下载所需模型的权重文件。 2. 设置运行环境: 在本地部署之前,请确保您的系统符合所需的运行环境。ChatGPT模型通常需要较高的计算资源和内存。您可以根据OpenAI提供的要求设置并配置系统。 3. 安装依赖项: ChatGPT模型的本地化部署可能需要一些依赖项。请确保您安装了相关的Python库和其他必要的软件包。您可以参考OpenAI提供的文档来获取所需的依赖项列表。 4. 加载模型: 使用适当的库和函数加载ChatGPT模型的权重文件。您可以使用Python中的TensorFlow或PyTorch等深度学习框架来加载和使用模型。 5. 配置输入输出: 确定与ChatGPT模型交互的输入和输出格式。根据您的需求,可能需要将输入数据进行预处理或后处理。 6. 进行推理: 使用加载的模型对输入数据进行推理。根据ChatGPT模型的设计,您可以使用生成对话或回答问题等方式与其进行交互。 7. 优化性能: 根据需要,您可以对部署ChatGPT模型进行性能优化。例如,使用批处理推理、并行化计算或模型压缩等技术来提高模型的效率。 请注意,这只是一个概述了ChatGPT模型本地化部署的一般步骤。具体的实现细节可能因您使用的框架、模型配置和目标平台而有所不同。确保参考OpenAI的文档、示例代码和其他资源以获取更详细的指导和帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

WEIXW99

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

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

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

打赏作者

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

抵扣说明:

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

余额充值