跳到主要内容
SecondHome

尺子的进化:从 exact match 到时间视界

13 分钟进阶3bL6 p.19-28 ↗p.46-54 ↗录像 ↗支撑材料 5 篇

编码 Agent 领域每条「刷新纪录」的新闻都押在一把尺子上,而这把尺子三年间被反复重铸。本篇沿 slides L6 两段页码走:度量学前置(p.19-28)——exact match 与 BLEU-4 按文本相似打分,反例三连证明文本相似≠行为等价,执行评估接棒却受制于测试充分性;尺子本体(p.47)——SWE-bench 2,294 题立起 fail→pass/pass→pass 双验证,随后被 Verified 的 500 题人工校验(GPT-4o 18.0%→33.2%)、SWE-Bench Pro 的 1,865 道企业级难题、Terminal-Bench 的终端任务与 METR 的「50% 时间视界」(约每 7 个月翻倍)一路重塑——一部从解题率到时间视界的度量范式迁移史。

编码 Agent 领域每隔几周就有一条刷新纪录的新闻。

尺子换了,分数就变:本篇沿 slides L6,把这把尺子从 exact match 到 SWE-bench 再到时间视界的进化拆开看。看懂尺子的来历,才能看懂榜单数字在度量什么、又在隐瞒什么。

一、第一课:文本相似不是行为等价

给生成代码打分,最省事的办法是对照参考解算文本相似(L6 p.20):精确匹配 exact match 要求一字不差,BLEU-4 按 n 元组重叠打分。

两者的共同假设是越像参考解越正确。代码不服这条假设:同一语义有无穷种写法,一个字符的差别却足以翻转行为。讲义用判断整数 x 是否为正的三个反例,把两个坑一次点破:

def is_positive(x: int) -> bool:
    return x > 0                # 参考解
# 小改动:return x >= 0        文本只差一个字符,x=0 处 False 翻成 True——错
# 换写法:return not (x <= 0)  文本面目全非,整数域上与参考完全等价——对

文本相似打分会把写得像但行为错的答案,排在写得不像但行为对的答案前面。这条批评线本身也有谱系。

Yin & Neubig 在 ACL 2017 系统指出 BLEU 评代码的失真,CodeBLEU 与 CodeBERTScore(Ren et al., 2020;Zhou et al., EMNLP 2023)相继往文本度量里掺入语法与语义信号。

slides 的态度更彻底:与其修补文本相似,不如直接跑代码查行为,这条路叫执行评估 execution-based evaluation。

exact match / BLEU-4:便宜、可复现、不依赖运行环境;但文本相似≠行为等价 —— 差一个字符可以翻转 x=0 处的行为,整段改写可以完全等价。

拿行为当证据:测试输入 −1/0/1、期望 F/F/T,在隔离运行时里限时限量执行(L6 p.23-24);任何写法不同的正确实现都被接受,语义错误当场现形。

Action: 在隔离运行时(限时、限内存)里对 is_positive 依次喂 −1、0、1tool: is_positive(-1) → False ✓ is_positive(0) → False ✓ is_positive(1) → True ✓Observation: 三项全中期望 F/F/T—— 行为与规格一致,判对Thought: 若提交的是 return x >= 0,第 2 项会得 True 而非 False:文本只差一个字符,行为已经错了

执行评估的收益与代价各记在对比块的一格,这里只补代价一侧。

有限测试会漏错,测试自身够不够格是独立问题(EvalPlus, Liu et al. 2023 专测测试充分性);还要可信测试、依赖安装与隔离执行,费时且要求环境稳定。

这行小字,后来长成了整篇 Verified。

二、pass@k:度量定义竞赛方式

L6 p.25-26 把任务按粒度分两级:函数级的 HumanEval 有 164 个 Python 函数,看 docstring 补全实现,用隐藏单元测试 hidden unit tests 验收。

程序级的 CodeContests / AlphaCode 是竞赛题,要求交完整程序。

两级共用同一指标 pass@k:k 个采样程序中至少一个全过测试的概率。这个定义悄悄改变了竞赛在比什么:能力被问成带采样预算的正确率,同一模型 k 越大分越高,比拼的是正确率的分布。

p.27 把评分对象往正确之外扩,非功能需求各配一把尺:

  • 速度。跑测试并计时,得分即加速比 speedup。
  • 编辑。编辑类任务对照参考编辑算 DiffBLEU。
  • 可维护性与安全。用静态检查 CodeQL 乘 DiffBLEU;NoFunEval 用 397 个代码编辑任务考这一层,Singhal et al. 2024。

p.28 补上闭环最后一块:采样→跑测试→奖励→更新,执行奖励直接充当 RL 训练信号(DeepCoder, Luo et al. 2025)。尺子还反过来塑造被测的模型;这条路的地基,仍是 p.23-24 的那句前提:测试本身必须可信。

三、尺子本体:SWE-bench 与三重重铸

函数级小题与真实工程之间隔着鸿沟,SWE-bench(Jimenez et al., Princeton;L6 p.47 主线论文)一步跳了过去。

2,294 个任务全部来自真实 GitHub issue,验收用双验证,判定流见下图(L6 p.47)。

这把尺子立起来之后,三年内被重铸三次,每次都因为它在某个维度上失真。

第一重:标注质量与记忆污染 contamination。

SWE-bench Verified 是 OpenAI 2024-08 的公告,请 93 名专业开发者标注 1,699 个样本,剔除 68.3% 问题样本后得 500 题子集。

