用 OpenVINO™ 部署 GLM-Edge 全家桶

本文涉及的产品
交互式建模 PAI-DSW,每月250计算时 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
模型训练 PAI-DLC,100CU*H 3个月
简介: 11月29日,智谱发布了GLM-Edge系列模型,包括GLM-Edge-1.5B-Chat、GLM-Edge-4B-Chat、GLM-Edge-V-2B、GLM-Edge-V-5B,适用于手机、车机及PC平台。文章介绍了如何使用OpenVINO™工具套件在本地部署这些模型,实现高效的AI任务处理,如聊天与图像理解。提供了详细的环境配置、模型转换与量化、以及具体的应用示例。

11.29,智谱发布其最新的 GLM-Edge 系列 SLM 模型, GLM-Edge 系列是智谱在面向端侧真实落地使用的场景下的一次尝试,由两种尺寸的大语言对话模型和多模态理解模型组成( GLM-Edge-1.5B-Chat,GLM-Edge-4B-Chat,GLM-Edge-V-2B,GLM-Edge-V-5B)。其中,1.5B / 2B 模型主要面向手机、车机等平台, 4B / 5B 模型主要面向 PC 等平台。

英特尔 AI PC 可以帮助用户利用人工智能技术提高工作效率、创意、游戏、娱乐和安全等性能。它搭载 CPU、GPU 和 NPU,可在本地更高效地处理 AI 任务。其中我们可以依靠 CPU 来运行较小的工作负载并实现低延迟,而 GPU 则非常适合需要并行吞吐量的大型工作负载,例如大预言模型推理任务,NPU 能够以低功耗处理持续运行 AI 工作负载,提高效率。开发者可以利用英特尔 OpenVINO™ 工具套件充分激活这些 AI 处理单元,更高效地部署深度学习模型,其中 GLM-Edge 就是一个非常适合运行在 AI PC 上的端侧模型系列。本文将分享如何利用 OpenVINO™ 在本地部署最新 glm-edge-chat 与 glm-edge-v 模型。

示例地址

https://github.com/openvino-dev-samples/glm-edge.openvino

官方仓库示例

https://github.com/THUDM/GLM-Edge/tree/main?tab=readme-ov-file#transformers--openvino--vllm-demo

AI PC Benchmark数据

https://github.com/THUDM/GLM-Edge/tree/main?tab=readme-ov-file#intel

模型合集地址:

https://modelscope.cn/collections/GLM-Edge-ff0306563d2844

01.环境安装与配置

以下为示例环境的快速部署方式,详细过程可以参考示例仓库中的 README 文档。

1. 下载示例仓库

git clone https://github.com/openvino-dev-samples/glm-edge.openvino.git

2. 安装环境依赖

cd glm-edge.openvino

python3 -m venv openvino_env

source openvino_env/bin/activate

pip install -r requirements.txt

02.glm-edge-chat 转化与部署

1. 模型转换与量化

由于 glm-edge-chat 的预训练模型是基于 PyTorch 框架的,因此我们可以利用 Optimum-intel 快速将 safetensor 格式的预训练模型转化为 OpenVINO™ 的 IR 格式,并通过 NNCF 工具对模型进行权重量化压缩,以此提升推理性能,降低资源占用。

python3 glm-edge-chat/convert.py --model_id ZhipuAI/glm-edge-1.5b-chat --precision int4 --output {your_path}/glm-edge-1.5b-chat-ov --modelscope

其中:

  • `--model_id` - 用于设定 Huggngface/ModelScope的 模型id,或者也可以是原始模型的本地路径。
  • `--output` - 转换后模型保存的地址。
  • `--modelscope` - 是否通过魔搭社区下载模型。

2. Optimum-intel 部署

为了方便 Transformers 库用户体验 OpenVINO™,开发者可以利用 Optimum-intel 所提供的类 Transformers API 进行模型任务的部署。在不改变原本代码逻辑的前提下,只需要将 AutoModelForCausalLM 对象切换为 OVModelForCausalLM,便可以轻松实现对于推理后端的迁移,利用 OpenVINO™ 来加速 glm-edge-chat 原有的 pipeline。

