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

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

3天内不再提示

简单三步使用OpenVINO™搞定ChatGLM3的本地部署

英特尔物联网 来源:OpenVINO 中文社区 2024-04-03 18:18 次阅读

工具介绍

英特尔OpenVINO 工具套件是一款开源AI推理优化部署的工具套件,可帮助开发人员和企业加速生成式人工智能 (AIGC)、大语言模型、计算机视觉和自然语言处理等 AI 工作负载,简化深度学习推理的开发和部署,便于实现从边缘到云的跨英特尔 平台的异构执行。

ChatGLM3是智谱AI和清华大学KEG实验室联合发布的对话预训练模型。ChatGLM3-6B是ChatGLM3系列中的开源模型,在保留了前两代模型对话流畅、部署门槛低等众多优秀特性的基础上,ChatGLM3-6B引入了以下新特性:

1

更强大的基础模型:

ChatGLM3-6B的基础模型ChatGLM3-6B-Base采用了更多样的训练数据、更充分的训练步数和更合理的训练策略。在语义、数学、推理、代码、知识等不同角度的数据集上测评显示,ChatGLM3-6B-Base具有在10B以下的预训练模型中领先的性能。

2

更完整的功能支持:

ChatGLM3-6B采用了全新设计的Prompt格式,除正常的多轮对话外,同时原生支持工具调用 (Function Call)、代码执行 (Code Interpreter) 和Agent任务等复杂场景。

3

更全面的开源序列:

除了对话模型ChatGLM3-6B外,还开源了基础模型ChatGLM-6B-Base、长文本对话模型ChatGLM3-6B-32K。以上所有权重对学术研究完全开放,在填写问卷进行登记后亦允许免费商业使用。

8c1a646e-f19a-11ee-a297-92fbcf53809c.png

图:基于Optimum-intel与OpenVINO部署生成式AI模型流程

英特尔为开发者提供了快速部署ChatGLM3-6B的方案支持。开发者只需要在GitHub上克隆示例仓库,进行环境配置,并将Hugging Face模型转换为OpenVINO IR模型,即可进行模型推理。由于大部分步骤都可以自动完成,因此开发者只需要简单的工作便能完成部署,目前该仓库也被收录在GhatGLM3的官方仓库和魔搭社区Model Card中,接下来让我们一起看下具体的步骤和方法:

示例仓库:

https://github.com/OpenVINO-dev-contest/chatglm3.openvino

官方仓库:

https://github.com/THUDM/ChatGLM3?tab=readme-ov-file#openvino-demo

Model Card:

https://www.modelscope.cn/models/ZhipuAI/chatglm3-6b/summary#

1

模型转换

当你按仓库中的README文档完成集成环境配置后,可以直接通过以下命令运行模型转换脚本:

python3 convert.py --model_id THUDM/chatglm3-6b –output {your_path}/chatglm3-6b-ov

该脚本首先会利用Transformers库从Hugging Face的model hub中下载并加载原始模型的PyTorch对象,如果开发者在这个过程中无法访问Hugging Face的model hub,也可以通过配置环境变量的方式,将模型下载地址更换为镜像网站,并将convert.py脚本的model_id参数配置为本地路径,具体方法如下:

$env:HF_ENDPOINT = https://hf-mirror.com
huggingface-cli download --resume-download --local-dir-use-symlinks False THUDM/chatglm3-6b --local-dir {your_path}/chatglm3-6b
python3 convert.py --model_id {your_path}/chatglm3-6b --output {your_path}/chatglm3-6b-ov

当获取PyTorch的模型对象后,该脚本会利用OpenVINO的PyTorch frontend进行模型格式的转换,执行完毕后,你将获取一个由.xml和.bin文件所构成的OpenVINO IR模型文件,该模型默认以FP16精度保存。

2

权重量化

该步骤为可选项,开发者可以通过以下脚本,将生成的OpenVINO模型通过权重量化策略,进一步地压缩为4-bits或者是8-bits的精度,以获取更低的推理延时及系统资源占用。

python3 quantize.py --model_path {your_path}/chatglm3-6b-ov --precision int4 --output {your_path}/chatglm3-6b-ov-int4

执行完毕后,你将获得经过压缩后的IR模型文件,以INT4对称量化为例,该压缩后的模型文件的整体容量大约为4GB左右。

8c3150b6-f19a-11ee-a297-92fbcf53809c.png

图:量化后的OpenVINO模型文件

同时在量化结束后,亦会在终端上打印模型的量化比例,如下图所示。

