清华ChatGLM-6B本地GPU推理部署

这篇具有很好参考价值的文章主要介绍了清华ChatGLM-6B本地GPU推理部署。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1 简介

2 硬件需求

3 Demo和模型下载

3.1 安装Git LFS

3.2 Demo下载

3.3 模型下载

3.4 文件目录

4 环境安装

5 运行

5.1 FP16

5.2 量化

6 演示


1 简介

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

本文主要参考官方流程,在Ubuntu22.04上将ChatGLM-6B部署在本地Nvidia RTX 3080Ti Laptop GPU(16GB显存)。

2 硬件需求

默认情况下,模型以FP16精度加载,运行上述代码需要大概13GB显存。8-bit量化下GPU显存占用约为8GB,4-bit量化下仅需6GB占用。所以理论上,只要GPU的显存在6GB以上,就可以尝试在本地部署ChatGLM-6B。

随着对话轮数的增多,对应消耗显存也随之增长,由于采用了相对位置编码,理论上ChatGLM-6B支持无限长的context-length,但总长度超过2048(训练长度)后性能会逐渐下降。

模型量化会带来一定的性能损失,经过测试,ChatGLM-6B在4-bit量化下仍然能够进行自然流畅的生成。使用GPT-Q等量化方案可以进一步压缩量化精度/提升相同量化精度下的模型性能。

清华ChatGLM-6B本地GPU推理部署

3 Demo和模型下载

3.1 安装Git LFS

sudo apt install git-lfs

3.2 Demo下载

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

3.3 模型下载

先下载模型实现。

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

再下载模型参数文件,并将下载的文件替换到本地的chatglm-6b目录下。

3.4 文件目录

Demo和模型下载完成之后的文件目录如下图所示。

清华ChatGLM-6B本地GPU推理部署

4 环境安装

在Nvidia GPU上运行,安装所需的依赖包,如transformers、gradio等。

cd ChatGLM-6B
pip install -r requirements.txt

5 运行

5.1 FP16

可以通过如下代码调用ChatGLM-6B模型来生成对话:

>>> from transformers import AutoTokenizer, AutoModel
>>> 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)
你好👋!我是人工智能助手 ChatGLM-6B,很高兴见到你,欢迎问我任何问题。
>>> response, history = model.chat(tokenizer, "晚上睡不着应该怎么办", history=history)
>>> print(response)
晚上睡不着可能会让你感到焦虑或不舒服,但以下是一些可以帮助你入睡的方法:

1. 制定规律的睡眠时间表:保持规律的睡眠时间表可以帮助你建立健康的睡眠习惯,使你更容易入睡。尽量在每天的相同时间上床,并在同一时间起床。
2. 创造一个舒适的睡眠环境:确保睡眠环境舒适,安静,黑暗且温度适宜。可以使用舒适的床上用品,并保持房间通风。
3. 放松身心:在睡前做些放松的活动,例如泡个热水澡,听些轻柔的音乐,阅读一些有趣的书籍等,有助于缓解紧张和焦虑,使你更容易入睡。
4. 避免饮用含有咖啡因的饮料:咖啡因是一种刺激性物质,会影响你的睡眠质量。尽量避免在睡前饮用含有咖啡因的饮料,例如咖啡,茶和可乐。
5. 避免在床上做与睡眠无关的事情:在床上做些与睡眠无关的事情,例如看电影,玩游戏或工作等,可能会干扰你的睡眠。
6. 尝试呼吸技巧:深呼吸是一种放松技巧,可以帮助你缓解紧张和焦虑,使你更容易入睡。试着慢慢吸气,保持几秒钟,然后缓慢呼气。

如果这些方法无法帮助你入睡,你可以考虑咨询医生或睡眠专家,寻求进一步的建议。

代码实现在ChatGLM-6B/web_demo.py,需要将下面两行代码里的模型文件路径"THUDM/chatglm-6b"修改为3.3中模型文件在本地下载后的绝对路径"/absolute-path/THUDM/chatglm-6b",否则运行时会重新从远端下载。

tokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True)
model = AutoModel.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True).half().cuda()

修改完成之后,直接运行以下代码即可。程序会运行一个Web Server,并输出地址。在浏览器中打开输出的地址(比如http://127.0.0.1:7860)即可使用。

python web_demo.py

也可以运行以下代码在命令行中进行交互式的对话,在命令行中输入指示并回车即可生成回复,输入clear可以清空对话历史,输入stop终止程序。

python cli_demo.py

5.2 量化

8-bit量化使用方法如下,4-bit量化使用方法类似。

model = AutoModel.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True).quantize(8).half().cuda()

