返回 AICAP-180
B10 · Day 95p95/cost 测量 + 成本级联 + tau2-bench

级联省钱 vs 质量权衡 (M6)

昨天 Day 94 搭好了 model-cascade 机制、量化了升级触发率——但「触发率」本身不回答最关键的问题:这套级联到底值不值?

阶段: B10 · p95/cost 测量 + 成本级联 + tau2-bench(Day 91-100) 标签: #cost-quality-tradeoff #cascade #pass-rate #significance

今日导引(由浅入深)

昨天 Day 94 搭好了 model-cascade 机制、量化了升级触发率——但「触发率」本身不回答最关键的问题:这套级联到底值不值? 省的钱有没有以掉太多 pass 率为代价? 今天就画那条 $-vs-pass 的 trade-off 曲线。 这是 B10 成本块的收口,也是 B1→B18 曲线上「能把成本-质量权衡量化并对照基线表达」的一关——AISA 面试四问里的「成本」「为什么」全靠这种数字回答。 今天的「最小可判定产出」:相对纯 V4-Pro 基线的省 $% 与 pass 掉幅(两数,真实值待 key),并用 B17 教训提醒「单次 A/B 差不等于显著」。

1. 机理精读

级联的核心是 $-vs-pass 的 trade-off 曲线,不是单点。 升级阈值(置信度门槛)是可调旋钮。 阈值越高(越严,越多请求升级到贵模型)→ pass 率越接近纯贵模型基线,但省钱越少。 阈值越低(越松,越多请求被便宜模型放行)→ 省钱越多,但 pass 率越可能掉。 所以级联不存在「最优点」,只存在「在可接受 pass 损失内,省钱最多的点」。

置信阈值必须对照纯贵模型基线来调。 没有基线就无法判断「pass 掉了多少」。 本项目有 REAL 基线(来自真实 eval run):

  • V4-Flash completion 79.3%(judge=pass)
  • V4-Pro completion 89.7%
  • partial-credit 0.900

级联的目标 pass 率应落在 79.3%(全便宜)与 89.7%(全贵)之间,成本落在两者间。 理想是「逼近 89.7% 的质量、接近 79.3% 的成本」。 寻找「省 X% 且 pass 不掉超阈值」的工作点,本质是在这条曲线上做约束优化。

最危险的陷阱:把单次 A/B 的 pass 差当显著。 这是 B17 已经踩过并写进教训的坑。 V4-Pro vs V4-Flash 的 Δ+10.3pp(89.7% - 79.3%)看起来很大。 但在 N=29 任务下,95% CI 是 [0, 20.7]——下界压在 0,统计上并不显著。 要把这 10.3pp 的差确认为真,需要约 ~70 任务。 所以级联的「pass 掉幅」如果只在小任务集上测一次,得到的差很可能是噪声,不能据此下「级联质量可接受」的结论。 src/agent/eval/stats.tspairedBootstrap + requiredNForDelta 正是为这种判定而建(配对自助法算 CI、正态近似算所需 N)。

与相邻概念的边界。 今天是 B10 成本块的终点。 下一块 Day 96 起转向 tau2-bench(双控制 agent 多轮评测),是「评测严谨性」的另一条线。 今天必须把「省钱数字 + pass 数字 + 显著性警告」三者一起给,缺显著性警告就是不诚实的结论。

2. 推导 / 手算 / 代码走读

本日复用 src/agent/runtime/cascade.ts(Day 94)+ src/agent/eval/stats.ts 的显著性工具。代码走读:

  • 省钱:从 cascadeStats(results, expensiveUnitCost)(cascade.ts:39)读 savedFraction = max(0, 1 - cascadeCost/allExpensiveCost)——这就是「相对纯贵模型省 $X%」的 X。
  • pass 率对比:级联跑出的 pass 率 vs 纯 V4-Pro 基线 89.7%,差值即「pass 掉幅」。
  • 显著性:pairedBootstrap(a, b, {iters})(stats.ts:36)对同一组任务的配对差做自助重采样,返回 { deltaMean, ci95, n, iters }
  • 配对(在同一批任务上对比两模型)消除任务难度方差,CI 才收得紧——这是 stats.ts 顶部注释的设计意图。
  • requiredNForDelta(delta, sdDiff)(stats.ts:59)用正态近似 n = ((z_{α/2}+z_β)·sd/|delta|)²(α=.05 双侧、power=.8)算检出该 delta 所需样本量——这就是「需 ~70 任务」结论的来源工具。
  • 实现细节:zAlpha = 1.959963985zBeta = 0.841621234Math.max(2, Math.ceil(...)) 保证至少 2 个观测。
  • seed 说「基线 pass 率为 REAL(Flash 79.3% / Pro 89.7%)」——这两数是真实 eval 产出,逐字保留,不改。

手算示例(用 requiredNForDelta 复算「~70」量级):

  • 要检出 delta=0.10(10pp)的配对差,若配对差 SD≈0.30。
  • n = ((1.959963985 + 0.841621234) × 0.30 / 0.10)² = (2.8016 × 3)² = (8.405)² ≈ 70.6 → 71
  • 这与 B17「需 ~70 任务」的教训量级吻合。
  • 所以在 N=29 上测到的 Δ+10.3pp CI[0,20.7] 触碰 0、不显著,是数学上的必然,不是偶然。
  • (SD 取值演示用,真实值取自 run;要点是「样本量不够,再大的点估计也可能是噪声」。)

