赞
踩
国外ChatGPT火爆持续,前一段时间百度发布“文心一言”还没有全面放开测试,这不阿里“通义千问”又悄然而至,国内大模型AI产品渐渐浮出水面。早在2022年8月份时候清华大学的对话语言模型ChatGLM-6B就发布并开源,本文简要介绍ChatGLM-6B在本地环境的部署实践。
ChatGLM是清华大学研究的具备问答和对话功能的中英语言模型,ChatGLM-6B是发布的开源版本,可以直接部署在本地进行测试。GitHub官网(https://github.com/THUDM/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 正在内测开发中。
1)ChatGLM-6B具备如下特点
2)ChatGLM-6B局限和不足
1)Python安装
从官网下载(https://www.python.org/downloads/),Python版本在3.9以上,建议使用3.10
注:安装完成后修改默认的Python环境变量
2)安装pip
如果pip命令提示不存在,使用以下命令安装
py -m ensurepip --upgrade
安装完成后查看版本
pip --version
pip 23.0.1 from D:\Python3.10.9\lib\site-packages\pip (python 3.10)
1)从GitHub下载项目程序包https://github.com/THUDM/ChatGLM-6B
下载后解压到本地目录,如D:\ChatGPT\ChatGLM-6B-main
2)下载模型包chatglm
下载地址:https://huggingface.co/THUDM/chatglm-6b/tree/main
下载后解压到新建目录chatglm-6b:D:\ChatGPT\ChatGLM-6B-main\chatglm-6b
备注:8个模型文件可以从这里下载:https://cloud.tsinghua.edu.cn/d/fb9f16d6dc8f482596c2/
1)执行命令安装依赖包
D:\>cd D:\ChatGPT\ChatGLM-6B-main
D:\ChatGPT\ChatGLM-6B-main>pip install -r requirements.txt
2)依赖包下载成功后安装
3)检查pytorch是否为GPU版本
>>> import torch
>>> torch.cuda.is_available()
False
如果是True表示为GPU版本
1)修改模型路径,编辑web_demo.py,修改路径为2.2中模型包保存的目录
#model = AutoModel.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True).half().cuda()
model = AutoModel.from_pretrained("D:\ChatGPT\ChatGLM-6B-main\chatglm-6b", trust_remote_code=True).half().cuda()
2)执行如下命令,运行网页版本的demo,如下
python web_demo.py
由于电脑没有GPU,直接运行会提示“Torch not compiled with CUDA enabled”。因此需要修改为在CPU上进行推理,但是推理速度会更慢,修改方法如下:
model = AutoModel.from_pretrained("D:\ChatGPT\ChatGLM-6B-main\chatglm-6b", trust_remote_code=True).float()
内存不足,直接加载量化后的模型:
model = AutoModel.from_pretrained("THUDM/chatglm-6b-int4",trust_remote_code=True).float()
程序会运行一个Web Server,并输出地址。在浏览器中打开输出的地址即可使用。最新版Demo实现了打字机效果,速度体验大大提升。
注意,由于国内Gradio的网络访问较为缓慢,启用demo.queue().launch(share=True, inbrowser=True)时所有网络会经过Gradio服务器转发,导致打字机体验大幅下降,现在默认启动方式已经改为share=False,如有需要公网访问的需求,可以重新修改为share=True启动。
参考资料:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。