Repository navigation
knowledge(vllm-omni): 2 change(s) from intake #421
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
19 changes: 19 additions & 0 deletions
19
knowledge/repos/vllm-omni/components/diffusion/rules-master-port-tests.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,19 @@ | ||
| --- | ||
| title: "Diffusion master-port 测试规则" | ||
| created: 2026-10-26 | ||
| updated: 2026-10-26 | ||
| type: rule | ||
| tags: [vllm-omni, components, diffusion] | ||
| sources: ["PR #9219"] | ||
| --- | ||
|
|
||
| # Diffusion master-port 测试规则 | ||
|
|
||
| ## VLLM-OMNI-PR9219-MASTER-PORT-TESTS — master_port 测试不依赖未预留端口:stub is_port_available 并断言探测序列 | ||
|
|
||
| - 触发:改动 `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` 语义本身。 | ||
| - 强制:候选端口选择类测试(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` 报告最后错误。生产解析保持不变。 | ||
| - 禁止:断言 `config.master_port == get_open_port()` 之类对未预留端口的等值比较;在候选选择测试中保留真实 bind 或 wildcard bind(`bind(("", ...))`);删除对探测序列的断言使解析停止查询可用性检查时测试仍通过;为迁就测试改动生产 `settle_port` 的步进或优先级语义。 | ||
| - 验收:`pytest tests/diffusion/test_omni_diffusion_config_master_port.py -q` 全绿(当前 6 项);优先级与步进用例均带探测序列断言;默认路径用例为 loopback 上的 bounded 重试;`ruff check` 与 `ruff format --check` 通过。^[PR #9219] | ||
|
|
||
| <!-- kb:rule status=active since=v0.30.0 --> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
19 changes: 19 additions & 0 deletions
19
knowledge/repos/vllm-omni/components/model-executor/rules-qwen25-talker-eos.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,19 @@ | ||
| --- | ||
| title: "模型执行器 — Qwen2.5-Omni talker 终止 conditioning 规则" | ||
| created: 2026-10-26 | ||
| updated: 2026-10-26 | ||
| type: rule | ||
| tags: [vllm-omni, components, model-executor] | ||
| sources: ["PR #9371"] | ||
| --- | ||
|
|
||
| # 模型执行器 — Qwen2.5-Omni talker 终止 conditioning 规则 | ||
|
|
||
| ## VLLM-OMNI-PR9371-QOMNI-TALKER-EOS — Qwen2.5-Omni thinker→talker 终止 conditioning 必须对齐 HF 参考并覆盖截断 | ||
|
|
||
| - 触发:修改 `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 完成与长度上限截断下的音频终止行为。 | ||
| - 强制:传给 talker 的 conditioning 与 HuggingFace 参考实现保持一致:在 thinker hidden states 之外附带对应 text-token embeddings,并在终止处补 terminal text-EOS 与 text-pad embedding;自然完成与 length-cap 截断两条路径都必须落到同一终止条件,保证音频输出干净结束。注意 AR runner 不为最后采样的 token 产生 hidden-state row,两条终止路径都要补齐该缺口。 | ||
| - 禁止:只把 raw thinker hidden states 喂给 talker 而缺少 terminal EOS/pad conditioning(缺陷表现为文本截断后接重复无意义音频尾);只修 stop-token 完成路径而漏掉 length-cap 截断路径;共享示例客户端默认注入 seed/temperature 覆盖服务端采样行为。 | ||
| - 验收: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] | ||
|
|
||
| <!-- kb:rule status=active since=v0.30.0 --> | ||
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This rule applies exclusively to Qwen2.5-Omni's thinker→talker conditioning, but its only index entry places it under the shared model-executor component. The existing
models/qwen-omni/_index.mdexplicitly owns family-specific thinker/talker behavior, whilecomponents/model-executor/_index.mdexcludes model-specific logic. Consequently, tasks routed to the Qwen-Omni owner will not find this constraint through that owner's rules or index. Move the model-specific rule tomodels/qwen-omni/and update the corresponding indexes rather than making a shared component own it. This also violates the explicit model-owner requirement in rootAGENTS.md.AGENTS.md reference: AGENTS.md:L12-L14
Useful? React with 👍 / 👎.