0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

三行代码完成生成式AI部署

英特尔物联网 来源:英特尔物联网 2024-08-30 16:49 次阅读

作者:贾志刚

英特尔边缘计算创新大使

01OpenVINO介绍

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

https://docs.openvino.ai/install

wKgaombRh8-AU8uhAAG1HPVlRwE861.png

02OpenVINO生成式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 应用程序中使用。

wKgZombRh_6AW_VBAAPK1kFbWnQ942.jpg

04LLM推理支持

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

wKgZombRh-CABNbmAAEmz0B_Io4161.jpg

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

wKgZombRiBGAPQQqAAITU9-514E417.jpg

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

wKgaombRiBKAcavnAAGfVSGDVxk852.jpg

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

Python语言测试代码:

wKgaombRiBKAU7xFAAFHsv33OrE633.jpg

C++语言测试代码

wKgZombRiBKALibDAAGKiO8FVwg440.jpg

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

wKgaombRiBKAQIwXAAG9TC_yoBQ754.jpg

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 英特尔
    +关注

    关注

    60

    文章

    9737

    浏览量

    170615
  • 生成式AI
    +关注

    关注

    0

    文章

    462

    浏览量

    409
  • OpenVINO
    +关注

    关注

    0

    文章

    73

    浏览量

    139

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

文章出处:【微信号:英特尔物联网,微信公众号:英特尔物联网】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    急求教:能显示三行字符的液晶有哪些

    能显示三行字符(可以不是汉字)的液晶有哪些????
    发表于 05-31 10:02

    请问前三行是什么意思?

    create_page_table @ 设置页表 bl mmu_init @ 启动MMU ldr sp, =0xB4000000 @ 重设栈指针,指向SDRAM顶端(使用虚拟地址) ldr pc, =0xB0004000 @ 跳到SDRAM中继续执行第二部分代码halt_loop: b halt_loop请问其中
    发表于 06-13 22:56

    请问这三行代码是固定这样写的吗?

    u8 IPRADDR=NVIC_Channel/4;//每组只能存4个,得到组地址 u8 IPROFFSET=NVIC_Channel%4;//在组内的偏移 IPROFFSET=IPROFFSET*8+4; //得到偏移的确切位置这三行代码是固定这样写的吗???????
    发表于 10-24 21:34

    使用STM32CubeMX和X-CUBE-AI生成代码

    神经网络模型部署到MCU 之 环境搭建教程前提工作:已经搭建好了神经网络模型(tensorflow、keras),并进行了训练。目前工作:将网络部署到单片机上,用到的是STM32的开发板,使用到了STM32CubeMX和X-CUBE-A
    发表于 11-01 06:17

    三行搞定独立按键

    最近自己在做单片机的东西,准备参加比赛,偶然发现了独立按键的神助攻——三行搞定独立按键,看到网上很多描述的不清晰,自己又花时间整理了一下,话不多说先上代码:void Key_Read(void
    发表于 12-07 11:05

    STM32之三行按键宏定义

    STM32之三行按键按键宏定义unsigned char ucTrg= 0;unsigned char ucCont = 0;unsigned char uckey_times = 0
    发表于 03-02 06:52

    什么是三行按键?有什么用

    三行按键从出生到现在已经很多个年头了,经过几代优化,现在有两个版本,今天分析一下,也在本论坛扩充一下资源。我在本论坛搜索三行按键,并没有相关的帖子。首先说明一下什么是三行按键,有什么用,什么好处,以及...
    发表于 03-02 06:16

    国内首家单芯片微波雷达供应商“隔空智能”获三行资本A轮数千万投资

    隔空智能于今年7月获得三行资本、君度资本的投资,完成A轮融资。
    的头像 发表于 08-16 14:07 6535次阅读

    三行代码完成AI模型的部署

    为了解决AI部署落地难题,我们发起了FastDeploy项目。FastDeploy针对产业落地场景中的重要AI模型,将模型API标准化,提供下载即可运行的Demo示例。相比传统推理引擎,做到端到端的推理性能优化。FastDepl
    的头像 发表于 11-10 10:18 1173次阅读

    图为科技联合百度飞桨、英伟达共同推出AI软硬一体快速部署方案

    基于图为科技边缘计算机系列产品,仅用三行代码就能搞定百度飞桨AI算法的部署;让AI算法部署变得简
    的头像 发表于 12-20 11:01 1150次阅读
    图为科技联合百度飞桨、英伟达共同推出<b class='flag-5'>AI</b>软硬一体快速<b class='flag-5'>部署</b>方案

    什么是生成AI生成AI的四大优势

    生成AI是一种特定类型的AI,专注于生成新内容,如文本、图像和音乐。这些系统在大型数据集上进行训练,并使用机器学习算法
    发表于 05-29 14:12 4209次阅读

    Sweetviz让你三行代码实现探索性数据分析

    Sweetviz是一个开源Python库,它只需三行代码就可以生成漂亮的高精度可视化效果来启动EDA(探索性数据分析)。输出一个HTML。 如上图所示,它不仅能根据性别、年龄等不同栏目纵向分析数据
    的头像 发表于 10-17 10:59 367次阅读
    Sweetviz让你<b class='flag-5'>三行</b><b class='flag-5'>代码</b>实现探索性数据分析

    来看看他们用代码写的“三行诗”

    往期精选 原文标题:来看看他们用代码写的“三行诗” 文章出处:【微信公众号:宏景智驾】欢迎添加关注!文章转载请注明出处。
    的头像 发表于 10-25 15:55 264次阅读
    来看看他们用<b class='flag-5'>代码</b>写的“<b class='flag-5'>三行</b>诗”

    Sweetviz: 让你三行代码实现探索性数据分析

    Sweetviz是一个开源Python库,它只需三行代码就可以生成漂亮的高精度可视化效果来启动EDA(探索性数据分析)。输出一个HTML。 它不仅能根据性别、年龄等不同栏目纵向分析数据,还能对每个
    的头像 发表于 10-31 10:28 812次阅读
    Sweetviz: 让你<b class='flag-5'>三行</b><b class='flag-5'>代码</b>实现探索性数据分析

    NVIDIA数字人技术加速部署生成AI驱动的游戏角色

    NVIDIA 在 GDC 2024 大会上宣布,Inworld AI 等领先的 AI 应用程序开发者,正在使用 NVIDIA 数字人技术加速部署生成
    的头像 发表于 04-09 10:08 490次阅读
    NVIDIA数字人技术加速<b class='flag-5'>部署</b><b class='flag-5'>生成</b><b class='flag-5'>式</b><b class='flag-5'>AI</b>驱动的游戏角色