ChatGLM-6B的部署步骤_A1

2022年8月,清华背景的智谱AI基于GLM框架,正式推出拥有1300亿参数的中英双语稠密模型 GLM-130B(论文地址、代码地址,论文解读之一,GLM-130B is trained on a cluster of 96 DGX-A100 GPU (8×40G) servers with a 60-day,可以较好的支持2048个token的上下文窗口)

其在一些任务上的表现优于GPT3-175B,是国内与2020年5月的GPT3在综合能力上差不多的模型之一(即便放到23年年初也并不多),这是它的一些重要特点

1.3 ChatGLM-6B的训练框架与部署步骤
1.3.1 ChatGLM-6B的训练框架
ChatGLM-6B(介绍页面、代码地址),是智谱 AI 开源、支持中英双语的对话语言模型,其

基于General Language Model(GLM)架构,具有62亿参数,无量化下占用显存13G
INT8量化级别下支持在单张11G显存的 2080Ti 上进行推理使用(因为INT8下占用显存8G)
而INT4量化级别下部署的话最低只需 6GB显存(另基于 P-Tuning v2 的高效参数微调方法的话,在INT4 下最低只需 7GB 显存即可启动微调)

        INT8量化是一种将深度学习模型中的权重和激活值从32位浮点数(FP32)减少到8位整数(INT8)的技术。这种技术可以降低模型的内存占用和计算复杂度,从而减少计算资源需求,提高推理速度,同时降低能耗
量化的过程通常包括以下几个步骤:
1 量化范围选择:确定权重和激活值的最小值和最大值
2 量化映射:根据范围将32位浮点数映射到8位整数
3 反量化:将8位整数转换回浮点数,用于计算
ChatGLM-6B参考了 ChatGPT 的训练思路,在千亿基座模型GLM-130B中注入了代码预训练,通过监督微调(Supervised Fine-Tuning)、反馈自助(Feedback Bootstrap)、人类反馈强化学习(Reinforcement Learning from Human Feedback)等方式等技术实现人类意图对齐,并针对中文问答和对话进行优化

以下是具体的部署过程:

1、硬件配置

操作系统:Ubuntu_64(ubuntu22.04.3)

GPU:4050

显存:16G

2、配置环境
建议最好自己新建一个conda环境
pip install -r requirements.txt
(ChatGLM-6B/requirements.txt at main · THUDM/ChatGLM-6B · GitHub)

VisualGLM-6B 下载地址

ChatGLM3  下载地址

ChatGLM2-6B  下载地址

chatglm.cpp  下载地址

chatglm.cpp:类似 llama.cpp 的量化加速推理方案,实现笔记本上实时对话

选取了 8 个中英文典型数据集,在 ChatGLM3-6B (base) 版本上进行了性能测试。

3、下载项目仓库
git clone https://github.com/THUDM/ChatGLM-6B(这里github不行就换个地方我后面补上)
cd ChatGLM-6B

4、下载ChatGLM-6B模型文件
文件可以从这里下载(点击中间的下载按钮即可):https://huggingface.co/THUDM/chatglm-6b

这里都下载在了/data/sim_chatgpt/chatglm-6b下,在后面执行代码的时候需要将文件中的模型文件路径改为自己的

5、推理与部署
        可运行的方式有多种

如果在本地运行,可以直接执行代码,或者使用命令行方式运行
如果想让别人公网访问,可以用下面两种方式:一种是基于Gradio,一种是基于streamlit
注意:运行代码前请检查模型文件路径是否正确,这里均改为了/data/chatglm-6b

代码运行demo

运行仓库中 cli_demo.py:
python cli_demo.py
程序会在命令行中进行交互式的对话,在命令行中输入指示并回车即可生成回复,输入 clear 可以清空对话历史,输入 stop 终止程序

基于Gradio的网页版demo

运行web_demo.py即可(注意可以设置share=True,便于公网访问):python web_demo.py(注意运行前确认下模型文件路径)

基于streamlit网页版 Demo
pip install streamlit
pip install streamlit-chat
streamlit run web_demo2.py --server.port 6006(可以将6006端口放出,便于公网访问)

默认情况下,模型以 FP16 精度加载,运行上述代码需要大概 13GB 显存。如果显存有限,还可以考虑模型量化,目前支持4/8 bit 量化
此外,可尝试部署GLM团队130B参数的ChatGLM

1.4 微调ChatGLM-6B:针对各种数据集通过LoRA或P-Tuning v2

后面补充

参考:ChatGLM两代的部署/微调/实现:从基座GLM、ChatGLM的LoRA/P-Tuning微调、6B源码解读到ChatGLM2的微调与实现_chatglm微调-CSDN博客


 

  • 24
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值