一水 发自 凹非寺
量子位 | 公众号 QbitAI
又一开源AI神器在外网引起热议!
名为PaperCoder,是一个多智能体LLM(大语言模型)系统,能自动实现机器学习论文中的代码。
据介绍,之所以推出这一工具,是因为经过统计发现:
2024年,在NeurIPS、ICML和ICLR等顶会上,平均只有21%的机器学习论文共享了代码。
造成的结果是,复现和构建研究成果的速度极其缓慢。
于是乎,来自韩国科学技术院的四位研究人员推出了PaperCoder,在规划、分析和代码生成这三个阶段,分别由专门的智能体来处理不同的任务,最终完成顶会论文的代码生成工作。
并且最终生成的代码超越了一些现有基准,甚至获得了所招募的77%原顶会论文作者的认可。
下面具体来看。
智能体提示词曝光
通过模仿人类研究员编写库级代码的典型生命周期,PaperCoder大致分为三个流程:
规划(Planning):包括总体计划、架构设计、逻辑设计和配置文件;
分析(Analyzing):将计划转化为详细的文件级规范;
代码生成(Coding):生成最终代码以实现论文中的方法和实验。
研究过程中,每一个步骤所用到的提示词如下:
1)在规划阶段生成总体计划。
系统提示词:
你是一位具有丰富实验设计和复现科学研究的专家研究员和战略规划者。
你将收到一份JSON格式的研究论文。你的任务是创建一个详细且高效的计划,以重现论文中描述的实验和方法。该计划应与论文的方法、实验设置和评估指标精确对齐。
要求:
1、与论文对齐:你的计划必须严格遵循论文中描述的方法、数据集、模型配置、超参数和实验设置。
2、清晰且结构化:以组织良好且易于遵循的格式呈现计划,将其分解为可操作的步骤。
3、优先考虑效率:优化计划以确保清晰度和实际可实施性,同时确保对原始实验的忠实度。
除了系统提示词,下面还包括用户在上传论文后,所提到的任务安排、要求、注意事项等。
2)在规划阶段生成架构设计。
用户提示词:
你的目标是创建一个简洁、可用且完整的软件系统设计,以复现论文的方法。使用适当的开源库,并保持整体架构简单……
后面还附上了格式示例。
3)在规划阶段生成逻辑设计。
用户提示词:
你的目标是根据产品需求文档(PRD)/技术设计分解任务,生成任务列表,并分析任务依赖关系。你将分解任务,分析依赖关系。
你概述了复现论文方法和实验的清晰PRD/技术设计。
现在,让我们根据PRD/技术设计分解任务,生成任务列表,并分析任务依赖关系。逻辑分析不仅要考虑文件之间的依赖关系,还要提供详细的描述,以协助编写复现论文所需的代码。
格式示例+1。
4)在规划阶段生成配置文件。
用户提示:
你编写优雅、模块化和可维护的代码。遵循Google风格指南。
根据之前指定的论文、计划和设计,遵循“格式示例”并生成代码。从上述论文中提取训练细节(例如,学习率、批量大小、周期数等),遵循“格式示例”并生成代码。不要编造细节——只使用论文提供的内容。
你必须编写‘config.yaml’。
注意:使用“##”分割部分,而不是“#”。你的输出格式必须严格遵循下面的例子。
5)在分析阶段生成文件规范。
系统提示词:
你是一位具有丰富实验设计和复现科学研究的专家研究员、战略规划者和软件工程师。
你将收到一份JSON格式的研究论文,包括计划概述、一个包含“实现方法”、“文件列表”、“数据结构和接口”和“程序调用流程”的设计,以及一个包含“所需包”、“所需其他语言第三方包”、“逻辑分析”和“任务列表”的任务,还有一个名为“config.yaml”的配置文件。
你的任务是进行全面的逻辑分析,以准确重现研究论文中描述的实验和方法。此分析必须与论文的方法论、实验设置和评估标准精确对齐。
(一些具体要求)……
6)代码生成阶段。
在系统提示词中,除了重复上一步提到的内容,还增加了对Coding的表述:
你的任务是编写代码来复现论文中描述的实验和方法。
编写的代码必须优雅、模块化且可维护,遵循Google风格指南。代码必须严格与论文的方法论、实验设置和评估指标对齐。编写三重引号的代码。
77%论文原作表示认可
利用以上提示词,研究人员使用了4个模型及变体来进行实验。它们分别是:
DS-Coder:DeepSeek-Coder-V2-Lite-Instruct
Qwen-Coder:Qwen2.5-Coder-7B-Instruct
DS-Distil-Qwen:DeepSeek-R1-Distill-Qwen14B
o3-mini-high
评估对象包括90篇顶会论文。
具体而言,基于ICML 2024、NeurIPS 2024和ICLR 2024得分最高的30篇论文,研究人员构建了Paper2Code基准测试。
过程中,他们使用OpenReview API筛选出有公开GitHub存储库的论文。
在这些论文中,选择了总代码量少于70,000个tokens的存储库,以在可控范围内确保可重复性。
然后还使用了一个名为PaperBench Code-Dev的基准测试,该测试包含ICML 2024的20篇论文,以进一步验证框架。
为了对比,在目前缺少端到端论文到代码生成框架的情况下,他们选择了一些软件开发多智能体框架进行比较, 包括ChatDev和MetaGPT。
所使用的评估方法包括两种:
其一,和其他框架对比所生成代码的准确性、规范性和可执行性。
其二,邀请13位计算机专业的硕博学生参与评估,要求回答是否喜欢AI为他们的一作论文所生成的代码。
实验结果显示, 在Paper2Code基准测试中,PaperCoder取得了比其他多智能体框架更好的结果。
在人类评估中,大约有77%(10人)的论文原作者将PaperCoder生成的代码 作为首选。
另外值得一提的是,研究人员发现o3-mini-high与人类判断的相关性最高,因此在实验中大多将其选为评估模型。