清华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等量化方案可以进一步压缩量化精度/提升相同量化精度下的模型性能。

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和模型下载完成之后的文件目录如下图所示。

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为例演示,对话如下,有兴趣的可以自己部署体验一下。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/30864.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ChatGLM2-6B本地部署,人人都可以用上LLM大语言模型!

文章目录 介绍使用方式硬件需求环境安装仓库下载模型下载环境安装安装三方库代码调用从本地加载模型 Demo演示命令行 DemoAPI DemoOpenAI 格式的流式 API Demo基于 Streamlit 的网页版 demo 低成本部署相关问题No module named ‘readline’解决方法 module ‘collections’ ha…

[VScode] 嵌入式软件开发必备插件

文章目录 1. C/C 【c/c智能提示、调试和代码浏览】2. C Intellisense 【借助GNU Global标签的c/c智能提示】3. Bracket Pair Colorizer 【一个可定制的扩展为匹配括号着色 】4. Chinese (Simplified) 【中文语言包扩展(简体) 】5. GBKtoUTF8 【GBK到utf8】6. hexdump for VSCod…

chatgpt赋能python:Python在SEO中的利与弊

Python在SEO中的利与弊 引言 Python是一种高级编程语言,因其简洁、易于学习和应用广泛而受到全球程序员的青睐。然而,在SEO领域中,Python通常被认为有黑和白两面性。本文将围绕这个话题展开探讨。 Python的优点 简洁易学 Python拥有直观…

chatgpt赋能python:Python更新界面:让你的应用更美观、更易用

Python更新界面:让你的应用更美观、更易用 Python是一门强大的编程语言,广泛应用于软件开发、数据分析、机器学习等领域。其中,Python的GUI开发能力也非常出色。Python支持多种GUI库,如Tkinter、PyQt、wxPython等,可以…

chatgpt赋能python:Python黑色和浅黑色的代码

Python黑色和浅黑色的代码 Python是一门简洁而强大的编程语言。它在各行各业中广泛应用,包括Web开发、数据分析、人工智能等领域。Python代码的可读性和易于维护性使其成为编程界非常流行的语言之一,几乎所有开发工具都支持Python。Python黑色和浅黑色的…

吴恩达 Chatgpt prompt 工程--7.Chatbot

探索如何利用聊天格式与针对特定任务或行为进行个性化或专门化的聊天机器人进行扩展对话。 Setup import os import openai from dotenv import load_dotenv, find_dotenv _ load_dotenv(find_dotenv()) # read local .env fileopenai.api_key os.getenv(OPENAI_API_KEY)d…

Chatbot UI 和 ChatGLM2-6B 的集成

Chatbot UI 和 ChatGLM2-6B 的集成 0. 背景1. 部署 Chatbot UI2. 部署 ChatGLM2-6B3. 修改 ChatGLM2-6B 项目的 openai_api.py4. 修改 Chatbot UI 的配置5. 访问 Chatbot UI 0. 背景 尝试将 Chatbot UI 和 ChatGLM2-6B 的进行集成, ChatGLM2-6B 提供 API 服务&…

