开发者实战 | 介绍OpenVINO™ 2023.1:在边缘端赋能生成式AI

点击蓝字

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

作者:Yury Gorbachev 英特尔院士

翻译:武卓 英特尔AI软件布道师;杨亦诚 英特尔 AI软件工程师

32e8105b6be304ab1cd797b4202e4704.png

在过去的一年里,我们看到了生成式AI用例和模型的爆炸式增长。现在几乎每周都会针对不同的领域发布新的值得注意的生成式模型,这些模型在不断增加的数据集上训练,具有各种计算复杂性。使用像LoRA这样的方法,可以在非常适度的训练加速器上微调大模型,这解锁了对基础模型的更多修改。由于资源消耗,部署这些模型仍然是挑战,并且高度依赖于在云端部署模型。

随着 OpenVINO™  2023.1 版本的发布,我们希望将生成式 AI 的强大功能引入常规台式机和笔记本电脑,让这些模型可以运行在在资源受限的本地环境中,并被您尝试集成到自己的应用程序中。我们在整个产品中针对这些场景进行了优化,实现了一些关键功能,并为我们的下一步工作计划奠定了基础。

也就是说,我们的变化不仅限于生成式AI,我们还改进了产品的其它部分,并希望它能使您的工作更轻松,并为您带来额外的价值。让我们来看看这些变化到底是什么。 

生成式AI功能

Generative AI features

39add5f28353d7af86fb0f97fdffbcbf.png

大模型的整体堆栈优化。来自生成式AI家族的模型有一个共同点——它们亟需资源。模型尺寸巨大,运行它们所需的内存量非常高,对内存带宽的需求也非常大。例如不必要的权重搬运这样简单的问题,都可能会导致由于内存不足而无法运行模型。

为了更好地适应这一点,我们已经跨推理堆栈工作,包括 CPU 和 GPU(集成显卡和独立显卡),目标就是优化我们使用这些模型的方式,包括优化读取和编译模型所需的内存,优化如何处理模型的输入和输出张量以及其他内部结构,从而缩短模型执行时间。

大型语言模型的权重量化。LLM 在执行时需要大量的内存带宽。为了对此进行优化,我们在 NNCF(神经网络压缩框架) 优化框架和 CPU 推理中实现了 int8 LLM 权重量化功能。

使用此功能时,NNCF 将生成优化的 IR 模型文件,与精度为 fp16 的常规模型文件相比,该文件能够将尺寸减小一半。IR 文件将在 CPU 插件中被执行额外的优化,这将改善延迟并减少运行时内存消耗。GPU 的类似功能正在实施中,并将在后续发布的版本中提供。

更容易转换模型。大多数LLM目前来自基于PyTorch的环境。要转换这些模型,您现在可以使用我们的直接 PyTorch 转换功能。对于LLM,与我们之前通过ONNX格式的路径相比,这大大加快了转换时间并减少了内存需求。

总体而言,由于我们的优化,我们能够在CPU和GPU上均能提高 LLM 性能。[WZ1] 此外,我们还按 倍数级减少了运行这些模型所需的内存量。在某些情况下,新版本OpenVINO™可以让我们运行那些以前由于内存不足而失败的模型。我们一直在数十个不同规模和不同任务的LLM上验证我们的工作,以确保我们的方法能够很好地扩展到我们所有的平台和支持的操作系统。

我们的转换 API 和权重量化功能也集成到Hugging Face optimum-intel扩展中,允许您使用 OpenVINO™ 作为推理堆栈运行生成式模型,或以方便的方式将模型导出为 OpenVINO™ 格式。

简化您的工作流

Simplifying your workflow

64812b51c1f5f613fb0d81e9869d8f37.png

不再需要开发包,提供统一的工具。从 2023.1 版本开始,我们不再要求您为运行时和开发环境分别安装单独的软件包。我们一直致力于简化我们的工具,并将所有必要的组件集成到单个 OpenVINO™ 软件包中。这也意味着模型转换和推理可以通过所有OpenVINO™分发机制以统一的方式获得:pip,conda,brew和archive。

此外,从此版本开始,OpenVINO™ Python API 可从所有支持最低要求 Python 版本 (3.7) 的软件包中获得。这意味着除了以前可用的 pip 之外,还有conda、brew和指定的 apt 版本。

更高效、更友好的模型转换。我们正在推出 OpenVINO™ 模型转换工具 (OVC),该工具正在取代我们众所周知的离线模型转换任务中的模型优化器 (MO) 工具。该工具以OpenVINO™ 包形式提供,依靠内部模型前端来读取框架格式,不需要原始框架来执行模型转换。例如,如果您想将TF模型转换为OpenVINO™,则不需要安装TensorFlow。同样,如果您想简单地在 OpenVINO™运行时中读取此模型以进行推理而无需转换,同样也不需要 TensorFlow。

