AutoSOTA: 自动优化论文代码到更好指标
research2026-06-0218 min read
AutoSOTA 的核心是把“论文附件代码能否被自动调到更好指标”做成闭环:onboard 仓库、调研思路、改代码、跑评测、保留最佳 patch。
autosotaauto-researchcode-optimizationbenchmarks
Summary
AutoSOTA 应该作为独立页面理解。它和 ARIS 都属于 Auto Research,但它不是“从 idea 到论文”的广义研究 workflow,而是“给定一篇论文的本地代码库和主指标,自动寻找优化策略、修改代码、运行评测、记录分数、导出最佳代码和 diff”的系统。它更像一个面向 research codebase 的自动调参、自动改实现、自动实验执行器。Research Question
这篇笔记只回答 AutoSOTA 这一条线的问题:- AutoSOTA 的输入和输出是什么?
- 它为什么需要本地已 clone 且能跑通的论文代码?
- 它的 onboard、research、ideas review、optimize、export 分别做什么?
- 它怎样避免 agent 为了刷分篡改评测脚本?
- 它和 ARIS 的区别在哪里?
- 它在自动化科研里到底解决哪一类问题?
Findings
1. AutoSOTA 的定位
AutoSOTA README 对自己的定位是:- 本地论文代码库;
- 可执行评测命令;
- 主指标;
- baseline;
- 目标提升百分比;
- 每轮 code diff;
- 每轮评测分数;
- 最终最佳 patch。
| 系统 | 目标 |
|---|---|
| ARIS | 自动推进研究生命周期:文献、idea、实验、review、论文、rebuttal、wiki |
| AutoSOTA | 自动优化已有论文代码库,在指定指标上超过 baseline |
2. AutoSOTA 的输入
AutoSOTA 的输入不是一个自然语言研究方向,而是一组工程化前提。 最小输入包括:| 输入 | 作用 |
|---|---|
paper/target.md | 描述论文、任务、主指标、baseline、优化方向和目标 |
paper/paper.pdf | 可选,帮助模型理解论文背景 |
| 本地 cloned repo | 实际要被修改和评测的代码库 |
config.yaml | API key、模型、research 模型、运行参数 |
| GPU / Python 环境 | 评测代码需要能在本机或服务器跑通 |
target.md 会写清楚:
- 哪个指标是主指标;
- 越高越好还是越低越好;
- baseline 是多少;
- 目标提升是多少;
- 哪些评测协议不能动。
3. AutoSOTA 的输出
AutoSOTA 的输出全部落在工作目录,而不是污染全局安装路径。 核心输出包括:| 文件 | 含义 |
|---|---|
research_report.md | 文献调研和优化方向总结 |
code_analysis.md | 对 repo 结构、关键模块、评测入口的分析 |
idea_library.md | 候选优化 idea 列表 |
scores.jsonl | 每轮评测分数 |
optimization_curve.png | 指标变化曲线 |
optimized_code/<paper>/ | 最佳代码快照 |
final_patch.diff | 从 baseline 到 best 的 diff |
4. 总体工作流
AutoSOTA 的工作流可以概括为:5. Phase 1: Onboard
Onboard 是 AutoSOTA 的第一关键阶段。 它要解决的问题是:- README 不完整;
- 依赖版本模糊;
- eval 命令藏在脚本里;
- 多个数据集和指标混在一起;
- baseline 需要特定 checkpoint;
- 输出格式不标准;
- GPU 设置写死;
- 代码路径和论文描述不完全一致。
repo_path;eval_command;eval_output_format;primary_metric;metric_direction;baseline_metrics;target_improvement_pct;max_iterations;- GPU devices;
- optional virtualenv path;
- optional env vars。
6. Phase 2: Research
Research 阶段不是为了写综述,而是为了生成可操作的优化 idea。 它会结合:- 论文 PDF;
- target.md;
- repo 结构;
- 相关文献;
- 用户给的 priors;
- 已知 benchmark 和方法;
- 当前 baseline 的弱点。
- 改超参;
- 改模型宽度或层数;
- 改激活函数;
- 加 test-time augmentation;
- 调 ensemble;
- 改 inference post-processing;
- 增加 Monte Carlo samples;
- 换 scheduler;
- 修复 metric 对齐 bug;
- 提高 eval fidelity;
- 使用 EMA 或 checkpoint averaging;
- 改数据预处理。
7. Phase 3: Ideas Review
AutoSOTA 支持--review-ideas。
这会把流程拆成两段:
- 可能过拟合 test set;
- 可能修改 evaluation protocol;
- 可能耗时超出预算;
- 可能只提升副指标;
- 可能违反论文复现设定;
- 可能改动太大,不再是原方法优化。
8. Phase 4: Optimize Loop
Optimize 是 AutoSOTA 的核心。 每轮大致是:| 优化对象 | 例子 |
|---|---|
| 超参数 | learning rate, weight decay, dropout, batch size |
| 结构参数 | hidden dim, layer count, ensemble count |
| 推理策略 | TTA, threshold, beam size, sampling count |
| 数值策略 | fp32/fp16, EMA, SWA, checkpoint averaging |
| 数据处理 | normalization, augmentation, feature engineering |
| 评测稳定性 | seeds, bootstrap, Monte Carlo variance reduction |
| 代码效率 | 删除冗余 contiguous(), 减少过度迭代 |
9. Phase 5: Export
优化结束后,AutoSOTA 会导出:final_patch.diff 是从 _baseline 到 _best 的 diff。这个设计非常重要:
- 用户可以审查究竟改了什么;
- 可以把 patch 应用回原 repo;
- 可以判断提升是否来自合理修改;
- 可以复现实验;
- 可以在论文或报告里描述 optimization intervention。
10. 为什么 AutoSOTA 要求本地 repo 已经能跑
AutoSOTA 文档反复强调:| 任务 | 难点 |
|---|---|
| 自动复现 | 环境、数据、checkpoint、依赖、隐藏脚本、论文和代码不一致 |
| 自动优化 | 在可运行 baseline 上寻找提升 |
11. 指标是 AutoSOTA 的奖励函数
AutoSOTA 的 reward signal 是主指标。 config 中会明确:- 当前轮是否有效;
- 是否超过 baseline;
- 是否刷新 best;
- 是否达到目标;
- 是否应该继续探索。
12. 最大风险:reward hacking 和评测污染
AutoSOTA 的典型风险包括:- 修改
eval.py让分数变好; - 修改 metric 计算;
- 修改测试集;
- 偷看 held-out labels;
- 只对固定 seed 过拟合;
- 修改输出解析方式;
- 把失败样本过滤掉;
- 提高副指标但牺牲主协议;
- 使用不可比较的额外数据或 checkpoint。
protected_paths。
13. protected_paths:AutoSOTA 的评测硬边界
protected_paths 是可选但非常关键的机制:
- baseline 评测后,给 protected files / directories 算 SHA256;
- 每轮评测前后重新计算;
- 如果 hash 不一致,就判定 protocol violation;
- 这一轮不 commit;
- 不写入
scores.jsonl; - 不更新
_best; - agent 必须还原并把该 idea 标记为 rejected。
14. 什么应该被保护,什么不该保护
文档里给出的原则很清楚。 应该保护:| 类型 | 原因 |
|---|---|
| eval 主入口 | 防止改变评测协议 |
| metric 计算模块 | 防止刷指标 |
| test set / benchmark data | 防止污染测试集 |
| held-out labels | 防止偷看答案 |
| 类型 | 原因 |
|---|---|
| 主模型代码 | 这正是优化对象 |
| 训练代码 | 如果目标允许训练策略优化,就需要可改 |
| 中间输出 | 每轮会自然变化 |
| 配置文件 | 除非配置本身定义评测协议 |
evaluation/ 里。如果整个目录锁死,合法优化也会被拒;如果完全不锁,评测又可能被污染。正确做法是从 eval_command 入口沿 import chain 找到真正的 metric 和 test data。
15. AutoSOTA 的交互能力
AutoSOTA 不是只能 fire-and-forget。它提供了几个运行中交互命令:- 查看当前 run;
- 看每轮分数;
- tail 日志;
- 问 agent 当前为什么涨或跌;
- 给下一轮注入指示;
- 每轮暂停人工检查。
16. ask 和 steer 的意义
autosota ask 会读取当前 run 的上下文,例如:
scores.jsonl;idea_library.md;- 主日志尾部;
- 基本指标和状态。
autosota steer 会写入下一轮要读的指示。例如:
17. Leaderboard 的意义
AutoSOTA README 里列了大量 optimized papers,并按 Paper ID 展示优化百分比。这个 leaderboard 的意义不是证明每个结果都是新论文贡献,而是证明:- 小幅阈值调整;
- 推理后处理;
- 模型维度调整;
- 多 seed / ensemble;
- checkpoint averaging;
- 增加 Monte Carlo samples;
- 使用 antithetic sampling;
- 修复 normalization;
- 选择更合适的 optimizer;
- 减少过度求解;
- 改 eval fidelity。
18. AutoSOTA 和 ARIS 的区别
两者都属于 Auto Research,但工作对象不同。| 维度 | ARIS | AutoSOTA |
|---|---|---|
| 起点 | 研究方向、论文草稿、review、实验结果 | 本地可运行论文代码库和指标目标 |
| 核心循环 | plan -> draft -> review -> fix -> persist | idea -> code change -> eval -> score -> keep best |
| 主要 artifact | idea report, experiment log, narrative report, paper, wiki | idea library, scores, optimized code, patch |
| 成功标准 | reviewer verdict, audit chain, claim support | metric improvement versus baseline |
| 最大风险 | 幻觉 claim、自审盲区、引用错误 | reward hacking、评测污染、benchmark overfit |
| 防线 | cross-model reviewer, audit chain, research wiki | protected paths, score logs, final diff |
| 人类角色 | 设定方向、选择 idea、审阅最终研究 | 提供 repo、target、环境、审核 idea、steer 优化 |
19. AutoSOTA 可以成为 ARIS 的实验优化子系统
虽然两者应该分开讲,但它们可以组合。 一个更完整的未来系统可能是:- ARIS 擅长 framing、review、claim discipline、paper artifact;
- AutoSOTA 擅长 code-level search、metric loop、patch export。
20. AutoSOTA 的适用场景
AutoSOTA 最适合:- 论文代码已经能跑;
- baseline 已经确认;
- 主指标明确;
- 评测时间可以接受;
- 用户愿意让 agent 改代码;
- 代码改动能通过 diff 审查;
- 目标是提升 benchmark 或工程指标。
- 没有可运行 eval 的 repo;
- 数据和 checkpoint 不完整;
- 指标定义模糊;
- 评测协议不能自动执行;
- 不允许修改代码;
- 需要严格理论证明而非指标优化;
- 评测成本极高且无法快速迭代。
21. 一句话理解 AutoSOTA
AutoSOTA 可以这样定义:Sources
本页基于本地仓库调查,没有使用外部网页检索。 主要来源:/Users/yitwah/Projects/AutoSOTA/README.md/Users/yitwah/Projects/AutoSOTA/cli_guide.md/Users/yitwah/Projects/AutoSOTA/site-data/README.md/Users/yitwah/Projects/AutoSOTA/docs/index.html
/Users/yitwah/Projects/Auto-claude-code-research-in-sleep/AGENT_GUIDE.md/Users/yitwah/Projects/Auto-claude-code-research-in-sleep/docs/SKILLS_CATALOG.md
Open Questions
AutoSOTA 后续最值得继续查的是这些问题:- 每个 leaderboard 结果是否都有完整、可复现的
scores.jsonl、baseline tag、best tag 和 patch? protected_paths在多少 paper 上启用?未启用的结果怎样证明没有评测污染?- 对于随机性很强的任务,AutoSOTA 是否默认要求多 seed 或置信区间?
- 如果提升来自 eval fidelity 修复,应该算作方法提升、工程修复,还是评测修正?
- AutoSOTA 是否能和 ARIS 的
/experiment-audit或/paper-claim-audit对接,形成更强审计链? - 对于目标提升未达到的任务,是否同样保留失败 idea,避免下次重复探索?
Metadata
Quick Reference
Typeresearch
Statuspublished
Date2026-06-02
Retrieval Tags
autosotaauto-researchcode-optimizationbenchmarks
Related
Metric optimizationEvaluation integrityPaper codebases