必学收藏!vLLM-Omni全模态模型高效推理引擎:从入门到实践

vLLM-Omni是专为全模态模型设计的高效推理引擎,支持文本、图像、音频、视频等多种模态输入输出。它超越传统自回归架构,采用异构模型流水线和Stage拆分技术,实现高吞吐性能。文章详细介绍了其架构特点、支持的模型类型,以及Qwen2.5-Omni等模型的部署实践,是开发大模型应用的必备工具。


其实很早就想写这个东西,只是一直没有时间去写,而且看里面的源代码真的很难看懂

介绍

看到vllm-Omni这个名字,如果是做大模型相关的,肯定就想着这是不是vllm家的?是的,它就是vllm家的,只是从vllm里面抽离出去,单独做了一个项目,你可能有一个疑问,为啥要抽离出来单独开一个子项目呢?

那是因为vLLM最初设计是专注于为了支持基于文本的自回归生成任务的大型语言模型推理引擎,并为其提供高吞吐量、内存高效服务。然而,随着生成式人工智能的迅速变化,模型不再只是文字输入、文字输出。如阿里开源的现有的Qwen3-Omni或者Wan2.2-I2V等最先进的模型能够跨越文本、图像、音频和视频进行推理,并通过多样的架构生成异构输出(音频、视频等格式)。这里如果对Omni模型结构不了解的可以看我之前的一篇文章:Omni(全模态)模型架构解读。

可能你会问,Transformer库也可以呀,而且一般官方模型服务商给的方式也是Tansformer,这里我就不多说了,直接放一个官方的图吧,你应该就知道了,为什么对于Omni模型要用这个推理引擎(看看是几倍的提升?)

架构

正因现在的模型格局发展,vLLM-Omni 应运而生,它是一个专门对全模态模型推断和服务支持的框架与引擎,它与vllm不同,它能够将文本、图片、音频、视频等作为输入,通过中间模态的转换,生成文本、图片、音频、视频,并以此作为输出。其整体架构如下图所示:

vllm-omni架构和vllm很相似但又不同,我们就先抛出它的优点,让大家能够记住它,其具体表现如下:

1、核心优势

vllm-Omni在架构上主要突出以下三个关键点:

1、它是真正的全模态,可以无缝处理和生成文本、图像、视频和音频。

2、它超越自回归架构,并将vllm自回归架构的经验(内存管理、流水线等)扩展到Diffusion Transformers 和其他相关的生成模型

3、采用异构模型流水线,通过协调复杂的模型工作流程,保障资源尽可能利用最大化,从而使单一请求尽可能的调用多个异构模型组件(例如,多模编码、AR 推理、基于扩散的多模生成等),从而实现高吞吐性能。

4、通过支持多种加速方式,使得推理更加高效快捷:并行推理(DP/TP/SP/USP…)、缓存加速(TeaCache/DBCache…)和计算加速(quantization/sparse attention…);

5、推理拆解成Stage(编码器/预填充/解码/生成),以提升吞吐量并降低延迟,这里我们以Qwen2.5-Omni来看它的Stage拆分(thinker、talker、code2wav),具体看配置文件,如下:

