Skip to content

Commit 2be57cc

Browse files
committed
Correct source claims and converge overlapping LoRA rules
1 parent 6439a25 commit 2be57cc

14 files changed

Lines changed: 41 additions & 27 deletions

File tree

‎adapters/vllm_omni/kb-calibration/README.md‎

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,10 @@ shadow mode only when every `reject` case is caught and at most 20 % of the
66
`pass` cases are rejected; re-run it whenever the judge model or version
77
changes.
88

9-
- `good-*`: the eight human-approved rules of InferMatrixCopilot #202, each
10-
replayed as an `add` against its page as it was before the merge.
9+
- `good-*`: the eight human-approved rules of InferMatrixCopilot #202, replayed
10+
against their pages before the merge. DIFF-2ag4 explicitly replaces its
11+
zero-binding predecessor DIFF-2ag2, retaining the old text as retired and
12+
preserving its guards in the stronger successor; the other cases add a rule.
1113
- `bad-*`: mutations the gate must reject (reversed claim, optional enforcement,
1214
restated PR description, contradiction of BENCH-1a, unjustified retirement,
1315
an edit that changes meaning, an invented API) and the historical bot-written
@@ -25,3 +27,9 @@ and canonical owner rules: SCHED-1c names `OmniPrefixCacheManager`, and SERV-9d
2527
preserves engine-exception propagation instead of claiming all engine errors
2628
are HTTP 400. Its `ValueError` 400 and generic internal-error 500 expectations
2729
remain intact.
30+
31+
Recorded rerun reasons also correct BENCH-1h to the actual schema predicate
32+
complement and scope its artifact example to NPU, DIST-1m to exact caller-key
33+
cleanup without an invented pending-key ownership guard, and QOMNI-1i to the
34+
real `async_chunk` symbol with honest existing-test coverage. Negative rule
35+
mutations, labels, source evidence and scoring remain unchanged.

‎adapters/vllm_omni/kb-calibration/cases/good-BENCH-1h.json‎

Lines changed: 2 additions & 2 deletions
Large diffs are not rendered by default.

‎adapters/vllm_omni/kb-calibration/cases/good-DIFF-2ag4.json‎

Lines changed: 2 additions & 2 deletions
Large diffs are not rendered by default.

‎adapters/vllm_omni/kb-calibration/cases/good-DIST-1m.json‎

Lines changed: 2 additions & 2 deletions
Large diffs are not rendered by default.

‎adapters/vllm_omni/kb-calibration/cases/good-QOMNI-1i.json‎

Lines changed: 2 additions & 2 deletions
Large diffs are not rendered by default.

