魔搭ModelScope社区 2024年12月05日
用 OpenVINO™ 部署 GLM-Edge 全家桶
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

智谱AI发布了GLM-Edge系列模型,包括1.5B/2B对话和4B/5B多模态版本,旨在适配移动、PC等端侧设备。该系列模型优化了AI PC性能,支持本地高效运行,开发者可利用英特尔OpenVINO™工具套件进行部署。文章详细介绍了如何利用OpenVINO™在本地部署GLM-Edge-Chat和GLM-Edge-V模型,包括模型转换、量化、推理部署等步骤,并提供了具体的代码示例和效果展示,最终旨在降低硬件门槛,构建完整的语言模型应用,同时保护用户数据隐私。

🌱 **GLM-Edge系列模型面向端侧部署:** 智谱AI推出的GLM-Edge系列模型,包含对话和多模态版本,分别针对手机、车机、PC等不同平台进行优化,旨在实现AI模型的端侧部署。

💻 **OpenVINO™工具套件加速模型部署:** 开发者可利用英特尔OpenVINO™工具套件,将GLM-Edge模型转换为IR格式并进行量化,从而提升推理性能,降低资源占用,方便在本地高效部署。

💡 **GLM-Edge-Chat模型部署实践:** 文章提供了GLM-Edge-Chat模型的转换和部署示例,利用Optimum-intel提供的类Transformers API,开发者可以轻松实现模型推理后端的迁移,构建本地聊天机器人应用。

🖼️ **GLM-Edge-V模型部署实践:** 文章还介绍了GLM-Edge-V模型的转换和部署,包含语言模型、图像编码模型、文本编码模型等,并提供了图像内容理解的示例,展示了模型在图像理解方面的能力。

🛡️ **保护用户隐私,降低硬件门槛:** 通过本地部署GLM-Edge模型,开发者可以构建完整的语言模型应用,同时保护用户数据隐私,并降低硬件门槛,使更多用户能够体验AI技术带来的便利。

杨亦诚 2024-12-02 16:30 浙江

智谱AI的GLM-Edge系列模型为端侧部署而生,提供1.5B/2B对话和4B/5B多模态版本,适配移动与PC平台,优化AI PC性能,支持本地高效运行。

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


其中:


2. Optimum-intel 部署

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

from optimum.intel.openvino import OVModelForCausalLMfrom 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


其中:


3. 效果展示

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


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


其中:


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


其中:


3. 效果展示

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



“请描述这张图片”

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


04


总结



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


参考资料




?点击关注ModelScope公众号获取

更多技术信息~




跳转微信打开

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

GLM-Edge 端侧部署 OpenVINO 大语言模型 AI PC
相关文章