模型评测与基准:把“更强”变成可复现证据
从估计对象、采样预算和 pass@k,到污染、裁判偏差、置信区间与发布门槛。
- 定义目标任务分布
- 冻结数据与推理条件
- 选择互补评分器
- 运行并保留逐题结果
- 估计差值与不确定性
- 检查切片/污染/成本后决策
1先说清楚究竟在估计什么直觉
# 先说清楚究竟在估计什么
同一个模型到底有没有一个脱离场景的“真实能力分”?没有。任何一次评测给出的数字都不是模型的内在属性,而是模型在某个题目分布、某套提示模板、某种工具权限、某个推理预算和某个评分器共同作用下的表现估计。把这份估计当成模型的固定能力,是评测中最容易犯、也最昂贵的错误。
以退款助手为例,把它放进一个场景,我们真正关心的是几类相互独立的行为:政策问答是否准确、引用证据是否到位、金额计算是否无误、该拒绝越权请求时是否拒绝、信息不足时能否多轮澄清。这五种能力各有各的失败方式,一张通用知识榜单无法同时覆盖,更无法代替场景内的直接测量。反过来,退款助手在通用榜单上的名次,也不能直接兑换成它在真实退款对话里的表现——题目变了、工具变了、评价标准变了,分数就可能整体移动。
因此严谨的报告从来不写“模型 M 有 82 分”,而是写“模型 M 在测试集 D、配置 C 下,对指标 Y 的估计”。这句话里每一项都有实际分量。模型名字只是实验对象的一部分;系统提示、温度、最大 token 数、reasoning effort、候选数和可用工具,全部属于处理条件。同一个权重快照,在温度为 0 和温度为 1 下给出的是两份不同的实验结果,而不是同一个能力被测量了两次。温度升高引入随机性,候选数增加意味着模型可以多猜几次再选,推理预算加大允许更长的思维链——这些都会改变最终得分,但它们改变的是测量条件,不是被测对象本身。
认知锚点应当固定下来:评测不是给能力拍照,而是用有限样本测量未来使用表现。照片式的想法会让人相信分数是对象自带的;测量式的想法会提醒人,样本可能不具代表性,仪器本身也可能有偏,得到的永远是一个带不确定性的估计。
把这条原则写成输入输出关系:模型评测的输入是模型快照 M、测试分布 D、推理配置 C 和目标指标 Y,输出是对 Y 的带不确定性的能力估计。分数只对给定题目、提示、工具和预算成立,它不是脱离场景的真实能力常数。当题目分布或推理配置改变之后,旧分数不能直接外推——要回答新问题,就得在新的 D 和 C 下重新估计一次。
2模型评测与应用评测不能互相替代消歧
# 模型评测与应用评测不能互相替代
裸模型答得更好,为什么装进产品后仍可能更差?因为产品把模型放进了另一条链路:检索先给出条款候选,重排决定哪些进入上下文,系统提示约束权限,业务流程决定何时必须拒绝、何时转人工,用户还会在意延迟和引用的可信度。模型答对题目只是这条链上的一个环节,环节得分高不等于整条链不出故障。要理解这种落差,需要把评测拆成四个层级,每一层固定什么、回答什么问题都不同。
第一层是模型评测。它固定提示、工具和题集,只让候选模型在这些相同条件下互相比较,回答“谁更会做这类题”。在退款助手里,这一层的典型问题是:给同一段政策文本,模型 A 和模型 B 谁对“能否退款”判断得更准。因为条件全部固定,分数的差异只能归因于模型本身。
第二层是组件评测。它反过来固定模型,每次只替换链路上的一个组件,回答“这个组件是否带来改善”。例如保持模型不动,换一套检索或重排方案,看正确条款能否进入 top-5。若 top-5 命中率上升,说明改进来自检索端;若不变,则瓶颈在别处。每次只动一个变量,是这层能定位问题来源的原因。
第三层是应用评测。它把完整版本放进业务流程里跑,回答“端到端是否达成目标”。这里验收的不再是答题正确率,而是引用是否真实可查、权限是否被严格遵守、延迟是否在用户可接受范围内、用户最终结果是否合格。退款助手即使答得对,如果引用的是幻觉条款、或者把无权承诺的赔偿说出口,应用评测就应当判定不合格。
第四层是线上实验。它用分流规则把真实流量分到新旧版本,并配好护栏,回答“离线收益能否真的迁移”。离线评测里转人工率可能下降,线上却要验证这个下降是否真实发生、错误承诺是否减少、护栏是否拦截了异常行为。离线与线上之间的鸿沟只能在这一层得到检验。
这四个层级的分工构成了一个清晰的因果链:模型评测隔离能力,便于归因;应用评测保留真实链路,便于决策。两者应当像单元测试和端到端测试一样组合使用,而不是二选一。只做模型评测,会漏掉权限、延迟、检索失败这类模型之外的故障;只做应用评测,出了问题又无法定位是模型不行还是组件不行。
把层级辨析写成输入输出:输入是待比较的对象以及固定条件,输出是模型、组件、应用或线上实验这四个层级之一的评测结论。模型评测固定系统条件以隔离候选能力,应用评测保留完整链路以判断业务结果,前者负责归因,后者支撑发布。裸模型的高分永远不能替代端到端的权限、延迟和用户结果验收。
| 层级 | 固定什么 | 回答什么问题 | 退款助手例子 |
|---|---|---|---|
| 模型评测 | 提示、工具和题集 | 候选模型在同条件下谁更会做 | 给同一政策片段,谁判断得更准 |
| 组件评测 | 模型,替换一个组件 | 检索或重排是否改善 | 正确条款能否进入 top-5 |
| 应用评测 | 完整版本与业务流程 | 端到端是否达成目标 | 引用、权限、延迟和用户结果是否合格 |
| 线上实验 | 分流规则和护栏 | 离线收益能否迁移 | 转人工率与错误承诺是否下降 |
3一次公平比较需要固定哪些变量实验设计
# 一次公平比较需要固定哪些变量
两个报告都写着“准确率 80%”,为什么可能完全不可比?因为“准确率”只是最后算出来的一个数,而决定这个数的变量有十几个,任何一个不同,80% 的含义就不一样。公平比较的第一件事是把这些变量全部对齐:题目集及其版本、few-shot 样例、系统提示、输出解析方式、喂给模型的上下文、可用工具、token 上限、停止条件、温度、候选数、失败重试规则,以及最后判分的评分器。这一串里的每一环都会直接改变分数——题目版本不同意味着模型看到的不是同一批题,few-shot 样例不同意味着示范不同,输出解析方式不同意味着同一段生成文本可能被读成对或错。
预算变量尤其需要警惕。如果比较的目的是成本收益,那么推理预算本身就是自变量,不能一边用便宜的单次生成、一边用昂贵的多重采样,然后各自报最有利的那个点。正确的做法是画出质量—成本曲线:横轴是成本或计算量,纵轴是质量,让两个模型在整条曲线上比较。只挑各自最有利的点,得到的不是比较,是两段广告。
指标的选择同样要先于结果确定。公平实验会预注册主指标、关键切片和失败门槛,比如预先声明“以退款金额判断准确率为主指标,按金额区间和语言切片,任何切片低于 80% 即判失败”。这样做的意义在于防止看完结果再挑一个恰好更体面的指标——事后挑指标等于让实验者既当选手又当裁判。
可复现性要求把环境也固定下来。实验配置应保存为可执行的脚本,同时记录模型快照、数据哈希和随机种子;如果用的是托管模型,至少记录日期和版本号,因为服务端更新可能悄悄改变行为。运行顺序也要交错或随机化,让两个模型轮流跑,避免服务更新、限流或时间漂移集中在其中一个模型身上。
失败和超时是最容易被钻空子的地方。重试必须按照预先写下的规则计分:超时算错还是重试一次再算,要在实验开始前定好;静默丢弃超时样本会虚增质量,因为丢掉的往往是模型答不出来的题。预先规则的存在,让失败样本的归属不由事后情绪决定。
最常见的偷换就藏在这些变量里:模型 A 每题生成一次输出,模型 B 每题生成 100 个候选再挑最好。即便最后分数相同,也绝不代表两者在交互式单次使用下同样可靠——B 的分数购买了大量重采样,A 没有。把单次生成与百次挑最好称为公平比较,相当于把“猜一次”和“猜一百次选对的那次”放在同一张表里。
把公平实验写成输入输出:输入是相同题目版本、few-shot、提示、工具、token、温度、候选、重试和评分器,输出是可比较的逐题结果以及质量成本曲线。预算不同就是处理条件不同,不能拿单次生成去比百次挑最好;失败和超时必须按预注册规则计分,托管模型还需记录日期与版本。少了任何一个对齐项,两个 80% 之间的“比较”都只是巧合。
4运行示例:100 道退款题上的差距有多确定逐步演算
# 运行示例:100 道退款题上的差距有多确定
模型 A 答对 82 题、模型 B 答对 78 题,能直接宣布 A 更强吗?先把整个流程展开:从固定的任务出发,得到两个点估计,再分别做切片分析并给出置信区间,最后才能判断差距是否稳定。图 1 画出的正是这条链路,它传递的第一层信息是:点估计的差不等于稳定差异,而同一批题上的配对结果比两个独立准确率更有信息量。
先算不确定度。二项比例的标准误是 SE = ,其中 phat 是答对比例,n 是题数。A 答对 82 题,phat = 0.82,n = 100,SE = ≈ 0.038。粗略的 95% 置信区间是 phat ± 1.96 × SE,即 0.82 ± 0.075,约 74.5%–89.5%;用更精确的 Wilson 区间计算,A 约为 73%–88%。B 的 phat = 0.78,Wilson 区间约为 69%–85%。两个区间大量重叠。重叠不等于“绝无差异”,但它说明:仅凭 100 道题和 4 个百分点的差距,很难下强结论——这批数据既与“A 真的强”相容,也与“两者差不多、4 分只是抽样波动”相容。
如果两个模型答的是同一批题,配对信息就能把不确定度压下来。逐题对齐后,12 道题只有 A 答对,8 道题只有 B 答对,其余题目两人同对或同错。真正区分两个模型的信息主要来自这 20 个不一致样本;同对和同错的题对比较没有贡献。针对这种配对结构,可以用 McNemar 检验判断 12 对 8 的差异是否显著,或者用 bootstrap 对“A 独对比例减 B 独对比例”的差值做区间估计。配对比独立比较更强,正是因为它把每一道题的难度固定住了——难的那批题两个模型都错,不再混淆进总体差距里。
切片分析还能推翻总体结论。看高风险“越权退款”切片:10 道题里 A 只答对 2 道,B 答对 8 道。总分更高的 A 在这个切片上明显更差,而这种切片恰恰对应真实的业务风险——越权退款一旦放行,成本远超一道普通题答错。于是结论反转:A 总体分更高,反而不能上线。这一层的教训是,总指标下的置信区间和切片可以给出不同的答案,高风险切片可以独立否决总体优势。
把准确率案例写成输入输出:输入是样本量 n、答对比例 phat 以及同题配对结果,输出是标准误 SE、95% 区间和配对差异证据。SE = ,粗略区间为 phat ± 1.96 × SE;A 的 82% 与 B 的 78% 区间大量重叠,说明一百道题不足以做出强断言。当题目分布或高风险切片另有要求时,总体分数上的优势必须让位于切片上的证据。
5pass@k 把模型质量和计算预算混在一起采样
# pass@k 把模型质量和计算预算混在一起
代码模型报告 pass@100 = 90%,为什么用户点一次生成仍可能频繁失败?因为 pass@k 描述的不是“一次生成的成功率”,而是“从 k 个候选中至少找到一个能用的答案的概率”。这两个数字之间的差距,就是计算预算买出来的。
设单次独立生成成功的概率为 p,理想化的“k 次里至少一次成功”是 1 − (1 − p)^k。这个公式的每一步都很直观:(1 − p) 是单次失败的概率,(1 − p)^k 是 k 次全部失败的概率,用 1 减去它就得到至少成功一次的概率。当 p = 0.1 时,pass@1 = 10%,而 pass@10 = 1 − 0.9^10 ≈ 65.1%。单次成功率只有一成,十倍采样后“候选池里有一个对的”的概率却超过六成半。数字的跃升主要来自十倍的采样预算,而不是单次模型突然变得更聪明。这个公式只是理想上界:真实生成的错误彼此相关——同一模型在同一题上倾向于犯同一类错,k 次尝试并非 k 次独立机会;而且候选池里“有一个对的”不等于系统能把它挑出来,还需要一个可靠的验证器从候选中选出正确的那一个。验证器会看走眼,正确候选也可能被丢弃。
正因为 pass@k 把模型质量和采样预算搅在一起,报告指标时必须同时回答“用户实际得到什么”。pass@1 承诺的是一次采样命中,对应真实用户的单击体验,披露它需要注明温度、token 和提示。pass@k 承诺的是候选池至少一个命中,必须同时披露 k、总 token 消耗和候选相关性——k 越大、token 越贵,这个指标离单次用户体验越远。再往下一层是选后成功率:验证器实际把正确候选交付给用户的比率,它取决于验证开销和误选率。最后一层是端到端成功率:完整流程真正跑通的比率,它把工具调用、超时和失败重试都算进分母。
比较推理模型时同理。固定 token 比较可能不公平,因为两个模型把 token 换成答案的效率不同;固定价格或固定延迟回答的又是各自不同的问题——一个问“同样的钱谁更强”,另一个问“同样快的前提下谁更强”。最诚实的做法是报告帕累托前沿:把质量画成预算的函数,让读者按自己的预算在曲线上选点,而不是替所有人选定一个预算再报一个数。
把 pass@k 写成输入输出:输入是单次独立成功概率 p 和采样次数 k,输出是至少一次成功的理想概率 pass@k = 1 − (1 − p)^k。p = 0.1、k = 10 时约为 65.1%,这一提高主要来自十倍计算预算;真实错误相关且还需验证器选对,因此公式只是上界直觉。任何 pass@k 报告都必须同时披露 k、总 token、延迟和选择器,否则读者无从知道这个数字里有多少属于模型、有多少属于预算。
| 报告 | 用户得到什么 | 必须同时披露 |
|---|---|---|
| pass@1 | 一次采样命中 | 温度、token 与提示 |
| pass@k | 候选池至少一个命中 | k、总 token、候选相关性 |
| 选后成功率 | 验证器实际交付正确候选 | 验证开销和误选率 |
| 端到端成功率 | 真实流程完成 | 工具、超时、失败重试 |
6公开基准为什么会被污染和过拟合失效
# 公开基准为什么会被污染和过拟合
一套题从未显式用于微调,就能算“未见过”吗?不能。题目的原文、标准答案、网页镜像、解题讲解、各种语言的翻译,乃至其他模型生成的衍生文本,都可能已经进入预训练语料。模型在预训练阶段就见过题面和答案的多种变体,只是这些见过的时刻没有记录在微调日志里。于是“没用于微调”与“没见过”之间隔着整个预训练语料库。
更隐蔽的是组织层面的过拟合。团队会反复依据公开榜单调整数据配比和训练配方:排行榜掉了一点就换数据、改提示、调采样参数,直到分数回升。这个过程与直接在测试集上训练不同,但效果类似——每看一次榜单做一次调整,测试集就失去一分独立判断力。经过多轮迭代后,高分可能反映的不是模型更会做题,而是团队更会拟合这套题。
检测污染比想象中难。词面去重只能抓到完全相同的文本,抓不到改写:题目被换词、换语序、翻译后再回到原语言,字符串上毫无重叠,语义上却是同一道题。反过来,异常高的分数也不能单独证明记忆——它可能是真本事,也可能只是背过答案。这两点合起来意味着:仅凭“去重过了”和“分数可疑”都无法定性污染,需要更结构化的证据。
防线因此要分层布置。第一,按时间构建新题:题目发布晚于模型训练截止日期,预训练语料里就不可能有它。第二,保留一批私有测试:模型作者拿不到题面,泄漏的渠道被切断。第三,用语义近邻筛查公开题集:检索每道题的语义相似文本,检查是否存在可疑的解题痕迹——例如语料里恰好出现“这道题的答案是 C”这类片段。第四,把调参用的开发集与最终门禁集彻底分离:开发集可以反复看,门禁集只在发布前用一次。第五,记录每次查看测试结果的次数:查看次数本身是过拟合的监控指标,查看越多,门禁集越接近开发集。对会快速饱和的题集,还应周期性替换,而不是永久沿用一套被全行业刷了多年的老题。
这套治理也有明确的边界:私有不自动等于代表性。如果退款题全部由内部专家写成规范句式,真实用户的口语、错别字、信息缺失和迂回表达就都不在题目分布里;模型在私有集上表现再好,上线后仍可能遇到从未见过的说话方式。私有只降低泄漏风险,不保证覆盖真实用户分布。
把污染治理写成输入输出:输入是题目、答案、镜像、翻译、讲解以及语义近邻,输出是污染风险判断和保留、替换或降权的决定。未显式微调不表示预训练没见过,词面去重也抓不到改写;按时间构建的新题、私有门禁和语义筛查共同作用,才能把污染风险压到可控范围。
7自动指标、LLM 裁判与人工盲评测量偏差
# 自动指标、LLM 裁判与人工盲评
评分器输出一个数,为什么评分器本身也要接受评测?因为没有任何一种评分仪器是完美透明的,每一种都有自己的盲区;如果不验证评分器,模型得到的分数里就混入了评分器的偏差。要设计一个可信的评分体系,先要认清每种仪器适合什么、主要的偏差是什么、又该用什么方法校准。
精确匹配最便宜也最可复现,却会错罚等价表述:模型说“应退款 35 元”和“退款金额为 35 元”意思相同,字符比较却判一个对一个错。程序测试对代码和结构问题很强,能直接运行断言检查可执行结果,但它只覆盖写出来的断言——断言之外的正确或错误都看不见。LLM 裁判能理解语义,适合评价帮助性、完整性、文风这类没有标准答案的属性,但它自带偏差:偏好先出现或更长的答案,对与自身风格相近的文本更宽容,对自己家族模型的输出更友好,还可能被输出内容里的提示注入指令带偏。领域人工最接近真实判断,适合高风险和新型失败模式,但人会疲劳,标准也会漂移,两个标注员对同一答案可能给出不同结论。
校准方法要与偏差一一对应。确定规则和程序测试的弱点是覆盖不足,可以用变异测试和反例来补:故意注入已知错误的金额、伪造的引用 ID,看规则是否抓住。LLM 裁判的顺序偏差靠对调位置来消除——同一对答案正反各评一次,如果结论跟着顺序翻转,就是裁判在偏;长度和风格偏差靠盲化与人工金标校准——把答案匿名、长度对齐,用已有人工结论的样本检验裁判是否跟得上人的判断。领域人工的分歧靠双标和仲裁解决:同一答案由两人独立标注,分歧提交专家仲裁,再用一致性统计监控标注质量。
退款场景的评分组合可以这样搭:先用程序检查金额、权限和引用 ID,这些是可执行、可复现的硬约束;再让盲化裁判评解释清晰度,处理硬约束之外的语言质量;最后对高风险样本和裁判与程序产生分歧的样本,交给专家仲裁。分层的原因是每个仪器只能看到自己的维度:程序看不到表达好不好,裁判不可靠于金额对不对,人太贵也太慢,不能每题都用。
要理解这种组合的意义,需要纠正一个直觉:多个仪器放在一起,目的不是投票制造真值,而是让各自的盲区可见。程序抓到裁判放过的金额错误,说明裁判在数字上不可信;裁判看到程序无法判断的表述混乱,说明规则覆盖不足;专家在两者打架时介入,说明分歧本身就是信号。
把评分组合写成输入输出:输入是确定规则、可执行测试、LLM 裁判和领域人工,输出是各属性的分数、分歧记录及仲裁结果。规则可复现但覆盖有限,裁判懂语义但有顺序、长度和同源偏差,人工有资格却会疲劳;盲化、换序、双标和金标校准共同把这些偏差控制在可见范围。每个仪器都带着误差参与,但组合之后,误差不再能悄悄穿过。
| 仪器 | 适合 | 主要偏差 | 校验方法 |
|---|---|---|---|
| 确定规则/测试 | 数值、schema、可执行结果 | 覆盖不足 | 变异测试与反例 |
| LLM 裁判 | 帮助性、完整性、文风 | 顺序/长度/同源偏好 | 对调位置、盲化、人工金标 |
| 领域人工 | 高风险与新型失败 | 分歧和疲劳 | 双标、仲裁、一致性 |
8从排行榜到发布门槛决策
# 从排行榜到发布门槛
模型总分提高之后,怎样把证据转成“换不换模型”的决定?排行榜只回答“谁更强”,发布决策要回答“换上去会不会出事、值不值、坏了怎么退回来”。这三问有各自的门槛,顺序不能颠倒。
第一步是定义不可退化的硬门槛。越权动作率、隐私泄漏、关键语言切片这些维度不接受总体分数的补偿:哪怕新模型总体高出十个点,只要越权退款率上升,或者某个关键语言上明显退化,就不能整体替换。硬门槛先行,是因为这些风险一旦发生就无法用平均性能对冲。
过了硬门槛,才轮到收益比较:任务质量、成本、p95 延迟与吞吐要放在一起看。质量差距用 paired bootstrap 给出差值区间,而不是只看一个点估计;同时列出失败迁移清单——旧模型的哪些错误被修复了,新模型又引入了哪些新错误。修复十个旧错、新增八个新错,这个清单比净差两个点更能说明换模型的实际后果。离线比较做得再完整,也只有经过影子部署或小流量验证、在代表性真实流量上跑过之后,才能成为发布证据。影子模式让新模型旁路观察真实请求,小流量则只切一小部分用户,两者都限制了错误的影响半径。
证据的载体是评测卡和结果页。评测卡冻结数据版本、配置和主指标,保证发布审查看到的是可复现的同一份实验;结果页同时报告总体、切片、区间、成本和错误样例,缺一项都会让审查者只能看到一个被裁过的数字。发布策略要写清回滚阈值:线上指标跌破哪条线就自动或手动回退,而不是只留一张排行榜。生产环境暴露出来的新失败要回流到候选集,经人工审核后进入下一版的开发流程——回流的新题绝不能直接加进当前门禁集,否则本次发布的判断基准就被发布后的发现污染了。
发布决策的输入是总体与切片的差值区间、成本、延迟、错误迁移和线上验证,输出是替换、路由、保留或回滚的方案。一个容易被忽略的结论是:“最佳模型”常常不存在。一个模型可能在低延迟场景胜出,另一个在高风险安全场景更稳,第三个擅长长上下文;三个维度各有胜负时,模型路由比全量替换更合适——把请求按场景分给各自擅长的模型,而不是强迫一个模型在所有维度上赢。
最后一条规则不留余地:门禁集失败不能通过删题或改指标来放行。删掉考不过的题、换一个恰好更体面的指标,都是把发布门槛本身改矮了。门槛的价值正在于它不变,否则评测就从证据变成了仪式。
9把因果链连起来综合
# 把因果链连起来
评测从“这个问题值得测吗”一路连到“现在能发布了吗”,中间每一步都建立在前一步之上,缺一环,最后的决策就没有依据。
第一步是定义目标任务分布。评测对象从来不是抽象的能力,而是某个场景下的表现:退款助手要考政策问答、证据引用、金额计算、拒绝越权和多轮澄清,而不是一张通用榜单上的总名次。分布定义清楚了,后面所有环节才有共同的靶子。
第二步是冻结数据与推理条件。题目版本、few-shot、系统提示、温度、token、候选数、重试规则和评分器全部对齐并记录快照,托管模型还须记下日期与版本。只有条件被冻结,两个模型的分数差才能归因于模型本身,而不是归因于一次用了单次生成、另一次用了百次挑最好。
第三步是选择互补评分器。程序规则检查金额、权限和引用 ID,盲化裁判评解释质量,专家仲裁高风险和分歧样本。多个仪器放在一起不是投票,而是让彼此盲区可见。
第四步是运行并保留逐题结果。总分会被暂时放在一边,逐题对错才是后续所有分析的原材:配对差异、切片表现、失败迁移,全都从逐题记录里算出。只留总分的数据等于把信息在源头丢掉。
第五步是估计差值与不确定性。用标准误和置信区间衡量一百题上的四分差距是否可信,用 paired bootstrap 给出差值区间。一个带区间的结论才能让人分清“确实更强”和“抽样波动”。
第六步是检查切片、污染和成本之后再做决策。越权退款切片可以否决总体优势,污染筛查决定题集是否可信,质量—成本曲线决定这个差距值不值这个钱。离线胜出还要经过影子或小流量验证,门禁失败不能靠删题或改指标放行。
六步走完,输出不再是一个分数,而是一个可执行的决定:替换、路由、保留或回滚。整个链条的价值就在于每一步都可以被独立检查,因而最终的结论也能被独立推翻或确认。
- HELM: Holistic Evaluation of Language Models:多场景、透明和可复现评测
- Evaluating Large Language Models Trained on Code:pass@k 估计与代码评测
- Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena:模型裁判与偏差
- SWE-bench:真实仓库任务及执行式评测