TL;DR: SageMaker Spotインスタンス上でKarpathyのautoresearchを動かすオープンソースのパイプラインを構築しました — 合計0.44ドルで25件の自律的なML実験(H100なら〜24ドル)。4倍並列、2.3倍高速、18倍安価。8章立ての“ノリ”でコードを書くチュートリアル付き。GitHub
問題
Karpathyのautoresearchは素晴らしい — AIエージェントが学習コードを修正し、5分の実験を走らせ、改善を保持して、夜の間に繰り返します。 しかし、H100が8時間分、手元にあることを前提にしています。たいていの人は、そんな状況ではありません。
知りたかったのはこれです:安いクラウドGPUでも同じ結果は出せるのか?しかも実験あたり支払うのは数セントだけで。
作ったもの
SageMaker Managed Spot Training上で動く並列進化パイプライン:
- 各世代:N件の候補を生成 → N個のSageMaker Spotジョブを同時実行 → best val_bpbを選択 → 次の世代
- HUGIパターン(Hurry Up and Get Idle):GPUを5分起動してすぐ終了。アイドル時間のコストはゼロ。
- 任意のGPUに対応:H100、L40S、A10Gなどを自動検出し、うまくフォールバック
アーキテクチャ:図
結果
| 元の方式(H100、逐次) | 本プロジェクト(L40S Spot、並列) | |
|---|---|---|
| 83件の実験にかかるコスト | 〜$24(オンデマンド) / 〜$7(スポット) | 〜$1.33 |
| 総実行時間(ウォールクロック) | 〜8時間 | 〜3.5時間 |
| GPUのアイドルコスト | 〜50%無駄 | $0 |
| 並列で実験する数 | 1 | 4 |
実際の実行:L40Sで5世代にわたって25件の実験を合計0.44ドル(us-east-1のml.g7e.2xlarge Spot)で実施。
パイプラインは自律的に、EMBEDDING_LRが最も感度の高いパラメータであることを発見し、控えめなLR(学習率)進化によりval_bpbを1.0656 → 1.0643へ改善しました。アーキテクチャ変更(より深いモデル、より大きいバッチ)は、5分の予算ではすべて失敗しました。
道中のサプライズ
学んだこと(苦い経験込み):
スポット容量は地域によって1〜9で変動します。 同じインスタンスタイプでも、us-west-2ではスコア1で(30分以上)詰まるのに対し、us-east-1ではスコア9で(2分で)割り当てられました。地域を選ぶ前に常に
aws ec2 get-spot-placement-scoresを実行してください。Flash Attention 3はL40Sでは動きません。 事前コンパイル済みのFA3カーネルはHopper(sm_90)とAmpere(sm_80/86)のみをサポートしています。Ada Lovelace(sm_89)だと実行時にクラッシュしました。PyTorchのSDPAフォールバックを追加する必要があり、その結果MFUが半減(20% vs 40%)しました。
DEVICE_BATCH_SIZEはスループットに等しくありません。 バッチサイズを64→128へ2倍にし、VRAMも2倍使ったのに… val_bpbは悪化しました。理由は、固定されたTOTAL_BATCH_SIZEのもとでは、大きいマイクロバッチはより多くのトークンを処理するのではなく、単に勾配蓄積ステップ数を減らすだけだったからです。本当のレバーはTOTAL_BATCH_SIZEです。
スポットの大きいインスタンスの方が安いことがあります。 g7e.8xlarge($0.93/時)は、需要が低いためg7e.2xlarge($1.82/時)より安かったです。全サイズの価格履歴を確認してください。
安いGPUでの実験は、高価なGPUへ転用できます。 研究によれば、L40S($0.04/実験)で見つかったアーキテクチャ/オプティマイザのランキングは、本番学習のH100でも転用されます。絶対的なLR値は再チューニングが必要ですが、「AがBより勝つ」という結論は移植可能です。
“ノリでコードする”観点
このプロジェクト全体は、会話型AIコーディング(Claude Code)によって、単一の〜13時間セッションで作られました。私はその旅を8章立ての“ノリでコードを書く”チュートリアルとしてドキュメント化しました。最初のアイデアから、インフラのデバッグ、そして自律的な進化の結果まで。各章には、実際に使ったプロンプト、遭遇した失敗、各ステップでのコストが含まれています。
試してみる
```bash git clone https://github.com/roboco-io/serverless-autoresearch cd serverless-autoresearch cp config.yaml.example config.yaml
AWSの認証情報で編集
make setup # IAMロール make prepare # データ → S3 make dry-run # 確認(無料) make run # 10 gen × 4 pop = 40実験(〜$0.70) ```
リンク
- GitHub:https://github.com/roboco-io/serverless-autoresearch
- チュートリアル:8章立ての“ノリでコードを書く”チュートリアル
- 比較レポート:Original vs Serverless
- スポット容量ガイド:利用可能なSpot GPUの見つけ方
- 重要な洞察:12の実戦で鍛えた教訓
ML実験を回すための、あなたにとって一番安い構成は何ですか?他のクラウドでautoresearchを試した人はいますか?
更新:この仕組みがどう作られたかを、完全な手順チュートリアルとして書きました。
コードを読むだけでなく“やって学ぶ”なら、私は
ビルド手順全体を8章立てのハンズオンチュートリアルにしました:
| Ch | 学べること |
|----|------------------|
| 1 | 1つのプロンプト+深いインタビューからアーキテクチャが生まれるまで |
| 2 | 並列AIエージェントで1セッションに23ファイルを生成 |
| 3 | 地域のサーガ — スポットスコア、クォータ戦争、3地域への移行 |
| 4 | 最初の実験:FA3 CUDAクラッシュ → SDPAフォールバック → $0.02成功 |
| 5 | バッチサイズの罠 — バッチサイズを2倍にすると結果が悪化する理由 |
| 6 | 自律進化を5世代(何がうまくいき、何が失敗したか) |
| 7 | 教訓を再利用可能なClaude Codeスキルに変える |
| 8 | 最終スコアカード:18倍安く、2.3倍速い |
各章には、私が使った実際のプロンプト、何がうまくいかなかったか,
そしてそれを再現するための正確なコマンドが含まれます。追いかけるための総コスト:〜$0.70。
おそらく一番学びが多いのは 第5章(The Batch Size Trap) です —
DEVICE_BATCH_SIZE ≠ スループット だと実戦で学びました($0.07の教訓)。
ここから始めてください:第1章:アイデア
[link] [comments]




