返回顶部
热门问答 更多热门问答
技术文章 更多技术文章

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

[复制链接]
链载Ai 显示全部楼层 发表于 3 天前 |阅读模式 打印 上一主题 下一主题


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-OmniQwen-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模型进行文生图的简单示例:

fromvllm_omni.entrypoints.omniimportOmni

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 并进行实测,教程后续更新



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

链载AI是专业的生成式人工智能教程平台。提供Stable Diffusion、Midjourney AI绘画教程,Suno AI音乐生成指南,以及Runway、Pika等AI视频制作与动画生成实战案例。从提示词编写到参数调整,手把手助您从入门到精通。
  • 官方手机版

  • 微信公众号

  • 商务合作

  • Powered by Discuz! X3.5 | Copyright © 2025-2025. | 链载Ai
  • 桂ICP备2024021734号 | 营业执照 | |广西笔趣文化传媒有限公司|| QQ