开发者实战 | 三步完成 ChatGLM3-6B 在 CPU 上的 INT4 量化和部署

点击蓝字

关注我们,让开发变得更有趣

以下文章来源于英特尔物联网

作者:刘力 英特尔边缘计算创新大使

c6c800e666f37ec3b3bd02e0e3df1df6.png

ChatGLM3-6B 简介

ChatGLM3 是智谱 AI 和清华大学 KEG 实验室联合发布的新一代对话预训练模型。ChatGLM3-6B 是 ChatGLM3 系列中的开源模型,在填写问卷进行登记后亦允许免费商业使用。

问卷:

https://open.bigmodel.cn/mla/form

8538db8f3f828bcd92de67677737abe9.gif

引用自:

https://github.com/THUDM/ChatGLM3

请使用命令,将 ChatGLM3-6B 模型下载到本地:

git clone https://www.modelscope.cn/ZhipuAI/chatglm3-6b.git

左滑查看更多

BigDL-LLM 简介

BigDL-LLM 是开源,遵循 Apache 2.0 许可证,专门用于在英特尔的硬件平台上加速大语言模型(Large Language Model, LLM)推理计算的软件工具包。它是在原有的 BigDL 框架基础上,为了应对大语言模型在推理过程中对性能和资源的高要求而设计的。BigDL-LLM 旨在通过优化和硬件加速技术来提高大语言模型的运行效率,减少推理延迟,并降低资源消耗。

BigDL-LLM 的主要特点包括:

1

低精度优化:通过支持 INT4/INT5/INT8 等低精度格式,减少模型的大小和推理时的计算量,同时保持较高的推理精度。

2

硬件加速:利用英特尔 CPU 集成的硬件加速技术,如 AVX(Advanced Vector Extensions)、VNNI(Vector Neural Network Instructions)和 AMX(Advanced Matrix Extensions)等,来加速模型的推理计算。

3

使用方便:对于基于 Hugging Face Transformers API 的模型,只需修改少量代码即可实现加速,使得开发者可以轻松地在其现有模型上应用 BigDL-LLM。

4

性能提升:BigDL-LLM 可以显著提高大语言模型在英特尔平台上的运行速度,减少推理时间,特别是在处理大规模模型和复杂任务时。

5

资源友好:通过优化模型运行时的资源使用,BigDL-LLM 使得大语言模型可以在资源受限的环境中也能高效运行,如普通的笔记本电脑或服务器。

使用 BigDL-LLM

量化并部署 ChatGLM3-6B

第一步,创建虚拟环境

请安装 Anaconda,然后用下面的命令创建名为 llm 的虚拟环境:

conda create -n llm python=3.9
conda activate llm

左滑查看更多

第二步,安装 BigDL-LLM

执行命令:

pip install --pre --upgrade bigdl-llm[all] -i https://mirrors.aliyun.com/pypi/simple/

左滑查看更多

第三步:运行范例程序

范例程序下载地址:

https://gitee.com/Pauntech/chat-glm3/blob/master/chatglm3_infer.py

import time
from bigdl.llm.transformers import AutoModel
from transformers import AutoTokenizer


CHATGLM_V3_PROMPT_FORMAT = "<|user|>\n{prompt}\n<|assistant|>"
# 请指定chatglm3-6b的本地路径
model_path = "d:/chatglm3-6b"
# 载入ChatGLM3-6B模型并实现INT4量化
model = AutoModel.from_pretrained(model_path,
                                  load_in_4bit=True,
                                  trust_remote_code=True)
# 载入tokenizer
tokenizer = AutoTokenizer.from_pretrained(model_path,
                                          trust_remote_code=True)
# 制作ChatGLM3格式提示词    
prompt = CHATGLM_V3_PROMPT_FORMAT.format(prompt="What is Intel?")
# 对提示词编码
input_ids = tokenizer.encode(prompt, return_tensors="pt")
st = time.time()
# 执行推理计算,生成Tokens
output = model.generate(input_ids,max_new_tokens=32)
end = time.time()
# 对生成Tokens解码并显示
output_str = tokenizer.decode(output[0], skip_special_tokens=True)
print(f'Inference time: {end-st} s')
print('-'*20, 'Prompt', '-'*20)
print(prompt)
print('-'*20, 'Output', '-'*20)
print(output_str)

左滑查看更多

运行结果,如下所示:

261d3d3a9eefd36be5370b65a20d619c.png

ChatGLM3-6B WebUI demo

请先安装依赖软件包:

pip install gradio mdtex2html streamlit -i https://mirrors.aliyun.com/pypi/simple/

左滑查看更多

下载范例程序:

https://gitee.com/Pauntech/chat-glm3/blob/master/chatglm3_web_demo.py

然后运行:

streamlit run chatglm3_web_demo.py

左滑查看更多

运行结果如下:

总结

BigDL-LLM 工具包简单易用,仅需三步即可完成虚拟环境创建、BigDLL-LLM 安装以及 ChatGLM3-6B 模型的 INT4 量化以及在英特尔 CPU 上的部署。

作者简介

刘力,深圳市铂盛科技有限公司的创始人。带领团队成功设计了多种计算机系统,并申请了多项专利和软件著作,铂盛科技为国家高新技术企业,深圳市专精特新企业。铂盛通过整合算力和算法,打造软硬件一体化的AIPC解决方案,目前产品已在工业控制、智能机器人、教育、医疗、金融等多个边缘计算领域得到广泛应用。

联系方式

电话:13537819699

Email:leo.liu@pasuntech.com

OpenVINO™

--END--

你也许想了解(点击蓝字查看)⬇️➡️ OpenVINO™ 2023.2 发布:让生成式 AI 在实际场景中更易用➡️ 开发者实战 | 基于 OpenVINO™ 和 LangChain 构建 RAG 问答系统➡️ 开发者实战 | 如何利用低比特量化技术进一步提升大模型推理性能➡️ 开发者实战 | 介绍OpenVINO™ 2023.1:在边缘端赋能生成式AI➡️ 基于 ChatGLM2 和 OpenVINO™ 打造中文聊天助手➡️ 基于 Llama2 和 OpenVINO™ 打造聊天机器人➡️ OpenVINO™ DevCon 2023重磅回归!英特尔以创新产品激发开发者无限潜能➡️ 5周年更新 | OpenVINO™  2023.0,让AI部署和加速更容易➡️ OpenVINO™5周年重头戏!2023.0版本持续升级AI部署和加速性能➡️ OpenVINO™2023.0实战 | 在 LabVIEW 中部署 YOLOv8 目标检测模型➡️ 开发者实战系列资源包来啦!➡️ 以AI作画,祝她节日快乐;简单三步,OpenVINO™ 助你轻松体验AIGC
➡️ 还不知道如何用OpenVINO™作画?点击了解教程。
扫描下方二维码立即体验 
OpenVINO™ 工具套件 2023.2

点击 阅读原文 立即体验OpenVINO 2023.2

73d7d1ba7cec378f788989b004d4dff5.png

文章这么精彩,你有没有“在看”?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值