From 298c1cbe040f6e878a1e41a3f5e164c4041dd9ae Mon Sep 17 00:00:00 2001 From: tzhouam Date: Sun, 25 Oct 2026 17:37:47 +0000 Subject: [PATCH] knowledge(vllm-omni): 1 change(s) from intake --- knowledge/repos/vllm-omni/models/cosyvoice3/rules.md | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/knowledge/repos/vllm-omni/models/cosyvoice3/rules.md b/knowledge/repos/vllm-omni/models/cosyvoice3/rules.md index cfa801ae..04665150 100644 --- a/knowledge/repos/vllm-omni/models/cosyvoice3/rules.md +++ b/knowledge/repos/vllm-omni/models/cosyvoice3/rules.md @@ -4,7 +4,7 @@ created: 2026-09-04 updated: 2026-10-25 type: rule tags: [vllm-omni, models] -sources: ["PR #5673", "PR #6955", vllm_omni/model_executor/models/cosyvoice3/code2wav_core/cfm.py, vllm_omni/model_executor/models/cosyvoice3/flow_estimator_trt.py, tests/model_executor/models/cosyvoice3/test_cosyvoice3_components.py, benchmarks/tts/benchmark_cosyvoice3_trt_streams.py, "PR #6896", "PR #7521", "PR #8730"] +sources: ["PR #5673", "PR #6955", vllm_omni/model_executor/models/cosyvoice3/code2wav_core/cfm.py, vllm_omni/model_executor/models/cosyvoice3/flow_estimator_trt.py, tests/model_executor/models/cosyvoice3/test_cosyvoice3_components.py, benchmarks/tts/benchmark_cosyvoice3_trt_streams.py, "PR #6896", "PR #7521", "PR #8730", "PR #8456"] confidence: high --- @@ -73,3 +73,12 @@ confidence: high - 验收:以含 RNG draw 的串行 RAS oracle(pre-B1 语义)断言批量结果与逐请求 seeded 运行(含 RNG 状态)一致;覆盖 mixed batch(greedy+random 行)的 history 对齐与 `win_size=0`;scheduler 侧断言 invalid logits(`invalid_logits_req_ids`)只终止受影响 request(含不请求 logprobs 的 request):其 `multimodal_output` 为 None、`output_token_ids` 为空、finish_reason 为 ERROR,同批健康 request 的 token 与 multimodal 输出完整。^[PR #8730] + +## VLLM-OMNI-PR8456-MULTI-VOICE-BENCH — CosyVoice3 并发基准必须多 voice 轮转并按 (text, voice) 分组校验 seeded 一致性 + +- 触发:修改 `benchmarks/tts/bench_cosyvoice3_concurrency_matrix.py` 的 `--ref-audio`/`--ref-text` 参数解析、worker 的 per-request voice 选择、结果字段或固定 seed 的 byte-identity 校验。 +- 强制:`--ref-audio`/`--ref-text` 以 `nargs="+"` 接受一个或多个值,默认单 voice 行为保持不变;两者数量不等时必须在 `parse_args` 中以 `p.error("--ref-audio and --ref-text must have the same number of values")` 拒绝。第 `i` 个请求使用 `voice = i % len(ref_audio)` 并在结果中记录 `voice`,使并发请求携带不同 reference voice——这是该基准能暴露跨请求 voice 串音(#8235 一类回归)的前提。固定 seed 的 byte-identity 校验必须以 `(text, voice)` 元组为分组键:同 text 不同 voice 产出不同 PCM 是合法结果,不得跨 voice 比较。 +- 禁止:把 seeded 校验退回按 text 单键分组(多 voice 下会把合法差异误报为 byte-identity violation);数量不匹配时静默截断、回退默认或继续运行;破坏默认单 voice 的向后兼容。 +- 验收:`--help` 显示 `--ref-audio REF_AUDIO [REF_AUDIO ...]`;`--ref-audio a.wav b.wav --ref-text x` 报上述错误;双 voice 时请求按 A/B 交替(PR 以 stubbed request 验证);单 voice(默认)行为与改动前一致;pre-commit 通过。^[PR #8456] + +