一个模型或 Agent 的回答看起来不错,怎样判断它是真的可靠,而不是刚好答对了一次?

评测

约 13 分钟9 道自测更新于 2026-11-01

一句话记住评测要回答“好不好”,不能只听 Agent 自己说完成了:要用明确任务、评分器、记录和最终状态反复验证。pass@k 看多试几次能否成功,pass^k 看每次是否都成功,指标必须和使用场景匹配。

01学完你能做到

知道怎么判断一个模型或 Agent 好不好:用基准测试、用 LLM 当评委(并防住它的偏差)、给 Agent 设计任务和评分器,并看懂 pass@k 这类指标。

第 37 讲(用 trace 迭代 harness)里,LangChain 每改一次 harness 就重跑一遍 Terminal Bench,看分数涨没涨。没有评测,就分不清改动是真的变好了,还是只是这次运气好。这节系统地讲评测。

02基准测试:大家用同一套题

基准测试(benchmark)是一套固定的题目加评分方法,所有模型都做同一套题,分数可以直接比较。

以 SWE-bench(ICLR 2024)为例:

  • 题目来自真实 GitHub issue:从 12 个流行的 Python 仓库里,把约 9 万个 PR 筛选成 2,294 道题;
  • 给模型代码库和 issue 描述,让它修改代码解决问题;
  • 评分靠跑测试:每道题至少有一个「修复前失败、修复后通过」的测试(fail-to-pass)。

论文发表时,表现最好的 Claude 2 只解决了 1.96%。第 36 讲(权限、沙箱与错误恢复)讲的 SWE-agent 靠接口设计做到了 12.47%。Anthropic 在《Demystifying evals for AI agents》(2026-01-09)里说,在人工筛选过的子集 SWE-bench Verified 上,LLM 一年内从 40% 进步到了 80% 以上。

这引出基准测试的一个问题:饱和。分数接近满分时,基准就区分不出好坏了,只能换更难的题。

03LLM 当评委

很多任务没有标准答案,比如「这个回答写得好不好」,没法用测试判断。请人来评又贵又慢。于是有了 LLM-as-a-Judge:让一个强模型来打分或二选一。

论文《Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena》(2023)发现,GPT-4 当评委和人类偏好的一致率超过 80%,和人与人之间的一致率差不多。但它有几种系统性偏差:

偏差表现
位置偏差偏爱排在某个位置的回答,多数评委偏爱排在前面的
长度偏差偏爱更长、更啰嗦的回答,哪怕它不比短的更清楚、更准确
自我偏好可能偏爱自己生成的回答

演示:用「交换位置」消除位置偏差

论文给出的保守做法:

  1. 把回答 A 放前、B 放后,让评委选一次;
  2. 把顺序换过来(B 前 A 后),再选一次;
  3. 两次都选 A,才算 A 赢;两次结果不一致,就算平局。

这样评委单纯因为位置产生的偏好就被抵消了。长度偏差和自我偏好没有这么简单的办法,常见做法是在评分标准里明确写清楚,并用人工抽检来校准(见下一节)。

04Agent 评测的组成

评一个 Agent 比评一个回答复杂得多:它要调很多次工具、改变环境状态,一步错还会影响后面。Anthropic 的文章给了一套术语:

术语含义
任务一道题:输入 + 成功标准
试验(trial)对一道题的一次尝试。模型输出有随机性,所以要跑多次
评分器(grader)给 Agent 表现的某一方面打分的逻辑,一道题可以有多个
记录(transcript,也叫 trace 或轨迹)一次试验的完整记录
结果(outcome)试验结束时环境的最终状态
评测框架(evaluation harness)负责跑任务、记录、评分、汇总的基础设施

注意「记录」和「结果」的区别:一个订机票的 Agent 最后说「已经帮你订好了」,这只是记录里的一句话;结果是数据库里到底有没有这张订单。

文章还强调:评测一个 Agent,评的是 harness 和模型一起工作的效果。 第 34 讲(Harness 是什么)说「模型 × harness 要一起评」,就是这个意思。

三种评分器

类型方法举例优点缺点
代码字符串匹配、跑测试、静态分析、检查最终状态快、便宜、客观、可复现合理但格式不同的答案会被误判
模型按评分标准打分、两两比较、多个评委共识灵活、能处理开放式任务结果不确定,需要人工校准
人专家评审、抽检、A/B 测试质量最高贵、慢

评结果,不评路径

文章提醒:别要求 Agent 必须按某个固定顺序调用工具。这样的测试太死板,Agent 经常能找到设计者没想到的有效做法。通常应该评它做出了什么,而不是它走了哪条路。任务有多个部分时,可以给部分分。

