0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

ChatGLM3-6B在CPU上的INT4量化和部署

英特尔物联网 来源:英特尔物联网 2024-01-05 09:36 次阅读

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

ChatGLM3-6B 简介

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

02342994-aae9-11ee-8b88-92fbcf53809c.gif

请使用命令,将 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|>
{prompt}
<|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)

左滑查看更多

运行结果,如下所示:

025ed96e-aae9-11ee-8b88-92fbcf53809c.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解决方案,目前产品已在工业控制智能机器人、教育、医疗、金融等多个边缘计算领域得到广泛应用。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 英特尔
    +关注

    关注

    61

    文章

    10025

    浏览量

    172492
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10922

    浏览量

    213277
  • AI
    AI
    +关注

    关注

    87

    文章

    31845

    浏览量

    270671
  • 开源
    +关注

    关注

    3

    文章

    3421

    浏览量

    42781

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

文章出处:【微信号:英特尔物联网,微信公众号:英特尔物联网】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    NCNN+Int8+yolov5部署量化

    【GiantPandaCV引言】 还记得我两个月前写的文章吗,关于yolov4-tiny+ncnn+int8量化的详细教程:NCNN+INT8+YOLOV4
    发表于 01-25 16:01 2次下载
    NCNN+<b class='flag-5'>Int</b>8+yolov5<b class='flag-5'>部署</b>和<b class='flag-5'>量化</b>

    英伟达:5nm实验芯片用INT4达到INT8的精度

    降低数字格式而不造成重大精度损失,要归功于按矢量缩放量化(per-vector scaled quantization,VSQ)的技术。具体来说,一个INT4数字只能精确表示从-8到7的16个整数。
    的头像 发表于 12-12 15:48 878次阅读

    ChatGLM-6B的局限和不足

    ); ChatGLM-6B 是一个开源的、支持中英双语的对话语言模型,基于 General Language Model (GLM) 架构,具有 62 亿参数; 结合模型量化技术,用户可以消费级
    的头像 发表于 06-25 11:50 5550次阅读
    <b class='flag-5'>ChatGLM-6B</b>的局限和不足

    ChatGLM2-6B:性能大幅提升,8-32k上下文,推理提速42%,中文榜单位列榜首

    主要评估LLM模型中文能力的 C-Eval 榜单中,截至6月25日 ChatGLM2 模型以 71.1 的分数位居 Rank 0 ,ChatGLM2-6B 模型以 51.7 的分数位
    的头像 发表于 06-26 14:30 1067次阅读
    <b class='flag-5'>ChatGLM2-6B</b>:性能大幅提升,8-32k上下文,推理提速42%,<b class='flag-5'>在</b>中文榜单位列榜首

    类GPT模型训练提速26.5%,清华朱军等人用INT4算法加速神经网络训练

    使用 INT4 算法实现所有矩阵乘法的 Transformer 训练方法。 模型训练得快不快,这与激活值、权重、梯度等因素的要求紧密相关。 神经网络训练需要一定计算量,使用低精度算法(全量化训练或 FQT 训练)有望提升计算和内存的效率。FQT
    的头像 发表于 07-02 20:35 718次阅读
    类GPT模型训练提速26.5%,清华朱军等人用<b class='flag-5'>INT4</b>算法加速神经网络训练

    ChatGLM2-6B解析与TPU部署

    ChatGLM2-6B解析与TPU部署
    的头像 发表于 08-18 11:28 889次阅读
    <b class='flag-5'>ChatGLM2-6B</b>解析与TPU<b class='flag-5'>部署</b>

    Xilinx器件具有INT4优化的卷积神经网络

    电子发烧友网站提供《Xilinx器件具有INT4优化的卷积神经网络.pdf》资料免费下载
    发表于 09-13 09:30 0次下载
    <b class='flag-5'>在</b>Xilinx器件<b class='flag-5'>上</b>具有<b class='flag-5'>INT4</b>优化的卷积神经网络

    探索ChatGLM2算能BM1684XINT8量化部署,加速大模型商业落地

    1.背景介绍2023年7月时我们已通过静态设计方案完成了ChatGLM2-6B单颗BM1684X部署工作,
    的头像 发表于 10-10 10:18 3930次阅读
    探索<b class='flag-5'>ChatGLM</b>2<b class='flag-5'>在</b>算能BM1684X<b class='flag-5'>上</b><b class='flag-5'>INT</b>8<b class='flag-5'>量化</b><b class='flag-5'>部署</b>,加速大模型商业落地

    Yolo系列模型的部署、精度对齐与int8量化加速

    基于PytorchQuantization导出的含有QDQ节点的onnx时,我们发现尽管量化版本的torch模型精度很高,但是TensorRT部署时精度却很低,TRT
    的头像 发表于 11-23 16:40 1368次阅读

    OpenVINO™ 2023.2 发布:让生成式AI实际场景中更易用

    2023.2 版本中,我们进一步优化此工作流程,并引入 CPU 和集成显卡运行权重量化int
    的头像 发表于 12-08 16:04 1078次阅读
    OpenVINO™ 2023.2 发布:让生成式AI<b class='flag-5'>在</b>实际场景中更易用

    三步完成英特尔独立显卡量化部署ChatGLM3-6B模型

    ChatGLM3 是智谱 AI 和清华大学 KEG 实验室联合发布的新一代对话预训练模型。ChatGLM3-6BChatGLM3 系列中的开源模型,填写问卷进行登记后亦允许免费
    的头像 发表于 01-11 18:04 1745次阅读
    三步完成<b class='flag-5'>在</b>英特尔独立显卡<b class='flag-5'>上</b><b class='flag-5'>量化</b>和<b class='flag-5'>部署</b><b class='flag-5'>ChatGLM3-6B</b>模型

    使用NVIDIA TensorRT-LLM支持CodeFuse-CodeLlama-34Bint4量化和推理优化实践

    CodeFuse是由蚂蚁集团开发的代码语言大模型,旨在支持整个软件开发生命周期,涵盖设计、需求、编码、测试、部署、运维等关键阶段。
    的头像 发表于 01-12 18:13 1198次阅读

    【AIBOX】装在小盒子的AI足够强吗?

    Firefly推出大语言模型本地部署的产品:AIBOX-1684X,目前已适配主流的大语言模型,包括ChatGLM3-6B,以下是ChatGLM3AIBOX-1684X
    的头像 发表于 05-15 08:02 549次阅读
    【AIBOX】装在小盒子的AI足够强吗?

    chatglm2-6bP40做LORA微调

    背景: 目前,大模型的技术应用已经遍地开花。最快的应用方式无非是利用自有垂直领域的数据进行模型微调。chatglm2-6b国内开源的大模型,效果比较突出。本文章分享的内容是用
    的头像 发表于 08-13 17:12 592次阅读
    <b class='flag-5'>chatglm2-6b</b><b class='flag-5'>在</b>P40<b class='flag-5'>上</b>做LORA微调

    源2.0-M32大模型发布量化版 运行显存仅需23GB 性能可媲美LLaMA3

    2.0-M32量化版是"源"大模型团队为进一步提高模算效率,降低大模型部署运行的计算资源要求而推出的版本,通过采用领先的量化技术,将原模型精度量化
    的头像 发表于 08-25 22:06 408次阅读
    源2.0-M32大模型发布<b class='flag-5'>量化</b>版 运行显存仅需23GB 性能可媲美LLaMA<b class='flag-5'>3</b>