8c587254-f19a-11ee-a297-92fbcf53809c.png

图:量化比例输出

由于OpenVINO NNCF工具的权重压缩策略只针对于大语言模型中的Embedding和Linear这两种算子,所以该表格只会统计这两类算子的量化比例。其中ratio-defining parameter是指我们提前通过接口预设的混合精度比例,也就是21%权重以INT8表示,79%以INT4表示,这也是考虑到量化对ChatGLM3模型准确度的影响,事先评估得到的配置参数,开发者亦可以通过这个示例搜索出适合其他模型的量化参数。此外鉴于第一层Embedding layer和模型最后一层操作对于输出准确度的影响,NNCF默认会将他们以INT8表示,这也是为何all parameters中显示的混合精度比例会有所不同。当然开发者也可以通过nncf.compress_weights接口中设置all_layers=True,开关闭该默认策略。

示例:

https://github.com/openvinotoolkit/nncf/tree/develop/examples/llm_compression/openvino/tiny_llama_find_hyperparams

3

模型转换

最后一步就是模型部署了,这里展示的是一个Chatbot聊天机器人的示例,这也是LLM应用中最普遍,也是最基础的pipeline,而OpenVINO可以通过Optimum-intel工具为桥梁,复用Transformers库中预置的pipeline,因此在这个脚本中我们会对ChatGLM3模型再做一次封装,以继承并改写OVModelForCausalLM类中的方法,实现对于Optimum-intel工具的集成和适配。以下为该脚本的运行方式:

python3 chat.py --model_path {your_path}/chatglm3-6b-ov-int4 --max_sequence_length 4096 --device CPU

如果开发者的设备中包含英特尔的GPU产品,例如Intel ARC系列集成显卡或是独立显卡,可以在这个命令中将device参数改为GPU,以激活更强大的模型推理能力。

在终端里运行该脚本后,会生成一个简易聊天对话界面,接下来你就可以验证它的效果和性能了。

总结

通过模型转换、量化、部署这三个步骤,我们可以轻松实现在本地PC上部署ChatGLM3-6b大语言模型,经测试该模型可以流畅运行在最新的Intel Core Ultra异构平台及至强CPU平台上,作为众多AI agent和RAG等创新应用的核心基石,大语言模型的本地部署能力将充分帮助开发者们打造更安全,更高效的AI解决方案。


审核编辑:刘清

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

    关注

    1789

    文章

    46562

    浏览量

    236877
  • 计算机视觉
    +关注

    关注

    8

    文章

    1694

    浏览量

    45894
  • pytorch
    +关注

    关注

    2

    文章

    798

    浏览量

    13104
  • OpenVINO
    +关注

    关注

    0

    文章

    83

    浏览量

    165

原文标题:简单三步使用OpenVINO™ 搞定ChatGLM3的本地部署 | 开发者实战

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