# stage config for running qwen2.5-omni with architecture of OmniLLM. stage_args: - stage_id: 0 # mark the unique id for each stage runtime: # The disaggregated configuration process: true # Run this stage in a separate process devices: "0" # Visible devices for this stage (CUDA_VISIBLE_DEVICES/torch.cuda.set_device) max_batch_size: 1 # the batch_size for offline inference engine_args: # Engine arguments for a certain engine model_stage: thinker model_arch: Qwen2_5OmniForConditionalGeneration # The model implementation registered in model_executor/models/registry.py worker_cls: vllm_omni.worker.gpu_ar_worker.GPUARWorker # The specific worker used scheduler_cls: vllm_omni.core.sched.omni_ar_scheduler.OmniARScheduler # The specific scehduler used gpu_memory_utilization: 0.8 # The gpu memory allocation for the stage within a single chip enforce_eager: true # Now we only support eager mode trust_remote_code: true # Needed by huggingface config parsing engine_output_type: latent # It claims that the stage will input latent hiddenstates besides token ids enable_prefix_caching: false # For request with hiddenstates output, the prefix caching is not supported now is_comprehension: true # If the stage is a text or multimodal comprehension module. If it is, the AsyncOmni will use its tokenizer as default final_output: true # If the stage has output as part of final outputs. If it is false, which means that the stage only works as a intermediate role. final_output_type: text # What is the final output type. It can be text and audio now. default_sampling_params: # sampling parameters for the stage. Their meaning aligns with vLLM. temperature: 0.0 top_p: 1.0 top_k: -1 max_tokens: 2048 seed: 42 detokenize: True repetition_penalty: 1.1 - stage_id: 1 runtime: process: true devices: "1" max_batch_size: 3 engine_args: model_stage: talker model_arch: Qwen2_5OmniForConditionalGeneration worker_cls: vllm_omni.worker.gpu_ar_worker.GPUARWorker scheduler_cls: vllm_omni.core.sched.omni_ar_scheduler.OmniARScheduler gpu_memory_utilization: 0.8 enforce_eager: true trust_remote_code: true enable_prefix_caching: false engine_output_type: latent engine_input_source: [0] custom_process_input_func: vllm_omni.model_executor.stage_input_processors.qwen2_5_omni.thinker2talker default_sampling_params: temperature: 0.9 top_p: 0.8 top_k: 40 max_tokens: 2048 seed: 42 detokenize: True repetition_penalty: 1.05 stop_token_ids: [8294] - stage_id: 2 runtime: process: true devices: "0" # Example: use a different GPU than the previous stage; use "0" if single GPU max_batch_size: 1 engine_args: model_stage: code2wav model_arch: Qwen2_5OmniForConditionalGeneration worker_cls: vllm_omni.worker.gpu_generation_worker.GPUGenerationWorker scheduler_cls: vllm_omni.core.sched.omni_generation_scheduler.OmniGenerationScheduler gpu_memory_utilization: 0.15 enforce_eager: true trust_remote_code: true enable_prefix_caching: false engine_output_type: audio engine_input_source: [1] final_output: true final_output_type: audio default_sampling_params: temperature: 0.0 top_p: 1.0 top_k: -1 max_tokens: 2048 seed: 42 detokenize: True repetition_penalty: 1.1 # Top-level runtime config (concise): default windows and stage edges runtime: enabled: true defaults: window_size: -1 # Simplified: trigger downstream only after full upstream completion max_inflight: 1 # Simplified: process serially within each stage edges: - from: 0 # thinker → talker: trigger only after receiving full input (-1) to: 1 window_size: -1 - from: 1 # talker → code2wav: trigger only after receiving full input (-1) to: 2 window_size: -1

这个图就很好解释了上面的配置文件。

除此之外,vllm-Omni集成了vllm的灵活易用的特点:

1、兼容OpenAI的API 接口;

2、无缝衔接Huggingface上众多开源模型,如:全模态模型(Qwen2.5-Omni, Qwen3-Omni等)、DiT模型(Qwen-Image、wan2.2等);

3、通过设置启动参数方式,支持张量、流水线、数据和专家并行。

说了这么多,就一句话,好用,为啥好用?因为vllm-Omni是截至目前为止,唯一一个统一了Omni和DIT模型的推理加速引擎。

2、架构

前不久,vllm-omni做了一个分享,我觉得这个图很不错,也分享给大家看看,其实整个架构的核心也在这个图中,如下:

vllm-omni三将AR和Diffusion整个在一起,AR沿用LLMEngine,而Diffusion则使用DiffusionEngine。

对于APIServer设计,也沿用了vllm的方案,有同步和异步,但是推理增加了diffusion engine。

3、支持模型

可以通过下图可知,支持的模型很多,更多是omni以及diffusion模型,这也弥补了diffusion推理框架的一个空白。

实践

本来想着试试text-to-video,用一下阿里开源的wan2.2-5b模型,查了一下发现,需要4090卡,emmm…,玩不起,4090都是24G起步,所以咱们玩玩image-to-image吧,试试Qwen-Image-Edit-2509。

呵呵…笑死,看了下模型,没一个模型能玩的,找到最低尺寸的5b模型,大小都超过了我显卡显存,截图给你们看。

好消息是,看到unsloth有量化模型,不过也很大,跑不起啦

Qwen2.5-Omni部署

1、下载模型

我们来试试Qwen2.5-Omni-3B模型吧,首先我们下载模型,如下图所示,已经下载好了模型,大概在6G大小左右。

2、docker部署

执行下面命令:

然后我们可以通过docker命令查看日志:

docker logs -f e79c

呐,最后就是我电脑显卡不足,连这个都跑不起来

3、vllm命令部署