结果有点难堪:同一个 GPT-4o,原集 18.0%,Verified 上 33.2%。模型一字未动,变的只是尺子。被剔除的样本里,有的是测试或规格本身有错,有的早已躺进预训练语料。

教训记在 OpenAI 公告与资料卡 m3-swebench-verified:尺子本身会被标注质量与记忆污染重塑;榜单分数上涨未必是模型进步,可能只是尺子换了。

第二重:任务长度与新颖度。SWE-Bench Pro(Scale AI, 2025;v2 2025-11-14)收了 1,865 道企业级难题,取自 41 个活跃维护的商业应用 / B2B / 开发工具仓库,专打记忆污染与任务过短两处软肋。防污染、加长度,这一版两件事都做了。

第三重:任务面。Terminal-Bench 2.0(2026-01 论文)出了 89 个真实工作流启发的终端任务,装环境、跑通流程这类修 issue 之外的操作面也在其中;frontier 模型与 agent 得分 <65%,官网已迭代到 TB 4.0。

低于 65% 的读数很直白:修 issue 之外的终端任务,frontier 模型仍有超过三分之一的题做不对。

四、换范式:从「解题率」到「时间视界」

三重重铸改的都是刻度,METR(Kwa et al., 2025;v4 2026-07)改的是问法。解题率问多难的任务能做对多大比例。

时间视界 time horizon 问多长的任务还能做对:把任务按人类专家完成耗时排序,找 agent 能以 50% 成功率完成的最长档,这个档位就是 50% 任务完成时间视界。

刻度读数(METR 论文,资料卡 m3-metr-horizon):Claude 3.7 Sonnet 约 50 分钟;2019 年以来该视界约每 7 个月翻倍;照此趋势外推,5 年内可自动化人类需一个月完成的软件任务。刻度比模型动得快。

这个指标的聪明处,是把能力换算成了工程排期语言:每 7 个月翻倍,意味着每隔大半年就该重估一次自己工作流里有哪些环节跨过了视界线。

趋势外推是陈述不是承诺,但它至少把长时程 long-horizon 从形容词变成了可测的量。从 exact match 到 pass@k、双验证再到时间视界的这条线,前两段画在 L6 p.20-28,末段画在 METR 的曲线上。

与本讲的连接

本篇下钻伴读第四节「编码智能体:验证信号最干净的领域」里的四个字:验收标准客观。

执行与双验证这套程序是客观的;测试充分性、标注质量与污染、任务长度,这三根轴上的误差棒分别来自 EvalPlus、Verified、Pro 与 METR。

讲次页 quiz 把 SWE-bench 配对成「真实 issue + 测试验收的编码基准尺子」,本篇补上这把尺子从 2,294 题原集、500 题 Verified 到时间视界的全部改动记录。

五张资料卡 m3-swebench、m3-swebench-verified、m3-swebench-pro、m3-terminal-bench、m3-metr-horizon,正对应尺子的原点、三次重铸与一次换问法。

姊妹篇的分工:伴读里 SWE-agent 与 ACI 那条线回答怎么把分数做上去,本篇回答分数本身怎么读;METR 这张卡同时挂在长视野一节,那里关心曲线的预言,这里只取度量学含义。

下一张榜单截图甩到面前时,先问三句:

  • 测试可信吗?
  • 题目在不在预训练语料里?
  • 任务多长?

本节论文与规范

本节资料

  • 2025 年(v4 2026-07-10)。定义「50% 任务完成时间视界」:Claude 3.7 Sonnet 约 50 分钟;2019 年以来该视界约每 7 个月翻倍,若外推 5 年内可自动化人类需一个月的软件任务。「长时程」议题最常被引用的一张曲线。

  • 经典·高引(ICLR 2024)、L6 p.47 主线论文。2,294 个来自真实 GitHub issue 的软件工程问题,以 fail→pass(修复生效)+ pass→pass(既有行为保留)双验证为验收。编码 agent 领域的「尺子」本体。

  • 2025 年编码基准「上难度」标志作(v2 2025-11-14)。1,865 道来自 41 个活跃维护仓库(商业应用/B2B/开发工具)的企业级难题,专打 SWE-bench 的「记忆污染 + 任务过短」软肋。

  • Introducing SWE-bench Verified 榜单入门官方引用

    2024-08 官方公告(页面更新 2025-02)。93 名专业开发者标注 1,699 个样本、剔除 68.3% 问题样本后得 500 题的 Verified 子集;GPT-4o 从原集 18.0% 升至 Verified 33.2%。榜单页另提供 mini-SWE-agent 的 bash-only 模型直比口径。

  • 2026 年(v1 2026-01-17)Terminal-Bench 2.0 论文版:89 个真实工作流启发的终端任务,frontier 模型/agent 得分 <65%;官网(tbench.ai)现已迭代到 TB 4.0。与 SWE-bench 家族互补:修 issue 之外的通用终端操作。

AI 生成 · 仅供参考,与课程方无关。选中正文里的任何一段也能直接问我(解释一下 / 举个例子)。

本详解以 CMU 11-768 AI Agents (Fall 2026) 课程大纲为参考框架独立撰写,AI 辅助起草、人工抽审。 涉及的官方课件、论文与课程材料版权归原所有方,讲义为站内镜像、其余外链原文出处; 观点与文字(除标注引用外)为作者原创。