
2026/03/20 1:55
**Karpathy の自己学習研究のスケーリング:エージェントが GPU クラスターを手にしたら何が起こるか** - **背景** - Karpathy の研究は自律型エージェントとディープラーニングに焦点を当てています。 - スケールアップは、単一の GPU から大規模な GPU クラスターへ移行することです。 - **重要な検討事項** - *並列性*: ノード間でトレーニングを分散し、ワークロードをバランスさせます。 - *通信オーバーヘッド*: GPU 間のデータ転送を最小限に抑えます。 - *同期*: モデル更新が一貫していることを保証します(例:Horovod や NCCL を使用)。 - *フォールト・タレランス*: チェックポイントとリカバリ機構を実装します。 - **期待される成果** - 計算能力の増大により、収束が速くなります。 - より大きなモデルを訓練し、1 エポックあたりでより多くのデータを処理できます。 - スケール時にはハイパーパラメータ調整が難しくなる可能性があります。 - **実践的手順** 1. 高帯域幅インターコネクト(InfiniBand)を備えたクラスターを構築します。 2. 分散トレーニングフレームワーク(PyTorch Distributed、TensorFlow MirroredStrategy 等)を設定します。 3. 新しいハードウェアに合わせてバッチサイズと学習率を最適化します。 4. GPU の利用状況を監視し、リソース配分を調整します。 - **今後の方向性** - 混合精度トレーニングを検討してスループットをさらに向上させます。 - 超大規模アーキテクチャに対するモデル並列化を探求します。 - 異なるクラスター構成のコスト・ベネフィットを評価します。 *要約終了。*
RSS: https://news.ycombinator.com/rss
要約▶
日本語訳
Claude Code は自律型ハイパーパラメータ探索エージェントで、16GPUのKubernetesクラスター上で約 8時間にわたり910実験を行い、val_bpb を 1.003 から 0.974 に減少させました — これは 2.87 % の改善 に相当します。
エージェントの 並列階乗グリッド(波ごとに10〜13回実行) は、順次探索では見逃される相互作用効果を明らかにし、モデル幅(アスペクト比 AR = 96 → 次元 768)のスケーリングが最大の利得をもたらすことを発見しました。また、オプティマイザ設定も調整し、特に muon_beta2 = 0.98 (beta1 = 0.70)としました。
探索は以下の5フェーズで展開されました:
- ハイパーパラメータスイープ(約200実行) – ベースライン調整。
- アーキテクチャ発見(約200〜420実行) – 深さと幅を探索。
- 広いモデルの微調整(約420〜560実行) – AR を 96 に増加。
- オプティマイザチューニング(約560〜700実行) – ベータ、学習率(matrix_lr = 0.05, embedding_lr = 0.6, scalar_lr = 0.5, final_lr_frac = 0.05)、重み減衰 = 0.08、warmdown_ratio = 0.6、muon momentum = 0.95、ns_steps = 5、beta2 = 0.98、および SLウィンドウパターン を調整。
- 減少するリターンズフェーズ(約700〜910実行) – 最終微調整。
並列実行は検証に H200 GPU、迅速なスクリーニングにはコストの低い H100 GPU を活用し、スループットを約 9倍向上(GPU1当たり10実験/時間対16GPUで90実験/時間)しました。
最適構成は AR = 96、深さ = 8、総バッチサイズ 2¹⁸ で、すぐにデプロイ可能なモデルを提供します。この探索は 順次ベースラインの約72時間のシミュレーション の代わりに 8時間 で完了し、費用は約 $309(Claude Code API ≈ $9 + GPU計算 <$300)でした。
この結果は、大規模かつGPUベースのハイパーパラメータ探索を実施するチームにとって、顕著な生産性と予算面でのメリットがあることを示しています。
本文
概要
Claude Code を SkyPilot 経由で Kubernetes クラスター(13×H100、3×H200)に 16 台の GPU を割り当て、夜間実行しました。約 8 時間でエージェントは ≈910 件の実験を提出し(うち ≈700 件が有効結果)、val_bpb を 1.003 から 0.974 に改善させました。これはベースラインより 2.87 % の向上で、シミュレートした順次実行の約 9 倍高速です。
Autoresearch の仕組み
| ファイル | 用途 |
|---|---|
| 読み取り専用:データダウンロード、トークナイザー学習、データローダーと評価関数を提供 |
| 編集可能:モデル、オプティマイザ、トレーニングループがここにあり、エージェントが変更できる唯一のファイル |
| エージェントのプレイブック:何を変えられるか、評価方法、変更を保持または破棄するタイミング |
制約: 実験ごとに 5 分間の壁時計トレーニング予算。目標は val_bpb を最小化すること。
順次実行のボトルネック
の編集 – 約 30 秒train.py- 実行(5 分)
- 読み込み & 計画 – 約 30 秒
5 分間のトレーニングステップが支配的で、エージェントはその間アイドル状態になり、複数 GPU を使った組み合わせテストや機会損失を被ります。
SkyPilot で並列化
SkyPilot は YAML (
experiment.yaml) から GPU クラスターをプロビジョニングし、エージェントが sky launch(プロビジョン)と sky exec(パイプライン)でジョブを起動できるようにします。16 台の GPU を使うと:
| アクション | 結果 |
|---|---|
| プロビジョニング | 13×H100、3×H200 |
| スループット | 約 90 実験/時(1 台で約 10/h の 9 倍) |
実験フェーズ
| フェーズ | 実験数 | 主な発見 | val_bpb |
|---|---|---|---|
| 1 – ハイパーパラメータ探索 | 200 | • バッチサイズ = 2¹⁸、Adam ベータ (0.9/0.95)、重み減衰 = 0.08、softcap10 | 0.981 |
| 2 – アーキテクチャ発見 | 220 | 6 種類のアスペクト比を一波でテスト;AR = 96(model_dim = 768)が最良 | 0.977 |
| 3 – 幅広モデルの微調整 | 140 | Warmdown、行列 LR、重み減衰、Muon ステップ | 0.975 (H200) |
| 4 – オプティマイザチューニング | 140 | Muon β₂ = 0.98 が最終段階で最大改善をもたらす | 0.974 |
| 5 – 減少するリターン | 190 | 最終 LR、Warmdown 比率、スカラー/埋め込み LR の探索;1 実験あたり < 0.0001 の向上 | ~0.974 |
ベスト構成
# アーキテクチャ ASPECT_RATIO = 96 # model_dim = 8 * AR = 768 DEPTH = 8 # Transformer 層数 WINDOW_PATTERN = "SL" # Sliding + Local attention # トレーニング TOTAL_BATCH_SIZE = 2**18 # 約 524K tokens/step # 学習率 MATRIX_LR = 0.05 # Muon LR for weight matrices EMBEDDING_LR = 0.6 # AdamW LR for token embeddings SCALAR_LR = 0.5 # AdamW LR for residual mixing scalars # オプティマイザ ADAM_BETAS = (0.70, 0.95) WEIGHT_DECAY = 0.08 WARMDOWN_RATIO = 0.6 FINAL_LR_FRAC = 0.05 # Muon パラメータ MOMENTUM = 0.95 NS_STEPS = 5 BETA2 = 0.98
並列化 vs. 順次戦略
| GPU 数 | 探索スタイル | スループット(exp/hr) |
|---|---|---|
| 1 | グリーディ hill‑climbing | ~10 |
| 16 | 波ごとの階乗グリッド | ~90 |
並列化により相互作用効果を即座に検出でき、局所最適での停滞を防げます。例:フェーズ 2 では AR = 64–112 を一波でテストし、エージェントは順次試行よりも早く AR = 96 を選択しました。
異種ハードウェア活用
エージェントは H200 が 5 分間のウィンドウで約 9 % 多いトレーニングステップを実行できることを発見。二段階戦略を採用しました:
- H100 で >10 仮説を安価に並列テスト
- 上位 2–3 を H200 に昇格させて確認実行
この自動検証層はハードウェア固有のランキング(例:
FINAL_LR_FRAC=0.03 が H100 では 0.05 より良いが、H200 ではそうでない)を浮き彫りにしました。
コスト & スケール
| リソース | 時間 | 単価/時 | 費用 |
|---|---|---|---|
| 13×H100 | 8h | $2 | 約 $200 |
| 3×H200 | 8h | $2.30 | 約 $60 |
| Claude Code API | 8h | – | 約 $9 |
合計 ≈ $269。これは同等の GPU 時間をクラウドで借りた場合の標準請求額よりも大幅に低いです。
自分のクラスターで始める
# リポジトリをクローン git clone https://github.com/karpathy/autoresearch.git git clone https://github.com/skypilot-org/skypilot.git cd autoresearch # 実験ファイルをコピー cp ../skypilot/examples/autoresearch/experiment.yaml . cp ../skypilot/examples/autoresearch/instructions.md . # データ準備(1 回だけ) pip install uv && uv sync && uv run prepare.py # SkyPilot スキルをエージェントにインストール # (https://docs.skypilot.co/en/latest/getting-started/skill.html を参照) # instructions.md を指示先として設定し、実行開始。
experiment.yaml の infra: に対象バックエンド(k8s、aws など)を指定します。エージェントは SkyPilot スキルを取得し、クラスターをプロビジョニングし、実験を提出・ログ読み取り・勝利変更のコミットを行い、停止まで繰り返します。
次のステップ
- SkyPilot リポジトリ をスター&ウォッチ
- @skypilot_org を Twitter でフォローするか、Slack コミュニティに参加してアップデートを受け取る
楽しい探索を!