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

大家好,我是微学AI,今天教你们本地CPU环境部署清华大ChatGLM-6B模型,利用量化模型,每个人都能跑动大模型。ChatGLM-6B是一款出色的中英双语对话模型,拥有超过62亿个参数,可高效地处理日常对话场景。与GLM-130B模型相比,ChatGLM-6B在对话场景处理能力方面表现更加卓越。此外,在使用体验方面,ChatGLM-6B采用了模型量化技术和本地部署技术,为用户提供更加便利和灵活的使用方式。值得一提的是,该模型还能够在单张消费级显卡上顺畅运行,速度较快,是一款非常实用的对话模型。

ChatGLM-6B是清华开发的中文对话大模型的小参数量版本,目前已经开源了,可以单卡部署在个人电脑上,利用 INT4 量化还可以最低部署到 6G 显存的电脑上,在 CPU 也可以运行起来的。

项目地址:mirrors / THUDM / chatglm-6b · GitCode

第1步:下载:

git clone https://gitcode.net/mirrors/THUDM/chatglm-6b.git

第2步:进入ChatGLM-6B-main目录下,安装相关依赖

pip install -r requirements.txt

其中 torch安装CPU版本即可。

第3步:打开ChatGLM-6B-main目录的web_demo.py文件,源代码:

from transformers import AutoModel, AutoTokenizer
import gradio as gr
import mdtex2htmltokenizer = 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()

这个是在GPU版本下的代码,现在改为CPU版本下的代码:

from transformers import AutoModel, AutoTokenizer
import gradio as gr
import mdtex2htmltokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm-6b-int4", trust_remote_code=True)
model = AutoModel.from_pretrained("THUDM/chatglm-6b-int4", trust_remote_code=True).float()
model = model.eval()

模型下载改成THUDM/chatglm-6b-int4,也就是int4量化版本。模型量化到int4是一种将神经网络模型中的参数从浮点数格式调整为4位精度的整数格式的技术,可以显著提高硬件设备的效率和速度,并且适用于需要在低功耗设备上运行的场景。

INT4量化的预训练文件下载地址:https://huggingface.co/THUDM/chatglm-6b-int4/tree/main

 第4步:kernel的编译

CPU版本的安装还需要安装好C/C++的编译环境。这里大家可以安装TDM-GCC。

下载地址:https://jmeubank.github.io/tdm-gcc/,大家选择选取TDM-GCC 10.3.0 release下载安装。特别注意:安装的时候在选项gcc选项下方,勾选openmp,这个很重要,踩过坑,直接安装的话后续会报错。

d44f6eb455ef4737b7868b9996bbad31.png

1d3078b2262049028df6ae52a6370e55.png

 安装完在cmd中运行”gcc -v”测试是否成功即可。

8e3df00558a64933ba2a3fe0eafef770.png

安装gcc的目的是为了编译c++文件,quantization_kernels.cquantization_kernels_parallel.c00ef846c3a714f9d91963cfdbd04e221.png

 quantization_kernels.c文件:

void compress_int4_weight(void *weight, void *out, int n, int m)
{for(int i=0;i<n*m;i++){(*(unsigned char*)(out)) = ((*(unsigned char*)(weight)) << 4);weight += sizeof(char);(*(unsigned char*)(out)) |= ((*(unsigned char*)(weight)) & 15);weight += sizeof(char);out += sizeof(char);}
}void extract_int8_weight_to_float(void *weight, void *scale_list, void *out, int n, int m)
{for(int i=0;i<n;i++)for(int j=0;j<m;j++)(*(float*)(out + sizeof(float) * (i * m + j))) = (*(float*)(scale_list + sizeof(float) * i)) * (*(char*)(weight + sizeof(char) * (i * m + j)));
}void extract_int4_weight_to_float(void *weight, void *scale_list, void *out, int n, int m)
{for(int i=0;i<n;i++){for(int j=0;j<m;j++){(*(float*)(out)) = (*(float*)(scale_list)) * ((*(char*)(weight)) >> 4);out += sizeof(float);(*(float*)(out)) = (*(float*)(scale_list)) * (((char)((*(unsigned char*)(weight)) << 4))>> 4);out += sizeof(float);weight += sizeof(char);}scale_list += sizeof(float);}
}

以上C++程序对于每个8位的输入权重值,都会被压缩成一个4位的输出权重值,并存储到指定的输出数组中。这种权重量化方式可以有效减小模型的内存占用,提高模型的推理速度。

 第5步:运行web_demo.py文件

注意:如果大家在运行中遇到了错误提示,说明两个文件编译出问题。我们可以手动去编译这两个文件:即在上面下载的D:..\chatglm-6b-int4本地目录下进入cmd,运行两个编译命令:

gcc -fPIC -pthread -fopenmp -std=c99 quantization_kernels.c -shared -o quantization_kernels.so
gcc -fPIC -pthread -fopenmp -std=c99 quantization_kernels_parallel.c -shared -o quantization_kernels_parallel.so

