两个模型都答对70%的题,应该随便选一个吗?一个报告说“十次机会里能找到正确答案”,另一个说“一次给出的答案有七成正确”,可以直接排高低吗?
分数并没有撒谎,但省略了题目、预算、评分和失败方式,读者就容易替它补出一个过大的结论。本章用纸笔拆开这些条件。目标不是背熟排行榜名称,而是能判断一个结果测了什么、没测什么,以及我们是否有足够证据相信一次改进。
1.准确率首先是对哪一批问题的平均
设有100道教学题,50道普通信息提取,50道需要处理例外条件。模型A在普通题答对45道,例外题答对25道;模型B分别答对30道和40道。两者都是70÷100=70%。
但是A的普通题正确率是90%,例外题是50%;B则分别是60%与80%。如果工作主要是标准通知,A可能更合适;如果经常遇到延期、改期和附加限制,B的优势才会显现。平均数相同没有消除能力结构的差异。
假设未来任务中普通题占80%,例外题占20%,并且各题型内部的难度和行为保持不变。那么A的预计正确率是0.8×0.9+0.2×0.5=82%,B是0.8×0.6+0.2×0.8=64%。
这里0.8和0.2是题型所占权重,0.9等是该题型内的正确率;乘法算各类对总体的贡献,加法把贡献合起来。若任务比例反过来,A变成58%,B变成76%。这是一组假设数据的重新加权,不是对真实部署的保证。

图1|相同70%怎样变成不同选择。上方保留两类各50题的分项成绩,下方展示普通题占80%与20%的两种加权结果。箭头表达重新加权,分数变化不来自重新训练。
真实分布变化常常不止比例:同属“例外题”,也可能出现更长的文件、新语言或从未见过的规则。那就不能沿用原来的分类正确率。需要重新取样,或至少明确哪些外推假设尚未被验证。
此外,平均每题同权未必符合后果。一条闲聊措辞不好和一次金额提取错误,不应只因为各是一道题,就默认代价相同。可以同时报告普通正确率、关键错误率和分项结果,避免把价值判断藏在一个权重里。
2.把一次评测写成可重做的实验
要让成绩可解释,至少留住六件事:具体模型版本,题集与划分,输入提示与示例,生成预算,允许使用的工具,判分规则。再记执行日期、重复次数以及异常如何计分,别人才能知道你比较的是不是同一件事。
模型名称相近不表示权重、系统提示或服务设置相同。一个版本允许检索,一个版本闭卷回答,测到的是不同信息条件;一个每题试二十次,另一个只能一次,测到的也包含预算差异。
“公平”不必永远等于相同token数。如果你要买一个日常服务,可以比较相同费用或相同延迟下的任务成功率;如果研究模型单次能力,可以固定提示和一次作答。关键是先说比较目标,再选择控制条件,而不是看到哪个条件让喜欢的模型赢,就采用哪个。
还要事先规定超时、格式错误、弃答和工具失败怎么算。全部删除失败记录,会让“有效回答正确率”冒充端到端成功率。上一章的覆盖率也应保留:拒答更多的系统不能只靠缩小分母显得更准确。
OpenAI的评测实践强调按真实任务设计测试、覆盖边界案例,并用人工判断校准自动评分。这些原则不依赖某个特定API,也不是把示例中的分数门槛照搬到所有项目。OpenAI评测最佳实践
软件测试提供了一种拆分方法:单独检查日期解析是否保留时区,是局部检查;把通知经过提取与校验、再核对最终记录,是整条链检查。前者定位组件错误,后者验证组合结果,第35章会进一步展开。模型采样可能同题多答,因而还要按事先固定的重复次数与内容标准记录失败频率;不能重跑到一次通过就宣布修复,也不应要求所有正确摘要逐字相同。明确的格式与权限约束则仍须独立检查,不能借模型有随机性而放宽。
3.pass@k:有一个正确答案,不等于挑中了它
在某些编程评测里,同一道题可以采样k份候选,至少一份通过测试,就算这道题在pass@k口径下成功。k表示尝试次数;最终指标再对题目求平均。它衡量候选集合包含成功答案的能力,不能单独证明系统会选中那份答案。
拿一道教学题做纸笔实验。已经生成10份候选,编号1到10,其中第2份和第7份通过了既定测试,其余八份没有通过。若只从这十份中随机挑一份,成功比例是2÷10=20%。
若不放回地选两份,两份组合总数是10×9÷2=45;其中全错的组合是8×7÷2=28。因此至少一份正确的组合有45−28=17,比例为17÷45,约37.8%。除以2,是因为先选甲再选乙与先选乙再选甲算同一组。
这对应常见pass@k估计式的直觉:从1减去“k份全错”的比例。公式可写为1−C(n−c,k)÷C(n,k):n是已生成候选数,c是其中成功数,C(a,b)表示从a份中选b份、不考虑顺序的选法数。这里n=10、c=2、k=2。

