你修改了售后 Prompt,成功率从 80% 升到 85%。在二十条样本上,这只是多成功一条;在两万条独立样本上,同样差异的证据强度不同。我们要判断的不是数字是否变大,而是变化是否足以支持采用新版本。
比较必须发生在相同任务上
如果旧版本测试简单查询,新版本测试复杂退款,分数没有可比性。首先固定任务、环境和资源限制,在同一批样本上运行 A、B。每条样本保留两个结果,形成配对比较。
假设一百条任务中,两版都成功七十五条、都失败十条、只有 B 成功十条、只有 A 成功五条。A 成功率 80%,B 为 85%。净提升五个百分点来自十次修复抵消五次退化。只报告平均值,会漏掉那五次退化是否集中在高风险退款上。
版本选择先检查硬约束和业务切片,再考虑总体收益。如果 B 把五个原本安全拦截的越权任务变成放行,即使总体成功率升高,也不能只靠平均分发布。
随机性有不止一个来源
模型采样、服务端执行、检索索引变化、模拟用户回答和工具环境都可能使结果波动。temperature 为零也不能保证整个系统每次相同。固定能够控制的配置,记录不能保证固定的部分,重复运行关键案例。
重复十次同一任务不能当作十个独立业务任务。它能告诉我们这个任务是否稳定,却不会增加场景多样性。统计比较应以任务为基本单元;如果多条任务来自同一个客户或文档,还要考虑更高层的相关性。
用 Bootstrap 看差异的不确定性
Bootstrap 用已经观察到的样本近似总体:每次有放回地抽取同样数量的任务,重新算 B 与 A 的平均差,再重复很多次。将差异分布的低端和高端作为区间估计,可以观察“换一批类似任务,结论可能怎样变化”。
from random import Random
# 每个元素来自同一任务的 B 成功值减去 A 成功值。
# +1 是修复,-1 是退化,0 是两版表现相同。
differences = [1] * 10 + [-1] * 5 + [0] * 85
rng = Random(42) # 固定重采样过程,不代表模型本身确定。
bootstrap_means = []
for _ in range(5000):
# 成对重采样:抽取的是“同一任务的差值”,不能分别打乱 A、B。
drawn = [rng.choice(differences) for _ in differences]
bootstrap_means.append(sum(drawn) / len(drawn))
bootstrap_means.sort()
print("observed difference", sum(differences) / len(differences)) # 0.05
# 教学用百分位区间;正式报告还应记录方法、重采样次数和随机种子。
print("interval", bootstrap_means[125], bootstrap_means[4874])
实现时可对照 SciPy Bootstrap 文档 中的配对重采样与区间方法。这个区间依赖样本代表性和独立性假设。若一百条只是同一个问题的换词版本,应按案例族重采样,而不是按行重采样。全是成功的小样本也可能产生退化的 Bootstrap 区间;二项成功率可考虑 Wilson 区间等方法。不能把很窄的区间当作数据覆盖充分的证明。
95% 置信区间描述的是方法在重复抽样中的覆盖性质,不是已经固定的参数有 95% 概率落在这一次区间里。区间跨过零表示当前证据仍兼容无提升或下降,不等于证明两个版本完全相同。
样本量应围绕决策选择
如果产品只接受至少三个点的改进,就不必把统计显著但只有零点一个点的变化当成重大进步。先定义最小有意义的效果,再结合基线成功率、配对相关性和可接受错误概率估计样本量。
稀有严重事故更难测量。零次越权观测不代表越权概率为零。在独立、同分布等近似条件下,n 次零失败的失败率 95% 上界可以粗略用 3/n 理解;一百次零失败仍不能证明万分之一风险。风险场景定向测试能发现缺陷,但不自动给出自然流量发生率。
至少成功一次与每次都成功
若单次成功概率为 p,并假设各次尝试独立、分布相同,那么尝试 k 次至少一次成功的概率为 1-(1-p)^k,而 k 次全部成功的概率为 p^k。p 为 0.8、k 为 3 时,分别是 0.992 和 0.512。
前者适合讨论允许搜索多个候选并能识别成功的任务,后者更接近重复使用的稳定性。对退款而言,“三次里至少有一次正确,另两次可能重复退款”显然不能当作可靠服务。实际尝试经常相关,不能无条件套用独立公式。
从 n 次观测、c 次成功估计组合成功率时,常见估计分别为 1-C(n-c,k)/C(n,k) 和 C(c,k)/C(n,k);需要 n 不小于 k。τ-bench 解读会继续解释后一类稳定性指标的含义。
不断挑最好版本也会过拟合
在同一个测试集上试一百种 Prompt,总能找到偶然高分者。应把候选筛选放在开发和验证阶段,锁定版本后再执行独立测试。线上实验也要预先定义主指标、实验单元、样本量或有效的序贯方法,不能每小时看一次普通显著性检验,第一次好看就停止。
报告最终给出配对提升、退化清单、切片表现、不确定性、耗时和成本。统计方法帮助表达我们知道多少,而不是把一次偶然成功包装成保证。
继续阅读与配套材料
上一篇:评测指标怎样计算:准确率、召回率与平均分背后的问题。
下一篇:怎样评测 Prompt 和模型回答:从格式检查到语义正确。
完整示例、运行方式和验证边界见评测实验指南下载。本系列的订单、政策、金额和实验数据均为教学示例。