一、ChatGLM3简介
ChatGLM3 是智谱AI和清华大学 KEG 实验室联合发布的对话预训练模型。ChatGLM3-6B 是ChatGLM3 系列中的开源模型,在保留了前两代模型对话流畅、部署门槛低等众多优秀特性的基础上,ChatGLM3-6B 引入了如下特性:
- 更强大的基础模型: ChatGLM3-6B 的基础模型 ChatGLM3-6B-Base 采用了更多样的训练数据、更充分的训练步数和更合理的训练策略。在语义、数学、推理、代码、知识等不同角度的数据集上测评显示,* ChatGLM3-6B-Base 具有在 10B 以下的基础模型中最强的性能*。
- 更完整的功能支持: ChatGLM3-6B 采用了全新设计的 Prompt 格式 ,除正常的多轮对话外。同时原生支持工具调用(Function Call)、代码执行(Code Interpreter)和 Agent 任务等复杂场景。
- 更全面的开源序列: 除了对话模型 ChatGLM3-6B 外,还开源了基础模型 ChatGLM3-6B-Base 、长文本对话模型 ChatGLM3-6B-32K。以上所有权重对学术研究完全开放 ,在填写 问卷 进行登记后亦允许免费商业使用。
本地运行ChatGLM3,需要从开源平台下载两套内容:
- ChatGLM3的运行代码
- ChatGLM3的模型数据
二、运行环境
运行ChatGLM3建议使用GPU运算,推荐20G以上显存。好像ChatGLM支持CPU运行,但经笔者试验,速度奇慢无比。小白选择英伟达3090显卡,有24G显存,安装配置会相对容易一些。如果有一些专业能力,可以试试服务器显卡,比如英伟达Tesla M40,也有24G显存,二手矿卡价格便宜很多,但是没有散热需要自己改装,而且没有显示输出,需要双显卡,或者集成显卡。
我的操作系统ubuntu22,显卡:tesla M40(24G显存),软件:python 3.10。
我没用conda,直接在系统重装的python和virtualenv。
安装显卡驱动和CUDA就不细说了。
三、部署运行代码
首先需要下载ChatGLM运行软件仓库:
git clone https://github.com/THUDM/ChatGLM3
cd ChatGLM3
然后使用 pip 安装依赖:
pip install -r requirements.txt
为了保证 torch 的版本正确,请严格按照 官方文档 的说明安装。
四、下载模型
以上代码会由 transformers 自动下载模型实现和参数。完整的模型实现在 Hugging Face Hub 。从Hugging Face下载模型需要科学上网,模型数据大约24G,下载时间会很长,很大概率等了1个小时,结果可能会失败。如果按流量计费,下载一个24G的模型,真的好肉疼。我的技巧:在HuggingFace上选择文件,将链接复制到迅雷,由迅雷将模型下载到本地,然后从本地加载。虽然很麻烦,但是又快又省钱。
标准从 Hugging Face Hub 下载模型的方法:需要先安装Git LFS ,然后运行
git clone https://huggingface.co/THUDM/chatglm3-6b
当然,也可以从国内的 ModelScope 中下载。
项目支持模型:
Model | Seq Length |
ChatGLM3-6B | 8k |
ChatGLM3-6B-Base | 8k |
ChatGLM3-6B-32K | 32k |
五、运行Demo
先修改代码:ChatGLM3/basic_demo/web_demo_streamlit.py,找到:
MODEL_PATH = os.environ.get('MODEL_PATH', 'THUDM/chatglm3-6b')
将'MODEL_PATH'设置为自己存放模型的路径。比如:/data/models/chatglm3-6b
然后运行:
streamlit run web_demo_streamlit.py
然后就可以浏览器打开这个地址,然后就可以和ChatGML3聊天了。