ChatGLM-6B 在 ModelWhale 平台的部署与微调教程 工作台 - Heywhale.com
ChatGLM-6B 介绍
ChatGLM-6B 是一个开源的、支持中英双语的对话语言模型,基于 General Language Model (GLM) 架构,具有 62 亿参数。结合模型量化技术,用户可以在消费级的显卡上进行本地部署(INT4 量化级别下最低只需 6GB 显存)。
ChatGLM-6B 使用了和 ChatGPT 相似的技术,针对中文问答和对话进行了优化。经过约 1T 标识符的中英双语训练,辅以监督微调、反馈自助、人类反馈强化学习等技术的加持,62 亿参数的 ChatGLM-6B 已经能生成相当符合人类偏好的回答,更多信息请参考我们的博客。
为了方便下游开发者针对自己的应用场景定制模型,我们同时实现了基于 P-Tuning v2 的高效参数微调方法 (使用指南) ,INT4 量化级别下最低只需 7GB 显存即可启动微调。
不过,由于 ChatGLM-6B 的规模较小,目前已知其具有相当多的局限性,如事实性/数学逻辑错误,可能生成有害/有偏见内容,较弱的上下文能力,自我认知混乱,以及对英文指示生成与中文指示完全矛盾的内容。请大家在使用前了解这些问题,以免产生误解。更大的基于 1300 亿参数 GLM-130B 的 ChatGLM 正在内测开发中。
Github链接
项目介绍
本项目提供了 ChatGLM-6B 非量化版本在 ModelWhale 平台 V100 机型上进行部署、推理测试以及微调的教程
环境配置
计算资源:V100 Tensor Core GPU
镜像:Cuda11.3.1 PyTorch 1.10.2 Tensorflow2.8.0 Python 3.7 镜像
如果希望持久化保存 Fine-tuning 结果,请选择 挂载 work 目录
官方注:ModelWhale GPU机型需要从云厂商拉取算力资源,耗时5~10min,且会预扣半小时资源价格的鲸币。如果资源未启动成功,预扣费用会在关闭编程页面后五分钟内退回,无需紧张,如遇问题欢迎提报工单,客服会及时处理。
# 加载模型
model_path = "/home/mw/input/ChatGLM6B6449"
from transformers import AutoTokenizer, AutoModel
tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True)
model = AutoModel.from_pretrained(model_path, trust_remote_code=True).half().cuda()
model = model.eval()
# 准备提示语
prompt = '''
如何制作宫保鸡丁
'''
# 使用 IPython.display 流式打印模型输出
from IPython.display import display, Markdown, clear_output
for response, history in model.stream_chat(
tokenizer, prompt, history=[]):
clear_output(wait=True)
display(Markdown(response))