Skip to content
Merged
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
13 changes: 11 additions & 2 deletions knowledge/repos/vllm-omni/models/qwen3-tts/rules.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
---
title: "Qwen3-TTS 规则"
created: 2026-07-20
updated: 2026-10-20
updated: 2026-10-24
type: rule
tags: [vllm-omni, models, serving, qwen-omni]
sources: ["PR #5157", "PR #5202", "PR #5608", "PR #6001", "PR #6113", "PR #6523", "PR #6728", "PR #6861", vllm_omni/deploy/aura_omni.yaml, vllm_omni/deploy/qwen3_tts.yaml, vllm_omni/deploy/qwen3_tts_high_concurrency.yaml, vllm_omni/model_executor/models/aura_omni/pipeline.py, vllm_omni/model_executor/models/qwen3_tts/qwen3_tts_code2wav.py, vllm_omni/model_executor/models/qwen3_tts/prompt_embeds_builder.py, vllm_omni/model_executor/models/qwen3_tts/segmented_graph_wrapper.py, vllm_omni/model_executor/models/qwen3_tts/tokenizer_12hz/modeling_qwen3_tts_tokenizer_v2.py, vllm_omni/model_executor/stage_input_processors/chunk_size_utils.py, vllm_omni/entrypoints/openai/serving_speech.py, vllm_omni/entrypoints/openai/serving_speech_stream.py, vllm_omni/entrypoints/openai/speech_usage.py, vllm_omni/entrypoints/openai/tts_adapters/qwen3_tts.py, vllm_omni/model_executor/stage_input_processors/qwen3_tts.py, tests/e2e/online_serving/test_qwen3_tts_base.py, tests/e2e/online_serving/test_qwen3_tts_base_expansion.py, tests/entrypoints/openai_api/test_serving_speech.py, tests/entrypoints/openai_api/test_serving_speech_stream.py, tests/entrypoints/openai_api/test_tts_adapter.py, tests/model_executor/models/qwen3_tts/test_qwen3_tts_code2wav.py, tests/model_executor/models/qwen3_tts/test_qwen3_tts_incremental_decode.py, tests/model_executor/stage_input_processors/test_qwen3_tts_async_chunk.py, "PR #5048", "PR #6639", "issue #6855", "PR #8837", "PR #8674"]
sources: ["PR #5157", "PR #5202", "PR #5608", "PR #6001", "PR #6113", "PR #6523", "PR #6728", "PR #6861", vllm_omni/deploy/aura_omni.yaml, vllm_omni/deploy/qwen3_tts.yaml, vllm_omni/deploy/qwen3_tts_high_concurrency.yaml, vllm_omni/model_executor/models/aura_omni/pipeline.py, vllm_omni/model_executor/models/qwen3_tts/qwen3_tts_code2wav.py, vllm_omni/model_executor/models/qwen3_tts/prompt_embeds_builder.py, vllm_omni/model_executor/models/qwen3_tts/segmented_graph_wrapper.py, vllm_omni/model_executor/models/qwen3_tts/tokenizer_12hz/modeling_qwen3_tts_tokenizer_v2.py, vllm_omni/model_executor/stage_input_processors/chunk_size_utils.py, vllm_omni/entrypoints/openai/serving_speech.py, vllm_omni/entrypoints/openai/serving_speech_stream.py, vllm_omni/entrypoints/openai/speech_usage.py, vllm_omni/entrypoints/openai/tts_adapters/qwen3_tts.py, vllm_omni/model_executor/stage_input_processors/qwen3_tts.py, tests/e2e/online_serving/test_qwen3_tts_base.py, tests/e2e/online_serving/test_qwen3_tts_base_expansion.py, tests/entrypoints/openai_api/test_serving_speech.py, tests/entrypoints/openai_api/test_serving_speech_stream.py, tests/entrypoints/openai_api/test_tts_adapter.py, tests/model_executor/models/qwen3_tts/test_qwen3_tts_code2wav.py, tests/model_executor/models/qwen3_tts/test_qwen3_tts_incremental_decode.py, tests/model_executor/stage_input_processors/test_qwen3_tts_async_chunk.py, "PR #5048", "PR #6639", "issue #6855", "PR #8837", "PR #8674", "PR #9320"]
confidence: high
---