量化过程需要在内存中首先加载FP16格式的模型,消耗大概13GB的内存。如果机器上内存不足的话,可以直接加载量化后的模型,INT4量化后的模型仅需大概5.2GB的内存:

model = AutoModel.from_pretrained("THUDM/chatglm-6b-int4", trust_remote_code=True).half().cuda()

6 演示

以FP16 Web Server为例演示,对话如下,有兴趣的可以自己部署体验一下。

清华ChatGLM-6B本地GPU推理部署文章来源地址https://www.toymoban.com/news/detail-466492.html

到了这里,关于清华ChatGLM-6B本地GPU推理部署的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 手把手教你本地CPU环境部署清华大模型ChatGLM-6B,利用量化模型,本地即可开始智能聊天,达到ChatGPT的80%

    大家好,我是微学AI,今天教你们本地CPU环境部署清华大ChatGLM-6B模型,利用量化模型,每个人都能跑动大模型。ChatGLM-6B是一款出色的中英双语对话模型,拥有超过62亿个参数,可高效地处理日常对话场景。与GLM-130B模型相比,ChatGLM-6B在对话场景处理能力方面表现更加卓越。此

    2024年02月01日
    浏览(32)
  • 腾讯云部署清华大学ChatGLM-6B实战

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

    2024年02月11日
    浏览(29)
  • Python:清华ChatGLM-6B中文对话模型部署

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

    2024年02月08日
    浏览(31)
  • 清华大学开源的chatGLM-6B部署实战

    win10 通过wsl部署 常见问题: torch.cuda.OutOfMemoryError: CUDA out of memory. 在Windows的系统环境变量中增加 变量名: PYTORCH_CUDA_ALLOC_CONF 变量值: max_split_size_mb:32 文档书写时使用3090 24G显存配置,其他规格酌情调整 32 至其他值,如未设置变量默认值128极大概率导致 CUDA OOM 无法正常启动

    2024年02月04日
    浏览(41)
  • 【AI】清华开源中英双语对话模型ChatGLM2-6B本地安装笔记

    首先,直接上资源,网盘中是ChatGLM2-6B源码及模型文件: 链接:https://pan.baidu.com/s/1DciporsVT-eSiVIAeU-YmQ 提取码:cssa 官方的Readme已经很详尽了,再写点安装博客有点画蛇添足。本着记录自己的工作内容的初衷,还是写一写吧,毕竟输出才是最好的学习。 本文记录了本地安装Cha

    2024年02月16日
    浏览(39)
  • AIGC - ChatGLM大模型:ChatGLM2-6B模型推理部署

    如果你要问我为什么直接部署ChatGLM2的模型? 因为当我在8月份在上海召开的全球人工智能大会上了解到清华-智谱发布的ChatGLM模型时,它已经发布了新的版本ChatGLM2,并且推理的效果提升了不少,那么本着只要最好的原则,我就直接上手先玩新版本了。 作为AIGC方面的小白来说

    2024年02月06日
    浏览(34)
  • 十分钟部署清华ChatGLM-6B,实测效果还可以~~(Linux版)

    前段时间,清华公布了中英双语对话模型  ChatGLM-6B ,具有60亿的参数,初具问答和对话功能。最!最!最重要的是它能够支持私有化部署,大部分实验室的服务器基本上都能跑起来。 因为条件特殊,实验室网络不通,那么如何进行离线部署呢? 经过一上午的折腾终于搞定了

    2024年02月08日
    浏览(32)
  • Windows下cpu部署运行清华大学ChatGLM-6B语言模型(详解)

    ChatGLM-6B 清华大学实现的 一个开源的、支持中英双语 、 支持图像理解 的对话语言模型 。 它 基于

    2024年02月12日
    浏览(38)
  • 昇腾910b部署Chatglm3-6b进行流式输出【pytorch框架】NPU推理

    配套软件包Ascend-cann-toolkit和Ascend-cann-nnae 适配昇腾的Pytorch 适配昇腾的Torchvision Adapter 下载ChatGLM3代码 下载chatglm3-6b模型,或在modelscope里下载 每个人的服务器都不一样,在ChatGLM3/issues中别人只需要修改指定驱动,但是我的不行 删除模型文件包中的model.safetensors.index.json,否则加

    2024年01月21日
    浏览(52)
  • 清华大学开源ChatGLM2-6B开源模型在anaconda下的虚拟环境详细部署及安装教程

    python版本要求:3.8以上 没有安装python的没有关系,我们在下面安装anaconda中会自动生成python,有了python的建议删除,通过anaconda安装python以便于后面创建虚拟环境。 windows系统:Windows 10 以上,推荐N卡(NVIDIA显卡20系列以上) 注意:处理器为AMD容易报错,intel的不容易报错,配

    2024年02月16日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包