← 返回目录
ap2.5实操⏱ 约 10 分钟

A/B 跑分:分差多少,才算真的赢?

先测出你的"噪声地板"——否则你会为随机波动欢呼

🔎 最后验证 2026-08📚 来源:本节噪声地板与 A/B 对比为 ECS 实测(2026-08,deepseek-chat,20 条样本 × 5 轮 × 3 组,脚本与原始输出见本节代码)🧰 DeepSeek API、Python
为什么学这个

上一节你有了分数。这一节问一个更狠的问题:分数涨了 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 分钟)

  1. 跑本节代码 ab_test.py(约 5 分钟,15 次全量评测)。
  2. 记下你的噪声地板(标准差)——从今往后,你的提示词改动必须跨过这个数才配上线。
  3. 换你的场景:把 CASES 和提示词换成你毕业方向的,重跑实验一,看你的任务噪声有多大。
  4. 验证"评测集越大越稳":把你的评测集从 20 条扩到 40 条,再测一次噪声地板——降了吗?
  5. 把判定规矩写进你的项目 README:"提示词改动的上线门槛 = 均值提升 > __ 分(噪声地板)"。

做到这里你应该有:一个属于你任务的噪声地板数字,和一条写下来的上线门槛。

为什么:这一节是把"用数据决策"落到统计学正确的最后一步。很多团队有评测集但仍在自欺——因为他们跑一次就下结论。知道噪声地板的人,才真正拥有评测。

❓ 测验
你的评测集 20 条,基线 15 分。改了提示词后跑一次得 16 分。该上线吗?
⚠️ 避坑别用「跑十轮取最高分」来证明你的新版本更好

一个常见的自欺姿势:新版本跑十轮取最好那次,基线跑一轮,然后宣布提升。这是在挑选噪声。规矩很简单:两版待遇必须完全一致——同样的评测集、同样的轮数、同样取均值(或中位数)。任何"我这版多跑了几次挑了个好的"的比较,都不算数。这条纪律和量化课的"回测别挑最好的那次参数"是同一个病根:在噪声里挑幸运儿。

🤖 让 AI 帮你设计 A/B 实验
我要对比两版提示词:【A 版思路】vs【B 版思路】,评测集 __ 条,任务是【描述】。请帮我设计实验:1) 该跑几轮、怎么算噪声地板;2) 判定「真提升」的门槛怎么定;3) 除了准确率,还该记录哪些指标(成本/延迟/输出长度);4) 结果打平时按什么选。
✅ 小结

A/B 三句话:先测噪声地板(实测 0.49 分)、多轮取均值再比、差值跨不过地板就是打平(按成本选);还有一条纪律:两版待遇必须一致,不许挑幸运轮。

🎉 AP2 完结!你的提示词现在是被管理的资产:版本化、模板化、有回归测试、有 A/B 判定规矩。

下一章回到 ap0.2 的第一座山:结构化输出——那个"5 次跑出 4 种 JSON"的漂移问题,用 schema 约束 + 校验 + 自动修复把它摁下去,并且用评测量化摁下去多少

下一节 → AP3 结构化输出:让 JSON 不再飘
🔎 来源与核验· 3 条,点开核对
本节每个关键论断都对应一个可追溯的来源 —— 这是本课程"靠谱、不过时"的底线。
「同一版提示词 20 条评测集连跑 5 轮:temperature=0 与 temperature=1 均为 17-18 分区间,均值 17.6,标准差 0.49」
📚 ECS 实测 ab_test.py(2026-08,deepseek-chat)✓ 已核验 2026-08
「A(规则版)与 B(规则版+思考步骤)各跑 5 轮均值均为 17.6,差值 0.0,未超过噪声地板 0.49,判定为打平」
📚 同上实测✓ 已核验 2026-08
「temperature=0 不保证结果逐位可复现(受浮点顺序、批处理与服务端状态影响)」
📚 本节实测观察 + 大模型推理通行认知✓ 已核验 2026-08
智图软件的赞赏码
都看到这了,打个赏呗!
接下来 · ap3.1
JSON 输出:能解析 ≠ 能用
继续读下一节 →