图2|十份实际教学候选中只有2号、7号通过。下方每一格对应一个不同的两份组合,只保留编号小者在前的45格;17格至少含2号或7号,28格全错。若最终选3号,仍是失败。测试标签由评测者掌握,不等于部署时已知标准答案。
假如一次拿出全部十份,集合中确实有正确解。但若选择器凭语言流畅程度挑了第3份,交给用户的仍是错答。部署成功率还取决于选择器、验证工具和剩余预算;它不是集合成功率的同义词。
另一个常见捷径是用1−(1−p)的k次方计算至少一次成功。它要求针对同一道题、单次成功概率p固定且各次独立;不能把整套难易混杂题目的平均pass@1直接塞进去,假装每题成功机会相同。实际估计还要考虑有限候选样本的偏差。
2021年的Codex研究引入HumanEval的164道手写编程题,并用单元测试判定候选的功能正确性,讨论了上述pass@k估计方法。这是该历史研究的具体口径,不是今天所有代码榜单的统一协议。Codex与HumanEval原论文
通过给定测试也不等于程序在所有输入上正确:测试可能遗漏边界。用户实际任务还可能涉及跨文件修改、环境配置和安全限制。读到“编程准确率”时,先问它测的是函数题,还是整个开发过程。
4.污染:模型是在解题,还是已经见过答案
测试污染指本应独立的评测信息进入训练或开发过程。最直观的是测试题原文及答案被训练过;更隐蔽的是翻译版本、轻微改写、题解网页,或把同一原始文件的不同段落随机分到训练与测试两边。
污染并不意味着每次高分都是背诵,也不能仅凭表现优秀就指控见过题。它意味着评测不再干净地区分记忆与泛化,需要额外证据。查到重合是警报,没有查到字符串重合则不能证明不存在语义改写或间接泄漏。
开发阶段同样会泄漏。你用测试集不断改提示、选模型、调拒答门槛,最后拿这套题报告结果,已经让测试信息影响了选择。即使一次参数更新都没做,也可能对测试集过拟合。
较稳妥的安排是将开发题与最终留出题分开,按原始来源、实体或时间切分关联样本;最终测试前固定流程,之后新增的改动要在新的留出数据上确认。对经常公开使用的题库,可以另做近期、私有或不同表达方式的补充测试,但“新题”本身也需要质量检查。
软件工程里的回归测试提供一个有用区分:发现某个例外题失败后,用它修提示、补规则,再把它留下防止回退,是合理的;但修复已经看过这道题,不能继续把它当作从未见过的泛化证据。回归集负责“这个已知问题有没有再出现”,独立留出集负责“改动对新问题是否仍有用”。
仅能黑箱访问模型时,污染检测往往依赖统计信号和假设,不能把一次测试解释为训练数据的完整审计。关于可证明污染检测的研究,也明确设置了其方法成立所需的条件。黑箱测试污染检测研究
5.谁来判分,判的到底是什么
答案是一个确定数字时,可以先把单位和等价写法规范化,再核对是否一致。复杂摘要、建议或对话常没有唯一字面答案,机械字符串匹配会把正确改写判错,也可能把含标准句但夹杂错误的长回答判对。
因此要写评分细则。例如会议摘要分成“时间正确”“地点有依据”“取消条件没有遗漏”三个维度;分别举达标和不达标实例。先让两位评审独立判断同一小批答案,找出分歧来自规则含糊还是事实证据不足。
用另一个模型作评审可以扩大规模,但它也有偏差:可能偏爱更长的回答、某种语气,或摆在前面的选项。做成对比较时,应隐藏模型身份、随机交换左右顺序,并抽样用人工标签检查一致性。不能因为评审也是先进模型,就把评分当作客观真值。模型评审偏差研究
判分器与被测模型还可能共享盲点。两者都误读同一条规定,自动评分反而奖励了错误。对于可外部验证的结果,应优先用可信规则、计算或实际状态;对于主观体验,则把具体评审对象和人群说明白。
注意两种“配对”不同:评审同时看到两份答案,是成对判断;两模型回答相同题目,是配对实验。前者降低某些评价难度,后者让比较控制题目差异;两者可以组合,却不能互相替代。
6.70%不是刻在石头上的真实能力
100道随机题中答对70道,不表示长期能力恰好70.000%。换一批同分布题目,成绩会波动;同一道题重新采样,也可能不同。评测需要同时认识题目抽样与生成随机性,而不是只重复一次看能否得到更高分。
在独立、同分布、每题只有对错的简化条件下,正确比例p的标准误差可近似写成√[p×(1−p)÷n]。n是题数,√表示取平方根,标准误差表示重复抽样时分数波动的典型尺度,不是答错比例。
代入p=0.70、n=100,约为0.046,即4.6个百分点。粗略取上下各两个标准误差,范围约61%到79%。这是帮助理解量级的近似区间,不是对任意题集都成立的保证。若n=1000,同样算法的标准误差约1.45个百分点,区间约67.1%到72.9%。
一千道题若只是十道原题各改写一百次,并没有提供一千份独立证据。相关题、固定公开题库和分布偏差都会让简单公式失真。增加题数不能自动修复选题偏差;只测常见语言,再多也回答不了少数语言的表现。
比较两个模型时,最好让它们回答相同题目,再看哪些题一个对、另一个错。例如另一组100题中,两者都对65题、都错20题,只有A对5题,只有B对10题。A总分70%,B总分75%,差异真正来自那15道分歧题。
给每道相同题记一个差值d:B对而A错记+1,A对而B错记−1,两者同对或同错记0。这100题的总差为10×1+5×(−1)+85×0=5,除以100得到B高5个百分点。共同成功和共同失败影响两者绝对表现,但在逐题差值中抵消;比较的方向来自10比5,而不只是75与70两个总数。

