为什么重要
FormulaCode 是首个专注于代码性能优化的仓库级基准。现有代码基准主要评估功能正确性(能否写出/修复代码),FormulaCode 则衡量 Agent 在真实代码库上进行多目标优化的能力——提升性能的同时不引入回归。这更贴近生产环境中”工程师花大量时间优化而非写新代码”的真实需求。
关键创新点:
- 多目标评测:不只看 speedup,还衡量正确性风险和优化成本
- 真实代码库:957 个来自科学 Python 仓库的真实性能瓶颈
- 丰富基准负载:平均每个任务 264.6 个社区维护的 benchmark workload
- 全生命周期评估:从问题定位(triage)→诊断(diagnosis)→解决(resolution)的完整链条
构建方式
- 发现阶段:扫描 245,477 个 GitHub PR,筛选含 ASV benchmark 且 >100 星的 Python 仓库
- 挖掘阶段:从 13,008 个性能相关 PR 中识别 1,584 个候选任务
- 筛选阶段:最终保留 957 个高质量任务,跨 154 个仓库
- 标注阶段:每个任务配对专家编写的参考补丁 + 社区 benchmark workloads
- 评测流程:Agent 在沙箱终端中运行,提交优化补丁,通过 benchmark 验证
任务构成
- 来源仓库:NumPy、SciPy、Pandas、Shapely 等 154 个科学计算仓库
- 任务类型:性能瓶颈修复(非功能 Bug)
- 平均工作负载:264.6 个 benchmark per task,确保多目标评估
关键发现
前沿模型在仓库级优化上集体挣扎
- 所有 Agent 的 Advantage 均为负值——意味着它们引入的回归风险超过了性能提升
- 人类专家 (oracle) 的 Advantage 为 0.0(基准线),Speedup 1.1193x
- 最佳 Agent(OpenHands + Claude 4.0 Sonnet)的 Advantage 仅 -0.0096,远低于人类水平
Speedup 和 Advantage 之间存在权衡
- Claude 4.0 Sonnet (Terminus 2) 获得最高 speedup (1.0977x),但 Advantage 更差 (-0.0422)
- 说明更激进的优化往往带来更多回归风险
Agent 脚手架差异显著
- 同一模型在不同 Agent 框架下表现差异大
- OpenHands 总体优于 Terminus 2(Advantage 更好),但 Terminus 2 在 speedup 上更强
仓库级优化是全新的挑战维度
- 与 SWE-bench(修复 Bug)不同,FormulaCode 要求 Agent 理解性能瓶颈、设计优化方案、验证不引入回归
- 这需要更深层的代码理解和工程判断力
评测指标
Advantage(优势分数)
Advantage = P(优化后性能提升) - P(优化后引入回归)
- 正值 = 优化效果超过回归风险
- 负值 = 引入的回归超过优化收益
- 人类专家 = 0.0(基准线)
Speedup(加速比)
- 几何平均加速比
- 人类专家 ≈ 1.1193x
成本指标
- Token 消耗量
- 执行时间
Agent × 模型排行榜
| Agent 框架 | 模型 | Advantage | Speedup (geomean) |
|---|---|---|---|
| OpenHands | Claude 4.0 Sonnet | -0.0096 | 1.0553x |
| OpenHands | GPT-5 | -0.0186 | 1.0848x |
| Terminus 2 | Claude 4.0 Sonnet | -0.0422 | 1.0977x |
| OpenHands | Qwen 3 Coder | -0.0299 | 1.0348x |
| Terminus 2 | GPT-5 | -0.0490 | 1.0586x |
| Terminus 2 | Qwen 3 Coder | -0.0454 | 1.0677x |
| Terminus 2 | Gemini 2.5 Pro | -0.0847 | 1.0549x |
| Human Expert | (oracle) | 0.0000 | 1.1193x |
局限性
- 仅覆盖 Python 科学计算领域,未包含 Web、系统编程等场景
- 依赖 ASV (Airspeed Velocity) benchmark 框架,限制了仓库选择范围
- 评测模型版本稍旧(Claude 4.0 Sonnet 而非 4.5/4.8),期待新模型评测
- Advantage 指标定义可能偏保守——某些”回归”可能实际无害
- 任务量 957 虽然可观,但分布不均(Top 7 仓库占 50% 任务量)
关联基准
- SWE-bench Pro:Bug 修复而非性能优化
- ProgramBench:从零构建软件系统
- Web-Bench:前端代码基准
- Breakpoint:系统级推理代码修复