Danau5tin/ai-trains-ai
GitHub: Danau5tin/ai-trains-ai
该项目通过双层强化学习循环,训练出一个能自主为其他模型编写并调度完整 RL 训练作业的元智能体。
Stars: 214 | Forks: 17
# 🤓 AI 训练 AI:使用 RL 训练一个使用 RL 训练 AI 的 AI 智能体
**TL;DR:**
- 我构建了一个 pipeline,其中一个 AI 智能体:
- 接收一个训练任务(“教一个模型做 X”)
- 编写完整的 [prime-rl](https://github.com/PrimeIntellect-ai/prime-rl) 训练作业,包括:environment、reward、dataset、hyperparameters。
- 将其提交到真实的 [Runpod](https://runpod.io/) GPU 进行训练。
- 利用 [Tinker](https://thinkingmachines.ai/tinker),我对智能体本身进行了 RL 训练,当它训练出更好的模型时就给予 reward。
- 在 54 个训练步骤中,Reward 从 ~0.0 攀升至 ~0.63 的峰值。**迁移到一个它从未训练过的留出任务族上**。
/`。
使用 Runpod + Tinker 密钥:
```
uv run at-worker --max-pods 2 --once # drain the job queue on real GPUs
uv run python scripts/seed_baselines.py # freeze eval baselines (required before RL)
uv run python scripts/train_trainer.py smoke=True # outer RL smoke test
```
更深入的指南:[docs/architecture.md](docs/architecture.md)(组件与契约)、[docs/outer-rl-tinker.md](docs/outer-rl-tinker.md)(完整 RL runbook)、[docs/gpu-runner-spec.md](docs/gpu-runner-spec.md)(计算提供商契约),以及 `docs/` 中的回顾系列 — 每一次试点,包括失败的经历,都记录在内(试点 4–5 位于 [eval-integrity 回顾](docs/retro-2026-07-07-eval-integrity.md)中,而不是独立的文件中)。
## 🔮 未来改进
- **🔄 迭代实验** — 如今,智能体每个 episode 只提交一个作业;下一个自然的阶梯是让它读取结果并提交后续实验,和/或允许同时分发多个实验,即评估多作业的*研究品味*,而不是一次性的作业质量。
- **🧠 更丰富的任务** — 目前仅暴露了无状态工具调用 envs;开放 verifiers 的其他 env 类型将允许训练器智能体去训练有状态的编程智能体。
## 致谢
- [Prime-RL](https://github.com/PrimeIntellect-ai/prime-rl):一个真正优秀的 GRPO 训练框架。我已经用过它很多次了,团队非常棒而且非常乐于助人!
- [Verifiers](https://github.com/PrimeIntellect-ai/verifiers):一个用于 envs 和 rubrics 的优秀框架。
- [Thinking Machines 的 Tinker](https://thinkingmachines.ai/tinker):我第一次使用它,不需要自己去管理训练基础设施绝对是一个很棒的生活方式选择。强烈推荐。
- [Runpod](https://runpod.io) 提供便宜、可脚本化的 GPU pod。
- 感谢 Qwen 团队提供的基础模型,它们小到只需花几分钱就能训练,又大到值得去训练。
- 感谢 Anthropic 团队提供的令人难以置信的编程模型(Fable-5 编写了本项目中的每一行代码),以及 Claude Code harness。
这个项目非常有趣!一个内部包含 RL 循环的 RL 循环令人困惑、激动、害怕,并且指向了一个前方疯狂的未来。感谢阅读!
[Dan Austin](https://www.danaustin.ai)
处于 RL 循环中的 AI,其动作是在 RL 循环中训练 AI。(来源:assets/hero.svg。)
## 📚 目录 - [🔁 工作原理](#-how-it-works) - [Episode 流程](#the-episode) - [⚖️ Reward 设计](#️-reward-design) - [🧩 任务族](#-task-families) - [📈 结果](#-results) - [Reward 分两个不同的阶梯攀升](#1-the-reward-climbed-in-two-distinct-rungs) - [技能迁移到了留出任务族](#2-the-skill-transfers-to-a-held-out-task-family) - [智能体学会了选择更好的基础模型](#3-the-agent-learned-to-pick-the-better-base-model) - [🖥️ 基础设施](#️-infrastructure) - [💰 成本](#-costs) - [🤗 模型权重](#-model-weights) - [🚀 快速开始](#-getting-started) - [🔮 未来改进](#-future-improvements) - [致谢](#acknowledgements) ## 🔁 工作原理 两个 RL 循环,带有两个完全独立的训练 stack。 | | 训练对象 | 训练形式 | stack | |---|---|---|---| | **外循环** | 训练器智能体 ([Qwen3.6-35B-A3B](https://huggingface.co/Qwen/Qwen3.6-35B-A3B),LoRA) | 编写训练作业的 episode;episode 的 reward 即为 policy-gradient 信号 | [Tinker](https://thinkingmachines.ai/tinker) + tinker-cookbook (importance-sampling GRPO) | | **内循环** | 一个小型基础模型 ([Qwen3-0.6B](https://huggingface.co/Qwen/Qwen3-0.6B) / [1.7B](https://huggingface.co/Qwen/Qwen3-1.7B)) | 智能体编写的作业:一个 [verifiers](https://github.com/PrimeIntellect-ai/verifiers) environment + rubric,带有 `[prime_rl]` 配置表 | 运行在 Runpod GPU 上的 [prime-rl](https://github.com/PrimeIntellect-ai/prime-rl) (GRPO) | Tinker 负责训练智能体。智能体编写 verifiers envs、rubrics 和 prime-rl 配置。prime-rl 负责训练小模型。内部模型的隐藏 eval 分数回传,作为外循环的 reward。 ### Episode 流程
一个 episode 的端到端流程。(来源:assets/episode.svg。)
一个 Episode = 训练器智能体针对给定任务,尝试生成一个有效且高质量训练作业的过程: 1. **Task spec** — 关于训练内容的描述(“教导一个小模型解析多跳角色查询”)、硬性约束边界、eval 工具接口,以及少量开发示例。 2. **智能体工作** — 它通过 `read_file` / `write_file` / `edit_file` / `list_files` 编辑沙盒化的 workspace,并可以调用 `get_baseline_scores` 查看未训练基础模型在隐藏 eval 中的得分。 3. **`submit_job`** — 触发验证探针。任何失败都会被返回,并且智能体会获得有限的重试次数。 4. **分发** — 验证通过的作业进入队列,由预热的 Runpod GPU pod 池接收,这些 pod 使用 prime-rl 运行 GRPO 训练,并在隐藏 eval 中对训练前后的 checkpoint 进行评分。 5. **Reward** — 结合了验证效率以及训练后模型相对于最佳未训练 baseline 的提升幅度。 随后,**外循环** 使用 [Tinker](https://thinkingmachines.ai/tinker) 根据 episode reward 对智能体本身进行 RL 训练。每个外循环 batch 最多会在 16 个 GPU pod 上生成 40 个真实的内部训练作业。 ## ⚖️ Reward 设计
标签:AutoML, 人工智能, 强化学习, 模型训练, 用户模式Hook绕过, 自动化机器学习, 逆向工具