智能聊天助手,一步到位:ChatGLM-6B部署全攻略


前言

ChatGLM-6B 是一个开源的、支持中英双语的对话语言模型,基于 General Language Model (GLM) 架构,具有 62 亿参数。结合模型量化技术,用户可以在消费级的显卡上进行本地部署(INT4 量化级别下最低只需 6GB 显存)。

一、介绍

在这里插入图片描述

ChatGLM-6B: 是一个开源的、支持中英双语的对话语言模型,基于 General Language Model (GLM) 架构,具有 62 亿参数。结合模型量化技术,用 户可以在消费级的显卡上进行本地部署(INT4 量化级别下最低只需 6GB 显存)。 ChatGLM-6B 使用了和 ChatGPT 相似的技术,针对中文问答和对话进行了优化。经过约 1T 标识符的中英双语训练,辅以监督微调、反馈自助、人类反馈强化学习等技术的加持,62 亿参数的 ChatGLM-6B 已经能生成相当符合人类偏好的回答

二、使用方式

2-1、安装

# 克隆到本地
git clone https://github.com/THUDM/ChatGLM-6B.git

# 安装依赖,用一下镜像源。
pip install -r requirements.txt -i https://mirror.baidu.com/pypi/simple

# 如果需要在 cpu 上运行量化后的模型,还需要安装 gcc 与 openmp。多数 Linux 发行版默认已安装。

chatGLM运行的硬件需求

在这里插入图片描述

2-2、代码调用: 使用如下代码时会自动下载模型。

GPU版本

>>> from transformers import AutoTokenizer, AutoModel
>>> # 模型大小大约为13个G。
>>> tokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True)
>>> model = AutoModel.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True).half().cuda()
>>> model = model.eval()
>>> response, history = model.chat(tokenizer, "你好", history=[])
>>> print(response)
>>> response, history = model.chat(tokenizer, "晚上睡不着应该怎么办", history=history)
>>> print(response)

缺点:网络不好的时候,会下载很久,还会时不时的卡顿,稍有不慎就得重来。

CPU版本

from transformers import AutoTokenizer, AutoModel
# 这里的路径是我自己下载的模型文件路径
# CPU的运行配置最低要求是832G。
tokenizer = AutoTokenizer.from_pretrained("/tmp/chatglm_model/", trust_remote_code=True)
model = AutoModel.from_pretrained("/tmp/chatglm_model/", trust_remote_code=True).float()
model = model.eval()
response, history = model.chat(tokenizer, "你好", history=[])
print(response)

Linux上的用例图
在这里插入图片描述

2-3、本地加载

本地加载:自动下载模型的过程中可能会遇到各种各样的错误导致下载终止,我们可以下载模型后在本地加载,模型文件默认加载到C:\Users\你的文件夹名称.cache\huggingface\hub\models–THUDM–chatglm-6b\snapshots下。

从Hugging Face上下载模型:注意要先安装LFS,否则会报错。

安装方式如下

  • 使用lscpu命令查看架构。
    在这里插入图片描述

  • 下载对应的版本https://github.com/git-lfs/git-lfs/releases,下拉找到对应版本。
    在这里插入图片描述

  • 下载安装包后上传到服务器上并且进行解压(小文件直接拖拽上传即可,大文件需要在安装好lfs后再进行安装)

tar -zxvf git-lfs-linux-amd64-v2.9.0.tar.gz
  • 解压后打开文件夹,使用命令执行安装文件
sudo ./install.sh

这种下载方式也存在一些问题,即会下载仓库中的所有文件,极大的延长模型下载的时间。

git clone https://huggingface.co/THUDM/chatglm-6b

Hugging Face上的模型配置文件如下所示
在这里插入图片描述
LAST: 如果采用了上述方式还是没有下载好模型,点击这里手动下载,并替换掉本地的目录。

Tips还没下载好的话关注点赞收藏,私信我获取模型。
在这里插入图片描述

三、运行

运行:我们提供了一个基于 Gradio 的网页版 Demo 和一个命令行 Demo。使用时首先需要下载本仓库(上边已经下载完成)

git clone https://github.com/THUDM/ChatGLM-6B
cd ChatGLM-6B

在这里插入图片描述
首先安装 Gradio:pip install gradio,然后运行仓库中的 web_demo.py

python web_demo.py

在这里插入图片描述

参考文章
ChatGLM-6B官方GitHub
VisualGLM: 一个支持图像理解的多模态对话语言模型
ChatGLM vs ChatGPT 的部分对比
如何优雅的下载huggingface-transformers模型
十分钟部署清华ChatGLM-6B,实测效果还可以~~(Linux版)
ChatGLM-6B 在 ModelWhale 平台的部署与微调教程
基于本地知识的 ChatGLM 应用实现
ChatGLM2-6B官方GitHub
Baichuan-13B-Chat


总结

吃了佩奇馅的包子。

Guess you like

Origin blog.csdn.net/weixin_42475060/article/details/132045618