ChatGLM2-6B
是清华大学开源的一款支持中英双语的对话语言模型。经过了 1.4T
中英标识符的预训练与人类偏好对齐训练,具有62
亿参数的 ChatGLM2-6B
已经能生成相当符合人类偏好的回答。结合模型量化技术,用户可以在消费级的显卡上进行本地部署(INT4
量化级别下最低只需 6GB
显存)。
yum remove wget
yum -y install wget
rpm -qa | grep "wget"
若出现以下,则成功。
[root@localhost ~]# rpm -qa | grep "wget"
wget-1.14-18.el7_6.1.x86_64
https://www.anaconda.com/download#downloads
wget https://repo.anaconda.com/archive/Anaconda3-2023.09-0-Linux-x86_64.sh
sh Anaconda3-2023.09-0-Linux-x86_64.sh
yes
下去,观看文档用q
跳过conda -V
(base) [root@localhost ~]# conda -V
conda 23.7.4
pytorch
官网: https://pytorch.org/
Stable
,Linux
,Conda
,Python
,CPU
conda install pytorch torchvision torchaudio cpuonly -c pytorch
conda create --name ChatGLM2 python=3.10.6 -y
- –name 后面ChatGLM2为创建的虚拟环境名称
- python=之后输入自己想要的python版本
- -y表示后面的请求全部为yes,这样就不用自己每次手动输入yes了。
conda activate ChatGLM2
https://github.com/THUDM/ChatGLM2-6B
git clone https://github.com/THUDM/ChatGLM2-6B
python -m venv venv
source ./venv/bin/activate
pip 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/simple
ChatGLM2-6B
目录下新建THUDM
文件夹THUDM
文件夹下新建chatglm2-6b
文件夹和chatglm2-6b-int4
文件夹git clone https://huggingface.co/THUDM/chatglm2-6b
GIT_LFS_SKIP_SMUDGE=1 git clone https://huggingface.co/THUDM/chatglm2-6b
https://cloud.tsinghua.edu.cn/d/674208019e314311ab5c/?p=%2F&mode=list
chatglm2-6b
文件夹chatglm2-6b-int4
的模型和参数文件地址: https://huggingface.co/THUDM/chatglm2-6b-int4
,下载方式与chatglm2-6b
一样
- 国内无法访问huggingface.co,可以让国外的朋友帮忙下载
- 可以从这里下载模型实现
- 然后从清华大学下载参数文件
如果使用有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.py
Streamlit
的网页版 demo
: streamlit run web_demo2.py
demo
会运行一个 Web Server
,并输出地址。在浏览器中打开输出的地址即可使用。 经测试,基于 Streamlit
的网页版 Demo
会更流畅。Demo
: python cli_demo.py
pip install fastapi uvicorn -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
python api.py
POST
方法进行调用: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
权重对学术研究完全开放,在填写问卷进行登记后亦允许免费商业使用。killed
ChatGLM2
在多个中文数据集上测试结果优于GPT
,比上代版本ChatGLM1
有较大改善,受限于训练数据和资源,从实际效果看推理对话内容仍比较简单,本次部署在云端的CPU
,推理过程需要几分钟,甚至十几分钟,不过重在体验,看下效果。有兴趣的话使用GPU
能够较大程度提高反应速度,几秒就能给出答案。