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

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

3天内不再提示

浅析OpenVINO 2024.5的新功能

英特尔物联网 来源:英特尔物联网 2024-11-25 17:12 次阅读

作者:

Whitney Foster OpenVINO产品专家

Yury Gorbachev 英特尔院士 OpenVINO 产品架构师

翻译:

武卓博士 英特尔OpenVINO软件布道师

在过去的一年里,大语言模型(LLM)彻底改变了文本处理,为文本摘要、重写、文档分析等提供了解决方案。然而,我们每天与之交互的数据不仅仅是文本,而是多模态的,包括视频音频和图像。多模态的存在非常普遍,事实上在安全、监控或医疗保健等某些领域至关重要。它代表了从处理文本到处理不同输入和生成不同形式输出的重大演变。例如,多模态模型可以接收长视频,并以图像或音频片段的形式输出关键信息

为了满足多模态 AI 的需求,OpenVINO2024.5 引入了新的流水线,使开发者能够轻松部署处理语音、图像和视频以及文本的解决方案。让我们探讨一下这些新功能是如何工作的,以及如何从今天开始使用它们。

OpenVINO 2024.5 中的

主要多模态 AI 流水线

文生图

通过文生图流水线(Text2ImagePipeline),利用扩散模型,比如 Stable Diffusion 以及 Stable Diffusion XL 模型, 从输入的文本提示词中生成图像。

输出示例:从一个描述性的文本提示词生成一张现实图像。

语音到文本转换

通过 WhisperPipeline 利用 Whisper 模型家族,将语音音频转换成文字。

使用场景示例:转录访谈或播客,以实现高效的文档记录。

视觉语言处理

用诸如 LLaVA 以及 miniCPMV 的视觉语言模型(VLMs)通过 VLMPipeline 处理图像。

应用示例:用文本描述注释和分析医学图像。

提升部署效率

流水线支持 C++ 以及 Python,以实现更灵活的集成。

模型可以使用 optimum-intel 由 Hugging Face 导出并利用神经网络压缩框架(NNCF)压缩。为获得最优性能,将模型压缩至 INT4 格式。

预览版特性:这些功能正在预览支持中。其它经过验证的模型和流水线优化正在进行中。查看我们的 GitHub 文档以获取更新。有关支持的模型和流水线的最新列表,您可以在此处查看我们的 Github 存储库。

在流水线中支持 LoRA 适配器

大模型的训练异常困难且所需资源密集。LoRA 适配器允许使用很少的资源快速有效地微调模型。这使您可以根据新的图像生成风格或特定领域的任务自定义流行的 AI 模型,而无需重新训练整个模型,AI 社区中有许多预制的适配器和库可供您直接使用。

OpenVINO 2024.5 引入了预览版功能为文本和图像生成模型加载 LoRA 适配器,而无需在编译前将这些适配器融合到主模型中。可以为同一模型加载多个 LoRA 适配器,并根据目标场景在每次生成调用的运行时在这些适配器之间动态切换。

例如,可以通过具有多个自定义 LoRA 的文生图流水线 Text2ImagePipeline 编译模型,然后选择在运行时应用哪种样式的图像,而无需重新编译模型。这种定制化的切换对性能的影响是有较小的,我们正在努力进一步完善它。

以下是我们提供的 LLM 流水线的基本 LoRA 使用代码片段。您可以在我们的仓库中找到 python 的完整示例和类似示例。

using namespace ov::genai;
//path to adapter (safetensors file)
Adapter adapter(adapter_path);
// compile pipeline and register all required adapters during compilation
LLMPipeline pipe(models_path, device, adapters(adapter));  
//Generate with LoRA adapter and alpha set to 0.75
std::cout << pipe.generate(prompt, max_new_tokens(100), adapters(adapter, 0.75));
//Now, generate without LoRA adapter
std::cout << pipe.generate(prompt, max_new_tokens(100), adapters());

通过推测性解码获得高效文本生成

推测性解码已被证明可以通过使用两个模型而不是一个模型来提高生成性能。简而言之,一个非常小的草稿模型会生成文本,并由一个全尺寸的文本生成模型定期进行校正。

从 2024.5 版本开始,通过一个推测性解码的算法实现,开发者可以在大语言模型流水线 LLMPipeline 中使用两个模型。这意味着在创建流水线的时候,开发者可以给它传递附加的草稿模型。以下是一段简化后的代码片段:

//compiling pipeline with draft model and configuration for generation options
ov::LLMPipeline pipe(    
 main_model_path,    
 main_device,     
 ov::draft_model(draft_model_path, draft_device),    
 ov::scheduler_config(scheduler_config));


//running generation
pipe.generate(prompt, config);

你可以在我们的样例仓库这里找到 python 示例以及全部示例。

当在 AI PC 中运行一个应用的时候,有许多推理选项可用。比如,草稿模型和主模型可以都运行在集成显卡上,或者以组合的方式运行在 CPU 以及集成显卡上。根据草稿模型和主模型的模型大小以及部署的限制,不同的组合方式效率会更高。我们发现,在 CPU 上运行草稿模型以及在集成显卡上运行主模型提供了最具性能的生成方式。