能力评测与回归评测

  • 能力评测:问「它能做好什么」,一开始通过率应该低,给团队留出往上爬的空间;
  • 回归评测:问「以前会的现在还会吗」,通过率应该接近 100%,分数一掉就说明改坏了。

能力评测的通过率升高后,可以「毕业」进回归评测,持续运行。

05随机性:pass@k 与 pass\^k

同一道题跑几次,结果可能不一样。所以要跑多次试验,再选合适的指标:

  • pass@k:k 次里至少成功一次的概率。k 越大越高;
  • pass\^k:k 次全部成功的概率。k 越大越低。

演示:单次成功率 75% 时

设每次试验成功率 p = 0.75,各次独立:

  1. pass@1 = pass\^1 = 75%;
  2. pass\^3 = 0.75³ ≈ 42%(文章给的例子);
  3. pass@3 = 1 −(1 − 0.75)³ = 1 − 0.25³ ≈ 98.4%;
  4. k = 10 时,pass@10 接近 100%,pass\^10 ≈ 5.6%。

同一个 Agent,两个指标给出相反的结论。选哪个看场景:写代码时可以让 Agent 多试几次、挑能用的,看 pass@k;面向用户的 Agent,用户期望每次都靠谱,要看 pass\^k。

在单次成功率 p=0.75 的独立试验假设下,pass@k 随 k 上升,pass^k 随 k 下降。
在单次成功率 p=0.75 的独立试验假设下,pass@k 随 k 上升,pass^k 随 k 下降。

06一定要读记录

文章说:不看很多次试验的记录和评分,就不知道评分器是否靠谱。任务失败时,记录能告诉你是 Agent 真的错了,还是评分器误判了一个合理的答案。

例如,审查 Terminal-Bench 时发现:有任务要求 Agent 写一个脚本,但没说文件路径,测试却假定了某个路径,Agent 写对了也会失败。这种题要修题,不是修 Agent。第 37 讲(用 trace 迭代 harness)说「读 trace」,在评测这一侧同样重要。

Agent 评测既要读输入、输出和工具过程,也要检查环境最终状态,不能只听“我完成了”。
Agent 评测既要读输入、输出和工具过程,也要检查环境最终状态,不能只听“我完成了”。

07延伸阅读

  • Anthropic, Demystifying evals for AI agents, 2026-01-09:anthropic.com
  • Zheng et al., Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena, 2023:arxiv.org
  • Jimenez et al., SWE-bench: Can Language Models Resolve Real-World GitHub Issues?, ICLR 2024:arxiv.org

08一分钟讲给别人

试着用自己的话讲一遍评测要回答「好不好」。基准测试让所有模型做同一套题,SWE-bench 用 12 个仓库的 2,294 个真实 issue、靠跑测试评分,最初最好的 Claude 2 只解了 1.96%;基准会饱和,需要换更难的题。没有标准答案时用 LLM 当评委,GPT-4 和人的一致率超过 80%,但有位置、长度、自我偏好三种偏差;位置偏差可以交换顺序评两次来消除。Agent 评测由任务、试验、评分器、记录、结果和评测框架组成,评的是模型加 harness;记录不等于结果,要检查环境的最终状态。评分器分代码、模型、人三种,各有取舍;最好评结果而不是路径。能力评测找提升空间,回归评测防退步。输出有随机性,要多次试验:pass@k 看至少成功一次,pass\^k 看每次都成功,k 越大两者差得越远。最后,一定要读记录,确认评分器没有误判。

想一想

9 道自测

先在心里答一遍,再展开对照。能说清理由,比答对数字更重要。

  1. 01SWE-bench 的题从哪来?怎么判断模型做对了?

  2. 02什么是基准饱和?举一个本节的例子。

  3. 03LLM 当评委有哪三种偏差?位置偏差怎么消除?

  4. 04「记录」和「结果」有什么区别?用订机票的例子说明。

  5. 05代码评分器和模型评分器各有什么优缺点?

  6. 06为什么不建议检查 Agent 的工具调用顺序?

  7. 07能力评测和回归评测的通过率应该分别是什么样?

  8. 08单次成功率 80%,算 pass@2 和 pass\^2。客服 Agent 该看哪个?

  9. 09为什么说评测时一定要读记录?

已看 0/9 题

练动手练习

准备三份对同一段公开材料的摘要,先自己写出 3 条可检查的评分标准,再让 AI 以“代码检查、模型评审或人工评审”中的一种方式逐条打分。重复生成几次,比较“至少有一次合格”和“每次都合格”分别对应什么指标,不要把分数当成投资结论。

完成这一课

完成这一课

读完讲义、看完自测答案,这一课就算学完了。

  • 读完讲义
  • 看完全部自测

本课为投资者教育内容,案例数字均为示意,不构成任何投资建议,也不承诺收益。规则和费率会变,实际操作前请以交易所、监管机构和产品的最新公告为准。