Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -69,3 +69,4 @@ sources: []
- [MiniCPM-o duplex turn-end drain 规则](rules-minicpmo-turn-end-drain.md)
- [MiMo-Audio 设备与平台支持](rules-mimo-audio-device.md)
- [NPU model adapter rules](rules-npu-model-adapters.md)
- [vLLM-Omni model executor — upstream warmup request identification rules](rules-warmup-ids.md)
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
---
title: "vLLM-Omni model executor — upstream warmup request identification rules"
created: 2026-10-23
updated: 2026-10-23
type: rule
tags: [vllm-omni, components, model-executor]
sources: ["PR #9264"]
---

# vLLM-Omni model executor — upstream warmup request identification rules

## VLLM-OMNI-PR9264-MIXED-WARMUP-IDS — upstream warmup 请求识别必须集中于共享 helper 并覆盖全部 ID 前缀

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Put the warmup rule on the routed owner page

Move this rule into the model-executor rules.md entry page rather than creating a standalone page. For reviews involving worker_v2/warmup.py or Qwen3-TTS warmup, _routes.yaml routes Direct only to components/model-executor/rules.md (or the model page), and the required stop-navigation behavior means the new _index.md link is not followed; I confirmed with direct_review_plan probes that rules-warmup-ids.md was absent from both the selected routes and related_knowledge. Consequently, the new safeguard is not delivered in the review scenarios it is meant to govern.

AGENTS.md reference: AGENTS.md:L12-L17

Useful? React with 👍 / 👎.


- 触发:在 MRv2 runner、`OmniModelState` 或各模型 state(Fish-Omni、Higgs-Audio-v3、Moss-TTS local)中新增或修改对 upstream warmup request 的识别、text validation 豁免、preprocess/postprocess 跳过、validity 声明或 data-plane 注册逻辑。
- 强制:识别 warmup request 只能使用 `vllm_omni/worker_v2/warmup.py` 的共享 `is_warmup_request`,它同时覆盖 legacy `_warmup_` 前缀与 vLLM 0.32 起的 `_v2_mixed_warmup_decode_`/`_v2_mixed_warmup_prefill_` 前缀;所有模型 state 与 runner 引用同一 helper。被识别的 warmup 请求走既有 warmup 处理:text 行零 codec(Fish)、保留 upstream generic text sampling/grammar/penalty 路径(Higgs)、跳过模型 preprocess/postprocess 与状态更新、仅 warmup 请求写入 fabricated validity key,且不进入 native data-plane 注册。
- 禁止:在任何模型 state 或 runner 里散落硬编码 `_warmup_` 单前缀判断——vLLM 0.32 的 mixed-attention warmup 会被当作真实 TTS 请求处理,因缺少 text conditioning 使 Qwen3-TTS 在 FlashInfer warmup 阶段启动失败;也不得只为单个模型复制前缀列表而不回迁共享 helper。
- 验收:识别/validity/preprocess-skip/data-plane 测试按 `_warmup_0_`、`_v2_mixed_warmup_decode_`、`_v2_mixed_warmup_prefill_` 三种 ID 参数化,并以真实请求 ID 作反例;warmup 路径断言 `preprocess`/`postprocess` 未被调用;升级 vLLM 后跑 Qwen3-TTS 两阶段 FlashInfer 启动并验证 `/health` 返回 200。^[PR #9264]

<!-- kb:rule status=active since=v0.30.0 -->
Loading