from optimum.intel.openvino import OVModelForCausalLM
from transformers import AutoConfig, AutoTokenizer

ov_model = OVModelForCausalLM.from_pretrained(
    llm_model_path,
    device='GPU',
    config=AutoConfig.from_pretrained(llm_model_path, trust_remote_code=True),
    trust_remote_code=True,
)
tokenzier = AutoTokenizer.from_pretrained(llm_model_path, trust_remote_code=True)
input_tokens = tokenzier(prompt, return_tensors="pt", **tokenizer_kwargs)
answer = ov_model.generate(**input_tokens, max_new_tokens=1024)
tokenzier.batch_decode(answer, skip_special_tokens=True)[0]


在这个示例中,开发者可以通过运行 chat.py 脚本来构建一个简单的聊天机器人,并支持流式输出。使用方法如下:

python3 glm-edge-chat/chat.py --model_path {your_path}/glm-edge-1.5b-chat-ov --max_sequence_length 4096 --device GPU

其中:

  • `--model_path` - OpenVINO™ IR 模型所在目录的路径。
  • `--max_sequence_length` - 输出标记的最大大小。
  • `--device` - 运行推理的设备。例如:"CPU","GPU"。

3. 效果展示

以下视频将展示该示例在英特尔® 酷睿™ Ultra 处理器(第二代)上的运行效果:

001.gif

03.glm-edge-v 转化与部署

1. 模型转换与量化

目前 glm-edge-v 的推理任务还没有被完全集成进 Optimum 工具中,因此我们需要手动搭建模型的转换和量化任务,其中包含语言模型 language_model,图像编码模型 vision_model,和文本编码模型 embedding_model。

为了简化转化步骤,我们提前对这些转化任务行进行了封装,开发者只需要调用示例中提供的函数便可完成这些模型的转换,并对其中负载最大的语言模型进行量化。

python3 glm-edge-v/convert.py --model_id ZhipuAI/glm-edge-v-2b --output {your_path}/glm-edge-v-5b-ov –modelscope

其中:

  • `--model_id` - 用于设定 Huggngface/ModelScope的 模型id,或者也可以是原始模型的本地路径。
  • `--output` - 转换后模型保存的地址。
  • `--modelscope` - 是否通过魔搭社区下载模型。

2. 图片内容理解

此外在该示例中,我们也对模型的推理任务进行封装,通过导入 OvGLMv 对象变可以可快速部署图像理解任务。通过以下示例脚本可以快速对模型效果进行验证。

python3 qa.py --model_path {your_path}/glm-edge-v-2b-ov --query "Please describe this picture" --image_path {your_path}/your_test_image.jpg --max_sequence_length 4096 --device CPU

其中:

  • `--model_path` - OpenVINO™ IR 模型所在目录的路径。
  • `--query` - 用户输入的问题文本。
  • `--image` - 待识别的图片文件路径。
  • `--max_sequence_length` - 输出标记的最大大小。
  • `--device` - 运行推理的设备。 例如:"CPU","GPU"。

3. 效果展示

以下为经过 OpenVINO™ 量化后的 glm-edge-v-2b 模型输出结果。

  • 图片输入:

添加图片注释,不超过 140 字(可选)

  • 输入:

“请描述这张图片”

  • 模型输出:

“这是一张照片,显示了一辆停在一栋红色砖墙前白色栏杆的建筑物旁边的白色皮卡车,有四个黑色的轮胎和一个带顶篷的驾驶室。在图片中间可以看到停着的一辆白色皮卡车。这辆车停在路边,其尾部有一个梯形托盘,看起来结构坚固,适合装载或卸载重物。它的车顶是白色的,带有黑色的轮胎和黑色的框架。车身颜色为白色,带有黑色的边框窗户和把手。驾驶室有透明的玻璃,可以看到内部的司机座椅。车尾部有一个梯形形状的拖车。汽车旁边是灰色的地砖。”

04.总结

