基准
评测基准
ResearchCodeBench: Benchmarking LLMs on Implementing Novel Machine Learning Research Code
ResearchCodeBench:让 LLM 实现 2024-25 新论文的核心代码
Tianyu Hua, Harper Hua, Violet Xiang, Benjamin Klieger, Sang T. Truong, Weixin Liang, Fan-Yun Sun, Nick Haber · Stanford · NeurIPS 2025 · 2025-06 · 被引 34
一句话 Stanford 做的 212 题代码基准:从 20 篇 2024-25 年 ML 论文里抠出核心贡献代码做填空,用作者/专家写的测试判对错;32 个模型里最好的 Gemini-2.5-Pro-Preview 也只有 37.3%(scaled pass@1),且 13/20 篇论文的代码首次 commit 晚于所有模型的知识截止,基本排除了'背过答案'。
这是什么 很多代码基准(HumanEval、MBPP 甚至 SWE-bench)的题目和答案大概率已经进了训练数据,分数里混着'背诵'成分。ResearchCodeBench 的切入点是时间隔离:专挑 2024-25 年顶会(ICLR/NeurIPS/CVPR)和 arXiv 的新论文,要求模型读论文原文,把其中最核心的新方法(一个新 loss、一个新模块、一段训练逻辑)补写成能通过测试的代码。20 篇论文包括 DyT(Transformers without Normalization)、Diff-Transformer、DiffusionDPO、REPA-E、schedule_free 等,共 212 个 coding challenge。
任务形式是 fill-in-the-blank:给模型完整论文(平均 30k tokens)+ 该 repo 的相关上下文代码(平均 20k tokens)+ 一个标了 TODO 的位置和一句自然语言 hint,让它补出被挖掉的代码,插回原文件后跑 equivalence test 和 unit test 判定功能正确性。作者评了 32 个商用和开源模型,最好的不到 40%,论文借此论证'读懂新论文并实现它'仍是 LLM 的短板。NeurIPS 2025 接收,S2 引用 34。
任务形态:给 LLM 论文全文 + 带 TODO 的代码文件(含预期行数 hint),模型补全被挖掉的代码(图中例子是 DyT 的 DynamicTanh.forward),插回原文件后用专家编写的 equivalence/unit test 判定功能正确性。注意这是带脚手架的填空,不是从零实现。 机制与做法 题目构造:从论文核心贡献到层级化填空
流程是人工密集型的:选论文时优先'贡献在论文里写得清楚、在官方 repo 里实现得干净'的工作,并尽量拉原作者参与出题和验证测试。定位核心贡献后,用 XML 标签在官方实现里手工标注要挖掉的代码区间,评测时程序化删除、让模型补全。
一个关键设计是层级化 snippet:整个核心贡献(可能几十行)作为最外层大题,再往下切成函数级、行级的小题——内层小题因为可见上下文更多,难度保证不高于外层。另外每题配一句不泄露答案的 hint(见 fig03 里的 'Implement block DynamicTanh forward, approximately 5 line(s) of code'),用来消除歧义。
主结果:32 个模型的 scaled pass@1(按代码行数加权、greedy decoding)。Gemini-2.5-Pro-Preview 两个版本领跑(37.3%/33%+),其后是 O3 (High)、O4-mini (High)、GPT-4.1、Claude-3.7-Sonnet;虚线框是开源模型,最强的 DeepSeek-R1/V3 约 21%,整体没有模型过 40%。 判分:execution-based,拒绝 LLM judge
论文明确对比了五种判分方式(string distance / embedding 距离 / LLM as judge / unit test / equivalence test),认为 LLM judge 可靠性存疑,最终采用混合策略:默认用 equivalence test(同一输入下比较生成实现与官方参考实现的输出),edge case 上补 unit test。测试由原论文作者或领域专家编写。
主指标是 scaled pass@1:按 snippet 的可执行行数(LoC)加权的通过率,避免大量琐碎小题稀释分数;greedy decoding 取第一个补全。整套评测不需要 GPU,平均每题 1.25 秒,M1 MacBook 就能跑完。
污染控制与论文依赖消融
污染分析用 repo 首次 commit 日期做下界:20 个 repo 全部创建于 2023 年 12 月之后,其中 13 个首次 commit 在 2025 年,晚于当时最新的 Gemini-2.5-Pro-Preview 的 cutoff(2025-01)。在这个 contamination-safe 子集上所有模型分数都明显下降(说明新题更难也更 out-of-distribution),但强弱排名保持不变。
另一个消融是把论文从 prompt 里拿掉,任务退化成纯代码补全:Gemini-2.5-Pro、O3 (High) 等强模型有论文时相对提升最高约 30%,GPT-4.1-Nano 等小模型几乎不变,LLaMA 系模型给了论文反而更差(长文档稀释上下文)。散点图显示存在一批'只有给论文才能解出来'的题,说明基准确实在考论文理解而不只是代码模式匹配。
关键结果 212 个 coding challenge、20 篇 2024-25 论文、32 个模型:最好的 Gemini-2.5-Pro-Preview-05-06 仅 37.3% scaled pass@1,O3 (High) 32.3%,O4-mini (High) 30.8%;没有模型过 40%。 开源模型明显落后:最强的 DeepSeek 系(R1 / V3-0324)约 21%,与闭源第一梯队差 10+ 个百分点;垫底的 Mistral-Codestral-Mamba 接近 0。 13/20 篇论文的 repo 首次 commit 晚于所有已知模型 cutoff;在这个 contamination-safe 子集上全体模型分数下降但排名不变,支持'低污染'声称。 有无论文消融:强模型(Gemini-2.5-Pro、O3)有论文时相对提升最高约 30%,小模型无提升,LLaMA 系反而变差;部分任务只有给论文才可解。 错误分布:58.6% 是 functional error(代码能跑但语义错),name/type/syntax 各约 8-9%,import 6.9%——瓶颈是对论文算法的语义对齐,不是 Python 语法。 评测成本低:无需 GPU,每题平均 1.25s,本地 Conda/Docker 环境即可复跑全部 32 个模型的判分。 实证核查
有水分 基准本体扎实:repo 结构、20 篇论文的测试、评测脚本和 overall_stats.json 都与论文对得上,判分是 execution-based 的。但水分在配套声称上:摘要里卖的'community-driven、持续演进的评测平台'完全没兑现(发布 3 周后 repo 即停更,issue 零回应),而且逐题原始生成结果没有发布,第三方无法在任务级复核关键图表。
212 个挑战来自 20 篇论文,配有作者/专家编写的正确性测试,整个 pipeline 可本地复跑。
属实。GitHub repo 的 pset/ 下恰好有 20 个论文目录(DyT、Diff-Transformer、DiffusionDPO、REPA-E、schedule_free 等,与论文 Table 一致),README 给出 sanity_check_tests.py 逐 repo 的测试耗时表,run_greedy.sh 可对全部 32 个模型重跑判分,主图可从提供的 outputs/20llms_greedy/.../overall_stats.json 复现。
'By providing a rigorous and community-driven evaluation platform … enables continuous understanding'——摘要和 3.4 节承诺社区提交表单、持续收录新论文和新模型。
没有兑现。repo 创建于 2025-05-16,最后一次 push 是 2025-06-04,此后零提交、零 release;全部 3 个 issue 无一得到回应,issue #3(标题 'We still think about you')的用户直言 'Sad the benchmark doesn't get any updates';issue #1 请求评测 GPT-5 也无下文。stars 仅 14,所谓 leaderboard 停留在 2025 年 5 月的 32 个模型。
论文 Figure 4 报告了 with/without paper 的任务级对比(86 题有论文更好 vs 75 题无论文更好)。
第三方无法复核到任务级:issue #2(2025)指出 outputs/ 下只有聚合的 overall_stats.json,without-paper 条件的逐题 pass/fail 和所有模型的原始代码生成均未发布,请求作者补发,截至 2026-08 无任何回复。
标题口径是 'Implementing Novel Machine Learning Research Code',听起来像从论文独立实现新方法。
实际任务温和得多:模型拿到官方 repo 的 surrounding context、TODO 位置、预期行数和一句人工 hint,做的是填空(见论文 Fig.1 的 prompt 'Approximately 5 line(s) of code')。这是刻意的设计权衡(保证可自动判分),但 37.3% 的分数应理解为'带脚手架的填空通过率',离'自主实现论文'还有相当距离;另外只有 13/20 篇属于严格污染安全子集。
与我们方向的关系 对 autoresearch 方向,这是'AI 实现新研究代码'能力最干净的度量之一:用时间隔离(repo commit 晚于 cutoff)而不是靠改写题面来防污染,且判分完全 execution-based,不依赖 LLM judge。和 PaperBench(整篇论文复现、LLM judge 打分)相比,它牺牲了任务的完整性换来了判分的可靠性,两者正好互补。'functional error 占 58.6%'这个结论对我们很有参考价值:agent 实现新方法时失败主要不在写代码,而在读懂论文里的算法细节。
可直接借鉴的技术点:按 LoC 加权的 scaled pass@1(避免琐碎小题刷分)、equivalence test(拿官方实现当 oracle,对拍输出,比手写 unit test 便宜)、层级化 snippet(同一贡献切成难度递减的嵌套题)。教训也很直接:静态 benchmark 的半衰期极短——这个 NeurIPS 2025 的工作发布三周后就停止维护,'社区驱动持续扩展'说起来容易,做的时候要把维护成本当一等公民设计。
阅读笔记 复跑注意:评测本身 CPU 即可,但要重跑生成需要 5 家 API key(OpenAI/Google/xAI/DeepSeek/OpenRouter)。repo 语言标成 TeX 是因为论文源码也在里面。若想做任务级分析,目前只能自己重跑生成,官方没有发布 raw generations(issue #2)。
材料清单 TeX 源码 已存档:Raw/researchcodebench/source/
同类条目