介绍
项目地址:THUDM/ChatGLM-6B: ChatGLM-6B:开源双语对话语言模型 | An Open Bilingual Dialogue Language Model (github.com)
官方介绍:
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 正在内测开发中。
测试介绍:
本地采用秋叶的一键包,参考官方案例,通过调用Api的方式,使用ChatGLM-6B。
环境介绍
Win10 16G
Nvidia 3050 8G
秋叶ChatGLM-6B一键包
过程:
一、 修改部分代码
秋叶的包缺少部分文件,需要自行下载Api.py文件,同时修改部分代码,参考下图:修改了model的位置,本地显存不够,需要多加一个.quantize(4),以量化方式加载模型。

二、 执行
写了一个.bat文件,指定一下python路径,和模型路径。
等待项目启动,使用curl发送post命令



curl -i -X POST -H "Content-Type:application/json" -d "{\"prompt\": \"hello\", \"history\": [] }" http://127.0.0.1:8000
总结
本次是在win10环境下,在cmd中采用curl发送post命令,因为编码的 原因需要对一些符号需要进行转义。ChatGLM-6B对中文支持很好,如果需要发送中文,可以尝试一下这种方法,但是未经测试。

iconv -f utf-8 -t gbk
如果想自己训练的话,推荐显存12G以上,虽然可以通过量化方式,降低对显存的需求,但是效果应该不会太好。显存不足,多次调试均会爆显存,遂放弃。
ChatGLM-6B体量还是太小,上下文对话效果不错,但是也会出现胡言乱语的情况,而且对显存有一定要求,常常对话两三轮就会爆掉。
还是很牛*的,最起码比体验不到的文心一言感觉要好。