开发者实战 | 利用 OpenVINO™ 部署 HuggingFace 预训练模型的方法与技巧

文章介绍了如何使用OpenVINO工具套件加速HuggingFace的预训练模型部署,提供了两种方案:通过Optimum-Intel推理后端进行快速部署,以及直接导出ONNX模型利用OpenVINOruntime。Optimum-Intel简化了代码改动,支持CPU和GPU部署,同时介绍了模型压缩方法。另一种方案涉及模型导出为ONNX格式,适用于新模型或对代码控制需求高的情况。

点击蓝字

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

作者 |杨亦诚

排版 | 李擎

利用 OpenVINO™ 部署

 HuggingFace 预训练模型的方法与技巧

背景

作为深度学习领域的 “github”,HuggingFace 已经共享了超过 100,000 个预训练模型,10,000 个数据集,其中就包括了目前 AIGC 领域非常热门的“文生图”,“图生文”任务范式,例如 ControlNet, StableDiffusion, Blip 等。通过 HuggingFace 开源的 Transformers, Diffu­­­sers 库,只需要要调用少量接口函数,入门开发者也可以非常便捷地微调和部署自己的大模型任务,你甚至不需要知道什么是 GPT,BERT 就可以用他的模型,开发者不需要从头开始构建模型任务,大大简化了工作流程。从下面的例子中可以看到,在引入 Transformer 库以后只需要5行代码就可以构建一个基于 GPT2 的问答系统,期间 HuggingFace 会为你自动下载 Tokenizer 词向量库与预训练模型。

227c00db8cd31b0d3150c3c9a7d869e4.png

图:HuggingFace 预训练模型任务调用示例

但也正因为 Transformer, Diffusers 这些库具有非常高的易用性,很多底层的代码与模型任务逻辑也被隐藏了起来,如果开发者想针对某个硬件平台做特定的优化,则需要将这些库底层流水行进行拆解再逐个进行模型方面的优化。下面这张图就展示了利用 HuggingFace 库在调用 ControlNet 接口时的逻辑, 和他底层实际的流水线结构:

468c1286d925642c3e0fed988893479d.png

图:ControlNet 接口调用逻辑

c8c389b305454d84756e510e96e1d879.png

图:ControlNet 实际运行逻辑


OpenVINO™简介

用于高性能深度学习的英特尔发行版 OpenVINO™ 工具套件基于 oneAPI 而开发,以期在从边缘到云的各种英特尔平台上,帮助用户更快地将更准确的真实世界结果部署到生产系统中。通过简化的开发工作流程,OpenVINO™ 可赋能开发者在现实世界中部署高性能应用程序和算法。

在推理后端,得益于 OpenVINO™ 工具套件提供的“一次编写,任意部署”的特性,转换后的模型能够在不同的英特尔硬件平台上运行,而无需重新构建,有效简化了构建与迁移过程。此外,为了支持更多的异构加速单元,OpenVINO™ 的runtime API底层采用了插件式的开发架构,基于 oneAPI 中的 oneDNN 等函数计算加速库,针对通用指令集进行深度优化,为不同的硬件执行单元分别实现了一套完整的高性能算子库,充分提升模型在推理运行时的整体性能表现。

可以说,如果开发者希望在英特尔平台上实现最佳的推理性能,并具备多平台适配和兼容性,OpenVINO™是不可或缺的部署工具首选。因此接下来的方案也是在探讨如何利用 OpenVINO™ 来加速 HuggingFace 预训练模型。

OpenVINO™ 部署方案

简单来说目前有两种方案可以实现利用 OpenVINO™ 加速 Huggingface 模型部署任务,分别是使用 Optimum-Intel 插件以及导出 ONNX 模型部署的方式,两种方案均有不同的优缺点。

9804f4b5c2374e18098d1542bce5a53c.png

图:OpenVINO™ 部署 HuggingFace 模型路径

方案一:使用 Optimum-Intel 推理后端

Optimu

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值