Expand Down Expand Up @@ -259,3 +259,12 @@ Qwen 家族入口见 [Qwen-Omni](../qwen-omni/_index.md)。
- 验收:gating 测试覆盖启用与 unsupported-platform fallback 两个分支(如 projected-table GPU test);sampler 注册/回退与 processor gating(含 plugin);PDL 在 B64/B65/B128 边界的路径选择;codec mask 对 sampling 与 prompt logprobs 均保持;staged write 的 scoped context 选择与 PCM reader fence;部署 YAML 为 per-request conditioned embeddings 预留 headroom 并与 `docs/design/qwen3_omni_tts_performance_optimization.md` 的 serving boundaries 同步。^[PR #8674]

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

## VLLM-OMNI-PR9320-ROCM-SELECT-PREFLIGHT — AMD CI GPU lane 必须用显式 ROCm 选择器并预检精确收集数

- 触发:修改 `.buildkite/amd/test-amd-ready.yml` / `test-amd-merge.yml` 的 GPU lane pytest 选择器、`.buildkite/amd/scripts/assert-pytest-collection.sh`、`tests/buildkite/` 的 lane 断言,或测试文件上的 `rocm`/`cuda`/`nvidia_only`/`MI325`/`cards_N` 平台标记与 `tests/helpers/tests/test_check_test_marks.py` 的静态标记检查。
Comment on lines +263 to +265

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 Route the cross-model AMD lane contract to the CI owner

For changes to AMD pipeline selectors or shared marker validation, this rule is stored under the wrong owner: its trigger covers shared Buildkite infrastructure and multiple models, not Qwen3-TTS implementation. The repository’s routing table sends Buildkite/hardware-lane reviews to ci/rules.md, while existing AMD pipeline contracts live in rules-amd-ci.md; neither routes readers to this new section. Consequently, CI-focused reviews following the prescribed owner-scoped navigation will miss the new collection and marker safeguards. Move the shared contract to the CI/AMD owner and update its routing, retaining only model-specific constraints or a link here. This violates the nearest-owner requirement in root AGENTS.md.

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

Useful? React with 👍 / 👎.

- 强制:AMD READY/MERGE GPU lane 用显式 `rocm and MI325 [and cards_N] and not nvidia_only` 表达式选择测试,不用裸 `cuda`;原有 card-count 排除(如 one-GPU lane 的 `not (cards_2 or … or cards_8)`)随迁移保留。`rocm` 标记只加到有 AMD 运行证据的 variant,且保留全部既有 CUDA 资格:共享 CPU 测试保持 CPU-only(R2-01 因此移除 3 个 CPU-only OmniVoice 测试),Qwen3-TTS MRV2 variant 保持 CUDA-only,#9171 的 Wan CUDA/L4 sentinel 不变。每条迁移 lane 在启动 GPU 负载前先以同一组 pytest 参数运行 `assert-pytest-collection.sh EXPECTED_COUNT`,断言**精确且非零**的收集数(Diffusion 117、R2-01 1,400、R2-02 3、Diffusion LoRA 1、Wan22 offline 2 / online 1、Qwen3-Omni 16、Qwen3-TTS Base 3);预期计数变化必须用 manifest diff 逐项说明——build #14536 的首个精确计数守卫曾在 GPU 执行前暴露 1,399 的临时值,diff 定位到唯一一个有意新增项。AMD lane 以 `rocm` 为准,不引入单独的 `amd` marker;该 PR 不改 GitHub ruleset。
- 禁止:把 AMD GPU lane 回退到裸 `cuda` 选择器(会静默收集 NVIDIA-only variant 或丢失 ROCm 覆盖,绿灯不再有意义);给没有 AMD 证据的 variant 加 `rocm`;删除或放宽收集数预检、把精确相等断言改成下界或 0 来掩盖 marker drift;为凑计数删测试或改 run-level;引入第二套平台 marker(如 `amd`)。静态合同:任一有效 test item 不得同时带 `rocm` 与 `nvidia_only`,包括 class-level 标记与 stacked function parametrization 叠加出的组合。
- 验收:迁移 lane 的 YAML 同时携带预检命令与同参数的 pytest 命令;`tests/buildkite/test_amd_pipeline.py` 与 `tests/buildkite/test_amd_ready_r2_01.py` 锁定迁移后的选择器与收集数;静态检查断言 rocm+nvidia_only 的有效组合(含参数化叠加)被拒。边界保持:Qwen3-TTS Base lane 恰好收集 3 个非 MRV2 variant 且 MRV2 不被 `rocm` 选择器收集;Qwen3-Omni lane 新纳入的 7 个 variant 必须在 current-head AMD CI 上真实通过,不得只凭选择器变更即宣称已覆盖。^[PR #9320]

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