三表整合 (M4+M6+M2)
B10 这一程跑下来攒了三组互相独立的数据。
阶段: B10 · p95/cost 测量 + 成本级联 + tau2-bench(Day 91-100) 标签: #cost-capability #consistency-check #report #scatter
今日导引(由浅入深)
B10 这一程跑下来攒了三组互相独立的数据。 Day 91-93 的压测(p95/p99 + $/query,M4);Day 94-95 的级联(省 $% / pass 掉幅,M6);Day 96-98 的 tau2(pass^k,M2)。 B1→B18 曲线到这里要做的不是再加一项能力,而是把已有数据拼成一张能用于选型论证的「能力-成本」报告。 今天的内核是口径一致性——三表能不能拼到一起,取决于 token 计数来源、$ 单价、pass 判定函数是否同源;不一致就根本不可比。 最小可判定产出:一组一致性校验测试(断言 token 计数与 $ 公式跨表一致,纯逻辑、不需 key)+ 一张 p95-vs-$ 散点图骨架(真实数据点待 Day 91-95 跑出后填)。
1. 机理精读
定义。 三表整合 = 把压测表(每配置的 p50/p95/p99、$/query 均值与 p95)、级联表(escalation rate、省 $%、pass 掉幅)、tau2 表(pass^1/pass^k)合并进一份「能力-成本」报告骨架。 并在 p95(延迟) × $/query 平面上把每个配置画成一个散点。
为什么口径一致是前提。
三组数据来自不同脚本、不同跑次,唯一能让它们可比的是共享口径。
(1) token 计数来源一致——都从同一个 usage 字段读 in/out tokens,不能一表用 provider usage、另一表自己估算。
(2) $ 用同一单价——同一周的 deepseek-v4-flash / deepseek-v4-pro 单价,不能混用历史价。
(3) pass 判定函数一致——级联的 pass 和 tau2 的单次 pass 若用不同 grader,pass 数字就不可叠。
任何一处不一致,散点图上的点就是「苹果和橘子」,选型论证立刻失效。
口径不一致是「报告造假」里最隐蔽的一种——它不需要任何人主观撒谎,只要两段脚本各算各的就会发生。
所以一致性校验测试不是锦上添花,而是报告可信度的承重墙:它把「口径同源」从口头约定变成 CI 里的硬断言。
为什么要散点而非单一表。 hiring manager 四问里有「成本」和「评测」两问,单维度数字(只报 pass 或只报 $)在选型论证里没有说服力。 便宜但慢、快但贵、稳但成本高,都要在同一平面上看 trade-off。 p95-vs-$ 散点把每个配置(并发档 1/4/8、级联 on/off、单模型 Flash/Pro)标成一个点。 一眼看出帕累托前沿:哪些配置被其他配置在「又快又便宜」上严格支配,哪些是不可支配的可选项。 帕累托支配的判定很简单:配置 A 支配 B 当且仅当 A 在 p95 和 $ 上都不劣于 B 且至少一项更优。 被支配的点直接从候选里剔除,剩下的前沿点才进入「按 SLA/预算挑一个」的决策。 pass^k 则作为第三维标在点的大小/颜色上——同样在前沿上,pass^k 更高的配置更可信。
关键权衡。
整合的难点不在画图,在强制对齐。
你得写一致性校验测试,把「token 计数公式」「$ 公式」抽成单一可信源(复用 stats.ts / cascade.ts 的内部口径),再断言每张表都从这个源算。
这有工程成本,但它是报告可信的唯一保证——否则三表拼出来的图是好看的谎言。
与相邻概念边界。 本日不产生新测量,只做整合 + 一致性校验。 真实数据点依赖 Day 91-95 的实测(全部 gated,需 key),所以今天能交付的是:一致性测试(纯逻辑可绿)+ 散点图骨架(坐标轴/配置位/口径就位,数据点占位待填)。 这与 Day 100 的 block 复盘区别在于:今天是「把数据拼成报告」,Day 100 是「锁里程碑三数 + SOTA 复查 + 定下一步」。
AISA 选型论证的落点。 这张报告的真正用途是回答 hiring manager 的「为什么选这个配置」。 一个完整论证长这样:在 P95 ≤ X ms 的 SLA 约束下,落到帕累托前沿的有 {级联+并发8, 纯Flash} 两点;级联点 $ 更低但 pass^k 掉了 Y pp,纯 Flash 点贵 Z% 但稳定。 于是「选哪个」变成一个可量化、可复算的 trade-off,而不是凭感觉。 这正是 build-vs-buy、模型选型这类 AISA 决策需要的论证形态——三表整合提供的就是这套论证的事实底座。
2. 推导 / 手算 / 代码走读
整合脚本(bench/report.ts 之类)待建(bench/ 不存在)。
今天走读用于保证口径一致的真实已有代码:
- 省 $% 口径源:
src/agent/runtime/cascade.ts的cascadeStats(results, expensiveUnitCost)(cascade.ts:39)已经定义了「省 $%」的唯一算法。 - 公式细节:
savedFraction = max(0, 1 - cascadeCost / allExpensiveCost)(cascade.ts:52)。 - 分母分子:
cascadeCost是各次costUsd之和(cascade.ts:45);allExpensiveCost = n × expensiveUnitCost(cascade.ts:46)。 - 一致性断言:报告里的「省 $%」必须等于
cascadeStats的savedFraction,不能另算。 - 延迟口径源:
src/agent/eval/stats.ts的summarizeLatency(samplesMs)(stats.ts:76)是 p50/p95/p99/mean 的唯一来源,散点的 p95 轴必须取它的输出,不能自己排序取分位。 - $ 公式一致性:成本 = (in_tokens × in_price + out_tokens × out_price)(Day 93 机理),三表都从同一 usage 字段与同一周单价算。
- 可手测:一致性测试构造已知 token/价格,断言压测表 $/query 与级联表 costUsd 用同一公式得同一结果。
- 散点数据结构:每点 =
{config, p95Ms, dollarPerQuery, passMetric},纯数据;图可 commit 为静态资产(坐标轴 + 口径标注就位),数据点字段先占位。 - 可立即落地 vs gated:一致性校验测试(构造合成 token/$/pass,断言跨表公式相等)= 纯逻辑,可绿,不需 key;散点的真实坐标 = 依赖 Day 91-95 实测,待跑(需 key)。
一致性校验的最小断言示例(纯逻辑,不需 key):
// 同一组 (in,out,price) 喂两条路径,断言两边算出的 $ 相等
costFromLoadtest = in*inPrice + out*outPrice
costFromCascade = cascadeStats([{escalated:false, costUsd: in*inPrice + out*outPrice}], pro).cascadeCost
assert(costFromLoadtest === costFromCascade) // 口径同源才能拼图
3. 今日实战
- 新建
bench/report.ts:定义统一的ReportRow结构(config、token 来源、$ 公式、p95、pass),把 Day 91-98 产物按统一口径归一。 - 写一致性校验测试
bench/report.test.ts:断言 (a) token 计数跨表同源、(b) $ 公式跨表一致(用cascadeStats的savedFraction与压测 $/query 互校)、(c) pass 判定函数同一。全部纯逻辑、不需 key。 - 画 p95-vs-$ 散点:每个配置(并发 1/4/8 × 级联 on/off × 单模型 Flash/Pro)一个点,commit 图骨架;真实坐标待 Day 91-95 跑出后回填。
- 报告骨架预留三块占位:压测表、级联表、tau2 pass^k 表,等真实数字到位即填。
4. 今日实测 / 产出
- 一致性测试(纯逻辑校验 token/$ 口径)= 可建并通过(不需 key)。
- 整合报告 + p95/$ 散点 chart = 依赖 Day 91-95 实测数字,故图的真实数据点 = 待跑(需 key 跑后填入)。
状态如实:报告骨架与一致性测试可绿,但散点上的真实坐标全部 gated;不把占位图当成有真实数据的成品。
5. 常见误区 / 陷阱
- 三表用不同 token 来源拼图:一表读 provider usage、另一表自估,数字不可比;必须同源。
- 混用历史单价:级联省 $% 用旧价、压测 $/query 用新价,省钱结论失真;同一周单价对齐。
- 只报 pass 不报 $/p95:单维度在选型论证里没有说服力——能力-成本报告的卖点正是联合视图。
- 散点占位图当成果展示:数据点未跑出前那只是坐标轴;必须标注「真实坐标待跑(需 key)」。
- 用 mean 延迟代替 p95 画散点:mean 被快请求拉低、掩盖尾延迟;散点轴必须取
summarizeLatency的 p95。 - 把被支配点也画上去当卖点:帕累托被支配的配置没有论证价值,留着只会让图变脏;前沿点才是结论。
6. 学习资源(每条带 YYYY-MM)
- 本仓
src/agent/runtime/cascade.ts(cascadeStats/savedFraction,省 $% 唯一口径),2026-06。 - 本仓
src/agent/eval/stats.ts(summarizeLatency,p95 唯一口径),2026-06。 - 本仓
src/agent/eval/tasks.ts(pass 判定 codeCheck 来源,保证三表 pass 同源),2026-06。 - OpenRouter / DeepSeek 定价页($ 公式单价来源,当周必查),2026-06。
- Anthropic "Demystifying evals"(能力-成本联合报告 / 评测口径一致性),2026-01。
- tau2-bench 论文(pass^k 第三维数据来源),2026-03。
SOTA检查 (2026-06 更新)
- 当前主流:「能力-成本」联合报告是 2026 AISA 作品集标准件(对应 hiring manager 四问之成本/评测),仍 SOTA。
- 是否仍 SOTA:是。p95 × $ × pass 的联合视图 + 帕累托前沿是当前选型论证的标准呈现方式。
- 过时黑名单:避免只报 pass 不报 $/p95(单维度无说服力);避免跨表不同口径拼图;避免引用 legacy deepseek-chat 价格(2026-07-24 退役)。
- 下次复查点:单价当周必查(OpenRouter/DeepSeek 波动);散点的并发档/级联配置随真实跑次回填后须复核帕累托前沿。
衔接
- 昨天:Day 98 — pass^k 测量(M2),pass^1 / pass^3 数字表(需 key)。
- 今天:三表整合——口径一致性校验(纯逻辑可绿)+ p95-vs-$ 散点骨架(真实点待 key)。
- 明天:Day 100 — Block 复盘 + SOTA 检查,锁里程碑三数 + 笔记发 /learn/aipa + commit。