【ChatGPT本地部署-- ChatGLM】

news/2024/11/6 11:25:18/

这里写自定义目录标题

  • ChatGPT本地部署--- ChatGLM(转载)
    • 一、什么是ChatGLM?
    • 二、本地部署
    • 三、模型与ChatGPT和GPT4AII 效果对比

ChatGPT本地部署— ChatGLM(转载)

目录

一、什么是ChatGLM?

二、本地部署

2.1 模型下载

2.2 模型部署

2.3 模型运行

2.3.1 直接在命令行中输入进行问答

2.3.2 利用 gradio 库生成问答网页

三、模型与ChatGPT和GPT4AII 效果对比

3.1 ChatGLM

3.2 ChatGPT

3.3 GPT4AII

四、总结

一、什么是ChatGLM?

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

二、本地部署

2.1 模型下载
Demo下载地址:

GitHub - ZhangErling/ChatGLM-6B: 提供Windows部署文档的版本 | ChatGLM-6B:开源双语对话语言模型 | An Open Bilingual Dialogue Language Model

2.2 模型部署

  1. 用Pycharm打开项目文件;

  2. 使用 pip 安装依赖:pip install -r requirements.txt,其中 transformers 库版本推荐为 4.27.1,但理论上不低于 4.23.1 即可;

2.3 模型运行
在 …/ChatGLM/ 目录下有两个 demo 代码:

2.3.1 直接在命令行中输入进行问答
(1)修改模型路径。编辑 cli_demo.py 代码,修改 5、6 行的模型文件夹路径,将原始的 “THUDM/ChatGLM-6B” 替换为 “model” 即可。

(2)修改量化版本。如果你的显存大于 14G,则无需量化可以跳过此步骤。如果你的显存只有 6G 或 10G,则需要在第 6 行代码上添加 quantize(4) 或 quantize(8) ,如下:

#6G 显存可以 4 bit 量化
model = AutoModel.from_pretrained(“model”, trust_remote_code=True).half().quantize(4).cuda()# 10G 显存可以 8 bit 量化
model = AutoModel.from_pretrained(“model”, trust_remote_code=True).half().quantize(8).cuda()
(3)运行 cli_demo.py

2.3.2 利用 gradio 库生成问答网页
利用 gradio 库生成问答网页(效果如三中所示)。

(1)安装gradio 库:

pip install gradio
(2)修改模型路径。编辑 cli_demo.py 代码,修改 5、6 行的模型文件夹路径,将原始的 “THUDM/ChatGLM-6B” 替换为 “model” 即可。

(3)修改量化版本。如果你的显存大于 14G,则无需量化可以跳过此步骤。如果你的显存只有 6G 或 10G,则需要在第 5 行代码上添加 quantize(4) 或 quantize(8) ,如下:

6G 显存可以 4 bit 量化
model = AutoModel.from_pretrained(“model”, trust_remote_code=True).half().quantize(4).cuda()# 10G 显存可以 8 bit 量化
model = AutoModel.from_pretrained(“model”, trust_remote_code=True).half().quantize(8).cuda()
(4)运行 web_demo.py

模型加载过程如下图:
在这里插入图片描述

三、模型与ChatGPT和GPT4AII 效果对比

运行完 web_demo.py 结束会自动打开浏览器,显示如下界面,可以进行正常对话,且相应速度非常快。

3.1 ChatGLM
向 ChatGLM 提问:“蒸1个包子需要10分钟,蒸10个包子需要多久?”,回答非常合理。
在这里插入图片描述
3.2 Chatgpt
在这里插入图片描述

3.3 GPT4AII
上一篇博文我们介绍了GPT4ALL,它只能实现英文的对话,用英文提问相关的问题,发现效果不如 ChatGLM 和 ChatGPT 。

四、总结
ChatGLM 方便部署,且对中文的理解能力很好,它的优点是部署完不用联网,不需要账号登录,非常安全,它的缺点是无法增量学习互联网上最新的信息,知识库扩展需要额外增加训练样本。

文章转载自: https://www.rstk.cn/chatgpt/2993.html?action=onClick
后续我也会尝试按照原博主操作进行体验


http://www.ppmy.cn/news/950947.html

相关文章

ChatGPT一键私有部署,全网可用,让访问、问答不再受限,且安全稳定!

前言 ChatGPT由于在访问上有一些限制,使用并不便利。目前国内可以直接访问的大部分是调用API返回结果,我们去使用时总会有次数限制,而且它们可能随便崩掉。 其实,目前我们访问过的大部分国内的网页包括UI,其实是套用了…

详细的从零部署ChatGPT

chatgpt产品机遇: 1. chatgpt 所带来的机遇: 下一代 AI 搜索引擎,解决目前搜索引擎结果多样复杂、需要人工判断准确定的问题;替代低端劳动岗位、释放部分脑力活动、即将变革多个行业 ; 2. chatgpt 我分析将带来多个新的工作岗位机…

你真的会用async和await么?

背景 背景就是遇到了一个比较烦人的模块,里面的涉及到了大量的async 和 awiat。发现大多人对这个语法糖一知半解,然后大量的滥用,整理一下 async 前置知识: Promise.resolve(foo) new Promise(resolve > resolve(foo)…

mysql 第六章

目录 1.子查询 2.exists 3.as 别名 4.视图 5.null 6.连接查询 7.总结 1.子查询 2.exists 3.as 别名 4.视图 5.null 6.连接查询 7.总结 对 mysql 数据库的查询,除了基本的查询外,有时候需要对查询的结果集进行处理。

省去麻烦的环境配置,一分钟来试试 chatgpt API 代码⚡

项目地址:https://github.com/wjsvec/try_chatgpt_API_in_one_minute try chatgpt API in one minute⚡ 这个项目用来做什么😊 由于一些特殊的网络原因,在试用 chatgpt 的 API 的时候总是遇到奇奇怪怪的问题😫,有时…

ChatGPT API调用+服务器部署【附Git地址】

文章目录 一、关键代码二、使用步骤1.获取代码2.服务器部署 总结 运行对话效果图 一、关键代码 public class Main {public static final String URL "https://api.openai.com/v1/chat/completions";// 你的 API KEYpublic static final String APT_KEY "sk…

利用Cloudflare搭建ChatGPT API 代理服务器 傻瓜教程

✈ChatGPT的API接口为 https://api.openai.com 但是很多小伙伴不是国家区域不对,就试没有一个好的代理,经常chatgpt出现无法聊天的情况,那么自己搭建一个代理服务器那不是很香?还是免费的,直接整起来!图文教…

ChatGPT API的使用(一)

OpenAI除了提供ChatGPT聊天功能外,还提供了功能强大的图片生成与编辑功能,以及代码注释、语音转换功能,而这些功能需要通过API进行访问。 首先需要生成您的帐户独有的 API 密钥。访问此页面并创建一个新的密钥。 在这里需要点击复制&#xf…