一、什么是chatglm
https://github.com/THUDM/ChatGLM-6B
ChatGLM-6B 是一个开源的、支持中英双语的对话语言模型,基于 General Language Model (GLM) 架构,具有 62 亿参数。结合模型量化技术,用户可以在消费级的显卡上进行本地部署(INT4 量化级别下最低只需 6GB 显存)。ChatGLM-6B 使用了和 ChatGPT 相似的技术,针对中文问答和对话进行了优化。经过约 1T 标识符的中英双语训练,辅以监督微调、反馈自助、人类反馈强化学习等技术的加持,62 亿参数的 ChatGLM-6B 已经能生成相当符合人类偏好的回答。
由于 ChatGLM-6B 的规模较小,目前已知其具有相当多的局限性,如事实性/数学逻辑错误,可能生成有害/有偏见内容,较弱的上下文能力,自我认知混乱,以及对英文指示生成与中文指示完全矛盾的内容。请大家在使用前了解这些问题,以免产生误解。更大的基于 1300 亿参数 GLM-130B 的 ChatGLM 正在内测开发中。https://github.com/THUDM/GLM-130B
二、安装
硬件要求:
环境安装:
使用 pip 安装依赖:pip install -r requirements.txt,其中 transformers 库版本推荐为 4.27.1,但理论上不低于 4.23.1 即可。
git clone https://huggingface.co/THUDM/chatglm-6b
从https://cloud.tsinghua.edu.cn/d/fb9f16d6dc8f482596c2/手动下载模型参数文件,并将下载的文件替换到本地的 chatglm-6b 目录下。
将模型下载到本地之后,将代码中的 THUDM/chatglm-6b 替换为你本地的 chatglm-6b 文件夹的路径,即可从本地加载模型。
三、Webui
用了这个webui: https://github.com/Akegarasu/ChatGLM-webui
执行命令例子:python webui.py --model-path /home/work/chatglm/chatglm_model --listen --port 8898 --precision fp16
参数主要是:模型路径、监听端口、以及模型工作模式;除此之外还有其它的几个参数没有用到。所有参数解释具体如下:
--model-path 指定模型路径
--listen 如果不加该参数,只能通过127.0.0.0本地访问。注意:在centos服务器上部署,该参数一定要加,不然没有办法通过IP加端口访问模型服务。
--port 指定端口。
--share 通过gradio进行分享,它会帮你生成一个域名连接,但是需要访问互联网。离线centos服务器部署用不到。
--precision 精度参数有4个,分别是fp32(只用CPU,32G内存以上), fp16,(12G以上显存) int4(8G以下显存使用), int8(8G显存使用)
--cpu 只应用CPU,无显卡的时候使用
四、需要注意的坑
1.pytorch版本2.0会报错,降级到1.13.1就好了
2. 遇到这种奇怪的问题,原因竟然是 ice_text.model文件没有正确下载,正确的sha256是 5e974d9a69c242ce014c88c2b26089270f6198f3c0b700a887666cd3e816f17ehttps://github.com/THUDM/ChatGLM-6B/issues/480
简单记录一下,后面继续