- nanochat の LLM 学習コアを単一GPU・単一ファイル約630行に圧縮した自己完結型の自律研究フレームワークで、AIエージェントが一晩中自律的に LLM 学習実験を反復
- 人間は
プロンプトを修正し、AIエージェントは**学習コードを修正** → 5分の固定時間予算で学習 → 結果比較 → 維持または破棄のループを反復
- エージェントは git のフィーチャーブランチ上で自律ループとして動作し、ニューラルネットワークアーキテクチャ・オプティマイザ・ハイパーパラメータなどでより低い validation loss を達成するたびに、学習スクリプトへ git コミットを蓄積
- 目標は、人間の介入なしで最速の研究進展を生み出すエージェントを設計すること
プロジェクト概要
- nanochat の簡略化された単一GPU実装をベースに、AIエージェントが学習コードを自律的に修正・実験する構成
- エージェントはコード修正 → 5分学習 → 結果確認 → 維持/破棄ループを繰り返し、ユーザーは朝に実験ログと改善されたモデルを確認
- Claude、Codex など任意のエージェントをこのリポジトリに接続し、
program.md を読ませた後に実験を開始する方式
主要ファイル構成(重要なのは3つだけ)
prepare.py - 固定定数、データ準備(学習データのダウンロード、BPEトークナイザの学習)、ランタイムユーティリティ(データローダ、評価)を含む。修正対象ではない
train.py - エージェントが修正する単一ファイル。GPTモデル全体、オプティマイザ(Muon + AdamW)、学習ループを含み、アーキテクチャ・ハイパーパラメータ・オプティマイザ・バッチサイズなどあらゆる要素を修正可能
program.md - エージェント向けの基本指示ファイル。人間が編集し、エージェントの自律研究の方向性を設定する軽量スキルとして機能
設計原則
- 単一ファイル修正: エージェントは
train.py のみを修正し、変更範囲を管理しやすく保ち、diff レビューを容易にする
- 固定時間予算: プラットフォームに関係なく常に正確に5分実行 → 1時間あたり約12回、睡眠中に約100回の実験が可能
- モデルサイズ、バッチサイズ、アーキテクチャなどの変更に関係なく、実験間で直接比較可能
- 欠点: 同一プラットフォームでない他者の実行結果とは比較不可
- 自己完結性: PyTorch および少数のパッケージ以外に外部依存なし。分散学習なし。複雑な設定なし
要件と実行
- 要件: 単一の NVIDIA GPU(H100 でテスト)、Python 3.10+、
uv パッケージマネージャ
- 現在は NVIDIA GPU 専用で、CPU/MPS など他プラットフォーム対応はコード肥大化の懸念から現時点では含めていない
- より広いプラットフォーム対応が必要な場合は上位の nanochat リポジトリを参照することを推奨。macOS フォーク(
miolini/autoresearch-macos)はすでに存在
- エージェント実行時はリポジトリ内で Claude/Codex などを実行し、すべての権限を無効化したうえで、
program.md を読んで実験を始めるようプロンプトする
デフォルトの program.md の設計意図
- デフォルトの
program.md は意図的に最小限のベースラインとして維持
- 時間とともに反復改善し、最速の研究進展を達成する「研究組織コード」を見つけていく形で活用可能
- エージェントの追加や指示の具体化といった拡張も明確に可能な構造
3件のコメント
AMD ROCm にも対応してください
Karpathy の紹介ツイート
> 週末のあいだに試してみたい人のために用意しました。
> コードとSF、そして少しの狂気が混ざった作品です :)
どうして週末にこんなことをするんですか、先生
講義資料が古くならないように急いで作って、ユーレカラボの講義をリリースしようとして、ずっと作り続けているみたいです…
ps. 7時間前に AgentHub というのもまた作って公開されましたね 🫢