当然,除了docker部署,我们还可以通过vllm serve 部署,很多人想这一块,其实在vllm里面就可以实现,不一定要用vllm-omni,你错了,既然vllm-omni新开了,肯定在后续的模型支持里面vllm不会去支持了,要支持也会在vllm-omni项目中。

vllm serve Qwen/Qwen2.5-Omni-7B --omni --port 8091

注意:–omni参数

如果你使用了stage部署,可以使用如下方式:

vllm serve Qwen/Qwen2.5-Omni-7B --omni --port 8091 --stage-configs-path /path/to/stage_configs_file

这个可以参考之前上面提到的Qwen2.5-Omni的三阶段。

如何系统的学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

一直在更新,更多的大模型学习和面试资料已经上传带到CSDN的官方了,有需要的朋友可以扫描下方二维码免费领取【保证100%免费】👇👇

01.大模型风口已至:月薪30K+的AI岗正在批量诞生

2025年大模型应用呈现爆发式增长,根据工信部最新数据:

国内大模型相关岗位缺口达47万

初级工程师平均薪资28K(数据来源:BOSS直聘报告)

70%企业存在"能用模型不会调优"的痛点

真实案例:某二本机械专业学员,通过4个月系统学习,成功拿到某AI医疗公司大模型优化岗offer,薪资直接翻3倍!

02.大模型 AI 学习和面试资料

1️⃣ 提示词工程:把ChatGPT从玩具变成生产工具
2️⃣ RAG系统:让大模型精准输出行业知识
3️⃣ 智能体开发:用AutoGPT打造24小时数字员工

📦熬了三个大夜整理的《AI进化工具包》送你:
✔️ 大厂内部LLM落地手册(含58个真实案例)
✔️ 提示词设计模板库(覆盖12大应用场景)
✔️ 私藏学习路径图(0基础到项目实战仅需90天)





第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1169749.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在职人员提升首选!同等学力申硕的这些优势太香了

对于想提升学历又不想耽误工作的在职人员来说,同等学力申硕堪称理想选择,其诸多优势精准契合职场人的需求。 它通过率高,不用担心理想落空;学习时间灵活,能轻松平衡工作与学习,再也不用为挤时间上课发愁…

内容创作者一定要学会在飞书多维表上用Sora大模型!功能太强大了

现在在飞书上就可以直接配置Sora2字段捷径了,直接在表格里就能够批量生成产品视频了,支持文本指令生成视频,也支持根据图片参考图生成视频; 最关键的是Sora2还具备轻量化集成与批量自动化的生产力适配优势,支持插件化…

大学生都在用的降AI工具TOP5,比话凭什么排第一?

大学生都在用的降AI工具TOP5,比话凭什么排第一? TL;DR 实测5款大学生常用的降AI工具后,比话降AI凭借知网专项适配、99%达标率和不达标全额退款的保障稳居第一。如果你用知网检测,比话是最稳的选择,我亲测AI率从39%降…

学员追访 | 秋招5份 Offer,15w+ 年薪上岸 FPGA开发

本文记录了一名电子信息背景学员转向 FPGA 开发的学习与求职经历。从前期自学摸索,到系统化训练,再到项目实践与秋招面试,总结了学习路径、踩坑经验以及一些个人体会。我本科就读于电子信息相关专业,平时课程和比赛更多集中在嵌入…

生成式AI全攻略:从文字到视频,全面掌握AI创作技能

本文全面介绍生成式AI的基本概念及应用场景,涵盖文本、代码、图像、视频和声音生成。详细讲解AI文字创作的5W1H提问公式、多模态AI应用技巧、创意图片设计方法、视频和PPT制作流程,以及智能体(Agent)概念。文章旨在帮助读者正确看待AI时代,提…

大学生必看!省钱又好用的降AI工具TOP3推荐

