Repository navigation
knowledge(vllm-omni): 1 change(s) from refine - #393
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 7377f705df
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| - 触发:修改 PersonaPlex duplex plugin 的 `configure_sampling_params` 或任一 stage 的 `RequestOutputKind`;修改共享 `CumulativeAudioTextDataPlane`(`vllm_omni/model_executor/common/duplex/data_plane.py`)的 `audio_output_is_delta` 投影;或发现整 session 复用的 duplex stage 请求仍在用默认 CUMULATIVE 输出——那会让 output processor 在 API server 进程内每帧重 consolidate 全部历史 multimodal tensors,每帧成本随通话长度增长。 | ||
| - 强制:只为 final stage(`configured[-1]`,即 Code2Wav)在 clone 出的 sampling params 上设 `output_kind=RequestOutputKind.DELTA`,不得改写共享默认值;Stage 0 与中间 stage 保持默认 CUMULATIVE。PersonaPlex 数据平面声明 `audio_output_is_delta = True`:delta 音频按新 chunk 整段透传,不再对 running sample count 切片;DELTA 下 output processor 不做 consolidate,一次输出可能携带多个 step 的 chunk list,必须先 join 成单个 waveform 再计数与编码。文本继续走 cumulative text cursor,只发新 suffix。共享数据平面的 `audio_output_is_delta` 默认保持 `False`,其他 duplex 模型维持现有 cumulative 切片行为。 | ||
| - 禁止:直接改写共享或默认 sampling params;给非 final stage 设 DELTA;delta 模式下仍按 sample cursor 切音频,或未声明 delta 就跳过切片;假设每个输出恰好一个音频 chunk;只凭机制推理、不在目标并发下做端到端测量就宣称每帧成本不再随通话长度增长。 | ||
| - 验收:`tests/model_executor/executor_common/duplex/test_data_plane.py` 覆盖 delta 音频整段透传(短于先前 chunk 的 chunk 也整段编码;空 chunk 且无新文本不产出)与同批到达的 ragged chunks 以 numpy 与 torch tensor 形态 join 成单个 waveform(`test_delta_audio_passes_through_unsliced`、`test_delta_audio_chunks_that_arrive_together_are_joined`),且既有 cumulative 投影用例不回归;`tests/model_executor/models/personaplex/duplex/test_plugin.py` 断言 Stage 1 是 DELTA clone、Stage 0 与共享默认值未被污染,并覆盖只有 final stage 切到 DELTA(`test_only_the_final_stage_switches_to_delta_output`);`tests/engine/duplex/test_session_runner_personaplex.py` 以 delta Code2Wav 输出驱动投影;性能收益须在目标并发(1–4 session)下端到端实测(PR #9113:4-session 下 API server CPU 0.8→0.2 cores)。^[PR #9113] |
There was a problem hiding this comment.
Defer activating the rule until PR #9113 merges
The only evidence cited by this new active rule is upstream PR #9113, which is still open rather than part of upstream main. Active PR citations are explicitly treated as must-be-merged facts by knowledge_service/facts.py, so this change cannot pass the publication gate and, if admitted outside it, would present proposed behavior as an existing contract. Publish the rule only after the source PR merges.
Useful? React with 👍 / 👎.
|
|
||
| <!-- kb:rule status=active since=v0.30.0 supersedes=VLLM-OMNI-PR8670-AMD-PPLEX-NIGHTLY --> | ||
|
|
||
| ## VLLM-OMNI-PR9113-CODE2WAV-DELTA — 整 session 复用的 Code2Wav 请求必须以 DELTA 音频流出 |
There was a problem hiding this comment.
Add the new rule to the Direct quick map
Adding the rule below the existing Direct section leaves it invisible to normal PersonaPlex reviews: the model route returns this file, _direct_quick_map_text still reports the old 254-character map as ok, and read_required remains false, so the host receives only PPLEX-1a through PPLEX-3b and is told not to open the page. Add a Code2Wav/DELTA row to the quick map so the new rule can actually be selected.
AGENTS.md reference: knowledge/AGENTS.md:L16-L16
Useful? React with 👍 / 👎.
| - 触发:修改 PersonaPlex duplex plugin 的 `configure_sampling_params` 或任一 stage 的 `RequestOutputKind`;修改共享 `CumulativeAudioTextDataPlane`(`vllm_omni/model_executor/common/duplex/data_plane.py`)的 `audio_output_is_delta` 投影;或发现整 session 复用的 duplex stage 请求仍在用默认 CUMULATIVE 输出——那会让 output processor 在 API server 进程内每帧重 consolidate 全部历史 multimodal tensors,每帧成本随通话长度增长。 | ||
| - 强制:只为 final stage(`configured[-1]`,即 Code2Wav)在 clone 出的 sampling params 上设 `output_kind=RequestOutputKind.DELTA`,不得改写共享默认值;Stage 0 与中间 stage 保持默认 CUMULATIVE。PersonaPlex 数据平面声明 `audio_output_is_delta = True`:delta 音频按新 chunk 整段透传,不再对 running sample count 切片;DELTA 下 output processor 不做 consolidate,一次输出可能携带多个 step 的 chunk list,必须先 join 成单个 waveform 再计数与编码。文本继续走 cumulative text cursor,只发新 suffix。共享数据平面的 `audio_output_is_delta` 默认保持 `False`,其他 duplex 模型维持现有 cumulative 切片行为。 | ||
| - 禁止:直接改写共享或默认 sampling params;给非 final stage 设 DELTA;delta 模式下仍按 sample cursor 切音频,或未声明 delta 就跳过切片;假设每个输出恰好一个音频 chunk;只凭机制推理、不在目标并发下做端到端测量就宣称每帧成本不再随通话长度增长。 | ||
| - 验收:`tests/model_executor/executor_common/duplex/test_data_plane.py` 覆盖 delta 音频整段透传(短于先前 chunk 的 chunk 也整段编码;空 chunk 且无新文本不产出)与同批到达的 ragged chunks 以 numpy 与 torch tensor 形态 join 成单个 waveform(`test_delta_audio_passes_through_unsliced`、`test_delta_audio_chunks_that_arrive_together_are_joined`),且既有 cumulative 投影用例不回归;`tests/model_executor/models/personaplex/duplex/test_plugin.py` 断言 Stage 1 是 DELTA clone、Stage 0 与共享默认值未被污染,并覆盖只有 final stage 切到 DELTA(`test_only_the_final_stage_switches_to_delta_output`);`tests/engine/duplex/test_session_runner_personaplex.py` 以 delta Code2Wav 输出驱动投影;性能收益须在目标并发(1–4 session)下端到端实测(PR #9113:4-session 下 API server CPU 0.8→0.2 cores)。^[PR #9113] |
There was a problem hiding this comment.
Correct the attributed CPU measurement
The parenthetical attributes 0.8→0.2 cores to PR #9113, but that PR reports two four-session runs of 1.11 / 1.00 cores on main and 0.22 / 0.21 on the change; it contains no 0.8-core result. Preserve the measured values or round them accurately to about 1.0→0.2 so later performance reviews are not based on a fabricated baseline.
Useful? React with 👍 / 👎.
Generated automatically by the Copilot knowledge service (changeset
vllm-omni-refine-77034f6279dc).repos/vllm-omni/models/personaplex/rules.mdGenerator:
zcode:GLM-5.3· judge:codex:gpt-6-sol:medium.The publisher merges it only if its local gate passes on the exact merge result.