为了在 Python 脚本中转换模型,我们进一步改进了convert_model API。例如,它允许将模型从 PyTorch 对象转换为 OpenVINO™ 模型,并编译模型以进行推理或将其保存到 IR格式,请参见以下示例:

6e017fa959b31ec0cd8f48e469a3a849.png

请注意,我们还简化了我们的Python API,可以直接从OpenVINO™命名空间获得这些API,因此这一切变得更简单了。您仍然可以从旧命名空间访问函数,如果您需要 mo 工具,可以安装 OpenVINO™-dev。这个工具本身也仍然可用,但我们建议迁移到 ovc 工具。

默认切换到 fp16 IR。随着转换工具的变化,我们现在切换到使用 fp16 精度作为 IR 中的数据类型。这允许将模型大小减小 一半(相对FP32精度的模型),并且根据我们执行的测试对准确性没有影响。值得一提的是,IR 精度不会影响硬件插件的执行精度,默认情况下,插件始终以最佳性能继续执行。

更好的 PyTorch 兼容性

Better PyTorch compatibility

5f08b4344c56b18b006b5386290e91e9.png

前面已经提到,直接转换PyTorch模型的功能现在已经成熟,该方案已经被集成在我们的 HuggingFace optimum-intel中进行模型转换。因此,现在转换模型更容易,因为您绕过了 ONNX 格式的额外步骤(我们仍然无限制地支持)。

为了使OpenVINO™更接近PyTorch生态系统,我们引入了对torch.compile和相应后端的支持。您现在可以通过 OpenVINO™ 堆栈运行您的模型,方法是通过 torch.compile 编译它并指定 OpenVINO™ 作为后端!

如下例所示:

e9de879460be6614f52d73ccf0cb285b.png

此功能正在积极增强,我们期待更好的性能和操作覆盖范围,但它已经在我们的集成中使用,例如Stable Diffusion WebUI。

(复制以下链接查看详细信息:https://github.com/openvinotoolkit/stable-diffusion-webui/)

令人兴奋的新Notebook用例

New notebooks with exciting use cases

5c8a8ab11ba67344bcdbfcfd52823f13.png

为了展示您可以直接从笔记本电脑上试用的新功能,我们制作了一些Jupyter notebooks示例并更新了现有notebooks。以下是最令我们兴奋的: 

基于大语言模型的聊天机器人(LLM Chatbot):

https://github.com/openvinotoolkit/openvino_notebooks/tree/main/notebooks/254-llm-chatbot 

ed8bd30601b8e4c9e479d3ae8a6478de.png

文生图模型StableDiffusion XL:

https://github.com/openvinotoolkit/openvino_notebooks/tree/main/notebooks/248-stable-diffusion-xl

(复制链接到浏览器查看详细信息)

29d96341a4c3d1e315675bcd0f449ed3.png

文生图模型 Tiny SD:

https://github.com/openvinotoolkit/openvino_notebooks/tree/main/notebooks/251-tiny-sd-image-generation 

(复制链接到浏览器查看详细信息)

940ef8bd1737033c7b02b551b313eb57.png

生成音乐模型 MusicGen:

https://github.com/openvinotoolkit/openvino_notebooks/blob/main/notebooks/250-music-generation

(复制链接到浏览器查看详细信息)

生成视频模型Text-to-video:

https://github.com/openvinotoolkit/openvino_notebooks/tree/main/notebooks/253-zeroscope-text2video 

(复制链接到浏览器查看详细信息)

05bf9e8408c72a73b12438d95b4985fa.gif

OpenVINO™

--END--

你也许想了解(点击蓝字查看)⬇️➡️ 基于 ChatGLM2 和 OpenVINO™ 打造中文聊天助手➡️ 基于 Llama2 和 OpenVINO™ 打造聊天机器人➡️ OpenVINO™ DevCon 2023重磅回归!英特尔以创新产品激发开发者无限潜能➡️ 5周年更新 | OpenVINO™  2023.0,让AI部署和加速更容易➡️ OpenVINO™5周年重头戏!2023.0版本持续升级AI部署和加速性能➡️ OpenVINO™2023.0实战 | 在 LabVIEW 中部署 YOLOv8 目标检测模型➡️ 开发者实战系列资源包来啦!➡️ 以AI作画,祝她节日快乐;简单三步,OpenVINO™ 助你轻松体验AIGC
➡️ 还不知道如何用OpenVINO™作画?点击了解教程。➡️ 几行代码轻松实现对于PaddleOCR的实时推理,快来get!➡️ 使用OpenVINO 在“端—边—云”快速实现高性能人工智能推理
扫描下方二维码立即体验 
OpenVINO™ 工具套件 2023.1

点击 阅读原文 立即体验OpenVINO 2023.1

3f5e2e7b42cbfefc8451a1257902d434.png

文章这么精彩,你有没有“在看”?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值