大学生必看!省钱又好用的降AI工具TOP3推荐 TL;DR:大学生预算有限,选降AI工具要看性价比。本文推荐3款:嘎嘎降AI(4.8元/千字,效果最好)、SpeedAI(1.2元/千字,最便宜&#…

【趣闻】AMBA协议移除原先Master/Slave提法,改称Manager/Subordinate

起因是最近回顾一些Arm AMBA系列协议的文档,发现以前提法都是Master/Slave,现在看不到了,都换成了Manager/Subordinate。然后在文档中看到如下内容:看上去是某人读文档时看到Master/Slave的字眼感到哈气了,给arm官方提…

Rocky Linux 10.1 64位安装Firebird3.0

1、下载Firebird3.0安装包到Linux系统文件下,并解压该文件,进入解压后的文件夹执行 ./install2、会遇到报错Please install required library ‘libtommath’ before firebird, after it repeat firebird install,根据提示需要先安装依赖libt…

嘎嘎降AI降重避坑指南:这些错误操作会让你的论文越改越糟

嘎嘎降AI降重避坑指南:这些错误操作会让你的论文越改越糟 TL;DR 降AI不是简单地「处理一下」就完事,错误的操作方法可能让效果大打折扣甚至适得其反。本文总结5个常见的降AI误区和对应的正确做法,帮你避开这些坑。 降AI也有「正确姿势」 说…

【图形学】抗锯齿

通常提到抗锯齿我们会想到各种AA算法,SSAA,MSAA,FXAA等。通常来说这些抗锯齿都在渲染管线的光栅化阶段或者光栅化阶段之前(光栅化之前的 “采样计算”(比如 MSAA 的多重采样))就做好了(将三角形等图元转换为…

2026年最好用的5款AI降重神器推荐,嘎嘎降让我直接封神!

2026年最好用的5款AI降重神器推荐,嘎嘎降让我直接封神! TL;DR:论文AI率太高?本文实测对比5款主流降AI率工具,重点推荐嘎嘎降AI(达标率99.26%,能把AI率从99%降到3%)和比话降AI&#x…

小红书Java面试被问:ThreadLocal 内存泄漏挑战及解决强大的方案

小红书Java面试被问:ThreadLocal 内存泄漏挑战及解决强大的方案pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "C…

团队管理:AI编码工具盛行下,如何防范设计能力退化与知识浅薄化?

随着人工智能技术的迅速发展,AI工具在软件开发中的应用越来越普遍,尤其是GitHub Copilot等AI助手的出现,使得开发人员在编写代码时享受到前所未有的便利。然而,随着对这些工具的过度依赖,开发团队的核心能力是否正在面…

DeepSeek写的论文怎么降AI率?2026年最好用的3个方案

DeepSeek写的论文怎么降AI率?2026年最好用的3个方案 TL;DR DeepSeek写论文效率高但AI率容易爆表,单靠Prompt调教效果有限。实测最有效的方案是:先用DeepSeek写初稿,再用比话降AI做深度处理,可以把AI率从90%直接降到1…

论文AI率100%怎么办?亲测这款降AI神器3分钟搞定!

论文AI率100%怎么办?亲测这款降AI神器3分钟搞定! TL;DR:论文AI率飙到100%别慌!本文分享我从100%降到10%以下的真实经历,核心方法就是用嘎嘎降AI处理,3分钟出结果,达标率99.26%。文末附避坑指南和…

针对大语言模型文本审核逻辑鲁棒性与精细化规则编排的深度研究报告

在大语言模型(LLM)的快速演进中,文本审核作为确保人工智能系统安全与合规的关键技术,正面临着从简单的模式识别向复杂逻辑推演的范式转移。传统的审核系统通常依赖于关键词过滤或浅层的统计分类器,但在处理具有深层语境…

大模型的MCP和function calling的使用方式有什么区别

MCP(Model Context Protocol)和 Function Calling(函数调用) 都是让“大模型能用外部能力”的机制,但设计目标、使用方式、抽象层级都有明显区别。下面从「是什么」「怎么用」「适合什么场景」三个层面给出一个工程向对…

供应KEYSIGHT E5071C矢量网络分析仪

供应KEYSIGHT E5071C矢量网络分析仪E5071C网络分析仪具有广泛的频率范围和众多功能,在同类产品中具有高的射频性能和快的测试速度。它是制造工程师和研发工程师测量9 kHz至8.5 GHz射频元器件和电路的工具新款 20 GHz 选件可将 E5071C ENA 系列网络分析仪的频率范围扩…

《基于plc的喷泉控制系统设计》(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

《基于plc的喷泉控制系统设计》(设计源文件万字报告讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码 本商品为电子程序资料 商品包含内容: ①花式喷泉博途PLC与HMI仿真工程 (博途V15.1) 一份; ②花式喷泉配套有IO点表PLC接线…

安捷伦E8364C矢量网络分析仪E8364B

安捷伦E8364C矢量网络分析仪E8364BAgilent E8364C PNA 微波网络分析仪回收租售Agilent E8364C PNA 微波网络分析仪10 MHz 至 50 GHz主要特性与技术指标10 MHz 至 50 GHz104 dB 的动态范围和 <0.006 dB 的迹线噪声<26 微秒/点的测量速度&#xff0c;32 个通道&#xff0c;…