ImportError: cannot import name ‘chatBot‘ from ‘chatbot‘ (C:\Users\l\Pych

报错: ImportError: cannot import name ‘chatBot’ from ‘chatbot’ (C:\Users\l\Pych 如下图所示: Terminal中执行: pip install -i https://pypi.tuna.tsinghua.edu.cn/simple chatterbot 并将报错文件app.py的第一行 from chatbot i…

基于Chatbot UI 实现ChatGPT对话-V1.3-预告

先讲一个悲伤的故事:小红书被封号了。。。emo。。。 给俺点点关注吧,这次一定好好发言💬 【迷茫的21世纪的新青年】 一、预告图 自定义随机量,让回复按需设置。 二、更新功能 随机量 参数名:Temperature(温…

Chatbot + 知识库(Knowledge Base)

从 GPT-3 和 ChatGPT 等大型语言模型 (LLM) 的最新进展中可以看出,在技术行业引起了很大的关注。这些模型对内容生成非常强大,但它们也有一些缺点,例如偏差1 和幻象2。LLM在聊天机器人开发方面特别有用。 基于意图的聊天机器人​ 传统聊天机…

基于Chatbot UI 实现ChatGPT对话-V1.3

基于Chatbot UI 实现ChatGPT对话-V1.3 前端基于开源项目:chatbot-ui进行二次开发,感兴趣的小伙伴可以自行研究。 本项目搭建初衷: 1、在无法科学上网的情况下,实现ChatGPT对话。 2、规避官方聊天时,长时间无链接导致…

从B 树、B+ 树、B* 树谈到R 树

程序员的成长之路 互联网/程序员/技术/资料共享 关注 阅读本文大概需要 40 分钟。 来自:blog.csdn.net/v_JULY_v/article/details/6530142 第一节、B树、B树、B*树 前言 动态查找树主要有:二叉查找树(Binary Search Tree)&#x…

NLP大模型微调原理

1. 背景 LLM (Large Language Model) 大型语言模型,旨在理解和生成人类语言,需要在大量的文本数据上进行训练。一般基于Transformer结构,拥有Billion以上级别的参数量。比如GPT-3(175B),PaLM(560B)。 NLP界发生三件大事&#xff…

淘宝开店流程图解

原文: 淘宝开店流程图解 链接: http://hyp5920.blog.163.com/blog/static/50951573201310194550775/ 2013-11-01 23:53:31| 分类:知识乐园 | 标签:天天淘淘美装 |字号 订阅 淘宝开店是很简单的。只要拿身份证开通网银&…

从软件开发到开淘宝店铺

2019独角兽企业重金招聘Python工程师标准>>> 我的店铺 背景: 最近思索 这个时代 不可能一辈子敲代码【可能学习能力跟不上 可能给的待遇自己不满意】 但是可以一辈子开店铺看到越来越多的人习惯在网上购物 越来越多的人在网上赚钱 我为什么就不能利用工…

淘宝店铺wang

简约型 1、蒙马特 🔗:57啊可的大了有家对小起然了, https://m.tb.cn/h.fBSsV3Z?smde76a8 CZ3457 我分享给你了一个超赞的内容,快来看看吧 2、WASSUP中国 🔗:27哈个一么中有家对然和生子微 https://m…

弘辽科技:新手开淘宝网店的七大攻略

原标题《弘辽科技:新手开淘宝网店的七大攻略》 伴随着计算机信息化技术的发展,互联网经济欣欣向荣,电子商务的发展也越加的繁荣。自从淘宝店上线之后,受到了很多朋友们的喜欢,因为它改变了人们的生活方式,…

简单三步,教你快速接入淘宝开放平台,调用官方API

淘宝开放平台是为了方便开发者接入淘宝平台,进行商品、订单等信息的管理和交互而设计的。接入淘宝开放平台需要经过一系列审核和申请流程,而在API权限包审核时,一定要提供真实有效的证件和资料,并满足相应的条件,才能顺…

自制树莓派PICO RP2040开发板+例程(I2C读取LM75和AHT20 温度数据)

1.原理图 2.PCB 晶振的焊盘有点大,怕和外壳短路,找了个东西垫高了下 来自嘉立创免费打样PCB 3.焊接完成 这颗QFN封装芯片比较考验焊接功底,手残的不建议自己弄。 4.代码实现 参考https://pico.org.cn/ 1.main.py from machine impor…

chatgpt赋能python:Python的GUI界面开发

Python的GUI界面开发 Python是目前非常流行的编程语言之一,其优雅的语法和强大的库使其在各个领域得到广泛应用。在GUI界面开发方面,Python也表现出了巨大的潜力。本文将介绍Python的GUI开发框架以及相关的工具和技术。 介绍 Python有多个GUI框架可供…