没有报错说明运行成功,目录下看到下面两个新的文件:quantization_kernels_parallel.soquantization_kernels.so。说明编译成功,后面我们手动载入,这里要多加一行代码

model = model.quantize(bits=4, kernel_file="D:..\\chatglm-6b-int4\\quantization_kernels.so")

如果原来代码没有错可以去掉这行。

 第6步:web_demo.py文件运行成功

ab52cf9cb92a4d068a85ee8c28d08d16.png

 出现地址就大功告成了。

 第7步:测试问题

1.鲁迅和周树人是同一个人吗?

ChatGLM的结果:

83f95aa7655b452aa24cb5d4994f866e.png

 ChatGPT的结果:

50dca051e3f44c6fb527176ad3691009.png

 2.树上9只鸟,用枪打掉1只,还剩几只?

ChatGLM的结果:

e459de5f6fc84faabe16bdc1e76c96f4.png

 ChatGPT的结果:

79a7eb5644204547a3649ae398fa1137.png

ChatGLM在某些中文问题和常识问题上超过ChatGPT,但是总体上是不如ChatGPT,他在总结任务上,代码编写上不如ChatGPT,总体达到ChatGPT的80%左右,可以做简单的任务。

 

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

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

相关文章

我也尝试了下chatGPT,效果惊艳

我也尝试了下chatGPT&#xff0c;效果惊艳&#xff0c;2023会是人工智能的元年。能根据上下文进行对话&#xff0c;能写作文改进作文、写代码改BUG、做题目改作业。 写作文 让它以熬夜为主题写篇100字的作文&#xff0c;开始时只是一段很普通的流水。让它继续改进&#xff0c…

ChatGPT 引领的 AI 革命爆发了,一起上车吧!

文章目录 1. AI 革命爆发了2. 回顾 AI 历史3. 什么是 ChatGPT&#xff1f;4. 为什么你应该学习 AI &#xff1f;5. 我们该如何学习 AI5.1 第一点是你要多尝试运行代码和修改代码。5.2 第二点是你要多去体验各类 AI 的应用5.3 第三点做头脑风暴&#xff0c;创造有趣新产品 6. 我…

ChatGPT的“N宗罪”?|AI百态(上篇)

AI诞生伊始&#xff0c;那是人人欣喜若狂的科技曙光&#xff0c;深埋于哲学、想象和虚构中的古老的梦&#xff0c;终于成真&#xff0c;一个个肉眼可见的智能机器人&#xff0c;在复刻、模仿和服务着他们的造物主——人类。 但科技树的点亮&#xff0c;总会遇到一些经典的迷思…

chatGPT怎么用?AI提示词工程师是什么

近几个月来&#xff0c;人工智能&#xff08;AI&#xff09;热度空前&#xff0c;甚至催生了一个新职业——AI提示词工程师&#xff08;PromptEngineer&#xff09;。 这一职业最早出现在美国求职网站Indeed上&#xff0c;Anthropic这家AI初创公司在其招聘信息中明确提到“AI提…

生物科学大模型调研

生物大模型竞品调研 1 概念分类 大模型&#xff1a;大模型通常指的是参数量较大、层数较深的机器学习模型&#xff0c;例如深度神经网络。这些模型具有大量的可训练参数&#xff0c;通过在大规模数据集上进行训练&#xff0c;能够更好地捕捉数据中的复杂模式和特征。大模型在各…

ChatGPT鲁棒性分析:对抗鲁棒与分布外泛化视角

©作者 | 胡曦煦 单位 | 香港城市大学 研究方向 | 领域自适应&#xff0c;领域泛化 众所周知&#xff0c;最近聊天机器人 ChatGPT 吸引了所有人的注意力&#xff0c;一方面人们想要在国内复刻相同的成功&#xff0c;另一方面也有人焦虑于研究范式的转变&#xff0c;担忧现在…

王兴将出任王慧文创业公司董事/ 谷歌多年来故意推迟发布类ChatGPT/ 飞书回应齐俊元并未负责日本业务...今日更多新鲜事在此...

日报君 发自 凹非寺量子位 | 公众号 QbitAI 家人们早上好&#xff0c;今天是3月9日&#xff0c;疯狂星期四。 快来和日报君一起来品尝今日份的“科技早餐”吧~ 美团王兴入局中国版OpenAI创业 美团创始人王兴的一条朋友圈火了。 内容的核心爆点&#xff0c;归结为一句话就是——…

ChatGPT中文LLM与医疗领域相结合的开源资源汇总

文章目录 前言DoctorGLMBenTsaoBianQueHuatuoGPTMed-ChatGLMQiZhenGPTChatMedXrayGLMMeChatMedicalGPTSunsimiaoShenNong-TCM-LLMSoulChat 总结 基于开源ChatGPT大模型构建自己的知识库系统 前言 自ChatGPT为代表的大语言模型&#xff08;Large Language Model, LLM&#xff0…

人工智能历史上的重要一步:ChatGPT影响到谷歌地位?