为什么配对(paired)比独立两样本 CI 更紧(stats.ts 设计意图):

  • 独立两样本:Flash 在任务集 A 上跑、Pro 在任务集 B 上跑,差异里混入「A 和 B 难度不同」的方差。
  • 配对:Flash 和 Pro 跑同一批任务,对每个任务取差 diff_i = pass_Pro_i - pass_Flash_i,难度方差被消掉。
  • pairedBootstrap 正是对这组 diffs 重采样(cascade 场景里就是「级联 vs 全贵」在同一任务上的配对差)。
  • 配对后 sdDiff 通常远小于独立两样本的合并 SD,所以 requiredNForDelta 算出的 N 也小得多——但即便如此,10pp 的差仍需 ~70 任务。

三元组报告模板(今天的产出该长什么样,避免不诚实结论):

  • 省钱:「相对纯 V4-Pro,级联省 $X%(来自 cascadeStats.savedFraction)」。
  • 质量:「级联 pass 率 Y%,相对 Pro 基线 89.7% 的 delta 为 (Y-89.7)pp」。
  • 显著性:「配对差 CI=[lo, hi],所需 N≈?;当前 N=~10 不足,结论暂定、需扩到 ~70 任务复核」。
  • 缺第三行 = 把噪声当结论,是这套笔记的诚信红线;B17 的 Δ+10.3pp CI[0,20.7] @ N=29 就是反面教材。

3. 今日实战

  1. bench/cascade.ts(Day 94 建的驱动脚本,仍属待建脚手架)跑 src/agent/eval/tasks.ts 的 ~10 任务子集。
  2. 同一子集跑纯 deepseek-v4-pro 基线,记 $ 与 pass 率作对照分母。
  3. 算两个数:相对纯 V4-Pro 基线的 省 $%(从 cascadeStats.savedFraction)与 pass 率 delta(级联 pass - 89.7%)。
  4. 必做显著性检查:用 pairedBootstrap 对配对 pass 差算 CI、用 requiredNForDelta 算所需 N;若 N 不足(~10 远小于 ~70),在结论里明确标注「pass 差不显著,需扩到 ~70 任务」。
  5. 落出 trade-off 记录(如 bench/out/cascade-tradeoff.md),写清工作点选择理由。

4. 今日实测 / 产出

  • 基线 pass 率为 REAL(Flash 79.3% / Pro 89.7%;partial-credit 0.900)——逐字保留,不改动。
  • model-cascade 的「省 $X% + pass 率 delta」两数 = 待跑(需 key 跑)
  • 跑后产出 里程碑数字之二:相对纯 V4-Pro 基线的省 $% 与 pass 掉幅
  • 状态如实:两个工作点数字待 key,REAL 基线不外推、不伪造级联结果。

5. 常见误区 / 陷阱

  • 把单次 A/B 的 pass 差当显著(B17 教训):V4-Pro vs Flash Δ+10.3pp 在 N=29 下 CI[0,20.7] 不显著,需 ~70 任务才能确认;小任务集上的 pass 掉幅极可能是噪声。
  • 没有基线就报省钱:省 $% 必须对照纯贵模型的 allExpensiveCost,否则数字无意义。
  • 只报省钱不报质量:级联省钱若以 pass 大幅下滑为代价就是劣化,两数必须成对出现。
  • 忽略升级的双重成本:级联 $ 含便宜模型白跑成本(Day 94 已述),算 savedFraction 时勿漏。

6. 学习资源(每条带 YYYY-MM)

  • LiteLLM router 文档(2026 重验)——级联/路由主流方案,对标研究。
  • 项目源码 src/agent/eval/stats.ts(本仓,pairedBootstrap line 36、requiredNForDelta line 59、percentile line 17)——显著性与所需样本量工具。
  • 项目源码 src/agent/runtime/cascade.ts(本仓,cascadeStats line 39,savedFraction 省钱口径)。
  • 「FrugalGPT」arXiv:2305.05176(2023-05)——cascade 省钱 vs 质量权衡奠基论文。
  • B17 当日观察记录(本仓 AICAP 笔记,2026-06)——Δ+10.3pp CI[0,20.7] @ N=29 不显著、需 ~70 任务的实测教训。

SOTA检查 (2026-06 更新)

  • 当前主流:级联省钱模式 2026 仍主流(small-first 编排),仍 SOTA;省 $% + pass delta + 显著性三元组报告是 2026 严谨成本-质量评测口径。
  • 过时黑名单:避免把单次 A/B 的 pass 差当显著——参考 B17 教训:V4-Pro vs Flash Δ+10.3pp CI[0,20.7] 在 N=29 下不显著,需 ~70 任务;继续禁用 legacy deepseek-chat/-reasoner(2026-07-24 退役)。
  • 下次复查点:扩任务集到 ~70 后重测 pass 差显著性;LiteLLM/级联编排活跃度执行当周重验;DeepSeek 模型 id 在 2026-07-24 节点复查。

衔接

  • 昨天:Day 94 — LiteLLM 路由/级联(搭 model-cascade 机制,量化升级触发率)
  • 今天:对照纯 V4-Pro 基线(89.7%)画 $-vs-pass 曲线,产出省 $% + pass delta,并用 B17 教训做显著性把关——B10 成本块收口
  • 明天:Day 96 — tau2-bench 概念(M2, 2026-03):双控制 agent 多轮评测 + pass^k 一致性口径,转向评测严谨性新线