ChatGLM2-6B 是清华大学开源的一款支持中英双语的对话语言模型。经过了 1.4T 中英标识符的预训练与人类偏好对齐训练,具有62 亿参数的 ChatGLM2-6B 已经能生成相当符合人类偏好的回答。结合模型量化技术,用户可以在消费级的显卡上进行本地部署(INT4 量化级别下最低只需 6GB 显存)。
yum remove wgetyum -y install wgetrpm -qa | grep "wget"若出现以下,则成功。
[root@localhost ~]# rpm -qa | grep "wget"
wget-1.14-18.el7_6.1.x86_64
https://www.anaconda.com/download#downloadswget https://repo.anaconda.com/archive/Anaconda3-2023.09-0-Linux-x86_64.shsh Anaconda3-2023.09-0-Linux-x86_64.shyes下去,观看文档用q跳过conda -V(base) [root@localhost ~]# conda -V
conda 23.7.4
pytorch官网: https://pytorch.org/Stable,Linux,Conda,Python,CPUconda install pytorch torchvision torchaudio cpuonly -c pytorchconda create --name ChatGLM2 python=3.10.6 -y
- –name 后面ChatGLM2为创建的虚拟环境名称
- python=之后输入自己想要的python版本
- -y表示后面的请求全部为yes,这样就不用自己每次手动输入yes了。
conda activate ChatGLM2https://github.com/THUDM/ChatGLM2-6Bgit clone https://github.com/THUDM/ChatGLM2-6Bpython -m venv venvsource ./venv/bin/activatepip install -r requirements.txt -i https://pypi.douban.com/simple
- 参数:-r 是read的意思,可以把要安装的文件统一写在一个txt中,批量下载
- 参数:-i 后面是下载的网址,这里使用的是豆瓣源,下载安装大概十几分钟
- 清华大学源:
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn- 阿里云源:
pip install -r requirements.txt -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
pip install -r requirements.txt -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
pip install -r requirements.txt --no-index --find-links=/home/ChatGLM2/chatglm2-dependence
pip install gradio -i https://pypi.douban.com/simpleChatGLM2-6B目录下新建THUDM文件夹THUDM文件夹下新建chatglm2-6b文件夹和chatglm2-6b-int4文件夹git clone https://huggingface.co/THUDM/chatglm2-6bGIT_LFS_SKIP_SMUDGE=1 git clone https://huggingface.co/THUDM/chatglm2-6bhttps://cloud.tsinghua.edu.cn/d/674208019e314311ab5c/?p=%2F&mode=listchatglm2-6b文件夹chatglm2-6b-int4的模型和参数文件地址: https://huggingface.co/THUDM/chatglm2-6b-int4,下载方式与chatglm2-6b一样
- 国内无法访问huggingface.co,可以让国外的朋友帮忙下载
- 可以从这里下载模型实现
- 可以从这里下载chatglm2-6b-int4量化参数文件
- 然后从清华大学下载参数文件
如果使用有chatglm2-6b-int4,需要修改
cli_demo.py、api.py、web_demo.py、web_demo2.py
# 修改前
tokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm2-6b", trust_remote_code=True)
model = AutoModel.from_pretrained("THUDM/chatglm2-6b", trust_remote_code=True).cuda()
# 修改后
tokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm2-6b-int4", trust_remote_code=True)
# GPU用cuda(),CPU用float()
model = AutoModel.from_pretrained("THUDM/chatglm2-6b-int4", trust_remote_code=True).float()
demo.queue().lanuch函数改为如下demo.queue().launch(share=True, inbrowser=True, server_name = '0.0.0.0')
predict函数中,第二句话改为for response, history in model.stream_chat ( tokenizer ,input ,history,past_key_values=past_key_values, return_past_key_values=False, max_length=max_length, top_p=top_p,
temperature=temperature)
Gradio 的网页版 demo: python web_demo.pyStreamlit 的网页版 demo: streamlit run web_demo2.pydemo 会运行一个 Web Server,并输出地址。在浏览器中打开输出的地址即可使用。 经测试,基于 Streamlit 的网页版 Demo 会更流畅。Demo: python cli_demo.pypip install fastapi uvicorn -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.compython api.pyPOST 方法进行调用:curl -X POST "http://192.168.3.109:8000" -H "Content-Type: application/json" -d "{\"prompt\": \"你好\", \"history\": []}"
{"response":"你好👋!我是人工智能助手 ChatGLM2-6B,很高兴见到你,欢迎问我任何问题。","history":[["你好","你好👋!我是人工智能助手 ChatGLM2-6B,很高兴见到你,欢迎问我任何问题。"]],"status":200,"time":"2023-10-18 14:26:48"}

Apache-2.0 协议开源,ChatGLM2-6B 模型的权重的使用则需要遵循 Model License。ChatGLM2-6B 权重对学术研究完全开放,在填写问卷进行登记后亦允许免费商业使用。killedChatGLM2在多个中文数据集上测试结果优于GPT,比上代版本ChatGLM1有较大改善,受限于训练数据和资源,从实际效果看推理对话内容仍比较简单,本次部署在云端的CPU,推理过程需要几分钟,甚至十几分钟,不过重在体验,看下效果。有兴趣的话使用GPU能够较大程度提高反应速度,几秒就能给出答案。