vLLM-Omni 多模态AI服务框架

  现代推理流程不再仅仅依赖于自回归 (AR) 语言模型。相反,它们结合了不同的模型类型——用于文本的 AR Transformer、用于图像和视频生成的扩散模型,以及用于音频和多模态理解的专用编码器。

  这种转变需要一个能够高效处理文本、图像、音频、视频和扩散架构的服务引擎,而无需工程师在多个框架之间切换。

  如今,这一切终于变得简单了。

  隆重推出 vLLM-Omni——一个开源框架,它能提升 vLLM 在 Qwen-Omni 和 Qwen-Image 等全模态模型上的速度、易用性和成本效益。

  如果您已经掌握了 vLLM 的使用方法,那么您自然也会使用 vLLM-Omni。

  vLLM-Omni 多模态AI服务框架1、vLLM-Omni 的重要性

  传统的模型服务框架主要关注基于文本的自回归模型。而多模态系统则需要:

  • 图像预处理
  • 音频/视频解码
  • 扩散采样
  • 异构流水线
  • 并行执行
  • 跨模块动态调度

      vLLM-Omni 将所有这些功能整合到一个统一的服务栈中。

      主要亮点:

  • 全面支持全模态:文本、图像、音频、视频
  • AR + 扩散 + 并行生成。在单个流水线中运行 AR 模型(LLM)和非自回归架构(DiT、扩散模型)。
  • 分布式且高效。流水线并行、张量并行、专家并行、动态资源分配、流式输出、兼容 OpenAI 的 API。
  • 开箱即用,支持 Hugging Face 模型,包括:Qwen-Omni、Qwen-Image以及大多数多模态开源模型2、vLLM-Omni 入门

      让我们一起完成安装、设置和实际多模态推理的执行。

      系统要求:

  • 操作系统:Linux
  • Python:3.12
  • GPU:NVIDIA 计算能力 ≥ 7.0(V100、T4、A100、H100、RTX 20xx、L4 等)

      注意:vLLM-Omni 不支持 Windows 系统。

    2.1 使用 Python + uv 进行设置

      uv 是一个超快的 Python 环境管理器(可以理解为功能更强大的 virtualenv + pip)。

      创建新环境:

      uv venv --python 3.12 --seedsource .venv/bin/activate2.2 安装 vLLM(基础引擎)

      vLLM-Omni 基于 vLLM v0.11.0 构建。

      uv pip install vllm==0.11.0 --torch-backend=auto2.3 安装 vLLM-Omni

      uv pip install vllm-omni

      完成!

    2.4 可选:从源代码构建(如果您想修改 vLLM-Omni)

      git clone vllm_omniuv pip install -e .

      如果您还要修改 vLLM 本身:

      git clone vllmgit checkout v0.11.0

      设置 wheel 文件位置:

      export VLLM_PRECOMPILED_WHEEL_LOCATION=

      安装:

      uv pip install --editable .

      或者,如果 PyTorch 已安装:

      python use_existing_torch.pyuv pip install -r requirements/build.txtuv pip install --no-build-isolation --editable .3、运行离线推理 (Qwen2.5-Omni)

      该仓库包含可直接运行的离线推理示例。

    3.1 运行多个提示

      首先,下载 seed_tts 数据集并提取提示:

      tar -xf

      /seedtts_testset.tarcp seedtts_testset/en/meta.lst examples/offline_inference/qwen2_5_omni/meta.lstpython3 examples/offline_inference/qwen2_5_omni/extract_prompts.py \ --input examples/offline_inference/qwen2_5_omni/meta.lst \ --output examples/offline_inference/qwen2_5_omni/top100.txt \ --topk 100

      导航到该文件夹:

      cd examples/offline_inference/qwen2_5_omni

      运行推理:

      bash run_multiple_prompts.sh3.2 运行单个提示

      cd examples/offline_inference/qwen2_5_omnibash run_single_prompt.sh3.3 使用本地媒体文件(图像、音频、视频)

      end2end.py 脚本支持通过命令行参数进行多模态输入。

      仅图像推理:

      python end2end.py --query-type use_image --image-path /path/to/image.jpg

      仅视频推理:

      python end2end.py --query-type use_video --video-path /path/to/video.mp4

      仅音频推理:

      python end2end.py --query-type use_audio --audio-path /path/to/audio.wav

      混合模态(音频 + 图像 + 视频):

      python end2end.py --query-type mixed_modalities \ --video-path /path/to/video.mp4 \ --image-path /path/to/image.jpg \ --audio-path /path/to/audio.wav

      从视频中提取音频:

      python end2end.py --query-type use_audio_in_video --video-path /path/to/video.mp4

      如果您不要传递任何文件,将使用默认资源。

    4、以编程方式调用 vLLM-Omni

      以下是一个极其简单的多模态推理请求示例:

      from vllm_omni import OmniEngineengine = OmniEngine(model="Qwen/Qwen2.5-Omni")result = engine.generate({ "query": "Describe the image.", "image": "/path/to/cat.png"})print(result["text"])

      或者,对于混合输入:

      result = engine.generate({ "query": "Summarize what is happening.", "video": "/path/video.mp4", "audio": "/path/audio.wav",})

      librosa 后端错误?安装 ffmpeg:

      sudo apt updatesudo apt install ffmpeg5、结束语

      vLLM-Omni 代表了模型服务领域的一次重大飞跃:

  • 一个引擎即可处理文本、图像、音频和视频
  • 一个管道即可处理 AR + 扩散
  • 一个界面即可处理多模态 AI

      如果您正在构建涉及文本、图像、音频或视频任意组合的 AI 应用,vLLM-Omni 是最简单、最强大的部署方式之一——开源、快速且已准备好投入生产。

      原文链接:vLLM-Omni 多模态AI服务框架 - 汇智网