Auto Research 有了计算需求,但研究工作流本身是极度不可预测的:
- 超参搜索阶段:需要数十甚至数百个 GPU 并行跑
- 调试阶段:回到 1 个 GPU,频繁交互,快速迭代
- 验证阶段:扩到 8-GPU 集群,确认质量
- 全部完成:缩回零,释放资源
所有这些状态,可能在同一个 session 里交替发生。
传统云基础设施的问题:
常驻集群:有突发算力,但贵。Agent 在「Thinking...」的时候你也在付费,而且大多数集群难用。
单机/工作站:便宜、好用,但强制实验串行执行,迭代速度被拖死。
你要的是两个世界的最佳解:单机的心智负担和成本控制,加上大集群的突发算力。
Modal 的解法
Agent 写好训练脚本,加一个装饰器:
@app.function(gpu='H100:8')
def train_model():
...
然后 modal run。有 Bug 了,调用 modal.Sandbox.create(gpu='H100:8') 起一个交互式沙箱。GPU 几秒内就绪,从 1 GPU 扩到数十甚至数百个也是一行参数的事。工作完成,自动释放——不会醒来发现一个空闲集群跑了一整夜账单爆了。
Agent 和人类一样,需要多少算力取决于他们正在做什么。但也和人类一样,他们喜欢弹性。Modal 为此专门写了 Skills,指导 Agent 如何使用 Modal 的算力原语:启动交互式沙盒、用 modal run 写和跑训练任务、用 modal.Volume 管理持久存储、编排并行子 Agent。
真实案例:15小时跑完 113 次实验
Tony 给 Claude Code 接了 Modal + Bits per Byte benchmark,让它自己跑,然后去睡觉。
醒来后发现:
- 113 次实验
- 238 GPU-hours
- 核心训练完成时间比单机快 5 倍
- 只用了单机串行所需资源的一小部分
完整时间线拆解
Phase 1:冒烟测试(~1小时)
Agent 通过 modal.Sandbox.create(gpu='H100:8') 起了一个单 GPU 沙箱,跑了一个 tiny 8M 参数模型训练,量化后跑评估。4 次快速实验确认端到端流程可工作。Baseline BPB:1.42。
Phase 2a:探索阶段 — 并行搜索(~36分钟墙钟时间)
68 次单 GPU 实验,每次用 modal.Sandbox.create(gpu='H100') 起一个独立沙箱。搜索空间:模型大小、学习率、序列长度、训练时长。没有任务队列、没有资源分配配置,每个实验一行调用。BPB 从 1.42 → 1.40 → 1.37 → 1.34。
Phase 2b:精选阶段 — 聚焦最优配置
23 次单 GPU 实验,聚焦最有望的模型大小和学习率组合。
Phase 3:8×H100 并行验证
从单 GPU 切到 8×H100,只改了一个参数:gpu='H100' → gpu='H100:8'。不需要新的集群配置,不需要部署清单,Modal 用同一套方式处理多 GPU 调度。跑 top 5 配置,5 × 8×H100,40 个 GPU 同时跑。BPB 从 1.34 降到 1.14。4 小时完成,而不是 20 小时。
Phase 4:调试瓶颈(5.5小时,60 GPU-hours,全部超时)
模型训练没问题,但量化步骤——GPTQ 压缩到 16MB 预算——跑在 CPU 上,每次超过 45 分钟,10 分钟评估窗口根本无法完成。Agent 尝试增加超时:45 → 60 → 90 → 120 分钟,全部超时。
Phase 5:重写量化 — GPU 加速
换思路:把量化步骤重写为 GPU 执行。总时间降到 52 分钟(含训练和量化)。
Phase 6:优化阶段 — 弹性扩缩
确认修复后,Agent 进入优化循环:
- 2 × 8×H100 验证(BPB: 1.1420,无回归)
- 5 × 8×H100 并行优化(BPB: 1.1230 → 1.1217 → 1.1206)
- 4 × 8×H100 最终确认(BPB: 1.1220,略差,Agent 判断边际收益递减)
- 缩回零,停止
最终 BPB:1.1206
弹性伸缩的真实收益
| 阶段 | vs 工作站加速 | vs 常驻集群效率 |
|---|---|---|
| 冒烟测试 | ~1x | 节省大量(1-2 GPU 足以) |
| 探索(68次单GPU) | ~4x(40次/40分钟 vs 3小时) | 节省大量(按需用~40 GPU) |
| 验证(5×8×H100) | 5x(4小时 vs 20小时) | 集群满载,几乎无闲置 |
| 调试(串行) | ~1x | 节省大量(只用1-2 GPU) |
| 优化(弹性扩缩) | 高速 + 高效 | 按需调配 |
Auto Research 的算力基础设施意义
Modal 展示的不是某个 benchmark 分数,而是 Auto Research loop 在工程侧最难落地的一环:算力弹性。
Karpathy 的 Autoresearch 概念解决的是「Agent 如何通过循环改进自己」;Modal 解决的是「循环的每次迭代所需的算力从哪来、如何低成本按需取用」。
Agent 可以自主决定:
- 用多少算力
- 用什么类型的算力(单 GPU 调试 vs 多 GPU 训练 vs 大规模并行搜索)
- 何时释放
不需要提前预留,不需要人工干预,按需弹性,用完即走。
想自己试?把 Modal Skills 集成进你的 Agent,指向你的问题,看它能发现什么。
Auto Research 概念在算力侧一直缺一个低成本弹性的执行层。Modal 这篇补的就是这个位置——Agent 可以自己决定今天用 1 GPU 调试还是 40 GPU 并行探索,不用提前预留。这是 Karpathy Autoresearch loop 在工程侧最难落地的部分。