AI神器ChatGPT 火了。 能直接生成代码、会自动修复bug、在线问诊、模仿莎士比亚风格写作……各种话题都能hold住&#xff0c;它就是OpenAI刚刚推出的——ChatGPT。 有脑洞大开的网友甚至用它来设计游戏&#xff1a;先用ChatGPT生成游戏设定&#xff0c;再用Midjourney出图&am…

ChatGPT当医生,谁敢来问诊

基于LLM的生成式聊天工具&#xff0c;如ChatGPT或谷歌的MedPaLM&#xff0c;具有巨大的医疗潜力&#xff0c;但它们在医疗保健中不受管制的使用将存在固有的风险。一篇发表在《Nature Medicine》新研究讨论了当今时代最紧迫的国际问题之一&#xff1a;如何监管大型语言模型&…

九龙证券|权重股引领A股强势反弹 沪指创今年以来最大单日涨幅

周一&#xff0c;沪深两市强势反弹&#xff0c;上证综指全天收涨超2%&#xff0c;创本年以来最大单日涨幅。到收盘&#xff0c;上证综指报3290.34点&#xff0c;上涨2.06%&#xff1b;深证成指报11954.13点&#xff0c;上涨2.03%&#xff1b;创业板指报2480.79点&#xff0c;上…

马云非公开会议:阿里电商应该回归淘宝;微信上线“安静模式”;ChatGPT会生成Win11激活密钥 | 极客头条...

「极客头条」—— 技术人员的新闻圈&#xff01; CSDN 的读者朋友们早上好哇&#xff0c;「极客头条」来啦&#xff0c;快来看今天都有哪些值得我们技术人关注的重要新闻吧。 整理 | 苏宓 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 一分钟速览新闻点&#xf…

总结:Grafana Mimir调研

一、背景 Prometheus单实例&#xff0c;可用性低&#xff0c;可靠性低&#xff0c;不能存储更多数据。 解决业务问题 如&#xff1a;当前QKE是一个集群一个项目一个prometheus实例&#xff0c;那么当我一个应用分多个集群部署的时候&#xff0c;查询数据时就得从三个promethe…

现代软件工程 — 第一部分:系统设计

在80年代末和90年代初长大的我&#xff0c;对电脑的接触几乎仅限于游戏机&#xff08;我认为是Atari 800和Commodore 64游戏机&#xff0c;因为我只看到过在它们上面运行的游戏&#xff09;或早期的X86系统。直到2000年我上了大学&#xff0c;我才掌握了一台Sun Microsystems S…

钉钉接入大模型后,我才看懂阿里云钉一体战略的真正价值

来源&#xff1a; 首席数智官&#xff08;ID&#xff1a;shouxishuzhiguan&#xff09; hello 大家好&#xff0c;我们是数字化领军者都在看的首席数智官。 关注我&#xff0c;每天给你讲一个商业案例。 今天我们要给你讲的是&#xff1a;钉钉接入大模型后&#xff0c;阿里云…

微软或将于下周推出GPT-4;百度将在3月16日发布文心一言;小i机器人成功登陆纳斯达克丨每日大事件...

‍ ‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 企业动态 百度计划于3月16日14时召开新闻发布会&#xff0c;主题围绕文心一言 3月10日&#xff0c;据百度官方微博消息&#xff0c;百度计划于3月16日14时在北京总部召开新闻发布会&#xff0c;主题围绕文心一言。百度创…

小i机器人登陆纳斯达克:市值4.2亿美元,与苹果打了10年专利侵权官司

‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 要问当前科技圈里最靓的仔是谁&#xff1f;那当然是非 ChatGPT莫属。当下谁能推出真正意义上的中国版ChatGPT&#xff0c;并且在这轮AI浪潮竞争白热化阶段中笑到最后&#xff0c;已经成为人们关注的焦点。 美东时间3月9日&a…

Python年利率计算器【N日年化收益率】

现在有闲钱的人&#xff0c;按照聪明等级从低到高排序应该是 钱买股票&#xff0c;一年利率约为-20% 钱放银行活期&#xff0c;年利率约为0.3% 钱放银行定期&#xff0c;一年利率约为1.5% 钱放余额宝&#xff08;支付宝&#xff09;或零钱通&#xff08;微信&#xff09;&#…

李宏毅-2023春机器学习 ML2023 SPRING-学习笔记:3/3 机器学习基本概念介绍

目录 3/3 机器学习基本概念介绍快速了解機器學習基本原理生成式學習的兩種策略&#xff1a;要各個擊破&#xff0c;還是要一次到位能夠使用工具的AI&#xff1a;New Bing, WebGPT, ToolformerBrief Introduction of Deep LearningGradient DescentBackpropagation卷積神經網路 …

如何用 GPT-4 帮你写游戏?

你知道的&#xff0c;GPT-4 发布了。 目前你想要用上 GPT-4&#xff0c;主要的渠道是 ChatGPT Plus 。作为交了订阅费的用户&#xff0c;你可以在对话的时候选择模型来使用。 另一种渠道&#xff0c;就是申请官方 API 的排队。我在申请 New Bing Chat 的时候&#xff0c;耐心被…