尧图精选

vLLM-Omni 下 Qwen-Image 文生图服务性能基准:部署配置、评测方法与实测数据

🕒 发布时间:2026/9/17 21:31:41 📁 来源:尧图网络
vLLM-Omni 下 Qwen-Image 文生图服务性能基准部署配置、评测方法与实测数据【免费下载链接】vllm-omniA framework for efficient model inference with omni-modality models项目地址: https://gitcode.com/GitHub_Trending/vl/vllm-omniQwen-Image 是 Qwen 系列的多模态文生图模型可经由 vLLM-Omni 推理框架以 OpenAI 兼容接口对外提供在线服务。本文以仓库内的 Qwen-Image Serving Performance Dashboard 为核心系统讲解 Qwen-Image 的服务启动与并行加速配置、基于 diffusion_benchmark_serving.py 的基准测试方法、随机数据集与混合分辨率负载设置以及 A100 80GB 单机环境下的实测延迟数据并给出完整可复现的操作步骤。读完本文你将掌握 Qwen-Image 在线服务的标准起服命令、step-wise continuous batching 的 A/B 对比方法以及一套可重复的 t2i 性能评测流程。1. 概览Qwen-Image 是部署在 vLLM-Omni 基础设施之上的多模态文生图text-to-image模型评测文档覆盖以下内容服务启动配置含加速相关选项基准脚本及其用法数据集与工作负载设置性能测量结果可复现性指南配套的配方文档 recipes/Qwen/Qwen-Image.md 将其定位为text-to-image serving with optional step-wise continuous batching并提供了单卡 A100 80GB 场景下的已知可用起始配置与本文的性能看板互为印证。2. 测试环境性能看板记录的基准测试环境如下组件规格GPUNVIDIA A100-SXM4-80GBDiffusion Attention BackendFlashAttention配方文档进一步补充了环境前提Linux 操作系统、Python 3.10、具备 NVIDIA CUDA 运行环境的 A100 80GB 显卡vLLM 与 vLLM-Omni 版本与当前仓库检出 commit 保持一致。需要说明的是该看板目前只记录了单卡 CUDA GPU 的配置其余硬件形态有待社区验证补充。3. 服务启动配置3.1 基础服务命令最简单的启动方式如下vllm serve Qwen/Qwen-Image --omni \ --port 8091--omni启用 vLLM-Omni 的 omni 模式是运行多模态含扩散类文生图模型所需的功能开关--port 8091服务监听端口供后续基准测试脚本连接。3.2 step-wise continuous batching 的 A/B 对比看板专门给出了连续批处理continuous batching收益的复现方法通过--step-execution特性开关与--max-num-seqs的组合对比逐步执行但无批处理与逐步执行 兼容请求批处理两种配置vllm serve Qwen/Qwen-Image --omni --port 8089 --step-execution --max-num-seqs 1vllm serve Qwen/Qwen-Image --omni --port 8089 --step-execution --max-num-seqs 8其中--step-execution是特性开关启用 step-wise逐步运行时将--max-num-seqs从1提高到8调度器便可在同一时刻保有更多兼容的请求从而让不同去噪进度的请求能够合批执行。配方文档对这两个参数给出了更细致的边界说明当流量以单请求为主、或正在先验证正确性再测吞吐时建议保守地保持--max-num-seqs 1当前批处理对形状仍然敏感不同去噪步进step progress可以合批但不同分辨率resolution尚不能合批。除直接使用vllm serve外也可通过仓库自带的示例启动脚本透传额外参数bash examples/online_serving/text_to_image/run_server.sh --step-execution --max-num-seqs 83.3 关键并行参数在报告性能结果时必须记录以下并行配置参数参数说明--cfg-parallel-sizeCFG 并行度guidance passes 并行执行的设备数--ulysses-degreeUlysses 序列并行度--usp为其别名--vae-patch-parallel-sizeVAE 并行度将 VAE 解码按 latent 空间切分到多个 rank--tensor-parallel-size张量并行度从 serve.py 的 CLI 实现可以确认这些参数与DiffusionParallelConfig的对应关系与默认值--ulysses-degree/--usp默认None等价于设置DiffusionParallelConfig.ulysses_degree可通过--ulysses-modestrict/advanced_uaa选择序列并行模式其中strict保持原有的可整除性约束--cfg-parallel-size默认1用于并行执行 diffusion guidance passes 的设备数等价于DiffusionParallelConfig.cfg_parallel_size--vae-patch-parallel-size默认1VAE Patch Parallelism 度通过按空间切分 latent 将 VAE 解码负载分布到多个 rank等价于DiffusionParallelConfig.vae_patch_parallel_size与之配套的--vae-parallel-mode默认tile可选spatial_shard_height/spatial_shard_width控制 VAE 并行解码策略其中spatial_shard_*模式要求vae_patch_parallel_size与 DiT 组大小一致。此外如需在受限显存下降低峰值占用可参考配方文档中的 B200 ModelOpt 混合 FP8/NVFP4 配置--linear-backend cutlass --force-cutlass-fp8但该方案属于量化部署路径与本文看板的 BF16 在线服务基准属于不同场景。4. 基准脚本4.1 基准入口性能看板使用仓库内统一的扩散模型在线服务基准脚本 diffusion_benchmark_serving.py其基础用法为python benchmarks/diffusion/diffusion_benchmark_serving.py \ --endpoint /v1/chat/completions \ --dataset DATASET_NAME \ --task t2i \ --num-prompts N \ --max-concurrency C \ --enable-negative-prompt \ --random-request-config CFG脚本支持的端点包括/v1/chat/completionsOpenAI chat 兼容的图像请求如 t2i、Qwen i2i、/v1/images/editsmultipart 图像编辑 / IT2I、/v1/images/generations图像生成、/v1/videos异步视频任务Qwen-Image 的 t2i 基准使用/v1/chat/completions端点。4.2 关键基准参数参数说明--endpointAPI 端点使用/v1/chat/completions前导/可选--dataset数据集名称random或自定义数据集--task任务类型如t2i--num-prompts请求总数--max-concurrency客户端侧并发数--warmup-concurrency预热并发数用于按真实批形状预热--random-request-config定义随机请求的 JSON 字符串从脚本参数定义diffusion_benchmark_serving.py可进一步了解默认行为--num-prompts默认10--max-concurrency默认1用于模拟上层组件对最大并发请求数的限制可与--request-rate每秒请求数默认inf即全部请求同时发出组合使用--warmup-requests默认1--warmup-concurrency默认1--warmup-num-inference-steps默认2注释说明改为 2 是为了保证至少执行一次去噪迭代避免某些模型num_timesteps - 1逻辑导致 0 步报错--enable-negative-prompt随机数据集下为每个请求附加负向提示词实现见 RandomDataset.getitem形如Negative prompt {idx} for benchmarking diffusion models--random-request-configJSON 字符串每个 profile 可包含width、height、num_inference_steps等字段weight字段控制采样概率。脚本会依据权重用random.choices预采样num_prompts个请求实现见 L777-L793因此分辨率混合比例是可控且可复现的。5. 数据集与工作负载设置5.1 推荐的评测配置性能看板定义了三种数据集配置用于覆盖不同分辨率与去噪步数的工作负载Dataset A512 分辨率Dataset:randomTask: t2iConcurrency: 1Mix Resolution:[ {width:512,height:512,num_inference_steps:20,weight:1} ]Dataset B1536 分辨率Dataset:randomTask: t2iConcurrency: 1Mix Resolution:[ {width:1536,height:1536,num_inference_steps:35,weight:1} ]Dataset C混合分辨率Dataset:randomTask: t2iConcurrency: 1Mix Resolution:[ {width:512,height:512,num_inference_steps:20,weight:0.15}, {width:768,height:768,num_inference_steps:20,weight:0.25}, {width:1024,height:1024,num_inference_steps:25,weight:0.45}, {width:1536,height:1536,num_inference_steps:35,weight:0.15} ]Dataset C 的权重分布模拟了真实流量中低分辨率请求居多、高分辨率请求较少的形态51215%、76825%、102445%、153615%去噪步数随分辨率升高而增加与典型文生图服务的负载特征一致。5.2 基准命令示例以 Dataset A 为例的完整基准命令python benchmarks/diffusion/diffusion_benchmark_serving.py \ --endpoint /v1/chat/completions \ --dataset random \ --task t2i \ --num-prompts 1 \ --max-concurrency 1 \ --enable-negative-prompt \ --random-request-config [ {width:512,height:512,num_inference_steps:20,weight:1} ]如需进行 continuous batching 的 A/B 复现则对上述两种服务配置分别执行完全相同的基准命令且两次运行保持流量与预热设置一致。若被测运行使用了--max-concurrency 8则应使用--warmup-requests 8 --warmup-concurrency 8预热确保第一个被测批次不包含编译或 CUDA graph 捕获的开销。配方文档提供了一个更贴近真实负载的对比示例VBench 提示词、10 个请求、1024×1024、50 步、预热 8 个请求可在--max-num-seqs 1与--max-num-seqs 8两种服务配置下各跑一次并对比输出 JSON 或终端指标python benchmarks/diffusion/diffusion_benchmark_serving.py \ --endpoint /v1/chat/completions \ --dataset vbench \ --task t2i \ --model Qwen/Qwen-Image \ --num-prompts 10 \ --height 1024 \ --width 1024 \ --num-inference-steps 50 \ --seed 42 \ --port 8089 \ --max-concurrency 8 \ --warmup-requests 8 \ --warmup-concurrency 8 \ --warmup-num-inference-steps 3 \ --disable-tqdm注意该示例走vbench数据集脚本会自动下载 VBench 提示词到~/.cache/vllm-omni失败时回退到内置占位提示词而看板本身的性能结果基于random数据集。6. 性能指标基准过程中采集以下指标指标说明单位Mean Latency平均延迟秒P99 LatencyP99 延迟秒脚本还支持--slo/--slo-scale计算 SLO 达标率以及--output-file将指标写入 JSON、--save-dir保存生成图像用于人工检查可按需扩展评测维度。7. 性能结果以下为看板记录的在 A100 80GB 单机、FlashAttention 后端下的实测延迟数据CFG 并行度 2、Ulysses 并行度 2、未开启张量并行与 VAE 并行数据集配置最大并发CFGUspTpVAE 并行Mean Latency (s)P99 Latency (s)Dataset A122OffOff2.20872.2087Dataset B122OffOff19.673919.6739Dataset C122OffOff5.6725918.6234结果解读结合文档与源码可以给出的客观分析单请求场景下 Mean 与 P99 一致Dataset A、B 均为同一数值这是并发为 1、且无排队时的典型特征分辨率对耗时影响显著1536×1536 / 35 步的 Dataset B 平均延迟约是 512×512 / 20 步 Dataset A 的 9 倍符合扩散模型计算量随分辨率与步数近似线性放大的规律Dataset C 的 P9918.62s远高于均值5.67s反映了混合分辨率负载中高分辨率1536、35 步请求拖尾分布的特征。这些数字是特定硬件与配置下的参考值读者应在自己的环境中按第 8 节清单复测后再作横向对比。看板文档明确要求报告性能时必须记录 GPU 类型、并行配置、基准参数分辨率、并发、提示词数量等上下文。8. 可复现性清单为确保基准结果的一致性与可比性请遵循以下检查清单记录 GPU 类型记录并行配置CFG 并行度、Ulysses 并行度、张量并行度、VAE 并行度等记录基准参数分辨率、并发数、提示词数量测试期间确保 GPU 上无后台负载对比 continuous batching 时各次运行的预热设置保持一致。9. 服务自检与验证基准之前建议先用轻量请求确认服务正常。配方文档提供了两种验证方式OpenAI 兼容客户端验证python examples/online_serving/text_to_image/openai_chat_client.py \ --server http://localhost:8091 \ --prompt A ceramic teapot on a wooden table \ --output /tmp/qwen_image_recipe.png直接 API smoke testcurl http://localhost:8091/v1/images/generations \ -H Content-Type: application/json \ -d { model: Qwen/Qwen-Image, prompt: A ceramic teapot on a wooden table, size: 1024x1024, num_inference_steps: 20, seed: 42 }服务健康检查可访问http://localhost:8091/health。相关示例与说明位于 examples/online_serving/text_to_image 与 docs/user_guide/examples/online_serving/text_to_image.md。10. 小结本文完整继承了 Qwen-Image Serving Performance Dashboard 的全部内容并在此基础上结合 diffusion_benchmark_serving.py 的参数实现、serve.py 的并行参数定义以及 recipes/Qwen/Qwen-Image.md 的部署细节做了源码级补充。作为 vLLM-Omni 下 Qwen-Image 的官方在线服务性能参考该看板提供了从起服、并行配置、负载构造到延迟测量的完整闭环vllm serve启动服务 →diffusion_benchmark_serving.py构造请求负载 → 记录并行与负载上下文 → 产出 Mean/P99 延迟 → 依据可复现性清单复核。读者可据此在自己的 A100 80GB或等价环境中复现上述结果并将该方法推广到其他 vLLM-Omni 支持的文生图模型。【免费下载链接】vllm-omniA framework for efficient model inference with omni-modality models项目地址: https://gitcode.com/GitHub_Trending/vl/vllm-omni创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
上一篇/下一篇内容由系统自动关联 返回资讯列表 →