[{"data":1,"prerenderedAt":363},["ShallowReactive",2],{"article:column:/column/llm-to-agent-learning/23":3},{"id":4,"title":5,"body":6,"description":355,"extension":356,"meta":357,"navigation":358,"path":359,"seo":360,"stem":361,"__hash__":362},"column/column/llm-to-agent-learning/23.md","23｜评测模型：一个分数能支持多大结论",{"type":7,"value":8,"toc":338},"minimark",[9,13,16,21,24,27,30,33,40,43,46,49,53,56,59,62,65,75,78,82,85,88,91,94,100,103,106,109,117,120,124,127,130,133,136,139,147,151,154,157,165,168,171,175,178,181,184,187,190,193,199,202,210,213,216,219,222,226,232,235,240,243,248,251,256,259,262,267,270,275,278,283,286,291,294,297,302,305,310,313,318,321,326,329,332,335],[10,11,12],"p",{},"两个模型都答对70%的题，应该随便选一个吗？一个报告说“十次机会里能找到正确答案”，另一个说“一次给出的答案有七成正确”，可以直接排高低吗？",[10,14,15],{},"分数并没有撒谎，但省略了题目、预算、评分和失败方式，读者就容易替它补出一个过大的结论。本章用纸笔拆开这些条件。目标不是背熟排行榜名称，而是能判断一个结果测了什么、没测什么，以及我们是否有足够证据相信一次改进。",[17,18,20],"h2",{"id":19},"_1准确率首先是对哪一批问题的平均","1．准确率首先是对哪一批问题的平均",[10,22,23],{},"设有100道教学题，50道普通信息提取，50道需要处理例外条件。模型A在普通题答对45道，例外题答对25道；模型B分别答对30道和40道。两者都是70÷100＝70%。",[10,25,26],{},"但是A的普通题正确率是90%，例外题是50%；B则分别是60%与80%。如果工作主要是标准通知，A可能更合适；如果经常遇到延期、改期和附加限制，B的优势才会显现。平均数相同没有消除能力结构的差异。",[10,28,29],{},"假设未来任务中普通题占80%，例外题占20%，并且各题型内部的难度和行为保持不变。那么A的预计正确率是0.8×0.9＋0.2×0.5＝82%，B是0.8×0.6＋0.2×0.8＝64%。",[10,31,32],{},"这里0.8和0.2是题型所占权重，0.9等是该题型内的正确率；乘法算各类对总体的贡献，加法把贡献合起来。若任务比例反过来，A变成58%，B变成76%。这是一组假设数据的重新加权，不是对真实部署的保证。",[10,34,35],{},[36,37],"img",{"alt":38,"src":39},"23｜评测模型：一个分数能支持多大结论：图1","/collections-assets/llm-to-agent-learning/9ba015c586bfa99e3f2c38e0e77e98fa550a10dbd4ab07f153cfca5223ed2320.png",[10,41,42],{},"图1｜相同70%怎样变成不同选择。上方保留两类各50题的分项成绩，下方展示普通题占80%与20%的两种加权结果。箭头表达重新加权，分数变化不来自重新训练。",[10,44,45],{},"真实分布变化常常不止比例：同属“例外题”，也可能出现更长的文件、新语言或从未见过的规则。那就不能沿用原来的分类正确率。需要重新取样，或至少明确哪些外推假设尚未被验证。",[10,47,48],{},"此外，平均每题同权未必符合后果。一条闲聊措辞不好和一次金额提取错误，不应只因为各是一道题，就默认代价相同。可以同时报告普通正确率、关键错误率和分项结果，避免把价值判断藏在一个权重里。",[17,50,52],{"id":51},"_2把一次评测写成可重做的实验","2．把一次评测写成可重做的实验",[10,54,55],{},"要让成绩可解释，至少留住六件事：具体模型版本，题集与划分，输入提示与示例，生成预算，允许使用的工具，判分规则。再记执行日期、重复次数以及异常如何计分，别人才能知道你比较的是不是同一件事。",[10,57,58],{},"模型名称相近不表示权重、系统提示或服务设置相同。一个版本允许检索，一个版本闭卷回答，测到的是不同信息条件；一个每题试二十次，另一个只能一次，测到的也包含预算差异。",[10,60,61],{},"“公平”不必永远等于相同token数。如果你要买一个日常服务，可以比较相同费用或相同延迟下的任务成功率；如果研究模型单次能力，可以固定提示和一次作答。关键是先说比较目标，再选择控制条件，而不是看到哪个条件让喜欢的模型赢，就采用哪个。",[10,63,64],{},"还要事先规定超时、格式错误、弃答和工具失败怎么算。全部删除失败记录，会让“有效回答正确率”冒充端到端成功率。上一章的覆盖率也应保留：拒答更多的系统不能只靠缩小分母显得更准确。",[10,66,67,68],{},"OpenAI的评测实践强调按真实任务设计测试、覆盖边界案例，并用人工判断校准自动评分。这些原则不依赖某个特定API，也不是把示例中的分数门槛照搬到所有项目。",[69,70,74],"a",{"href":71,"rel":72},"https://developers.openai.com/api/docs/guides/evaluation-best-practices",[73],"nofollow","OpenAI评测最佳实践",[10,76,77],{},"软件测试提供了一种拆分方法：单独检查日期解析是否保留时区，是局部检查；把通知经过提取与校验、再核对最终记录，是整条链检查。前者定位组件错误，后者验证组合结果，第35章会进一步展开。模型采样可能同题多答，因而还要按事先固定的重复次数与内容标准记录失败频率；不能重跑到一次通过就宣布修复，也不应要求所有正确摘要逐字相同。明确的格式与权限约束则仍须独立检查，不能借模型有随机性而放宽。",[17,79,81],{"id":80},"_3passk有一个正确答案不等于挑中了它","3．pass@k：有一个正确答案，不等于挑中了它",[10,83,84],{},"在某些编程评测里，同一道题可以采样k份候选，至少一份通过测试，就算这道题在pass@k口径下成功。k表示尝试次数；最终指标再对题目求平均。它衡量候选集合包含成功答案的能力，不能单独证明系统会选中那份答案。",[10,86,87],{},"拿一道教学题做纸笔实验。已经生成10份候选，编号1到10，其中第2份和第7份通过了既定测试，其余八份没有通过。若只从这十份中随机挑一份，成功比例是2÷10＝20%。",[10,89,90],{},"若不放回地选两份，两份组合总数是10×9÷2＝45；其中全错的组合是8×7÷2＝28。因此至少一份正确的组合有45−28＝17，比例为17÷45，约37.8%。除以2，是因为先选甲再选乙与先选乙再选甲算同一组。",[10,92,93],{},"这对应常见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。",[10,95,96],{},[36,97],{"alt":98,"src":99},"23｜评测模型：一个分数能支持多大结论：图2","/collections-assets/llm-to-agent-learning/5800b7a317a577b00f2b223853f6605c7288055bbc74889b4c3642e96e4f86f4.png",[10,101,102],{},"图2｜十份实际教学候选中只有2号、7号通过。下方每一格对应一个不同的两份组合，只保留编号小者在前的45格；17格至少含2号或7号，28格全错。若最终选3号，仍是失败。测试标签由评测者掌握，不等于部署时已知标准答案。",[10,104,105],{},"假如一次拿出全部十份，集合中确实有正确解。但若选择器凭语言流畅程度挑了第3份，交给用户的仍是错答。部署成功率还取决于选择器、验证工具和剩余预算；它不是集合成功率的同义词。",[10,107,108],{},"另一个常见捷径是用1−(1−p)的k次方计算至少一次成功。它要求针对同一道题、单次成功概率p固定且各次独立；不能把整套难易混杂题目的平均pass@1直接塞进去，假装每题成功机会相同。实际估计还要考虑有限候选样本的偏差。",[10,110,111,112],{},"2021年的Codex研究引入HumanEval的164道手写编程题，并用单元测试判定候选的功能正确性，讨论了上述pass@k估计方法。这是该历史研究的具体口径，不是今天所有代码榜单的统一协议。",[69,113,116],{"href":114,"rel":115},"https://arxiv.org/html/2107.03374v2",[73],"Codex与HumanEval原论文",[10,118,119],{},"通过给定测试也不等于程序在所有输入上正确：测试可能遗漏边界。用户实际任务还可能涉及跨文件修改、环境配置和安全限制。读到“编程准确率”时，先问它测的是函数题，还是整个开发过程。",[17,121,123],{"id":122},"_4污染模型是在解题还是已经见过答案","4．污染：模型是在解题，还是已经见过答案",[10,125,126],{},"测试污染指本应独立的评测信息进入训练或开发过程。最直观的是测试题原文及答案被训练过；更隐蔽的是翻译版本、轻微改写、题解网页，或把同一原始文件的不同段落随机分到训练与测试两边。",[10,128,129],{},"污染并不意味着每次高分都是背诵，也不能仅凭表现优秀就指控见过题。它意味着评测不再干净地区分记忆与泛化，需要额外证据。查到重合是警报，没有查到字符串重合则不能证明不存在语义改写或间接泄漏。",[10,131,132],{},"开发阶段同样会泄漏。你用测试集不断改提示、选模型、调拒答门槛，最后拿这套题报告结果，已经让测试信息影响了选择。即使一次参数更新都没做，也可能对测试集过拟合。",[10,134,135],{},"较稳妥的安排是将开发题与最终留出题分开，按原始来源、实体或时间切分关联样本；最终测试前固定流程，之后新增的改动要在新的留出数据上确认。对经常公开使用的题库，可以另做近期、私有或不同表达方式的补充测试，但“新题”本身也需要质量检查。",[10,137,138],{},"软件工程里的回归测试提供一个有用区分：发现某个例外题失败后，用它修提示、补规则，再把它留下防止回退，是合理的；但修复已经看过这道题，不能继续把它当作从未见过的泛化证据。回归集负责“这个已知问题有没有再出现”，独立留出集负责“改动对新问题是否仍有用”。",[10,140,141,142],{},"仅能黑箱访问模型时，污染检测往往依赖统计信号和假设，不能把一次测试解释为训练数据的完整审计。关于可证明污染检测的研究，也明确设置了其方法成立所需的条件。",[69,143,146],{"href":144,"rel":145},"https://arxiv.org/abs/2310.17623",[73],"黑箱测试污染检测研究",[17,148,150],{"id":149},"_5谁来判分判的到底是什么","5．谁来判分，判的到底是什么",[10,152,153],{},"答案是一个确定数字时，可以先把单位和等价写法规范化，再核对是否一致。复杂摘要、建议或对话常没有唯一字面答案，机械字符串匹配会把正确改写判错，也可能把含标准句但夹杂错误的长回答判对。",[10,155,156],{},"因此要写评分细则。例如会议摘要分成“时间正确”“地点有依据”“取消条件没有遗漏”三个维度；分别举达标和不达标实例。先让两位评审独立判断同一小批答案，找出分歧来自规则含糊还是事实证据不足。",[10,158,159,160],{},"用另一个模型作评审可以扩大规模，但它也有偏差：可能偏爱更长的回答、某种语气，或摆在前面的选项。做成对比较时，应隐藏模型身份、随机交换左右顺序，并抽样用人工标签检查一致性。不能因为评审也是先进模型，就把评分当作客观真值。",[69,161,164],{"href":162,"rel":163},"https://arxiv.org/abs/2306.05685",[73],"模型评审偏差研究",[10,166,167],{},"判分器与被测模型还可能共享盲点。两者都误读同一条规定，自动评分反而奖励了错误。对于可外部验证的结果，应优先用可信规则、计算或实际状态；对于主观体验，则把具体评审对象和人群说明白。",[10,169,170],{},"注意两种“配对”不同：评审同时看到两份答案，是成对判断；两模型回答相同题目，是配对实验。前者降低某些评价难度，后者让比较控制题目差异；两者可以组合，却不能互相替代。",[17,172,174],{"id":173},"_670不是刻在石头上的真实能力","6．70%不是刻在石头上的真实能力",[10,176,177],{},"100道随机题中答对70道，不表示长期能力恰好70.000%。换一批同分布题目，成绩会波动；同一道题重新采样，也可能不同。评测需要同时认识题目抽样与生成随机性，而不是只重复一次看能否得到更高分。",[10,179,180],{},"在独立、同分布、每题只有对错的简化条件下，正确比例p的标准误差可近似写成√［p×(1−p)÷n］。n是题数，√表示取平方根，标准误差表示重复抽样时分数波动的典型尺度，不是答错比例。",[10,182,183],{},"代入p＝0.70、n＝100，约为0.046，即4.6个百分点。粗略取上下各两个标准误差，范围约61%到79%。这是帮助理解量级的近似区间，不是对任意题集都成立的保证。若n＝1000，同样算法的标准误差约1.45个百分点，区间约67.1%到72.9%。",[10,185,186],{},"一千道题若只是十道原题各改写一百次，并没有提供一千份独立证据。相关题、固定公开题库和分布偏差都会让简单公式失真。增加题数不能自动修复选题偏差；只测常见语言，再多也回答不了少数语言的表现。",[10,188,189],{},"比较两个模型时，最好让它们回答相同题目，再看哪些题一个对、另一个错。例如另一组100题中，两者都对65题、都错20题，只有A对5题，只有B对10题。A总分70%，B总分75%，差异真正来自那15道分歧题。",[10,191,192],{},"给每道相同题记一个差值d：B对而A错记＋1，A对而B错记−1，两者同对或同错记0。这100题的总差为10×1＋5×(−1)＋85×0＝5，除以100得到B高5个百分点。共同成功和共同失败影响两者绝对表现，但在逐题差值中抵消；比较的方向来自10比5，而不只是75与70两个总数。",[10,194,195],{},[36,196],{"alt":197,"src":198},"23｜评测模型：一个分数能支持多大结论：图3","/collections-assets/llm-to-agent-learning/39d801884e6017dc91348dc97fbfec1f2fd8a0db9ebd5b062864f73576800a6b.png",[10,200,201],{},"图3｜同一100题的配对记录：都对65、A独对5、B独对10、都错20。两模型的结果始终锁在同一题上；净差为(10−5)÷100＝5个百分点，分歧涉及15题。这张图展示差值来自哪里，不是显著性证明。",[10,203,204,205],{},"若要用重采样估计差值的波动，一种做法是从这100条“题目＋A结果＋B结果”的整行记录中有放回抽取100行，再算平均差值，并重复许多次。某行可能抽中多次、某行可能未抽中，但A和B的一对结果不能拆开。重采样中分歧题的数量会变化，于是净差也会变化；形成的区间反映这种抽样模型下比较结果的不确定性，不是单道题成功概率的保证，也不会补上题集中从未覆盖的语言或任务。若关注生成随机性，还要另做重复生成，不能仅重抽固定输出。",[69,206,209],{"href":207,"rel":208},"https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.bootstrap.html",[73],"配对重采样的官方说明",[10,211,212],{},"这比拿A的一百道简单题与B的一百道困难题比较更有信息，但五个百分点差距仍不足以自动宣布稳定胜出。应结合配对的统计分析、重复采样和分项错误，判断差距是否大于不确定性。不能用两张分别计算的区间是否重叠，机械代替对差值的直接检验。",[10,214,215],{},"还可以给每道题保留一张最小记录卡：输入原文、模型实际输出、工具返回、判分理由、耗时和费用。这样发现异常时，能回到真实记录，而不是凭印象把一次漂亮演示当成稳定能力。公开原始数据若涉及隐私，则应先做适当脱敏和授权。",[10,217,218],{},"最终选择也不一定只有一个赢家。假如模型B略准但耗时显著更长，可以让读者同时看到质量与延迟，而不是任意揉成一个总分。先写业务能接受的最低质量与资源上限，再在满足约束的方案中选择，往往比追逐一个缺少条件的排名更实用。",[17,220,221],{"id":221},"本章练习",[223,224,225],"h3",{"id":225},"题目",[10,227,228],{},[229,230,231],"strong",{},"问题1｜换题型比例重新算",[10,233,234],{},"A在普通题、例外题的正确率为90%、50%；B为60%、80%。未来普通题占30%、例外题占70%，且题型内部难度和行为不变。两模型的预计正确率各是多少？这个外推依赖哪项关键条件？",[10,236,237],{},[229,238,239],{},"问题2｜把pass@2的组合数数清",[10,241,242],{},"十份候选中2号、7号通过。列举一组成功组合、一组失败组合，再算不放回选两份时全错组合数和至少一份通过的比例。如果选择器最终只交付3号，结果如何？",[10,244,245],{},[229,246,247],{},"问题3｜差值必须保留配对",[10,249,250],{},"在图3的100题中，都对65、A独对5、B独对10、都错20。算A、B总分及B−A差值；若用重采样检查差值，应该抽单个模型答案，还是整条题目记录？说明理由。",[10,252,253],{},[229,254,255],{},"问题4｜让改进接受独立检查",[10,257,258],{},"你根据测试集中5道失败题修了提示，现在这5题全对。请设计下一步评价，区分检查旧问题与检查新问题，并至少固定两项会影响分数的实验条件。对通知提取任务，再举一项局部检查与一项整条链检查，说明采样生成为什么不能只重跑到一次通过。",[223,260,261],{"id":261},"思考提示",[10,263,264],{},[229,265,266],{},"提示1｜对应问题1",[10,268,269],{},"每类占比乘该类正确率，再求和。想一想“例外题”这个标签能否保证题目难度没变。",[10,271,272],{},[229,273,274],{},"提示2｜对应问题2",[10,276,277],{},"成功组合至少含2或7；全错组合从另外八份中选。不要把有序选择重复数两遍。",[10,279,280],{},[229,281,282],{},"提示3｜对应问题3",[10,284,285],{},"先给每题记＋1、−1或0；抽样时保留能够产生这个差值的两个结果。",[10,287,288],{},[229,289,290],{},"提示4｜对应问题4",[10,292,293],{},"已经影响修复的题目还适合检查什么？哪批数据才没有参与这次选择？局部检查固定哪个接口；整条链最终验收什么？",[223,295,296],{"id":296},"参考答案与解析",[10,298,299],{},[229,300,301],{},"答案1｜对应问题1",[10,303,304],{},"A为0.3×0.9＋0.7×0.5＝62%；B为0.3×0.6＋0.7×0.8＝74%。计算依赖各题型内部的正确率能够延续；如果例外题变长、换语言或难度增加，仅按比例重加权就没有充分依据。",[10,306,307],{},[229,308,309],{},"答案2｜对应问题2",[10,311,312],{},"例如(1,2)成功，(1,3)失败。全错组合为C(8,2)＝28，总组合C(10,2)＝45，成功比例为1−28÷45＝17÷45≈37.8%。选择器交付3号仍未通过测试。集合包含正确候选和最终选中正确候选，是不同事件；给定测试是否覆盖真实需求还需另查。",[10,314,315],{},[229,316,317],{},"答案3｜对应问题3",[10,319,320],{},"A为(65＋5)÷100＝70%，B为(65＋10)÷100＝75%，差为5个百分点。重采样应抽整条“题目＋A结果＋B结果”记录，保持相同题目控制；拆开单个答案会破坏本来相互关联的结果，从而改变比较的不确定性结构。净多对5题并不独自证明稳定优势。",[10,322,323],{},[229,324,325],{},"答案4｜对应问题4",[10,327,328],{},"可把这5题保留为回归集，检查旧问题是否复发；另取未用于提示修改的留出题，在固定方案后评估新问题，并继续保留超时、弃答与格式错误。应固定并记录模型版本、输入提示、生成预算、工具权限、评分规则中的至少两项，完整实验最好全部明确。只报已修5题的成绩，支持修复这些案例，不能独立证明泛化改善。",[10,330,331],{},"局部检查可以单测日期解析是否保留时区；整条链检查可以把含更正的通知交给提取、校验流程，核对最终时间是否取更正值、缺失地点是否保持空值。其他明确区分组件与整体结果的设计也可接受。采样会产生波动，跑到一次通过会隐藏失败频率；应按预先固定的重复次数完整记录并评价。",[17,333,334],{"id":334},"下一章",[10,336,337],{},"一个值得相信的分数，应当能追溯到问题分布、信息条件、尝试次数、判分方式和不确定性。下一章我们把这套习惯带入多模态：当输入不再只有文字，而是一张图片，模型究竟得到了哪些表示，又凭什么把看见的内容说出来？",{"title":339,"searchDepth":340,"depth":340,"links":341},"",3,[342,344,345,346,347,348,349,354],{"id":19,"depth":343,"text":20},2,{"id":51,"depth":343,"text":52},{"id":80,"depth":343,"text":81},{"id":122,"depth":343,"text":123},{"id":149,"depth":343,"text":150},{"id":173,"depth":343,"text":174},{"id":221,"depth":343,"text":221,"children":350},[351,352,353],{"id":225,"depth":340,"text":225},{"id":261,"depth":340,"text":261},{"id":296,"depth":340,"text":296},{"id":334,"depth":343,"text":334},"从信息表示和学习出发，用可核算的例子与白板图逐步理解大模型、后训练、推理和Agent系统。","md",{},true,"/column/llm-to-agent-learning/23",{"title":5,"description":355},"column/llm-to-agent-learning/23","KHlCVo8-f2fTXKTJUWh5xy3sBIOk6s0_6BNGX5NXjUE",1791935828764]