diff --git a/knowledge/repos/vllm-omni/models/personaplex/rules.md b/knowledge/repos/vllm-omni/models/personaplex/rules.md index a8ae368a..72737698 100644 --- a/knowledge/repos/vllm-omni/models/personaplex/rules.md +++ b/knowledge/repos/vllm-omni/models/personaplex/rules.md @@ -1,10 +1,10 @@ --- title: "PersonaPlex 规则" created: 2026-09-02 -updated: 2026-10-09 +updated: 2026-10-11 type: rule tags: [vllm-omni, models, model-executor] -sources: ["PR #4771", "PR #6318", docs/design/fullduplex-personaplex.md, vllm_omni/model_executor/models/personaplex/duplex/serving_adapter.py, vllm_omni/model_executor/stage_input_processors/personaplex.py, tests/e2e/features/fullduplex/, tests/entrypoints/openai_api/test_duplex_handler.py, "PR #7399", "PR #7481", "PR #8670"] +sources: ["PR #4771", "PR #6318", docs/design/fullduplex-personaplex.md, vllm_omni/model_executor/models/personaplex/duplex/serving_adapter.py, vllm_omni/model_executor/stage_input_processors/personaplex.py, tests/e2e/features/fullduplex/, tests/entrypoints/openai_api/test_duplex_handler.py, "PR #7399", "PR #7481", "PR #8670", "PR #8751"] confidence: high --- @@ -139,4 +139,13 @@ confidence: high 两条前缀)与 nightly(选择同样前缀、NonBlocking、120/110 超时结构、预期 artifact 路径); 重命名测试函数时必须同步 deselect 前缀与 contract。^[PR #8670] - + + +## VLLM-OMNI-PR8751-AMD-PPLEX-NIGHTLY — PersonaPlex Mimi 压力用例只在 AMD nightly 串行承接 + +- 触发:改动 `.buildkite/amd/test-amd-ready.yml`、`.buildkite/amd/test-amd-merge.yml`、`.buildkite/amd/test-amd-nightly.yml` 的 Model Executor CPU shard 或 “Simple · PersonaPlex Temporal Streaming Test” 步骤;重命名或删除 `tests/model_executor/models/personaplex/test_temporal_streaming_hoist.py` 中的 `test_mimi_streaming_step_matches_legacy_end_to_end`;或修改 `tests/buildkite/test_amd_pipeline.py` 的 AMD pipeline contract。 +- 强制:AMD READY/MERGE 的 Model Executor 步骤保持 `-m 'core_model and cpu and not omni'` 与 `--num-shards=$$BUILDKITE_PARALLEL_JOB_COUNT`/`--shard-id=$$BUILDKITE_PARALLEL_JOB` 分片,只允许一条精确到 node 的 `--deselect` 前缀(`test_mimi_streaming_step_matches_legacy_end_to_end`),同文件其余快速节点继续留在阻塞 shard。被移出的 Mimi stress 用例由 nightly 的 PersonaPlex Temporal 步骤串行承接(collect-only、110m timeout、junitxml artifact)。三份 yml 与 `tests/buildkite/test_amd_pipeline.py` 断言的 contract 必须同步修改。 +- 禁止:恢复 `test_temporal_streaming_step_matches_legacy_end_to_end` 的 `--deselect` 或 nightly 条目——该用例已随 dead temporal stepper(`PersonaPlexTemporalStreaming`/`_TemporalLayer`)在 PR #8751 删除;把 `--deselect` 放宽为文件级或通配前缀;只改 yml 不改 `test_amd_pipeline.py`(或反之);因 stepper 已删而连带删除 `personaplex_temporal.py` 中 Mimi 仍消费的 ring-KV/RoPE 原语。 +- 验收:READY/MERGE 只剩 Mimi 一条 `--deselect`;nightly 步骤的 collect 与 run 都只含 Mimi 用例;`tests/buildkite/test_amd_pipeline.py` 与三份 yml 当前内容一致并通过;`personaplex_temporal.py` 保留的 ring-KV/RoPE 原语仍由 `test_ring_per_row_offsets.py` 的存活用例覆盖——注意 PR #8751 同时删除了该文件中的 `test_ring_slot_recycle_masks_old_history`,不得把该文件的覆盖说成完全不变;原语的检查义务另受 PPLEX-HOIST-1a 约束。 ^[PR #8670] ^[PR #8751] + +