收藏 人收藏

    评论

    相关推荐

    使用OpenVINO Model Server在哪吒开发板上部署模型

    OpenVINO Model Server(OVMS)是一个高性能的模型部署系统,使用C++实现,并在Intel架构上的部署进行了优化,使用OpenVINO 进行推理,推理服务通过gP
    的头像 发表于 11-01 14:19 97次阅读
    使用<b class='flag-5'>OpenVINO</b> Model Server在哪吒开发板上<b class='flag-5'>部署</b>模型

    使用OpenVINO 2024.4在算力魔方上部署Llama-3.2-1B-Instruct模型

    前面我们分享了《三步完成Llama3在算力魔方的本地量化和部署》。2024年9月25日,Meta又发布了Llama3.2:一个多语言大型语言模型(LLMs)的集合。
    的头像 发表于 10-12 09:39 359次阅读
    使用<b class='flag-5'>OpenVINO</b> 2024.4在算力魔方上<b class='flag-5'>部署</b>Llama-3.2-1B-Instruct模型

    【AIBOX上手指南】快速部署Llama3

    Firefly开源团队推出了Llama3部署包,提供简易且完善的部署教程,过程无需联网,简单快捷完成本地
    的头像 发表于 06-06 08:02 539次阅读
    【AIBOX上手指南】快速<b class='flag-5'>部署</b>Llama<b class='flag-5'>3</b>

    简单三步!高效预测半导体器件使用寿命

    电力电子元器件已经成为现代电子系统中重要的组成部件,同时,元器件的热性能将大大影响整体设备的可靠性。庭田科技提供的POWERTESTER测试平台,在不破坏待测器件的前提下,仅需三步,即可高效安全
    的头像 发表于 05-30 10:31 397次阅读

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

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

    Optimum Intel三步完成Llama3在算力魔方的本地量化和部署

    Llama3 是Meta最新发布的开源大语言模型(LLM), 当前已开源8B和70B参数量的预训练模型权重,并支持指令微调。
    的头像 发表于 05-10 10:34 943次阅读
    Optimum Intel<b class='flag-5'>三步</b>完成Llama<b class='flag-5'>3</b>在算力魔方的<b class='flag-5'>本地</b>量化和<b class='flag-5'>部署</b>

    简单使用OpenVINO搞定Qwen2的量化与部署任务

    英特尔 OpenVINO™ 工具套件是一款开源 AI 推理优化部署的工具套件,可帮助开发人员和企业加速生成式人工智能 (AIGC)、大语言模型、计算机视觉和自然语言处理等 AI 工作负载,简化深度学习推理的开发和部署,便于实现从
    的头像 发表于 04-26 09:39 1512次阅读
    <b class='flag-5'>简单</b>两<b class='flag-5'>步</b>使用<b class='flag-5'>OpenVINO</b>™<b class='flag-5'>搞定</b>Qwen2的量化与<b class='flag-5'>部署</b>任务

    英特尔集成显卡+ChatGLM3大语言模型的企业本地AI知识库部署

    在当今的企业环境中,信息的快速获取和处理对于企业的成功至关重要。为了满足这一需求,我们可以将RAG技术与企业本地知识库相结合,以提供实时的、自动生成的信息处理和决策支持。
    的头像 发表于 03-29 11:07 732次阅读
    英特尔集成显卡+<b class='flag-5'>ChatGLM3</b>大语言模型的企业<b class='flag-5'>本地</b>AI知识库<b class='flag-5'>部署</b>

    如何在MacOS上编译OpenVINO C++项目呢?

    英特尔公司发行的模型部署工具 OpenVINO 模型部署套件,可以实现在不同系统环境下运行,且发布的 OpenVINO 2023 最新版目前已经支持 MacOS 系统并同时支持在苹果
    的头像 发表于 01-11 18:07 823次阅读
    如何在MacOS上编译<b class='flag-5'>OpenVINO</b> C++项目呢?

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

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

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

    ChatGLM3 是智谱 AI 和清华大学 KEG 实验室联合发布的新一代对话预训练模型。ChatGLM3-6B 是 ChatGLM3 系列中的开源模型,在填写问卷进行登记后亦允许免费商业使用。
    的头像 发表于 01-05 09:36 821次阅读
    <b class='flag-5'>ChatGLM3</b>-6B在CPU上的INT4量化和<b class='flag-5'>部署</b>

    NNCF压缩与量化YOLOv8模型与OpenVINO部署测试

    OpenVINO2023版本衍生出了一个新支持工具包NNCF(Neural Network Compression Framework – 神经网络压缩框架),通过对OpenVINO IR格式模型的压缩与量化更好的提升模型在OpenVI
    的头像 发表于 11-20 10:46 1413次阅读
    NNCF压缩与量化YOLOv8模型与<b class='flag-5'>OpenVINO</b><b class='flag-5'>部署</b>测试

    如何使用OpenVINO C++ API部署FastSAM模型

    象的位置和边界。本文将介绍如何使用 OpenVINO C++ API 部署 FastSAM 模型,以实现快速高效的语义分割。在前文中我们发表了《基于 OpenVINO Python API
    的头像 发表于 11-17 09:53 819次阅读
    如何使用<b class='flag-5'>OpenVINO</b> C++ API<b class='flag-5'>部署</b>FastSAM模型

    基于OpenVINO C# API部署RT-DETR模型

    Python API 部署 RT-DETR 模型 | 开发者实战》和《基于 OpenVINO C++ API 部署 RT-DETR 模型 | 开发者实战》,在该文章中,我们基于 OpenVI
    的头像 发表于 11-10 16:59 688次阅读
    基于<b class='flag-5'>OpenVINO</b> C# API<b class='flag-5'>部署</b>RT-DETR模型

    OpenVINO Java API详解与演示

    结果部署到生产系统中。通过简化的开发工作流程, OpenVINO 可赋能开发者在现实世界中部署高性能应用程序和算法。
    的头像 发表于 11-09 17:03 939次阅读
    <b class='flag-5'>OpenVINO</b> Java API详解与演示