图3|同一100题的配对记录:都对65、A独对5、B独对10、都错20。两模型的结果始终锁在同一题上;净差为(10−5)÷100=5个百分点,分歧涉及15题。这张图展示差值来自哪里,不是显著性证明。
若要用重采样估计差值的波动,一种做法是从这100条“题目+A结果+B结果”的整行记录中有放回抽取100行,再算平均差值,并重复许多次。某行可能抽中多次、某行可能未抽中,但A和B的一对结果不能拆开。重采样中分歧题的数量会变化,于是净差也会变化;形成的区间反映这种抽样模型下比较结果的不确定性,不是单道题成功概率的保证,也不会补上题集中从未覆盖的语言或任务。若关注生成随机性,还要另做重复生成,不能仅重抽固定输出。配对重采样的官方说明
这比拿A的一百道简单题与B的一百道困难题比较更有信息,但五个百分点差距仍不足以自动宣布稳定胜出。应结合配对的统计分析、重复采样和分项错误,判断差距是否大于不确定性。不能用两张分别计算的区间是否重叠,机械代替对差值的直接检验。
还可以给每道题保留一张最小记录卡:输入原文、模型实际输出、工具返回、判分理由、耗时和费用。这样发现异常时,能回到真实记录,而不是凭印象把一次漂亮演示当成稳定能力。公开原始数据若涉及隐私,则应先做适当脱敏和授权。
最终选择也不一定只有一个赢家。假如模型B略准但耗时显著更长,可以让读者同时看到质量与延迟,而不是任意揉成一个总分。先写业务能接受的最低质量与资源上限,再在满足约束的方案中选择,往往比追逐一个缺少条件的排名更实用。
本章练习
题目
问题1|换题型比例重新算
A在普通题、例外题的正确率为90%、50%;B为60%、80%。未来普通题占30%、例外题占70%,且题型内部难度和行为不变。两模型的预计正确率各是多少?这个外推依赖哪项关键条件?
问题2|把pass@2的组合数数清
十份候选中2号、7号通过。列举一组成功组合、一组失败组合,再算不放回选两份时全错组合数和至少一份通过的比例。如果选择器最终只交付3号,结果如何?
问题3|差值必须保留配对
在图3的100题中,都对65、A独对5、B独对10、都错20。算A、B总分及B−A差值;若用重采样检查差值,应该抽单个模型答案,还是整条题目记录?说明理由。
问题4|让改进接受独立检查
你根据测试集中5道失败题修了提示,现在这5题全对。请设计下一步评价,区分检查旧问题与检查新问题,并至少固定两项会影响分数的实验条件。对通知提取任务,再举一项局部检查与一项整条链检查,说明采样生成为什么不能只重跑到一次通过。
思考提示
提示1|对应问题1
每类占比乘该类正确率,再求和。想一想“例外题”这个标签能否保证题目难度没变。
提示2|对应问题2
成功组合至少含2或7;全错组合从另外八份中选。不要把有序选择重复数两遍。
提示3|对应问题3
先给每题记+1、−1或0;抽样时保留能够产生这个差值的两个结果。
提示4|对应问题4
已经影响修复的题目还适合检查什么?哪批数据才没有参与这次选择?局部检查固定哪个接口;整条链最终验收什么?
参考答案与解析
答案1|对应问题1
A为0.3×0.9+0.7×0.5=62%;B为0.3×0.6+0.7×0.8=74%。计算依赖各题型内部的正确率能够延续;如果例外题变长、换语言或难度增加,仅按比例重加权就没有充分依据。
答案2|对应问题2
例如(1,2)成功,(1,3)失败。全错组合为C(8,2)=28,总组合C(10,2)=45,成功比例为1−28÷45=17÷45≈37.8%。选择器交付3号仍未通过测试。集合包含正确候选和最终选中正确候选,是不同事件;给定测试是否覆盖真实需求还需另查。
答案3|对应问题3
A为(65+5)÷100=70%,B为(65+10)÷100=75%,差为5个百分点。重采样应抽整条“题目+A结果+B结果”记录,保持相同题目控制;拆开单个答案会破坏本来相互关联的结果,从而改变比较的不确定性结构。净多对5题并不独自证明稳定优势。
答案4|对应问题4
可把这5题保留为回归集,检查旧问题是否复发;另取未用于提示修改的留出题,在固定方案后评估新问题,并继续保留超时、弃答与格式错误。应固定并记录模型版本、输入提示、生成预算、工具权限、评分规则中的至少两项,完整实验最好全部明确。只报已修5题的成绩,支持修复这些案例,不能独立证明泛化改善。
局部检查可以单测日期解析是否保留时区;整条链检查可以把含更正的通知交给提取、校验流程,核对最终时间是否取更正值、缺失地点是否保持空值。其他明确区分组件与整体结果的设计也可接受。采样会产生波动,跑到一次通过会隐藏失败频率;应按预先固定的重复次数完整记录并评价。
下一章
一个值得相信的分数,应当能追溯到问题分布、信息条件、尝试次数、判分方式和不确定性。下一章我们把这套习惯带入多模态:当输入不再只有文字,而是一张图片,模型究竟得到了哪些表示,又凭什么把看见的内容说出来?