Anthropic Engineering Blog 中文翻译

create: 2026-02-05
update: 2026-08-10
author: thinkycx
title: 【译】量化 Agent 编码评测中的基础设施噪声
description: Anthropic 发现基础设施配置(CPU/内存限制、沙箱实现方式)对 Agent 编码评测分数的影响可达 6 个百分点,往往超过排行榜上模型之间的差距。文章通过对 Terminal-Bench 2.0 的系统性实验,量化了资源配置对评测结果的干扰,并建议评测应同时指定"保证分配"和"硬杀阈值",以在可靠性与公平性之间取得平衡。
category: translation
tags: anthropic, engineering, translation, evals, infrastructure

量化 Agent 编码评测中的基础设施噪声

原文发布于 2025 年 2 月 5 日,作者 Gian Segato

核心观点

基础设施配置能让 Agent 编码评测分数波动数个百分点——有时超过排行榜前几名模型之间的差距。


概述

Agent 编码评测中,资源配置差异带来的分数波动可高达 6 个百分点,足以颠覆排行榜排名。 SWE-bench、Terminal-Bench 等 Agent 编码基准已成为衡量前沿模型软件工程能力的标尺。排行榜头部模型之间往往只相差几个百分点,而这些分数越来越多地影响着部署决策。然而,Anthropic 发现仅仅是基础设施配置的差异,就能产生超过这些差距的分数变化。

核心发现: 在 Terminal-Bench 2.0 上,资源最宽松与最严格的配置之间,分数差距达到 6 个百分点(p < 0.01)


为什么 Agent 评测不同于静态基准

Agent 评测中,运行时环境不再是被动容器,而是问题求解过程的组成部分。 静态基准直接给模型输出打分,运行时环境无关紧要。而 Agent 编码评测为模型提供完整环境——模型在其中编写程序、运行测试、安装依赖、多轮迭代。运行时环境的资源限制直接影响模型能尝试的策略空间。


问题是怎么发现的

Kubernetes 严格执行资源上限导致高达 6% 的任务因基础设施错误而失败。 Anthropic 在 Google Kubernetes Engine 集群上运行 Terminal-Bench 2.0 时,校准阶段发现两个问题:

  1. 分数与基准的官方排行榜不一致
  2. 基础设施错误率惊人——高达 6% 的任务因 Pod 错误失败,与模型能力无关

根本原因在于资源执行方式的差异。容器运行时通过两个独立参数管理资源:

参数 作用
保证分配(Guaranteed Allocation) 预先为容器预留的资源
硬限制(Hard Limit) 超过此值容器会被杀死

Anthropic 的 Kubernetes 实现将每个任务的资源规格同时设为下限和硬上限——两者相等意味着零余量,瞬时峰值就会触发 OOM Kill。而 Terminal-Bench 官方排行榜使用的沙箱提供商实现更宽容,允许临时超额分配而不终止容器。


实验设计

在六种资源配置下运行 Terminal-Bench 2.0,从严格执行(1x)到完全不限制,其他变量保持不变。 使用相同的 Claude 模型、相同的评测框架、相同的任务集。

实验结果

配置 基础设施错误率 分数变化
1x(严格限制) 5.8% 基线
3x 余量 2.1% 在噪声范围内(p=0.40)
无上限 0.5% 比 1x 高 6 pp(p < 0.01)

资源配置与评测分数的关系

关键观察

资源余量的增加带来两阶段效应:先修复可靠性问题,再解锁新的求解策略。

  • 成功率随资源余量增加而提升
  • 基础设施错误率在每一步都单调下降
  • 从 1x 到 3x:错误率从 5.8% 降至 2.1%(p < 0.001),但分数提升在噪声范围内(p=0.40)
  • 从 3x 到无上限:错误率仅下降 1.6 pp,但成功率跃升近 4 个百分点

额外资源让 Agent 能够尝试需要大量资源的策略——拉取大型依赖、启动高开销子进程、运行内存密集型测试套件。例如 rstan-to-pystancompile-compcert 等任务在内存充裕时成功率显著提升。


对测量的影响

资源限制不仅影响评测可靠性,还会改变评测本质上衡量的能力维度。

资源范围 效应 含义
低于 ~3x 规格 修复基础设施可靠性(消除瞬时峰值导致的假失败) 评测更稳定,但没有变简单
高于 ~3x 规格 主动帮助 Agent 解决之前解不了的问题 限制实际改变了评测衡量的内容

两种资源策略奖励不同的模型行为:

资源策略 奖励的行为
严格限制 高效节俭的策略
宽松限制 充分利用所有可用资源的策略

示例:bn-fit-modify 任务

这个 Terminal-Bench 任务需要进行贝叶斯网络拟合。一些模型的第一反应是安装完整的 Python 数据科学栈(pandasnetworkxscikit-learn)。在宽松限制下可以成功;在严格限制下,安装过程中 Pod 就会被 OOM Kill,解题代码尚未开始执行。但存在一种更精简的策略——仅用标准库从头实现数学运算——有些模型会默认采用这种方式。

不同模型有不同的默认策略,而资源配置决定了哪种策略恰好能成功。

跨模型与跨基准验证

核心发现在不同模型和不同基准上均可复现。

  • 在不同的 Anthropic 模型上测试:方向一致,幅度有差异
  • SWE-bench 交叉验证实验:对 227 个问题(每个 10 次采样)将 RAM 最高提升至 5 倍基线
  • SWE-bench 分数随 RAM 单调递增:5x 比 1x 高 1.54 个百分点
  • SWE-bench 效应较小,符合预期——其任务资源需求普遍低于 Terminal-Bench

其他方差来源

除资源分配外,时间限制、集群健康度、甚至一天中的时段都会引入噪声。 基础设施噪声的来源远不止内存和 CPU:

方差来源 说明
时间限制 在某些配置下影响评测结果
集群健康度 硬件规格、并发度、出口带宽
时间段效应 通过率随时间波动,可能因 API 延迟随流量模式变化

"模型能力"与"基础设施行为"之间的边界,远比一个基准分数所暗示的更加模糊。

模型提供商可以通过专用硬件屏蔽自己评测的基础设施噪声,但外部评估者很难做到这一点。


建议

评测应同时指定保证分配和硬杀阈值两个参数,在可靠性与公平性之间取得平衡。

理想情况: 每次评测在完全相同的硬件条件下运行(脚手架和推理栈),实现完美可复现。

实际建议: 评测应为每个任务指定两个参数(保证分配 + 硬杀阈值),而不是单一固定值。两者之间的区间应经过校准,使分数在下限和上限处落入噪声范围内。

对于 Terminal-Bench 2.0,3x 上限相对于每个任务的规格:
- 基础设施错误率降低约三分之二(5.8% → 2.1%,p < 0.001)
- 分数提升温和且在噪声范围内(p = 0.40)

具体倍数因基准而异,应明确报告。对于面向公众发布的编码评测,在不同时间和不同天数运行多次有助于平均化噪声。


为什么这很重要

在资源方法论标准化之前,排行榜上低于 3 个百分点的差距值得怀疑。

统计数据 数值
中等资源配置间的观察分差 接近 2 个百分点
朴素二项置信区间 1-2 个百分点
极端分配范围的分差 6 个百分点

基础设施干扰因素叠加在统计噪声之上,而非包含在其中。

几个百分点的领先可能代表真实的能力差距——也可能只是一台更大的虚拟机。


致谢:特别感谢 Nicholas Carlini、Jeremy Hadfield、Mike Merrill 和 Alex Shaw。