通过 OpenVINO™ 封装后的 API 函数,开发者可以非常便捷地对预训练模型进行转化压缩,并实现本地化的推理任务部署。同时基于 GLM-Edge 在小语言模型场景下强大的文本与图像理解能力,我们仅在轻薄本上便可以构建起一个完整的语言模型应用,在保护用户数据隐私的同时,降低硬件门槛。

参考资料

相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
相关文章
|
安全 SDN 网络虚拟化
变形金刚外传0x05:虚拟机版本Edge传输节点部署
这几日与同事聊起NSX,谈起如何用最简单的语言来描述它,无非就是软件定义网络SDN+网络功能虚拟化NFV+安全微分段DFW。NSX DC产品的软件定义网络是借助在Hypervisor内核中的vdl2和vdrb模块实现,vsip模块则用于实现安全微分段功能。那么问题来了,包括网络地址转换NAT、负载均衡器Load Balancer等在内的NFV是由谁在承载的呢?
变形金刚外传0x05:虚拟机版本Edge传输节点部署
|
人工智能 边缘计算 运维
IEEE EDGE 2020论文:Astraea — 以优雅的方式在边缘部署AI服务
近日,阿里云边缘计算团队博士后付哲的论文《Astraea: Deploy AI Services at the Edge in Elegant Ways》入选2020年IEEE边缘计算国际会议(IEEE International Conference on Edge Computing),并在大会上进行了宣讲。他和他的团队如何看待以上问题,本文将为您解答。
10576 3
IEEE EDGE 2020论文:Astraea — 以优雅的方式在边缘部署AI服务
|
f2etest Windows
F2etest 部署 Microsoft Edge 浏览器云
由于 Windows Server 版不支持 Edge,所以我们只能在 Windows 10 上进行配置部署,在部署 Microsoft Edge 之前,你需要准备如下:   Windows 10 专业版设备一台; 可部署 F2etest-web Linux 服务器一台,已部署则可忽略。   1. 安装远程服务   下载链接:https://gi
1791 0
|
Web App开发 JavaScript 前端开发
|
3月前
|
Web App开发 安全 中间件
谷歌、火狐、Edge等浏览器如何使用ActiveX控件
allWebPlugin 是一款为用户提供安全、可靠且便捷的浏览器插件服务的中间件产品,支持 Chrome、Firefox、Edge 和 360 等浏览器。其 V2.0.0.20 版本支持一个页面加载多个插件,并解决了插件与浏览器之间的焦点问题。用户可通过“信息化系统 + allWebPlugin + 插件 + 浏览器”的解决方案实现 ActiveX 插件的无缝集成。下载地址见文末,安装包含详细说明。
|
3月前
|
安全 搜索推荐 数据安全/隐私保护
定制你的清爽Mac版Edge浏览器
【10月更文挑战第5天】本文介绍了如何定制Mac版Edge浏览器以实现清爽高效的操作体验。内容包括:选择主题以适应不同环境,自定义工具栏以保持界面简洁;启用隐私浏览模式及调整隐私设置来保护个人信息;通过更新浏览器和开启安全筛选器来加强安全性;安装扩展程序以增强功能,并设置启动选项和快捷方式以便于操作。通过这些方法,你可以根据个人需求打造个性化的浏览器环境。
|
4月前
|
安全 Oracle Java
edge浏览器加载java插件
edge浏览器加载java插件
272 1
|
4月前
|
安全
微软网站上关于在Edge浏览器中打开或关闭smartScreen的说明有误
微软网站上关于在Edge浏览器中打开或关闭smartScreen的说明有误
微软网站上关于在Edge浏览器中打开或关闭smartScreen的说明有误
|
4月前
|
Web App开发 缓存 安全
解决Edge浏览器提示“此网站已被人举报不安全”
【9月更文挑战第1天】当 Edge 浏览器提示“此网站被举报为不安全”时,可尝试:关闭 Microsoft Defender SmartScreen;检查网站安全性;清除缓存和 Cookie;更新 Edge 至最新版;或使用其他浏览器。若问题依旧,联系网站管理员和技术支持。同时,避免在不可信网站输入敏感信息,保护网络安全与隐私。
649 7

热门文章

最新文章