A/B 跑分:分差多少,才算真的赢?
先测出你的"噪声地板"——否则你会为随机波动欢呼
上一节你有了分数。这一节问一个更狠的问题:分数涨了 1 分,是真的变好了,还是它自己抖出来的?
先看一组实测,它可能颠覆你的常识:同一版提示词、同一套评测集、temperature 设成 0(理论上最确定),连跑 5 轮——分数在 17 和 18 之间跳。
如果你改了提示词、跑一次拿到 18 分(基线 17 分)就欢呼"提升了一分",那你庆祝的很可能是噪声。
体重秤上早晚差一斤,是"胖了"还是秤和喝水的正常波动?想知道减肥有没有效,你得先知道这台秤自己的波动范围——低于这个范围的变化,一律不算数。
评测也一样:先测噪声地板,再谈提升。
实验一:temperature=0 也会抖
同一版提示词(A)跑 5 轮,temperature=0
第1轮:17/20 第2轮:18/20 第3轮:18/20
第4轮:18/20 第5轮:17/20
→ 范围 17-18,均值 17.6,标准差 0.49
为什么 temperature=0 还会变?因为 temperature=0 只是让采样"尽量取最高概率的词",但并不保证逐位确定:浮点计算顺序、批处理组合、服务端版本与负载,都可能让结果微妙不同。"设了 temperature=0 就完全可复现"是一个广泛流传的误解。
实验二:temperature=1 抖得更厉害吗
同一版提示词(A)跑 5 轮,temperature=1
第1轮:18 第2轮:18 第3轮:17 第4轮:17 第5轮:18
→ 范围 17-18,均值 17.6,标准差 0.49
这次两者抖动幅度一样——说明在这个任务上(分类,输出极短、选项有限),温度对结果稳定性的影响不大。别把这个结论推广:换成长文生成或开放问答,温度的影响会明显得多。你的任务是哪种,自己测一遍就知道。
实验三:A vs B,谁赢了
- A:规则版提示词(ap2.4 的 v2)
- B:在 A 基础上加了"先找核心诉求,再按优先级归类"的思考步骤
B 五轮:17, 18, 18, 17, 18
A 均值 17.6/20 B 均值 17.6/20 差值 +0.0
单版本自身抖动(标准差)≈ 0.49 —— 这是你的「噪声地板」
⚠️ 判定:差值 0.0 没超过噪声地板 —— 不能说 B 更好
又一次白改。这是本课第二次实测到"精心设计的改进等于零"——ap2.4 是加边界规则没用,这次是加思考步骤没用。
这恰恰是评测最大的价值:它替你拦下了两次"看起来很有道理、实则毫无收益还增加成本"的改动。没有它,你的提示词会在几个月里慢慢膨胀成一坨没人敢删的"祖传规则"。
一套能用的 A/B 判定规矩
| 步骤 | 怎么做 |
|---|---|
| 1. 测噪声地板 | 同一版提示词跑 3-5 轮,算标准差 —— 这是你的最小可信分差 |
| 2. 对比要多轮 | A、B 各跑 3-5 轮取均值,别拿单次结果比 |
| 3. 判定 | 均值差 > 噪声地板 才算真提升;差在地板之内 = 打平,按成本低的选 |
| 4. 看代价 | 分数相同就选提示词更短、更快、更便宜的那版(ap2.4 的教训) |
| 5. 记录 | 每次 A/B 记一行:日期、两版差异、各自均值、噪声地板、结论 |
降低噪声地板的两个办法:① 扩大评测集(20 条 → 100 条,单条错误的权重从 5% 降到 1%);② 多跑几轮取均值(成本换确定性)。评测集越小,你越容易被噪声骗。
🔧 动手做:测出你自己的噪声地板(15 分钟)
- 跑本节代码
ab_test.py(约 5 分钟,15 次全量评测)。 - 记下你的噪声地板(标准差)——从今往后,你的提示词改动必须跨过这个数才配上线。
- 换你的场景:把 CASES 和提示词换成你毕业方向的,重跑实验一,看你的任务噪声有多大。
- 验证"评测集越大越稳":把你的评测集从 20 条扩到 40 条,再测一次噪声地板——降了吗?
- 把判定规矩写进你的项目 README:"提示词改动的上线门槛 = 均值提升 > __ 分(噪声地板)"。
✅ 做到这里你应该有:一个属于你任务的噪声地板数字,和一条写下来的上线门槛。
为什么:这一节是把"用数据决策"落到统计学正确的最后一步。很多团队有评测集但仍在自欺——因为他们跑一次就下结论。知道噪声地板的人,才真正拥有评测。
一个常见的自欺姿势:新版本跑十轮取最好那次,基线跑一轮,然后宣布提升。这是在挑选噪声。规矩很简单:两版待遇必须完全一致——同样的评测集、同样的轮数、同样取均值(或中位数)。任何"我这版多跑了几次挑了个好的"的比较,都不算数。这条纪律和量化课的"回测别挑最好的那次参数"是同一个病根:在噪声里挑幸运儿。
我要对比两版提示词:【A 版思路】vs【B 版思路】,评测集 __ 条,任务是【描述】。请帮我设计实验:1) 该跑几轮、怎么算噪声地板;2) 判定「真提升」的门槛怎么定;3) 除了准确率,还该记录哪些指标(成本/延迟/输出长度);4) 结果打平时按什么选。
A/B 三句话:先测噪声地板(实测 0.49 分)、多轮取均值再比、差值跨不过地板就是打平(按成本选);还有一条纪律:两版待遇必须一致,不许挑幸运轮。
🎉 AP2 完结!你的提示词现在是被管理的资产:版本化、模板化、有回归测试、有 A/B 判定规矩。
下一章回到 ap0.2 的第一座山:结构化输出——那个"5 次跑出 4 种 JSON"的漂移问题,用 schema 约束 + 校验 + 自动修复把它摁下去,并且用评测量化摁下去多少。
🔎 来源与核验· 3 条,点开核对
