# Knob conditional effect 证据整理 本文整理 2026-07-01 到 2026-07-03 在 `dash1` 上跑的 interaction screening 结果,用来支持一个具体论点: > Serving tuning knobs 不是彼此独立的。一个 knob 的收益方向和收益大小依赖当前 topology、admission/concurrency 和 scheduler context,因此不能假设“逐个 knob tune 到最好”一定可靠。 ## Presentation review: 应该怎么展示 原来的 delta summary 能证明 `Delta_knob(context)` 不同,但它不够直观,因为它没有展示 tuning algorithm 会怎么失败。更适合作为 paper 主图的是: 1. **主图:OAT path counterexample** 在同一个 measured response surface 上画两条 one-knob-at-a-time 路径。读者能直接看到:同一个起点、不同单维 tuning 顺序,会停在不同点,而且其中一个是 coordinate-wise local optimum。 2. **补充图:interaction residual** 用 additive model residual 形式说明:如果 TP 和 MNS 是独立贡献,残差应接近 0;实际残差有结构性正负块。 3. **补充图:delta/context summary** 保留为形式化证据,但不作为主图,因为它不能直接展示 OAT 的路径依赖。 因此本文推荐把 `knob-oat-counterexample-c1-qwen30b` 作为主文图,把 C3 crossed lines 和 residual/delta 放在 appendix 或机制分析图中。 ## 图 1:OAT path counterexample ![OAT counterexample](figures/knob-oat-counterexample-c1-qwen30b.png) 数据来源: - `interaction-mixed-qwen30b-tp-mns-surface-high1-dash1-d8899c5-20260701T095858Z` - `interaction-mixed-qwen30b-tp4-mns-nocap-qps20-dash1-d8899c5-20260701T161900Z` 这张图直接展示为什么“逐个维度独立 tune”不可靠。我们从同一个起点 `TP=1, MNS=8` 出发: | Strategy | Path | Final req/s/GPU | |---|---|---:| | tune MNS first, then TP | `TP1,MNS8 -> TP1,MNS16 -> TP4,MNS16` | `2.44` | | tune TP first, then MNS | `TP1,MNS8 -> TP2,MNS8 -> TP2,MNS32` | `3.28` | `TP4,MNS16` 是一个 measured coordinate-wise local optimum: - 固定 `TP=4` 调 `MNS`:`MNS16/32/64` 都是 `2.44`,没有 strictly improving move; - 固定 `MNS=16` 调 `TP`:`TP4=2.44` 高于 `TP1=2.35` 和 `TP2=2.27`; - 但全局最好点 `TP2,MNS32=3.28` 比它高 `25.6%`。 这比单纯说 “MNS 的 delta 依赖 TP” 更有力:它展示了一个实际 tuning path 如何被独立维度假设带到次优点。要从 `TP4,MNS16` 逃到 `TP2,MNS32`,tuner 必须允许非独立的 context-aware move,或者至少维护 frontier/plateau 上的反事实 anchor;单维 greedy OAT 不够。 这里的结论不是“所有 workload 都有强 interaction”,而是更严格地说: 1. 在真实 case 中确实存在明显 conditional effect; 2. 这个现象足以否定 naive one-knob-at-a-time/OAT 作为通用 tuning strategy; 3. harness 需要维护 mechanism-aware context,而不是把 knobs 当作独立维度。 ## Formal definition 记某个 engine config 的 SLO-feasible objective 为: ```text f(config) = max request_rate_per_gpu subject to pass_rate >= target ``` 对 knob `x` 的一个 intervention `x_low -> x_high`,在 context `c` 下的效果定义为: ```text Delta_x(c) = f(x_high, c) - f(x_low, c) ``` 如果存在两个 context `c1, c2`,使得: ```text Delta_x(c1) != Delta_x(c2) ``` 则说明 knob `x` 存在 conditional effect。若符号也变化,比如一个 context 下提升、另一个 context 下降,则是更强的 interaction。 ## 图 2:C1 Qwen30B mixed workload surface ![C1 Qwen30B surface](figures/knob-conditional-c1-qwen30b-surface.png) 数据来源: - `interaction-mixed-qwen30b-tp-mns-surface-high1-dash1-d8899c5-20260701T095858Z` - `interaction-mixed-qwen30b-tp4-mns-nocap-qps20-dash1-d8899c5-20260701T161900Z` 关键观察: | Context | `MNS=8 -> 32` 的 req/s/GPU 变化 | |---|---:| | `TP=1` | `2.10 -> 2.28`, `+8.7%` | | `TP=2` | `2.28 -> 3.28`, `+44.3%` | | `TP=4` | `1.28 -> 2.44`, `+90.3%` | 这说明 `max-num-seqs` 的收益强烈依赖 `tensor-parallel-size`。同一个 `MNS` 调整在 `TP=1` 下只是小幅提升,在 `TP=2/4` 下变成决定性能上限的关键 knob。 反过来看,`TP` 的收益也依赖 `MNS`: - 在 `MNS=8` 时,`TP=4` 是坏点,只有 `1.28 req/s/GPU`; - 在 `MNS=32` 时,`TP=2` 变成全局最优附近,达到 `3.28 req/s/GPU`。 因此,如果 tuner 固定 `MNS=8` 去判断 topology,会错误低估 `TP=4`,也会无法看到 `TP=2 + MNS=32` 的最佳区域;如果固定 `TP=1` 去调 `MNS`,又会低估更高 TP 下 concurrency knob 的价值。这就是 OAT order sensitivity。 ## 图 3:C1 additive residual ![C1 interaction residual](figures/knob-interaction-residual-c1-qwen30b.png) 如果 `TP` 和 `MNS` 可以独立建模,一个简单 additive model: ```text f(TP, MNS) ~= base + effect(TP) + effect(MNS) ``` 应该留下接近 0 的 residual。实际 residual 最大达到约 `0.46 req/s/GPU`,而且呈现结构性模式: - `TP2,MNS32/64` 是正 residual,说明这个组合比独立效应相加更好; - `TP2,MNS16` 和 `TP4,MNS8` 是强负 residual,说明某些组合显著低于独立假设预测。 这张图适合放在机制/appendix 中,用数学形式支持“不是独立 knob effect”。 ## 图 4:C3 Qwen235B decode workload ![C3 Qwen235B decode lines](figures/knob-conditional-c3-qwen235b-decode-lines.png) 数据来源: - `interaction-qwen235b-decode-c3-topo-mns-mbt-fixed-dash1-d8899c5-20260703T022514Z` 完整 8 点结果: | Config | req/s/GPU | pass rate | |---|---:|---:| | `TP4 DP2 EP8 MNS64 MBT256` | `0.0535` | `1.0000` | | `TP4 DP2 EP8 MNS64 MBT384` | `0.0535` | `0.9922` | | `TP4 DP2 EP8 MNS128 MBT256` | `0.0590` | `0.9929` | | `TP4 DP2 EP8 MNS128 MBT384` | `0.0590` | `0.9929` | | `TP2 DP4 EP8 MNS64 MBT256` | `0.0590` | `0.9753` | | `TP2 DP4 EP8 MNS64 MBT384` | `0.0535` | `0.9961` | | `TP2 DP4 EP8 MNS128 MBT256` | `0.0590` | `0.9788` | | `TP2 DP4 EP8 MNS128 MBT384` | `0.0590` | `0.9823` | 关键观察: - `MBT 256 -> 384` 在 `TP4/DP2 + MNS64` 下没有收益; - 同一个 `MBT 256 -> 384` 在 `TP2/DP4 + MNS64` 下反而下降约 `9.2%`; - `MNS 64 -> 128` 在 `TP4/DP2` 下提升约 `10.1%`; - 同一个 `MNS 64 -> 128` 在 `TP2/DP4 + MBT256` 下没有收益,但在 `TP2/DP4 + MBT384` 下恢复约 `10.1%`。 这说明 runtime knobs 的作用不是单调独立的。`MBT` 是否有害取决于 topology 和 `MNS`;`MNS` 是否有用也取决于 topology 和 `MBT`。 ## 图 5:Delta 形式的直接证据 ![Delta summary](figures/knob-conditional-delta-summary.png) 这张图把上面的论证直接转成 `Delta_x(context)`: - C1 中,同样是 `MNS 8 -> 32`,收益从 `+8.7%` 到 `+90.3%` 不等; - C3 中,同样是 `MBT 256 -> 384`,有的 context 是 `0%`,有的 context 是 `-9.2%`; - C3 中,同样是 `MNS 64 -> 128`,有的 context 是 `0%`,有的 context 是 `+10.1%`。 这就是 conditional effect 的直接测量证据。 ## C2 是边界案例,不是反例 C2 Qwen235B prefill tight SLO 的结果更弱: - `TP4` family: `0.1067~0.1175 req/s/GPU`; - `TP8` family: `0.1727 req/s/GPU`; - 在测过的 `MNS={64,128}`、`MBT={8192,16384}` 网格里 runtime knobs 基本平。 这个 case 说明并不是每个 workload 都会在 runtime knobs 上表现出强 interaction。它的主要结论是 topology 主导:`TP8` 相比 `TP4` 约 `+47% req/s/GPU`。 这对 paper framing 反而有用:我们的 claim 不应该是“所有 knobs 总是强耦合”,而应该是: > Tuning system 不能预设 knobs 独立;它必须通过 measured response 判断当前 case 是 topology-dominant、runtime-interaction-dominant,还是 flat/noisy。Harness 的作用是把这些 measured evidence 维护成 search context。 ## 对 harness 设计的含义 这些图支持我们当前 framing: 1. Harness 不应该只做单 knob local search。它需要保留 topology/runtime context,并允许 joint or projected interventions。 2. Candidate generation 不能只说“把某个 knob 调大/调小”,而要说明这个 intervention 所依赖的 context。 3. Validator 不能只比较 raw request rate;必须比较 SLO-feasible `request_rate_per_gpu`,并保存 negative evidence。 4. LLM/planner 的价值不应被描述成“猜一个更好的 knob 值”,而是基于 harness 提供的 measured context 去提出 plausible joint moves。 ## 复现图 ```bash python3 scripts/plot_knob_conditional_effects.py ``` 输出: - `docs/harness-ablation/figures/knob-oat-counterexample-c1-qwen30b.png` - `docs/harness-ablation/figures/knob-interaction-residual-c1-qwen30b.png` - `docs/harness-ablation/figures/knob-conditional-c1-qwen30b-surface.png` - `docs/harness-ablation/figures/knob-conditional-c3-qwen235b-decode-lines.png` - `docs/harness-ablation/figures/knob-conditional-delta-summary.png`