资讯动态

拆解 AI-Scientist 的自动化科研流水线:跟踪一个想法从生成到论文的全过程

发布时间:2026/10/29 19:47:21 来源:尧图企业网站定制
拆解 AI-Scientist 的自动化科研流水线跟踪一个想法从生成到论文的全过程【免费下载链接】AI-ScientistThe AI Scientist: Towards Fully Automated Open-Ended Scientific Discovery ‍项目地址: https://gitcode.com/GitHub_Trending/ai/AI-Scientist科研人员的大量时间消耗在跑实验、整理数字、写论文这类重复性劳动上真正的瓶颈不是算力而是流程的串行。AI-Scientist 把这条流程整体交给大语言模型它先读模板代码、提出实验想法再自己改代码跑实验、写 LaTeX 论文最后还审一遍自己写的稿子。从一条python launch_scientist.py --experiment nanoGPT_lite --num-ideas 2命令开始一个想法从出生到被审稿人拒稿全程无人介入。问题拆解一条论文流水线上的四个咬合子问题这段要回答的问题是这个系统到底在解哪几件事它们如何互相依赖。可以把整条流水线拆成四个子问题各自对应ai_scientist/下的一个模块想法生成如何从一份给定的模板代码库里提出能在其中落地的实验想法对应ai_scientist/generate_ideas.py实验执行把自然语言方案变成可执行代码跑出可复现的数字对应ai_scientist/perform_experiments.py论文组织把零散指标和图转化为带引用的论文对应ai_scientist/perform_writeup.py质量把关判断这篇稿子是否达标对应ai_scientist/perform_review.py。四个子问题之间不存在函数级调用而是靠文件契约衔接ideas.json→ 实验沙箱与notes.txt→template.tex与 PDF →review.txt。上游阶段的输出文件是下游阶段的唯一输入任何一步都可以单独重跑。这个文件化管线正是下一节逐步走查的切入点。 全链路走查一个想法经过的六个步骤本节回答命令跑起来后每一步的输入是什么、经过哪个模块、产出什么。第 1 步想法生成带反思的闭环输入是模板目录里的三份材料prompt.json任务描述与 system prompt、seed_ideas.json种子想法、experiment.py全文外加已生成想法的存档列表。generate_ideas()让模型每轮先写一段THOUGHT再输出 JSON字段包括Name、Title、Experiment实现大纲以及 Interestingness、Feasibility、Novelty 三个 1–10 分。随后最多进入 3 轮反思launch_scientist.py中NUM_REFLECTIONS 3模型可以在思考里写 I am done 提前终止。产出写入ideas.json。第 2 步文献检索由模型自己发起check_idea_novelty()逐条处理想法由模型自行决定检索 querysearch_for_papers()从 Semantic Scholar 或 OpenAlex 拉回前 10 条结果含摘要回填到对话中最多 10 轮。system prompt 明确要求它Be a harsh critic for novelty——找到显著重叠的论文即判不新颖。结果写进想法的novel字段launch_scientist.py里只有novel: true的想法会进入执行队列。第 3 步沙箱与基线do_idea()用shutil.copytree把整个模板复制成results/experiment/timestamp_idea_name/形成独立沙箱同时读取run_0/final_info.json取各指标的 means 作为基线写入notes.txt第一条。注意run_0不是系统跑的而是用户必须在自己的机器上先执行python experiment.py --out_dir run_0——因为论文里的耗时指标与硬件强相关基线必须与实验同机产生。第 4 步最多 5 轮的实验循环这是全链路最重的阶段。perform_experiments()把一个 aiderCoderdiff 编辑格式挂到experiment.py、plot.py、notes.txt上初始提示包含想法的Experiment字段、基线数字以及一条硬约束改动后只能用python experiment.py --out_dirrun_i这个固定格式的命令运行。循环逻辑是模型改代码 →run_experiment()子进程执行7200 秒超时失败则删掉run_i目录→ 失败时把 stderr 截尾 1500 字符回喂给模型重试同一 run 最多 4 次成功则读run_i/final_info.json把均值交给模型决定是否重新规划。总 run 数硬上限 5MAX_RUNS 5模型可输出ALL_COMPLETED提前结束。每次改动前当前experiment.py会被复制成run_i.py保证人能逐轮复查实际跑过什么代码。第 5 步从数字到论文先让模型改plot.py并运行python plot.py出图再让它往notes.txt写每张图的详尽说明坐标轴、每条线代表什么、如何解读。这份文件是撰写阶段的唯一事实来源perform_writeup()的分节提示词里明确写着 Do not hallucinate results that dont existResults 一节只允许引用notes.txt里出现过的数字。正文按 Abstract → Introduction → Background → Method → Experimental Setup → Results → Conclusion 的顺序逐节填写每节写完立即按错误清单未闭合的数学符号、未转义的下划线、重复的 figure label 等精修一遍。Related Work 单独处理先以 LaTeX 注释形式搭框架然后进入最多 20 轮的引文循环——LLM 给 query、search_for_papers()找论文、程序把 bibtex 直接插进references.bib再让 aider 负责在正文写\cite。最后generate_latex()用正则做静态校验每个 cite 是否在 bib 中、每张图是否存在、有无重复章节让模型最多修 5 轮 chktex 报错再执行pdflatex两次加bibtex编译出 PDF。第 6 步五个审稿人与一位 Area Chairload_paper()用 pymupdf 把 PDF 转成 markdown 文本perform_review()按 NeurIPS 评审表让 5 位审稿人以 temperature 0.75 独立出评审num_reviews_ensemble5get_meta_review()再由一个扮演 Area Chair 的模型汇总最终数值分取集成均值。Decision 字段只有 Accept 与 Reject 两个取值不设中间档。评审存为review.txt若启动时带--improvementperform_improvement()会依据评审意见改稿、重编译、再评一轮产出review_improved.txt。到这里一份带图表和引用的完整论文加配套评审就落在了一个目录里。流程看似直白但实现里有三处选择与直觉不同值得单独拆开看。设计取舍三处与常见做法不同的选择这段对比的是替代方案以及项目方为什么没走那条路。用 aider 做增量代码编辑而非一次性生成代码。常见做法是提示 LLM 直接输出完整实验脚本但模板的experiment.py有数百行整篇重写很难对齐模板已有接口错了也难以定位。AI-Scientist 反过来把文件挂进 aider 上下文让模型 diff 增量修改失败靠 stderr 回喂自修复。代价是单个想法的 API 调用与时长显著上升——官方 FAQ 给出的数字是每篇论文低于 15 美元Claude Sonnet 3.5收益是一个想法能独立跑完全程而不是一次性产出废稿。把基线留给人工执行。多数自动化系统会自己跑基线这里却要求用户先在本机跑run_0。原因是论文中的运行时间属于对比性指标基线与实验来自不同机器数字就不可信。用一个必须人工完成的步骤换来了实验数据内部的可比性。评审用集成而非单次调用。README 的 FAQ 坦承非 GPT-4o 模型做评审时存在 positivity bias倾向性打高分单次评审噪声大且有偏。5 个高温度样本加 meta-review 再取数值均值在统计上更接近真实评审分布代价是每篇论文多出 51 次调用。三处取舍共同指向一个取向宁可多花调用次数也要让每个数字和结论有出处、可复核。而这些取舍的实际效果可以直接在仓库的产物里验证。 实证读一份真实生成论文与它的评审本节以example_papers/data_augmentation_grokking/为例看系统实际产出了什么。这个案例的想法是给 grokking 任务加数据增强操作数反转、操作数取反以及 15%/30% 概率的组合适配到不同算式数据集上。ideas.json里的Experiment字段写清了要改AbstractDataset的哪些方法、采集哪些指标。notes.txt记录了 5 个 run 的完整数字基线Run 0里x_div_y需要4200 步达到 99% 验证准确率取反增强Run 2把这个数字压到1443 步permutation 任务在基线下验证准确率仅 0.036组合增强Run 3抬到 0.687。论文 Results 一节引用的正是这些数字与notes.txt一一对应——notes 作为唯一事实来源的设计在这里兑现了。这张柱状图按 4 个算式任务分组对比 5 种增强策略的最终验证准确率取反与组合策略在加、减、除任务上普遍高于基线而 permutation 任务各策略差异巨大说明增强对任务结构敏感。步数图把加速 grokking这个主张变得更直接柱高越低代表越早泛化Run 2 与 Run 4 在多数任务上明显低于基线柱。同一目录里还能找到run_1.py到run_5.py每轮实际执行的代码快照、log.txt、以想法名命名的 aider 对话全文以及编译出的 PDF 和latex/源文件——整个想法的执行过程在磁盘上可回放。换成 2D Diffusion 模板产物形态则是生成质量这是 dual_expert_denoiser 论文中双专家去噪器在 2D 数据集上的生成样本点云结构基本还原了训练分布的多峰形态是生成质量提升这一主张的视觉证据。值得注意的是这份数据增强论文自己的review.txt给了各维度 3 分、Overall 5 分、Decision 为RejectWeaknesses 逐条列出了缺乏理论解释新颖性有限等意见。被自己拒稿不代表系统失败恰好说明评审这道门在工作。但产物覆盖的只是问题的可自动化部分系统做不了什么同样重要。⚠️ 边界与代价这个版本的三个硬限制这段直面当前版本没有跨过的边界。只覆盖可用代码表达的研究。README 的 FAQ 直接承认in this current iteration, this is restricted to ideas that can be expressed in code。理论推导、定性分析类的工作不在它的射程内这也是模板系统只能以experiment.py为中心的根源。硬件与成本是硬门槛。必须在 Linux NVIDIA GPU 上运行README 称当前模板在纯 CPU 机器上infeasible--parallel每块 GPU 一个 worker上限就是卡数。API 侧每篇论文低于 15 美元官方 FAQClaude Sonnet 3.5跑满 50 个想法的开销需要按模型定价自行折算。任一环节失败该想法整体作废。do_idea()中实验异常、撰写异常、评审异常全部return False没有部分恢复机制成功率取决于模板与模型的组合README 建议不要使用明显弱于 GPT-4 级别的模型并指出 Claude Sonnet 3.5 成功率最高、评审效果 GPT-4o 最佳。此外系统会执行 LLM 编写的代码README 明确要求容器化并限制网络访问experimental/Dockerfile提供社区贡献的镜像这条安全边界目前完全在使用者一侧。明确了这些边界就能回答最后的问题它把自动化科研这件事推进到了哪一步。它把问题推进到了哪一步回到开篇的痛点这个系统把做研究从人的串行劳动变成了一条可命令启动的端到端流水线——输入是模板目录输出是带数字、带引用、带自评的 PDF 论文中间每一步的输入输出都以文件形式落盘可回放。它产物的上限仍由模板和基座模型框定想法是模板代码上的局部改进而非跨领域的跃迁评审给出的 Reject究竟指向科学缺陷还是 LLM 审稿人的尺度偏严这条流水线自己回答不了。作为流水线工程它已经闭环作为科学发现系统它还停在能交稿、但交稿是否值得发表需要人判断的阶段。【免费下载链接】AI-ScientistThe AI Scientist: Towards Fully Automated Open-Ended Scientific Discovery ‍项目地址: https://gitcode.com/GitHub_Trending/ai/AI-Scientist创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