运行论文实验与自动研究¶
先完成安装与数据准备。以下保留各工作流的完整命令示例;模型与数据成本请先按对应文档评估。
运行论文复现¶
列出的 key 会由 adapter registry 动态生成:
运行单篇或全部论文:
auto-research reproduce --paper memento --seed 42
auto-research reproduce --paper sasrec --seed 42
auto-research reproduce --paper hstu --seed 42
auto-research reproduce --paper transact-v2 --seed 42
auto-research reproduce --paper pinfm --seed 42
auto-research reproduce --paper m6rec --seed 42
auto-research reproduce --paper kar --seed 42
auto-research reproduce --paper bahe --seed 42
auto-research reproduce --paper beque --seed 42
auto-research reproduce --paper precise --seed 42
auto-research reproduce --paper pinrec --seed 42
auto-research reproduce --paper genrank --seed 42
auto-research reproduce --paper learn --seed 42
auto-research reproduce --paper notellm --seed 42
auto-research reproduce --paper onerec-v2 --seed 42
auto-research reproduce --paper self-evolving-rec --seed 42
auto-research reproduce --paper prompt-generation --seed 42
auto-research reproduce --paper univa --seed 42
auto-research reproduce --paper pinterest-ads-llm --seed 42
auto-research reproduce --paper lwgr --seed 42
auto-research reproduce --paper sigma --seed 42
auto-research reproduce --paper s-grec --seed 42
auto-research reproduce --paper all --seed 42
# 仅在明确需要查看旧概念验证时加入
auto-research reproduce --paper all --include-concept-demos --seed 42
正式批量比较建议使用统一筛选、三个 seed 和可恢复状态文件:
auto-research reproduce --paper all --track recommendation --topic ranking \
--fidelity full_pipeline --seeds 42,43,44 --workers 3 \
--state-file runs/reproductions/ranking-state.json
新结果使用 schema v2,写入论文 manifest、L0–L3 评测层级、代码 commit、环境、预算 和 seed;多 seed 批次额外生成均值、标准差和 95% 置信区间。单 seed 只属于 smoke, 不能表述为稳定提升。
--budget smoke|standard 不是标签:每个 adapter 会在独立进程执行,分别施加 5 分钟
和 60 分钟硬截止,超时后终止进程并返回失败;可用 --budget-seconds 做显式覆盖。
paper-specific 保留论文 adapter 自己声明的训练日程,不增加统一截止。
每篇论文、每次运行写入独立且不可变的目录:
runs/reproductions/<arxiv-id>-<adapter>/<timestamp>/
├── result.json # 机器可读事实来源
└── report.md # adapter 渲染的实验结论
data/ 与 runs/ 默认不进入 Git。经过复核的长期结论写入 docs/reproductions/<arxiv-id>-<adapter>/README.md。
运行模型自动进化¶
内置基础模型包括推荐侧 RankMixer/HyFormer,以及可在 Mac、Linux GPU 或 Linux CPU 从头训练的 micro-llm。推荐正式实验建议使用 MovieLens-1M:
候选来源需要先区分清楚:
- 运行时会按
--direction搜索最新论文,但尚未在仓库实现的论文只标记为evidence-only,不会直接执行; - 真正进入训练的论文结构或算法都已经在本仓库实现、测试并登记映射;
- 系统会在这些白名单算子之间做组合和超参数变异。这可以产生新的工程实验假设,
默认不会根据论文 PDF 现场执行任意代码。可选的
--candidate-generator-command只把外部生成结果写入隔离候选区并执行验证;仍需显式candidate promote --approve后,候选才可能在后续运行注册为可执行算子。
具体例子、离线模式和报告中的来源标记见 候选到底从哪里来。
auto-research evolve \
--model rankmixer \
--dataset movielens-1m \
--direction "加入 LONGER、UniMixer 和相关高效 Transformer 结构" \
--workers 3 \
--generations 3 \
--population 4 \
--steps 100 \
--papers 8 \
--benchmark-suite public \
--fitness-metric public_composite \
--seeds 42,43,44
调研方向同时约束论文检索和可执行结构空间;每一代并行比较论文启发结构与训练参数,再根据 validation 形成下一轮决策。目前包括 LONGER、UniMixer、WHALE、TMallGS、Long-History Transformer、RAMP 及组合结构;在线发现但尚未映射为安全算子的论文只进入证据池。
公共评测套件会在 MovieLens 上固定评估 overall、长历史、长尾目标、recent-only 和个性化特征受限切片;public_composite 用这些切片 NDCG 的等权平均晋级。若只想保持原先总体 NDCG 选择口径,使用 --fitness-metric primary;若要跳过额外切片,使用 --benchmark-suite core。
统一排序研究还可使用
--benchmark-suite unirank --fitness-metric unirank_composite,增加时间序
pointwise AUC/logloss;协议、官方五数据集和完整 runner 的边界见
UniRank 公共评测接入。
运行产物位于 runs/evolution/<model>-<timestamp>/,包含机器可读 JSON、中文 Markdown 报告和可直接打开的 HTML 研究看板。详细协议见模型自动进化文档。
LLM 结构、预训练数据和后训练方法的三轮自动研究示例:
auto-research evolve \
--model micro-llm \
--dataset wikitext-2 \
--direction "调研高效 LLM 结构、训练数据配比和 SFT/NEFTune 后训练方法" \
--generations 3 \
--population 6 \
--workers 1 \
--steps 300 \
--papers 8 \
--benchmark-suite public \
--fitness-metric public_composite \
--seeds 42
默认 micro-llm 约 12M–16M 参数;WikiText-2、Tiny Shakespeare、Stanford Alpaca、官方 GSM8K 和 BPE tokenizer 自动下载/构建并缓存到 data/。第一轮只比较结构,第二轮只比较数据配方,第三轮比较 SFT、NEFTune、DynamicRubric 与 Off-Context GRPO。public suite 同时记录 Alpaca preference accuracy 和 GSM8K candidate Pass@1;详细定义见模型自动进化文档。
Agent 与生成式推荐也使用同一多轮控制器。Agent 可组合 memory、planner、tool、critic、
可训练 policy 和 failure recovery;genrec 在 MovieLens-1M 真实保留 catalog 上组合
context、catalog head、reward 与 distillation,并强制全目录评估:
auto-research evolve --model agent --dataset evomem-mini \
--direction "组合 Agent Lightning policy、跨 episode memory 与 Reflexion recovery" \
--generations 3 --population 8 --seeds 42,43,44
auto-research evolve --model genrec --dataset movielens-1m \
--direction "组合 Netflix/JD GenRec 与 OxygenREC-v2 的 context、reward 和蒸馏" \
--generations 3 --population 8 --steps 100 --seeds 42,43,44
Agent 的论文机制回归与能力比较分层运行。L1 mini-suite 只验证机制;L2.1 在接口层隐藏 reference answer/plan/route,删除 guide,并用隔离 train/validation/test 比较规划、故障恢复和成本:
auto-research agent-capability \
--methods long-context,react,reflexion,agent-g2,ahead,auso \
--train-episodes 36 --episodes 60 --seeds 42,43,44
协议与固定三 seed 结果见 Agent L2.1 隔离能力评测与自动进化。
同一评测也可直接作为 Agent Evolve 的 validation/test 目标;多轮控制器搜索九个组件轴, 只用 validation 晋级,并在全部代际结束后运行隔离 test:
auto-research evolve --model agent --dataset toolroute-l2.1 \
--direction "组合 memory、planner、tool、critic、policy、recovery、reflection、verifier 与 context compression" \
--generations 3 --population 9 --workers 3 \
--agent-episodes 60 --seeds 42,43,44
重点方法从单 seed 机制验证晋级到三 seed 正式证据时,使用可断点续跑的统一入口:
默认覆盖 RankMixer、Switch Transformer、GRPO 和 Agent Lightning,输出逐 seed 成败、 均值、标准差与 95% 置信区间;少于三个成功 seed 时禁止稳定提升声明。详细协议见 模型自动进化文档。
运行 Topic research loop¶
LLM 示例:
auto-research run \
--topic "efficient post-training and preference optimization" \
--track llm \
--trials 8 \
--papers 8
推荐算法示例:
auto-research run \
--topic "ranking loss and hard negative sampling" \
--track recommendation \
--trials 8 \
--papers 8
通用运行产物位于 runs/<timestamp>/report.md、result.json 和 events.jsonl。内置低成本实验用于验证研究流水线和快速筛选假设,不等同于某篇论文的专用 adapter。
相同实验修订、数据目录、seed 和参数的已完成 trial 会复用 .auto-research/cache/ 中的标量指标。使用 --force-rerun 可强制重跑。外部实验代码必须在配置中设置 experiment_revision 才会启用缓存,代码或数据协议变化后应更新该值。
接入外部真实实验¶
先生成配置:
配置可指定实现命令、训练命令和搜索空间:
{
"topic": "new retrieval loss",
"track": "recommendation",
"max_papers": 10,
"max_trials": 6,
"implementation_command": ["codex", "exec", "Read AUTO_RESEARCH_MANIFEST and implement the selected hypothesis"],
"proposal_command": ["python", "experiments/propose_next.py"],
"experiment_command": ["python", "experiments/train.py"],
"search_space": {
"learning_rate": [0.0001, 0.0003],
"architecture": ["baseline", "candidate"]
},
"metric_name": "validation_loss",
"direction": "minimize",
"experiment_revision": "retrieval-loss-v1",
"timeout_seconds": 3600
}
论文清单通过 AUTO_RESEARCH_MANIFEST 传给实现命令,每轮参数通过 AUTO_RESEARCH_PARAMS 传给实验命令。实验命令最后一行必须输出指标 JSON,例如:
如果配置 proposal_command,它会在每轮收到 AUTO_RESEARCH_MANIFEST 和 AUTO_RESEARCH_HISTORY,最后一行返回 {"params": {...}} 或 {"stop": true}。因此 agent 能依据前几轮成功、失败和缓存结果自适应选择下一组参数;未配置时继续使用确定性搜索空间。