Skip to content

Commit d7a41ce

Browse files
committed
knowledge(vllm-omni): 2 change(s) from intake
1 parent 0d68b28 commit d7a41ce

4 files changed

Lines changed: 40 additions & 0 deletions

File tree

‎knowledge/repos/vllm-omni/components/diffusion/_index.md‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,3 +86,4 @@ shared RMSNorm 的empty-input与fused精度边界沿 tensor dtype rules 的DIFF-
8686
- [AR-Diffusion 实时模型集成规则](rules-ar-realtime-integration.md)
8787
- [Diffusion attention dense 4D mask routing](rules-4d-mask-routing.md)
8888
- [vllm-omni · Diffusion — Wan SDPA 对齐测试规则](rules-wan-sdpa-math.md)
89+
- [Diffusion master-port 测试规则](rules-master-port-tests.md)
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
---
2+
title: "Diffusion master-port 测试规则"
3+
created: 2026-10-26
4+
updated: 2026-10-26
5+
type: rule
6+
tags: [vllm-omni, components, diffusion]
7+
sources: ["PR #9219"]
8+
---
9+
10+
# Diffusion master-port 测试规则
11+
12+
## VLLM-OMNI-PR9219-MASTER-PORT-TESTS — master_port 测试不依赖未预留端口:stub is_port_available 并断言探测序列
13+
14+
- 触发:改动 `tests/diffusion/test_omni_diffusion_config_master_port.py`(`OmniDiffusionConfig` 的 `MASTER_PORT` env 优先于 kwarg、显式 kwarg 稳定性、默认端口可用性、busy-port settle 步进各测试),或在该文件中重新引入以 `get_open_port()` 返回值做等值断言或真实 bind 的测试写法;不覆盖生产解析 `vllm_omni/diffusion/data.py` 的 `_resolve_master_port` / `settle_port` 语义本身。
15+
- 强制:候选端口选择类测试(env 优先、kwarg 稳定、busy-port +37 步进)必须打桩 `vllm_omni.diffusion.data.is_port_available`(经 data 模块内导入的名称 monkeypatch),使用互不相同且异于单次 +37 步长的固定常量(`_ENV_PORT`/`_KWARG_PORT`/`_EXPLICIT_PORT`),并断言打桩记录的探测序列恰为期望值——env 优先用例断言结果等于 env 端口且 `checked == [_ENV_PORT]`(kwarg 不得被查询),busy 用例断言结果为 `busy_port + 37` 且 `checked == [busy_port, busy_port + 37]`——使测试在端口被 CI 并发抢占时仍然确定(#9208 的失败即 `get_open_port()` 返回值未预留、被抢后 settle +37 导致断言不等)。默认端口路径不打桩:该路径仍走 live `get_open_port()`,须保留 bounded resolve-and-bind 重试(至多 10 次),仅在 `127.0.0.1` 上绑定(CodeQL 会标记 wildcard bind),重试耗尽以 `pytest.fail` 报告最后错误。生产解析保持不变。
16+
- 禁止:断言 `config.master_port == get_open_port()` 之类对未预留端口的等值比较;在候选选择测试中保留真实 bind 或 wildcard bind(`bind(("", ...))`);删除对探测序列的断言使解析停止查询可用性检查时测试仍通过;为迁就测试改动生产 `settle_port` 的步进或优先级语义。
17+
- 验收:`pytest tests/diffusion/test_omni_diffusion_config_master_port.py -q` 全绿(当前 6 项);优先级与步进用例均带探测序列断言;默认路径用例为 loopback 上的 bounded 重试;`ruff check` 与 `ruff format --check` 通过。^[PR #9219]
18+
19+
<!-- kb:rule status=active since=v0.30.0 -->

‎knowledge/repos/vllm-omni/components/model-executor/_index.md‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,3 +71,4 @@ sources: []
7171
- [NPU model adapter rules](rules-npu-model-adapters.md)
7272
- [vLLM-Omni model executor — upstream warmup request identification rules](rules-warmup-ids.md)
7373
- [Host Weight Runtime 测试评审规则](rules-host-weight-runtime.md)
74+
- [模型执行器 — Qwen2.5-Omni talker 终止 conditioning 规则](rules-qwen25-talker-eos.md)
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
---
2+
title: "模型执行器 — Qwen2.5-Omni talker 终止 conditioning 规则"
3+
created: 2026-10-26
4+
updated: 2026-10-26
5+
type: rule
6+
tags: [vllm-omni, components, model-executor]
7+
sources: ["PR #9371"]
8+
---
9+
10+
# 模型执行器 — Qwen2.5-Omni talker 终止 conditioning 规则
11+
12+
## VLLM-OMNI-PR9371-QOMNI-TALKER-EOS — Qwen2.5-Omni thinker→talker 终止 conditioning 必须对齐 HF 参考并覆盖截断
13+
14+
- 触发:修改 `vllm_omni/model_executor/stage_input_processors/qwen2_5_omni.py` 的 `thinker2talker_full_payload`、`vllm_omni/model_executor/models/qwen2_5_omni/qwen2_5_omni.py` 中 talker 的 text/codec embedding conditioning,或 thinker 在 stop-token 完成与长度上限截断下的音频终止行为。
15+
- 强制:传给 talker 的 conditioning 与 HuggingFace 参考实现保持一致:在 thinker hidden states 之外附带对应 text-token embeddings,并在终止处补 terminal text-EOS 与 text-pad embedding;自然完成与 length-cap 截断两条路径都必须落到同一终止条件,保证音频输出干净结束。注意 AR runner 不为最后采样的 token 产生 hidden-state row,两条终止路径都要补齐该缺口。
16+
- 禁止:只把 raw thinker hidden states 喂给 talker 而缺少 terminal EOS/pad conditioning(缺陷表现为文本截断后接重复无意义音频尾);只修 stop-token 完成路径而漏掉 length-cap 截断路径;共享示例客户端默认注入 seed/temperature 覆盖服务端采样行为。
17+
- 验收:CPU 级回归同时覆盖自然完成与强制截断(`tests/model_executor/models/qwen2_5_omni/test_qwen2_5_omni_talker_conditioning.py`、`tests/model_executor/stage_input_processors/test_qwen2_5_omni_thinker2talker.py`);示例客户端单测断言默认请求中不含 seed/temperature、仅显式给定时转发;调用该示例的 e2e 用确定性采样(`--seed 42 --temperature 0`)加有界长度 prompt,并输出 finish_reason 辅助诊断。^[PR #9371]
18+
19+
<!-- kb:rule status=active since=v0.30.0 -->

0 commit comments

Comments
 (0)