草稿模型并非广泛适用于所有公共模型,典型的限制是草稿模型的训练方式应与大模型相似;至少,分词器应该匹配。

我们已经与英特尔研究院一起,通过使用一项叫做 FastDraft 的新技术,研发了几个高效的小型草稿模型,这里有详细的论文描述。

Phi-3.5 以及 Llama 的高效的草稿模型(Phi-3.5草稿模型大小50MB)已经放在我们在 Hugging Face 的模型仓库中,可以从那里下载快照。

在英特尔 NPU 上支持 LLM

我们的 GitHub 上有很多关于英特尔NPU 上支持 LLM 的请求,现在, Llama 3 8B、Llama 2 7B、Mistral-v0.2-7B、Qwen2-7B-Instruct 和 Phi-3 Mini 的文本生成模型均被添加了这一支持。

现在,当您通过 OpenVINO GenAI API 大语言模型流水线 LLMPipeline文档链接编译模型时,您可以将 NPU 指定为目标设备。如果 NPU 存在于系统中,底层代码将为 NPU 编译模型,后续调用将通过 NPU 运行时堆栈运行。

使用 NPU 时,目前的建议是使用 Channel-Wise 压缩算法压缩模型。这在性能方面更有效率。您可以在我们的文档中找到如何操作。

致谢!

时光飞快!又到了一年的年末,我们想对所有贡献者和 OpenVINO 社区的持续支持表示感谢。您的贡献和反馈帮助我们共同推进了 OpenVINO 的发展之旅。我们期待在2025年一起揭开下一步的面纱!

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

    关注

    61

    文章

    9919

    浏览量

    171594
  • 流水线
    +关注

    关注

    0

    文章

    120

    浏览量

    25639
  • AI
    AI
    +关注

    关注

    87

    文章

    30365

    浏览量

    268614
  • OpenVINO
    +关注

    关注

    0

    文章

    90

    浏览量

    185

原文标题:OpenVINO™ 2024.5 新发布:使用流水线简易部署多模态 AI

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

收藏 人收藏

    评论

    相关推荐

    Cadence_16.5的新功能

    ALLEGRO16.6的新功能,希望对你有用。
    发表于 11-15 10:19

    Cadence/OrCAD PSpice 16.6新功能介绍

    介绍了版本16.6的新功能。主要有:learning pspice等
    发表于 07-02 11:33

    诺基亚N78下新功能

    N78终于入手 SHOW下新功能
    发表于 05-05 14:32

    Cadence Allegro 17.4新功能

    Cadence Allegro 17.4新功能
    发表于 10-28 21:19

    AWTK Designer 1.0.2有哪些新功能

    为不断提升用户体验,本次Designer 1.0.2增加了自定义控件和插件管理以及其他许多新功能,并对现有功能进行了优化,让我们一起来看看这些很酷的新功能吧!
    发表于 03-04 08:27

    LTspice IV有什么新功能

    LTspice IV有什么新功能
    发表于 05-27 11:46 0次下载
    LTspice IV有什么<b class='flag-5'>新功能</b>?

    LTspice IV有什么新功能

    LTspice IV有什么新功能
    发表于 05-27 11:48 2次下载
    LTspice IV有什么<b class='flag-5'>新功能</b>?

    LTspice IV有什么新功能

    LTspice IV有什么新功能
    发表于 05-27 12:20 2次下载
    LTspice IV有什么<b class='flag-5'>新功能</b>?

    LTspice IV有什么新功能

    LTspice IV有什么新功能
    发表于 05-27 12:26 0次下载
    LTspice IV有什么<b class='flag-5'>新功能</b>?

    LTspice IV有什么新功能

    LTspice IV有什么新功能
    发表于 05-27 12:28 0次下载
    LTspice IV有什么<b class='flag-5'>新功能</b>?

    LTspice IV有什么新功能

    LTspice IV有什么新功能
    发表于 05-27 12:52 2次下载
    LTspice IV有什么<b class='flag-5'>新功能</b>?

    LTspice IV有什么新功能

    LTspice IV有什么新功能
    发表于 05-27 13:18 1次下载
    LTspice IV有什么<b class='flag-5'>新功能</b>?

    鸿蒙系统有什么新功能

    鸿蒙系统有什么新功能?在前段时间,华为正式发布了鸿蒙系统,鸿蒙系统勾起了许多小伙伴的好奇心,那么应该有很多人好奇鸿蒙系统有什么新功能,那么鸿蒙系统有什么新功能呢?下面小编告诉大家鸿蒙系统有什么
    的头像 发表于 07-06 16:22 7258次阅读

    苹果13有哪些新功能

    苹果13有哪些新功能
    的头像 发表于 09-04 16:54 8074次阅读

    OpenVINO™ C# API详解与演示

    OpenVINO C# API 支持 NuGet 程序包安装方式,这与 OpenVINO C++ 库的安装过程相比,更加简单。如果使用 Visual Studio 开发 AI 项目,则可以通过 NuGet 程序包管理功能直接安装
    的头像 发表于 10-13 16:39 733次阅读
    <b class='flag-5'>OpenVINO</b>™  C# API详解与演示