‎knowledge/repos/vllm-omni/benchmark/_index.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: "vLLM-Omni 性能与 Profiling"
33
created: 2026-07-10
4-
updated: 2026-10-06
4+
updated: 2026-10-09
55
type: index
66
tags: [vllm-omni, benchmark]
77
sources: [benchmarks/tts/bench_tts.py, benchmarks/tts/model_configs.yaml, "PR #6522", "PR #6634", "PR #6818", vllm_omni/benchmarks/data_modules/omniinteract_dataset.py, vllm_omni/benchmarks/omniinteract.py, vllm_omni/benchmarks/patch/patch.py, tests/benchmarks/patch/test_patch.py, vllm_omni/benchmarks/duplex/, vllm_omni/entrypoints/cli/benchmark/omni_duplex_eval.py, vllm_omni/experimental/fullduplex/client.py]
@@ -21,7 +21,7 @@ sources: [benchmarks/tts/bench_tts.py, benchmarks/tts/model_configs.yaml, "PR #6
2121

2222
| 遇到什么 | 查看哪里 |
2323
|---|---|
24-
| 新增/审查 perf JSON、warmup 覆盖、realtime artifact、Hub dataset fallback、per-request timeout 或 `/v1/videos` 轮询预算、最终性能复测与控制漂移、startup/raw-load测量边界或archive baseline采样窗口 | [benchmark rules](rules.md) 新增核对:BENCH-1f2、BENCH-1g。 |
24+
| 新增/审查 perf JSON、runner schema predicate、warmup 覆盖、realtime artifact、Hub dataset fallback、per-request timeout 或 `/v1/videos` 轮询预算、最终性能复测与控制漂移、startup/raw-load测量边界或archive baseline采样窗口 | [benchmark rules](rules.md) — BENCH-1f2、BENCH-1g、BENCH-1h。 |
2525
| 查看旧 benchmark 总览 | [overview](overview.md) |
2626
| 运行 AR graph、Hunyuan 或 MiniCPM-o Omni-DuplexEval benchmark | [benchmark guides](guides/_index.md) |
2727
| 调查 profiling、模型加载和性能验证错误 | [benchmark incidents](incidents/_index.md) |

‎knowledge/repos/vllm-omni/benchmark/rules.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: "vLLM-Omni Benchmark 规则"
33
created: 2026-09-05
4-
updated: 2026-10-06
4+
updated: 2026-10-09
55
type: rule
66
tags: [vllm-omni, benchmark]
77
sources: ["PR #7648", "PR #6817", tests/dfx/perf/scripts/run_benchmark.py, tests/benchmarks/test_omniinteract.py, "PR #7130", "PR #7259", "PR #7624", "PR #7504", "PR #8107", "PR #7312", "PR #6538"]
@@ -90,7 +90,7 @@ confidence: high
9090
## BENCH-1h — Buildkite perf 步骤必须按 JSON schema 选择 runner
9191

9292
- 触发:修改 `.buildkite/**` 里 `run_benchmark.py` / `run_diffusion_benchmark.py` 的 `--test-config-file`,或把 perf JSON 在 `dataset` 与 `dataset_name` schema 之间迁移。
93-
- 强制:`run_diffusion_benchmark.py` 只跑 `is_diffusion_perf_config` 为真的 case(`benchmark_params[].dataset`);`run_benchmark.py` 只跑 omni-bench case(`dataset_name`)。schema 过滤看字段,不看 `mark`。迁移 JSON 后,所有引用该文件的 CUDA/NPU/AMD 步骤必须一起换 runner,并改用对应的 `BENCHMARK_DIR` 与 artifact glob。
93+
- 强制:按 `is_diffusion_perf_config` 选择 runner:`benchmark_params` 中存在 `dataset` 且无 `dataset_name` 的条目时为真,只有 diffusion runner 保留这些 case;`run_benchmark.py` 过滤掉这些 case,predicate 为假本身不证明 case 含 `dataset_name` 或已通过完整 schema 校验。schema 过滤不看 `mark`。迁移 JSON 后,扫描全部 CUDA/NPU/AMD 引用并核对 runner。PR #8107 的 NPU HunyuanVideo-1.5 步骤同时改为 `BENCHMARK_DIR` 与对应 artifact glob;其他步骤须核对自己的输出目录和 artifact 契约,不得据此假定都采用相同 glob。
9494
- 禁止:一边已迁 omni-bench、一边仍调 diffusion runner(会 skip 全部 case,pytest 0 selected / exit 5);把某一平台的 runner 修复外推为其他 pipeline 已对齐。
9595
- 验收:扫描全部 `.buildkite` 调用,断言 runner 与 JSON schema 一致;HunyuanVideo-1.5 t2v 等已迁 JSON 不得再回到 `run_diffusion_benchmark.py`。^[PR #8107]
9696

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: "Diffusion"
33
created: 2026-07-10
4-
updated: 2026-10-06
4+
updated: 2026-10-09
55
type: index
66
tags: [vllm-omni, components, diffusion]
77
sources: ["PR #5543", vllm_omni/platforms/cuda/platform.py, vllm_omni/diffusion/attention/backends/flashinfer_attn.py]
@@ -47,7 +47,7 @@ sources: ["PR #5543", vllm_omni/platforms/cuda/platform.py, vllm_omni/diffusion/
4747
| 完整图像 batch VAE decode、native tiling、uneven/idle rank 与 gather 顺序 | [Batch VAE decode rules](rules-vae-batch.md) |
4848
| multi-DiT、dotted `_dit_modules`、loader-to-offloader handoff 与跨 Cache-DiT/compile/LoRA/offload lifecycle、batch sampling-key 的 provided 标志 | [component lifecycle rules](rules-component-lifecycle.md) 新增核对:DIFF-2ag。 |
4949

50-
| PEFT 与 distilled LoRA、startup fusion、delta/key/alpha、Qwen/Wan transformer mapping、PEFT suspend/resume | [LoRA rules](rules-lora.md) 新增核对:DIFF-2ag2、DIFF-2ag3。 |
50+
| PEFT 与 distilled LoRA、startup fusion、delta/key/alpha、Qwen/Wan transformer mapping、PEFT suspend/resume、零绑定与部分绑定拒绝 | [LoRA rules](rules-lora.md) — DIFF-2ag4 合并并继承 DIFF-2ag2;DIFF-2ag3。 |
5151

5252
| Blackwell FA4、显式/auto CUDA backend、per-role mask/SP pad;local FlashAttention deterministic opt-in、role-aware masked cross-attention、NPU packed mask-free/laser fallback、TRTLLM packed-padding 与 config propagation、equal-rank SP auto-pad fast path、等长 batch padding mask 省略 | [attention rules](rules-attention.md) 新增核对:DIFF-1ai3、DIFF-1aj2、DIFF-1ai4、DIFF-1d2。 |
5353

‎knowledge/repos/vllm-omni/components/diffusion/rules-lora.md‎

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: "Diffusion LoRA 规则"
33
created: 2026-09-02
4-
updated: 2026-09-26
4+
updated: 2026-10-09
55
type: rule
66
tags: [vllm-omni, components, diffusion]
77
sources: ["PR #2783", docs/user_guide/diffusion/lora.md, vllm_omni/config/omni_config.py, vllm_omni/config/stage_config.py, vllm_omni/diffusion/data.py, vllm_omni/diffusion/lora/loader.py, vllm_omni/diffusion/lora/manager.py, vllm_omni/diffusion/lora/layers/base_linear.py, vllm_omni/diffusion/models/qwen_image/pipeline_qwen_image.py, vllm_omni/diffusion/models/wan2_2/pipeline_wan2_2.py, vllm_omni/diffusion/models/wan2_2/pipeline_wan2_2_i2v.py, vllm_omni/diffusion/utils/tf_utils.py, vllm_omni/diffusion/worker/diffusion_worker.py, vllm_omni/engine/async_omni_engine.py, vllm_omni/entrypoints/cli/serve.py, tests/diffusion/lora/test_loader.py, tests/diffusion/lora/test_lora_manager.py, tests/entrypoints/test_async_omni_diffusion_config.py, "PR #5500", "vllm_omni/diffusion/models/ltx2/ltx2_adapter_parser.py", "vllm_omni/diffusion/models/ltx2/ltx2_phase_adapter.py", "PR #6070", "PR #6476", "PR #6550", vllm_omni/diffusion/models/minimax_h3/lora.py, "PR #6268", benchmarks/kernels/benchmark_diffusion_lora_expand.py, tests/diffusion/lora/test_base_linear.py, "PR #7195", "PR #7349", "PR #5907", "PR #8008"]
@@ -152,6 +152,8 @@ confidence: high
152152
active id 仍为 `None` 且无 `set_lora`;有 validator 的模型路径仍覆盖完整 binding
153153
completeness。^[PR #7349]
154154

155+
<!-- kb:rule status=retired retired_at=r2026-10-09 reason=superseded evidence="PR #8008" superseded_by=DIFF-2ag4 -->
156+
155157
## DIFF-2ag3 — LoRA/ModelOpt 默认只保留通用组件名与通用 fused 映射
156158

157159
- 触发:修改 `DiffusionLoRAManager` 默认扫描组件、ModelOpt `DEFAULT_PACKED_MODULES_MAPPING`,或 pipeline/model 的 `_lora_components` / `_dit_modules` / `packed_modules_mapping`。
@@ -162,6 +164,8 @@ confidence: high
162164
## DIFF-2ag4 — 任一未绑定 module 的 diffusion LoRA adapter 必须失败
163165

164166
- 触发:修改 `DiffusionLoRAManager._bind_adapter_weights` / `_activate_adapter`、fused/packed `lora_b` 切分,或把部分命中当成成功激活。
165-
- 强制:激活前必须证明 adapter 提供的每个 logical module 都已绑定;`bound_lora_names` 为空、或 `loras` 中仍有未绑定名,一律 `ValueError`,消息含 adapter id、`bound=k/n`、unbound 名和 expected target modules。fused-QKV / packed `output_slices` 对不上 `lora_b` 维度时立即 raise,不得 warning 后 `reset_lora` 并继续。空 adapter(`bound=0/0`)同样失败。稀疏 packed 目标(只供 Q 或 Q/V)在**已提供模块全部绑定**时合法,未提供的 slice 保持 `None`。失败必须走既有 activation cleanup:reset wrapper、清 active/suspended 身份。
167+
- 强制:无论 pipeline 是否提供 binding validator,都必须无条件记录实际命中的 logical module 名;激活前证明 adapter 提供的每个 logical module 都已绑定;`bound_lora_names` 为空、或 `loras` 中仍有未绑定名,一律 `ValueError`,消息含 adapter id、`bound=k/n`、unbound 名和 expected target modules。fused-QKV / packed `output_slices` 对不上 `lora_b` 维度时立即 raise,不得 warning 后 `reset_lora` 并继续。空 adapter(`bound=0/0`)同样失败。稀疏 packed 目标(只供 Q 或 Q/V)在**已提供模块全部绑定**时合法,未提供的 slice 保持 `None`。失败必须走既有 activation cleanup:reset wrapper、清 active/suspended 身份。
166168
- 禁止:只拒绝零绑定却放行部分绑定(例如 `attn.to_out` 命中而 `attn.to_out.0` 被忽略);把 fused 布局失败写成可跳过 warning;在部分 bind 后仍标 adapter active。
167169
- 验收:CPU 覆盖 unmatched 名、empty adapter、fused shape mismatch,以及从 active/suspended 切失败后的 rollback 与旧 adapter 再激活;packed 路径覆盖 Q、Q/V、Q/K/V 三种 name form。^[PR #8008]
170+
171+
<!-- kb:rule status=active since=r2026-10-09 supersedes=DIFF-2ag2 -->

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: "Distributed(跨 stage 通信与数据搬运)"
33
created: 2026-07-16
4-
updated: 2026-09-22
4+
updated: 2026-10-09
55
type: index
66
tags: [vllm-omni, components, distributed]
77
sources: [vllm_omni/distributed/omni_connectors/, vllm_omni/distributed/omni_coordinator/, docs/design/feature/disaggregated_inference.md]
@@ -53,7 +53,7 @@ sources: [vllm_omni/distributed/omni_connectors/, vllm_omni/distributed/omni_coo
5353
| 已修过的 connector/端口产品坑 | [connector pitfalls](connector-pitfalls.md) |
5454
| 选择和配置 connector backend | [connector backends](connector-backends.md) |
5555
| 跨 stage `async_chunk` 流式语义 | [async chunk](async-chunk.md) |
56-
| TP KV receive consensus、chunk boundary、active-window 合同与 Mooncake TCP write completion | [distributed rules](rules.md) 新增核对:DIST-1l、DIST-1l2、DIST-1l3、DIST-1l4。 |
56+
| TP KV receive consensus、chunk boundary、active-window 合同、Mooncake TCP write completion 与 SHM 完整 key 清理 | [distributed rules](rules.md) — DIST-1l、DIST-1l2、DIST-1l3、DIST-1l4、DIST-1m。 |
5757

5858
- [SHM arrival hints、独立 work event 与 polling fallback](rules-shm-readiness.md)。
5959

0 commit comments

Comments
 (0)