Karpathyのautoresearch:仕組みの解説とローカルLLMでの動かし方
はじめに
「AIに指示を出して、人間が結果を確認する」という作業フローが当たり前になって久しいですが、2026年3月に Andrej Karpathy がリリースした autoresearch はそのひとつ先を行くツールです。
AIエージェントが自分でコードを書き換え、実験を実行し、結果を評価して、改善案を次々と試していく。人間は最初に「何を最適化したいか」を伝えるだけで、あとはエージェントが一晩中ひとりで実験を回し続けます。
本記事では、autoresearch の仕組みとセットアップ手順、ローカルLLMを使った構成をまとめます。実際の実験結果は続編で報告予定です。
autoresearchとは
autoresearch は Andrej Karpathy(元OpenAI、元Tesla AI)が2026年3月に公開した OSS ツールで、「AIエージェントがMLの実験サイクルを自律的に回す」ことを目的に設計されています。
3ファイルだけのシンプルな構成
autoresearch/
├── prepare.py ← データ準備・評価ロジック(エージェントは変更不可)
├── train.py ← モデル構造と訓練ループ(エージェントが自由に変更可能)
└── program.md ← 人間が書く指示書(ゴールと制約を記述)
ポイントは エージェントが触れるのは train.py 一つだけという制約です。評価の基準(prepare.py)は人間が管理し、勝手に変えられないようになっています。
自律実験ループの仕組み
提案(LLMがtrain.pyを編集)
↓
実行(5分間の学習を実施)
↓
評価(prepare.pyでメトリック計測)
↓
改善あり → 変更を保持
失敗・悪化 → 変更を破棄
↓
(最初に戻る)
このサイクルが自動で繰り返されます。1時間に約12回、一晩で約100回の実験が可能です。
AutoGPTとの比較
| 項目 | AutoGPT | autoresearch |
|---|---|---|
| 設計思想 | 汎用的な自律エージェント | 単一メトリック特化 |
| 目標の明確さ | 曖昧になりやすい | 数値で測定可能 |
| 信頼性 | 失敗率が高い | 制約設計で安定 |
| 実績 | まちまち | GPT-2訓練を11%高速化など |
なぜ面白いのか
「評価できるものだけを最適化する」という割り切り
autoresearch が特徴的なのは、測定できないことは最適化しないという明確な割り切りです。prepare.py に評価ロジックを書いて「このメトリックを最大化せよ」と伝える。エージェントはその数値だけを見て動きます。
曖昧なゴールを与えると自律エージェントは迷走しがちですが、数値目標があれば「改善したかどうか」がはっきりします。この設計のシンプルさが信頼性につながっています。
人間の役割が変わる
従来: 人間がアイデアを出す → AIが実装する → 人間が評価する
autoresearch: 人間がゴールを設定する → AIがアイデアを出して実装して評価まで行う → 人間が結果を確認する
Karpathy 自身がこのツールで GPT-2 の学習速度を11%改善し、Shopify CEO の Tobi Lütke は一晩で 0.8B モデルを学習させて1.6Bモデルを上回る性能を引き出しました。
セットアップ手順
必要なもの
- Python 3.10 以上
- uv(Pythonパッケージマネージャー)
- GPU: NVIDIA製を推奨(VRAM 8GB以上)。CPUでも動くが学習に時間がかかる
- LLM: Claude API キー または ローカルLLM(LM Studio / Ollama)どちらでも可
インストール
# リポジトリをクローン
git clone https://github.com/karpathy/autoresearch.git
cd autoresearch
# 依存関係をインストール
uv sync
# データのダウンロードとトークナイザーの準備
uv run prepare.py
動作確認(1回だけ手動実行)
uv run train.py
エラーなく学習が始まれば準備完了です。
program.md を書く
エージェントへの指示書です。最初にシンプルな例:
# Goal
val_bpb(検証用の bits-per-byte)を最小化してください。
# Constraints
- 実験は5分以内に終わること
- 既存のデータローダーは変更しないこと
- 大きなアーキテクチャ変更より、学習率・最適化手法・正規化などを試すこと
自律実験を開始
autoresearch には専用の起動スクリプトはありません。Claude Code(または他のAIコーディングエージェント)をそのままエージェントとして使います。
autoresearch ディレクトリ内で Claude Code を起動し、program.md を読んで実験を繰り返すよう指示します。
# Claude Code をインストール済みの場合
cd autoresearch
claude
Claude Code が program.md の指示に従い、train.py を編集 → uv run train.py を実行 → 結果を確認 → 改善なら git commit、悪化なら git reset、というサイクルを自律的に繰り返します。
ローカルLLMで動かす(LM Studio / Ollama)
autoresearch のエージェント部分(train.py を書き換える役割)は、OpenAI 互換の API であれば何でも使えます。LM Studio や Ollama をローカルに立ち上げておけば、クラウド API なしで完全ローカル実行が可能です。
なぜローカルLLMを使うのか
一晩に100回実験を回すと、クラウド API のコストが積み上がります。コード生成の品質はクラウドに劣る面もありますが、コスト0で何度でも試せるというメリットは大きいです。また、実験内容が外部サーバーに送信されないため、プロプライエタリなコードで実験する場合にも安心です。
推奨モデル
コードを理解・生成する能力が必要なため、なるべく大きいモデルを選ぶのが無難です。
| モデル | VRAM目安 | コード能力 | 備考 |
|---|---|---|---|
| Qwen2.5-Coder-14B | 10GB | ◎ | コード特化、バランス良好 |
| Gemma 4 (27B) | 16GB | ○ | 汎用・日本語も強い |
| DeepSeek-Coder-V2-Lite | 10GB | ◎ | コード特化 |
| Llama-3.1-8B | 6GB | △ | 軽量だが複雑な変更は苦手 |
GPT-2 程度の実験なら Qwen2.5-Coder-14B で十分動きます。
LM Studio を使う場合
公式 autoresearch のエージェントは Claude Code のため、ローカルLLMは Claude Code の ANTHROPIC_BASE_URL を差し替える形で利用します。当ブログの「Claude Code を LM Studio + Gemma 4 でローカル実行する」と同じ要領です。
- LM Studio を起動してモデルをロード
- 「Local Server」からサーバーを起動(デフォルト:
http://localhost:1234) - 環境変数を設定して Claude Code を起動
export ANTHROPIC_BASE_URL=http://localhost:1234
export ANTHROPIC_API_KEY=lm-studio # 任意の文字列でOK
cd autoresearch
claude
Ollama を使う場合
# モデルをプル
ollama pull qwen2.5-coder:14b
# Ollama のサーバーが起動していることを確認(デフォルト: http://localhost:11434)
export ANTHROPIC_BASE_URL=http://localhost:11434
export ANTHROPIC_API_KEY=ollama
cd autoresearch
claude
注意点
ローカルLLMは指示への追従性がクラウドモデルより低い場合があります。実験が失敗続きになったり、train.py を壊すような変更を提案してしまうことがあります。program.md の指示を簡潔・具体的に書くことで改善できます。
注意点・制限事項
GPU メモリ
デフォルトのGPT-2設定では VRAM 8GB 程度を使用します。メモリが少ない場合はモデルサイズを小さくするか、バッチサイズを下げてください。
5分固定の制約
実験1回あたりの学習時間は5分に固定されています。これはエージェントが「ずっと動かし続ければ良いスコアが出る」という抜け穴を防ぐための設計です。5分以内に効果が出る変更でないと評価されません。
コスト
エージェント部分にクラウド API(Claude, GPT-4o など)を使う場合、1実験あたり数円〜数十円程度かかります。一晩100回回すと数百円〜数千円になることがあります。
ローカルLLM(LM Studio / Ollama)を使えば API コストはゼロになりますが、エージェントの推論時間が加算されるため、1サイクルあたりの時間が長くなる場合があります。
エージェントが触れるのは1ファイルのみ
train.py 以外は変更できません。データの前処理や評価基準を変えてしまうと正当な比較ができなくなるため、意図的な制約です。
まとめ
autoresearch は「自律エージェントに何でもやらせる」のではなく、測定可能な目標に特化して反復実験させるというシンプルな設計でうまく機能するツールです。
向いているタスク:
- 学習率・オプティマイザ・正規化などのハイパーパラメータ探索
- アーキテクチャの小さな改善(residual connection の追加、活性化関数の変更など)
- 数値で評価できるあらゆる最適化タスク
向いていないタスク:
- 評価指標が曖昧なタスク
- 1実験5分で結果が出ないほどの大規模なモデル
- データ収集・前処理の改善(prepare.py は変更不可のため)
「夜寝ている間にAIが勝手に実験を進めてくれる」という体験は、これまでのAI活用とは一線を画します。自律エージェントの実用的な使い方として、今後さらに広がっていくアプローチだと感じました。
実際に動かしてみた記録(セットアップの詳細・実験ログ・結果の考察)は別記事にまとめる予定です。