免费POC, 零成本试错
AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


我要投稿

全模态大模型部署,vLLM-Omni 来了,100%开源

发布日期:2025-12-26 09:42:27 浏览次数: 1571
作者:Ai学习的老章

微信搜一搜,关注“Ai学习的老章”

推荐语

开源全模态框架vLLM-Omni重磅发布,性能碾压Hugging Face!

核心内容:
1. vLLM-Omni突破性支持文本/图像/视频/音频全模态处理
2. 独家优化KV缓存与流水线并行技术实现超高吞吐量
3. 完美兼容Hugging Face生态与OpenAI API标准

杨芳贤
53AI创始人/腾讯云(TVP)最具价值专家


vLLM 是我们公众号的常客了,几乎所有关于大模型本地部署的文章都是用 vLLM 启动的

安全审核大模型,本地部署,实测
腾讯混元 OCR 大模型,本地部署,实测
大模型本地部署相关文章,我做了一个网站

但是部署多模态,尤其是最近 N 多全模态大模型,vLLM 就有点捉襟见肘了

vllm-project 团队开源了一个新框架——vLLM-Omni

https://github.com/vllm-project/vllm-omni

vLLM-Omni

  1. 什么是 vLLM-Omni? 最初,vLLM 是为大规模语言模型(LLM)的文本生成任务量身定制的。
    然而,随着需求演进,vLLM-Omni 将其能力扩展到了更广阔的领域:
    • 全模态支持:它不仅能处理文本,还支持图像、视频和音频数据。 • 非自回归架构:除了支持传统的自回归模型,它还扩展支持了DiT和其他并行生成模型。 • 异构输出**:能够实现从传统文本生成到各种多模态输出的跨越。

  2. 核心技术优势:为什么它如此之快? • 高效的缓存管理:继承并优化了 vLLM 的 KV 缓存管理机制。 • 流水线并行执行:通过阶段执行的重叠(overlapping)来实现高吞吐量性能。 • 灵活的资源调度:基于 OmniConnector 的全解耦架构,支持跨阶段的动态资源分配。 **高性能 (Performance)**:利用流水线阶段执行来重叠计算,确保高吞吐量性能。当一个阶段在处理时,其他阶段不会闲置。

vLLM-Omni 和 Hugging Face Transformers 对比,展示了在全模态服务中的效率提升。
  1. 易用性与生态兼容性 对于开发者而言,vLLM-Omni 极易上手且高度兼容,如果你会用 vLLM,你就会用 vLLM-Omni: • 无缝集成:支持 Hugging Face 上最热门的开源模型,例如 Qwen-Omni 和 Qwen-Image。 • 标准接口:提供与 OpenAI 兼容的 API 服务器,极大降低了集成成本。 • 分布式推理:支持张量并行、流水线并行、数据并行以及专家并行(EP)。 • 开发语言:该项目主要由 Python (98.5%) 编写,方便社区进行二次开发和贡献。
vLLM-Omni 是首批支持全模态模型服务的开源框架之一,它将 vLLM 卓越的性能扩展到了多模态和非自回归推理的世界。

目前支持的模型

N 卡上阿里 Qwen 能打的多模态模型及户全都支持,华为 NPU 也支持,只是可用模型较少


安装 vllm-omni

推荐使用 uv 进行环境管理

uv venv --python 3.12 --seed
source .venv/bin/activate
uv pip install vllm==0.12.0 --torch-backend=auto
uv pip install vllm-omni

内网部署的话,Docker 是必须的

镜像下载:https://hub.docker.com/r/vllm/vllm-omni

docker run --runtime nvidia --gpus 2 \
    -v ~/.cache/huggingface:/root/.cache/huggingface \
    --env "HF_TOKEN=$HF_TOKEN" \
    -p 8091:8091 \
    --ipc=host \
    vllm/vllm-omni:v0.11.0rc1 \
    --model Qwen/Qwen3-Omni-30B-A3B-Instruct --port 8091

使用方法:离线推理

以下是使用 Tongyi-MAI/Z-Image-Turbo 模型进行文生图的简单示例:

from vllm_omni.entrypoints.omni import Omni 

if __name__ == "__main__"
    # 初始化 Omni 模型
    omni = Omni(model="Tongyi-MAI/Z-Image-Turbo"
    
    prompt = "a cup of coffee on the table" 
    
    # 生成图像
    images = omni.generate(prompt) 
    
    # 保存结果
    images[0].save("coffee.png")

也可以直接命令行

python text_to_image.py \
  --model Tongyi-MAI/Z-Image-Turbo \
  --prompt "a cup of coffee on the table" \
  --seed 42 \
  --cfg_scale 4.0 \
  --num_images_per_prompt 1 \
  --num_inference_steps 50 \
  --height 1024 \
  --width 1024 \
  --output outputs/coffee.png

使用方法:在线推理

启动脚本:

vllm serve Qwen/Qwen-Image --omni --port 8091

Method 1: curl 调用 API

curl -s http://localhost:8091/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "messages": [
      {"role": "user", "content": "A beautiful landscape painting"}
    ],
    "extra_body": {
      "height": 1024,
      "width": 1024,
      "num_inference_steps": 50,
      "true_cfg_scale": 4.0,
      "seed": 42
    }
  }'
 | jq -r '.choices[0].message.content[0].image_url.url' | cut -d',' -f2 | base64 -d > output.png

Method 2: Python Client 调用

python openai_chat_client.py --prompt "A beautiful landscape painting" --output output.png

Method 3: 使用 Gradio Demo¶

官方还提供了 Gradio 实现的前端

#https://github.com/vllm-project/vllm-omni
python gradio_demo.py

然后浏览器访问 http://localhost:7860

完成脚本:https://github.com/vllm-project/vllm-omni/blob/main/examples/online_serving/text_to_image/gradio_demo.py

最后,官方还提供了一系列实用教程,涉及文生图、图生图、全模态等等:

https://docs.vllm.ai/projects/vllm-omni/en/latest/user_guide/examples/online_serving/text_to_image/#example-materials

在最后,这个项目的核心开发者都是中国面孔

后续我要用 4090 实际运行 Z-Image-Turbo 并进行实测,教程后续更新



53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询