OpenVINO™ 2024.2 - 三行代码完成生成式AI部署 | 开发者实战

作者:贾志刚

英特尔边缘计算创新大使

ad55649d2841b32021dc49f2d1c9a35f.png

01

OpenVINO™介绍

OpenVINO2024.2版本跟之前版本最大的不同是OpenVINO2024.2分为两个安装包分别是基础包与生成式AI支持包,新发布的GenAI开发包支持C++与Python语言接口调用,支持多种LLM加载与推理部署能力,实现了OpenVINO对CNN网络、生成式模型、LLM网络主流模型的全面推理支持。安装包下载地址如下:

https://docs.openvino.ai/install

1e9c6b0972814f442e5ed9b5088c8012.png

02

OpenVINO™生成式AI支持

OpenVINO2024版本支持大量文本、图像、音频生成模型,如 Llama 2、MPT、OPT、Stable Diffusion、Stable Diffusion XL。这样可以开发多模式应用程序,从而实现一次写入、随处部署的功能。OpenVINO支持的生成式AI方式主要包括以下三种方式分别是:

  • Hugging Face:通过 Optimum Intel 扩展,使用 OpenVINO 作为 Hugging Face 框架(转换器、扩散器)的后端。

  • OpenVINO GenAI 风格:使用 OpenVINO 生成式AI的APIs (Python and C++)

  • 基础 OpenVINO:OpenVINO 原生 API(Python 和 C++)与自定义管道代码一起使用

03

三种部署方式好处与不同

Hugging Face API 易于学习,提供简单的界面,并隐藏了模型初始化和文本生成的复杂性,以获得更好的开发人员体验。但是,它具有更多的依赖项、更少的自定义项,并且无法移植到 C/C++。

OpenVINO GenAI Flavor 通过自动管理文本生成循环、标记化和调度等基本任务来降低 LLM 实现的复杂性。原生 OpenVINO API 提供了更多的实践体验,需要手动设置这些功能。这两种方法都旨在最大程度地减少依赖关系和整体应用程序占用空间,并允许在 C++ 应用程序中使用生成模型。

建议从拥抱脸框架开始,尝试不同的模型和场景。然后,如果需要进一步优化,该模型可以与 OpenVINO API 一起使用。Optimum Intel 提供的接口支持使用神经网络压缩框架 (NNCF) 进行模型优化(权重压缩),并将模型导出为 OpenVINO 模型格式,以便在原生 API 应用程序中使用。

ea87cb4087d35fa10a2c87e7e0b5b484.png

04

LLM推理支持

像 GPT 这样的大型语言模型 (LLM) 是变革性的深度学习网络,能够完成从文本生成到语言翻译的广泛自然语言任务。OpenVINO2024优化了这些模型的部署,增强了它们的性能并集成到各种应用中。下面的代码展示了如何将 LLM 与 OpenVINO20204 结合使用,从模型加载和转换到高级用例。

d7e5343a13bf0077546b3dfd89ac344d.png

Python版本开发包安装

pip install openvino-genai==2024.2.0

pip install optimum-intel -i https://pypi.tuna.tsinghua.edu.cn/simple

安装optimum

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple optimum auto-gptq

pip install openvino-tokenizers

OpenVINO加速支持

pip install --upgrade-strategy eager optimum[openvino,nncf]

export HF_ENDPOINT=https://hf-mirror.com

optimum-cli export openvino --model "TinyLlama/TinyLlama-1.1B-Chat-v1.0" --weight-format fp16 --trust-remote-code output

2a45164b1facd5be286cb090f84d8a18.png

需要注意一下版本匹配问题,因为我之前安装了optimum版本较低导致无法生成分词得OpenVINO文件,所以直接推理挂,然后更新到最新版本就好,相关支持依赖包支持版本(亲测有效)

dc6df508cdd956917742a25cb1cdfa3e.png

如您所见,只需要几行代码就能建立一个LLM生成的流水线。这是因为从 Hugging Face Optimum-Intel 导出模型后,它已经存储了执行所需的所有信息包括分词器/反分词器和生成配置,从而能够获得与 Hugging Face 生成匹配的结果。我们提供 C++ 和 Python API 来运行 LLM、最少的依赖项列表和对应用程序的添加。

Python语言测试代码:

7487e5ee301c575995280dc09b8c8f62.png

C++语言测试代码

332c19e01b48cc07d06ec17ec81c4054.png

C++里面跑出来得结果:

78e24fb19070dfc3c8897703bdc6375d.png

更多参考这里:

https://docs.openvino.ai/2024/learn-openvino/llm_inference_guide/genai-guide.html

optimum-cli export openvino --model "TinyLlama/TinyLlama-1.1B-Chat-v1.0" --weight-format int4 --trust-remote-code output

---------------------------------------

*OpenVINO and the OpenVINO logo are trademarks of Intel Corporation or its subsidiaries.

-----------------------------

 OpenVINO 中文社区 

微信号 : openvinodev

B站:OpenVINO中文社区

“开放、开源、共创”

致力于通过定期举办线上与线下的沙龙、动手实践及开发者交流大会等活动,促进人工智能开发者之间的交流学习。

○ 点击 “ 在看 ”,让更多人看见

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值