每天三篇 arXiv cs.SE 论文 · 讲给不懂这个领域的人

← 全部论文

机器会写码,难破科学局

论文讲的是:用一百多道真实科研代码题测试AI程序员,揭开它为什么总在科学领域翻车

Zhipeng Xu, Jiahao Lu, Yining Zheng, Yuxin Wang, Xipeng Qiu · 26.08.20 · arXiv:2608.19799

1问题

科研代码不是跑个网页那么简单,它是实验仪器本身。一个粒子物理模拟脚本出了错,输出的参数直接决定论文能不能发顶刊。现在让通用AI去修这个漏洞。它盯着报错日志,把变量名改掉,或者硬凑一行循环,屏幕闪了几下,程序还是崩。更致命的是,没人知道它到底哪儿想错了。以前评测AI编程能力,全拿刷算法题库或独立小页面来考。这些场景只看程序跑不跑得通,不管逻辑对不对得上现实规律。科学代码一旦跑偏,出的不仅是错误提示,而是整个实验的证据链断裂。作者团队就盯上了这块盲区:AI写普通软件挺溜,一到科研环境就哑火,这锅到底该谁背?既然通用考场量不出深浅,干脆造一套专门测科研代码的真实试卷。

2翻译

回到开头的物理模拟脚本。这次考场给了模型整栋楼的图纸和工具箱,而不是只丢他一张局部电路图。这套系统叫SWE-bench Science,里面塞了九十八个真实开源项目,横跨二十个学科,拆成一百一十九道具体考题。考题按实际工作流分成三类:按明确报错找漏、按模糊设想摸索实现、把新模块严丝合缝拼进旧系统。顶级模型Claude进去摸底,满分通关率不到百分之五十。连最强选手都考不及格,说明问题不在算力堆砌,而在底层认知断层。大家原以为多给点背景资料就行,作者做了组对照实验验证。他们把原本绑定的科学说明全部撤掉,只留纯代码和运行环境,看结果走向。意外发生了:加了高质量专业注释的模型,平均修复效率确实翻倍,但精准修对的比例反而上下跳动;如果注释跟代码咬合不准,模型会死抠字面意思,把自己钉在奇怪方向上,连基础通过率都拉胯;彻底砍掉提示词的对照组,虽然开局盲目,但靠接口契约自己推理,有时反而避开过度专业化的思维陷阱。这说明科学常识不是万能补丁,喂得准能踩刹车,喂不准就是路障。

3核心概念

这里头有三个必须拿准的零件。第一个是仓库级大考。以前测代码是看单文件或短片段,像开填空题。这个项目要求模型面对完整的目录树、依赖链条和历史提交记录。就像把你扔进正在运转的工厂车间,你得看懂流水线怎么衔接,而不是只拧松一颗生锈的螺丝。第二个是三类考题设计。出题人没搞随机抽题,而是把真实研发步骤拆开:有的直接给失败报告让你修补;有的给个未成型想法让你探索路径;有的让你把别人的算法塞进现有框架。这种设计逼着模型区分填坑和搭台,暴露出它在不同压力下的动作变形。第三个是四种翻车姿势。作者把不及格的卷子摊开细看,总结出固定套路。第一类是吃透不了公式背后的因果,只改表面语法;第二类是满屏搜现成模板,修好报错却打碎深层调用;第三类是只顾眼前补丁,没把新代码融进整体架构;第四类是见过一次不会举一反三,换个运行参数又卡壳。每个毛病都能在之前的物理脚本案例里找到影子,模型每次都在重复同一种偷懒或误判。

4洞见

AI编程的瓶颈早过了语法层面,真正的关卡是把干巴巴的代码符号还原成有因果关系的科学推演,没有这套转化能力,再大的模型也只是高级文本拼接机。

5博导审稿

选题眼光很准。把评测从能不能跑推进到为什么在科学里跑不通,切中了当前代码助手的软肋。方法成熟度方面,数据集规模够大,分类清晰,消融对照也切到了要害。不过有个根本预设值得商榷:文章默认只要提示词对齐就能改善表现,却没讨论实际科研中知识库更新极快、术语随子领域漂移的困境。把静态说明书喂给动态模型,现实维护里很难维持长期一致。实验诚意没问题,一百一十道题的通过率不到一半,锚定效应那组数据经得起追问,尤其是对比显式引导和非引导的收益倒挂,拍得很实。写作功底扎实,讨论克制,不夸大成果。判决:strong accept。这篇不仅交出了一份可信的评测答卷,还把AI科学编程的暗礁全捞了上来,后续改进有明确靶心。

6启发

这意味着你可以直接拿它来校准自己的开发管线。迁移:在你现有的评估流程里插进这套仓库级考题,专门测模型处理长链条依赖和跨文件调用的真实能力。混搭:把它的四类失败监控器做成实时拦截插件,模型每改动一行核心逻辑,先过一遍结构合理性校验,别等批量提交才爆雷。反转:传统做法是拼命灌领域知识给大模型试图包治百病,你反过来试试做减法。给模型划死边界,只提供最小必要运行环境和接口声明,让它靠代码自身的类型签名推导意图,反而能避开过度专业化带来的思维定势。