新课【NLP大模型工程师集训营】文末开秒!!!
前言
熟悉本博客或我司七月的知道,过去一年,在具身智能机器人解决方案之外,大模型应用开发团队一直专注通过大模型赋能科研行业,所以在做面向科研论文相关的翻译、审稿、对话、修订(包含语法纠错、润色)、idea提炼等诸多系统(背后的技术详情,参见: 七月科研论文大模型:含论文的审稿微调、阅读、写作、修订 ,当然了,我司七月不涉及论文的直接生成),目前正在逐一上线七月官网
8.14这一天,一关注我们的深圳的黄总(后来北京的刘总也发我了下),发我一篇文章《首位AI科学家问世!已独立生成10篇学术论文,还顺手搞了AI审稿人》,并说:“看看你们审稿大模型有什么可以借鉴的”
我仔细一看,原来是这篇论文:《 The AI Scientist: Towards Fully Automated Open-Ended Scientific Discovery 》
值得注意的是
1 他们的审稿模型与我司七月基于开源模型微调不同,他们的只是调用API,质量有限(但还是给了我司七月一些启发,比如在审稿prompt的编写上)
2 最终他们生成的论文本身的质量也有限,故建议都只做参考,当然 假以时日,相信随着基础大模型的能力不断提升,AI本身生成的论文质量会越来越高
论文中包括本文中,会反复出现编码助手(Aider)一词——Paul Gauthier. aider, 2024,其对应的GitHub地址为: https://github.com/paul-gauthier/aider
其定义是:基于github仓库进行编辑的框架,分解成组件来说,基本上就是“代码仓库读取解析 + LLM + prompt + 代码执行器 + 自纠正机制”
其场景是:用户给定代码仓库,提出进行代码修补之类的需求,它就能尝试遵循下 本质就是个agent——针对GitHub代码仓库做二次开发的编码助手(其在本文所述的AI科学家生成论文的整套流程中,起到了极为关键的作用)
Aider: An LLM-Based Coding Assistant. Our automated scientist directly implements ideas in code and uses a state-of-the-art open-source coding assistant, Aider (Gauthier, 2024).
Aider is an agent framework that is designed to implement requested features, fix bugs, or refactor code in existing codebases.
While Aider can in principle use any underlying LLM, with frontier models it achieves a remarkable success rate of 18.9% on the SWE Bench (Jimenez et al., 2024) benchmark, a collection of real-world GitHub issue
总之,其类似前段时间大火的AI程序员 devin ,且其跟我们之前常见的GitHub copilot还不太一样,因为Aider更像是自动驾驶,而copilot更多只是辅助驾驶PS,我正在和团队复现本文介绍的这个AI科学家AI Scientist、AI程序员Aider,预计24年9月份之内 复现好。
01
全自动:从idea提炼、实验设计、论文撰写再到评估
1.1 AI科学家的三大阶段:创意生成、实验迭代、论文撰写
随着过去一年半以来大模型技术的突飞猛进(有通用常识、能做逻辑推理、更能编写代码),其赋能科学研究的事例早已屡见不鲜,包括且不限于计算机科学、机器人、材料学、生物学、数学等诸多前沿领域
过程中
会给AI科学家提供一个初步的代码模板,该模版再现了一个来自流行模型或基准的轻量级基线训练运行。例如,这可能是训练一个小型变压器模型在莎士比亚作品上的代(Karpathy,2022)
AI工智能科学家可以自由探索任何可能的研究方向。模板还包括一个 LaTex 文件夹,其中包含样式文件和部分标题,以及简单的绘图代码
1.1.1 创意生成
给定一个起始模板,AI科学家首先“头脑风暴”一组多样化的新颖研究方向,每个创意包括描述、实验执行计划和(自我评估的)有趣性、新颖性和可行性的数值评分
在每次迭代中,我们提示语言模型生成一个有趣的新研究方向,条件是现有的档案,这些档案可以包括已完成的前期创意的数值评审分数
且过程中,使用多轮思维链和自我反思(Shinn et al,2024)来完善和发展每个创意
在创意生成之后,我们通过将语言模型与Semantic Scholar API(Fricke,2018)和网络访问作为工具(Schick et al,2024)连接来筛选创意,这使得人工智能科学家可以丢弃任何与现有文献过于相似的创意
1.1.2 实验迭代
给定一个创意和一个模板,AI科学家的第二阶段首先执行提议的实验,然后将其结果可视化以供下游撰写
AI科学家首先使用编码助手手Aider(如本文开头所述,是个针对代码仓库做二次开发的agent,下同)来计划要运行的实验列表,然后按顺序执行这些实验 我们通过在失败或超时(例如实验运行时间过长)时返回任何错误给编码助手Aider来修复代码并重新尝试最多4次,从而使这个过程更加健壮
在每个实验完成后,编码助手Aider会得到结果并被告知以实验日志的形式记录笔记 目前,它只基于文本进行条件判断,但在未来的版本中,这可能包括数据可视化或任何模态。根据结果,它会重新计划并实施下一个实验 这个过程重复最多五次
实验完成后,编码助手Aider会被提示编辑绘图脚本,使用Python创建论文的图表 AI科学家会记录每个图表包含的内容,使保存的图表和实验笔记提供撰写论文所需的所有信息。在所有步骤中,编码助手Aider都会看到其执行历史
1.1.3 论文写作
为了加快论文用latex的协作
在写作的每一步,编码助手Aider被提示仅使用从代码生成的笔记和图表形式的真实实验结果,以及真实引用以减少幻觉。每个部分在编写时最初都经过一轮自我反思(Shinn等,2024) 编码助手Aider被提示在此阶段不在文本中包含任何引用,并且仅填写相关工作的框架,这将在下一阶段完成。
网络搜索参考文献:与创意生成类似,人工智能科学家被允许进行20轮轮询Semantic Scholar API,寻找最相关的来源,以便在相关工作部分对几乎完成的论文进行比较和对比 这个过程还允许AI科学家选择任何它想讨论的论文,并额外填补论文其他部分缺失的引用。在每篇选定的论文旁边,会生成一段简短的描述,说明在哪里以及如何包含引用,然后传递给编码助手Aider。论文的bibtex会自动附加到LaTeX文件中以保证正确性
精炼:在前两个阶段之后,人工智能科学家已经完成了初稿,但往往会过于冗长和重复。为了解决这个问题,进行最后一轮的逐部分自我反思,旨在删除任何重复的信息并简化论文的论点
编译:一旦LaTeX模板填入了所有适当的结果,就会被输入到LaTeX编译器中。使用LaTeX linter并将编译错误反馈给编码助手Aider,以便它可以自动纠正任何问题
1.2 自动化论文审稿
他们这个审稿系统基于GPT-4o,然后针对NeurIPS的论文进行审稿,过程中,他们使用PyMuPDF解析库处理论文的原始PDF手稿
最终的审稿输出包括数值评分(健全性、演示、贡献、整体、置信度)、优缺点列表以及初步的二元决策(接受或拒绝)
1.2.1 提示大模型输出审稿意见的prompt模板
其提示大语言模型输出审稿意见的prompt模版为
1. Paper Review System Prompt
You are an AI researcher who is reviewing a paper that was submitted to a prestigious ML venue. Be critical and cautious in your decision.
If a paper is bad or you are unsure, give it bad scores and reject it.2. Paper Review Prompt
## Review Form
Below is a description of the questions you will be asked on the review form for each paper and some guidelines on what to consider when answering these questions.
When writing your review, please keep in mind that after decisions have been made, reviews and meta-reviews of accepted papers and opted-in rejected papers will be made public.
{neurips_reviewer_guidelines}
{few_show_examples}
Here is the paper you are asked to review:
```
{paper}
```3. Paper Review Reflection Prompt
Round {current_round}/{num_reflections}.
In your thoughts, first carefully consider the accuracy and soundness of the review you just created.
Include any other factors that you think are important in evaluating the paper.
Ensure the review is clear and concise, and the JSON is in the correct format.
Do not make things overly complicated.
In the next attempt, try and refine and improve your review.
Stick to the spirit of the original review unless there are glaring issues.
Respond in the same format as before:
THOUGHT:
REVIEW JSON:
```json
```
If there is nothing to improve, simply repeat the previous JSON EXACTLY
after the thought and include "I am done" at the end of the thoughts but
before the JSON.
ONLY INCLUDE "I am done" IF YOU ARE MAKING NO MORE CHANGES.1.2.2 对自动审稿人的性能评估
为了进一步验证自动审稿人的性能
所有审稿人的平均评分与大型语言模型评分之间的一致性,如上图中下角所示
比较了GPT4o的各种提示配置,发现反射+2%和一次性提示+2%都显著有助于进行更准确的审稿,如上图顶部和右下角所示
对于 500 篇 ICLR 2022论文集,发现两位人类审稿人评分之间的相关性较低(0.14),而大型语言模型评分与所有审稿人平均评分之间的相关性较高(0.18)
整体而言,在所有指标上,结果表明基于大型语言模型的审稿不仅可以提供有价值的反馈(Zheng 等,2024),而且与平均人类审稿人的评分更为一致,而不是个别审稿人之间的一致性
更多细节见七月在线「NLP大模型工程师集训营」
↓↓↓扫码了解详情/抢购↓↓↓
课程咨询可找苏苏老师VX:julyedukefu008或七月在线其他老师
热门跟贴