アンドレイ・カーパシーによる自律型AI研究フレームワーク。AIエージェント(Claude/Codex)が、一晩で単一GPU上で小型LLMを繰り返し修正、訓練、評価できるようにし、あなたが寝ている間に約100の実験を実行します。
autoresearch — 自律型AIエージェントLLMリサーチフレームワーク
概要
autoresearchは、Andrej KarpathyによるAI/ML研究のイテレーションプロセスを自動化する実験的なフレームワークです。その中核となるアイデアは非常にシンプルです。AIエージェント(ClaudeやCodexなど)に、実際に動作するLLMトレーニングコードベースを与え、人間の介入なしに、変更の提案、5分間のトレーニング実験の実行、結果の評価、そしてイテレーションを自律的に行わせます。
これは、単一のGPUで一晩中実行される、ミニマルで自己完結型のAIリサーチラボと考えることができます。朝までには約100回の実験のログと、(うまくいけば)徐々に改善された言語モデルが生成されます。
背景と動機
KarpathyはREADMEの冒頭で、将来の皮肉なビジョンを提示しています。それは、AI研究がもはや人間によって行われるのではなく、「コンピューティングクラスターの巨大構造を横断して実行されるAIエージェントの自律的な群れ」によって行われる世界です。彼は、このリポジトリが「すべてが始まった物語」であると書いています。
実用的な動機はより地に足のついたものです。研究のイテレーションは、人間が食事をし、睡眠をとり、会議に出席する必要があるため、遅くなります。このプロジェクトは、ループ内の人間をAIエージェントに置き換えることで、24時間年中無休で実験を実行できるようになり、ML研究を劇的に高速化し、より自動化します。
仕組み
ワークフローは、編集 → トレーニング → 評価 → 保存/破棄 のタイトなループです。
- エージェントは
program.mdを読み込みます — 人間の研究者によって作成・維持される、研究の指示とコンテキストを含むMarkdownファイルです。 - エージェントは
train.pyを変更します — GPTモデルアーキテクチャ、オプティマイザ(Muon + AdamW)、およびトレーニングループを含む単一のPythonファイルです。エージェントは、アーキテクチャ、ハイパーパラメータ、オプティマイザ設定、バッチサイズなど、あらゆるものを変更できます。 - トレーニングは正確に5分間実行されます(起動/コンパイル時間を除く、壁時計時間)。
- メトリック
val_bpb(validation bits per byte)が計算されます — 値が小さいほど良いです。語彙サイズに依存しないため、アーキテクチャの変更を公平に比較できます。 - エージェントは変更を保持するか破棄するかを決定し、繰り返します。
これにより、1時間あたり約12回の実験、一晩で約100回の実験が得られます。
リポジトリ構造
autoresearch/
├── prepare.py # 固定: 一度だけのデータ準備、BPEトークナイザートレーニング、データローダー、評価ユーティリティ
├── train.py # エージェントが編集可能: GPTモデル、オプティマイザ、トレーニングループ
├── program.md # 人間が編集可能: エージェントの指示と研究コンテキスト
├── analysis.ipynb # 実験結果を分析するためのノートブック
├── pyproject.toml # 依存関係(uvで管理)
└── progress.png # トレーニングの進捗を示すティーザー画像
主要ファイルの解説
| ファイル | 所有者 | 目的 |
|---|---|---|
prepare.py |
人間(固定) | データシャードのダウンロード、BPEトークナイザートレーニング、データローダーと評価ユーティリティの提供 |
train.py |
AIエージェント | 完全なGPT実装 + トレーニングループ — エージェントのサンドボックス |
program.md |
人間(反復可能) | 研究「スキル」/エージェントへの指示 |
設計思想
1. 変更する単一ファイル
エージェントはtrain.pyのみを操作します。これにより、スコープを管理しやすく、差分のレビューも容易になります。また、エージェントのアクション空間を、インフラストラクチャ/ツール変更ではなく、意味のあるML変更に限定します。
2. 固定時間予算
すべての実験は、正確に5分間の壁時計トレーニング時間(起動時間を除く)で実行されます。これにより、以下のことが保証されます。
- すべての実験は、アーキテクチャの変更(モデルサイズ、バッチサイズなど)に関係なく、直接比較可能です。
- エージェントは、特定のハードウェアに最適なモデル構成を見つけます。
- 予測可能なスループット:約12実験/時間
トレードオフ:結果は、異なるコンピューティングプラットフォーム間ではポータブルではありません(H100での実行とA100での実行は比較できません)。
3. 自己完結型
分散トレーニング、複雑な設定ファイル、外部研究インフラストラクチャはありません。PyTorch + 少数の小さなパッケージ、1つのGPU、1つのファイル、1つのメトリックだけです。これにより、プロジェクトの理解、フォーク、および拡張が容易になります。
4. program.mdを人間インターフェースとして使用
研究エージェントをゼロからコーディングする代わりに、Karpathyはprogram.mdを軽量な「スキル」として使用します。これは、AIエージェントにコンテキスト、目標、および制約を与えるMarkdownファイルです。「研究組織コード」を改善するために、人間は時間をかけてprogram.mdを反復します。
技術詳細
モデルとトレーニング
- nanochatの単一GPUバージョンの簡略化に基づいています。
- デフォルトでMuon + AdamWオプティマイザを使用します(ただし、エージェントはこれを変更できます)。
- ダウンロードされたテキストデータシャードで、ゼロからGPTスタイルのモデルをトレーニングします。
prepare.pyを介してデータ自体でトレーニングされたBPEトークナイザを使用します。- 評価メトリック:val_bpb(validation bits per byte)
要件
- GPU: 単一のNVIDIA GPU(H100でテスト済み)
- Python: 3.10+
- パッケージマネージャー: uv
クイックスタート
# 1. uvをインストールします(まだインストールされていない場合)
curl -LsSf https://astral.sh/uv/install.sh | sh
# 2. 依存関係をインストールします
uv sync
# 3. 一度だけのデータ準備(約2分)
uv run prepare.py
# 4. 単一のトレーニング実験を実行します(約5分)
uv run train.py
エージェントの実行
Claude、Codex、またはその他の有能なコーディングエージェントをリポジトリディレクトリ(ファイル書き込み権限付き)で起動し、プロンプトを入力します。
program.mdを見て、新しい実験を開始しましょう!まずセットアップを行います。
エージェントはprogram.mdを読み込み、train.pyへの変更を提案し、トレーニングを実行し、結果を評価し、イテレーションします。
重要性と影響
autoresearchは、マイクロスケールでの自動機械学習研究の概念実証です。大規模なAutoMLシステムは存在しますが、このプロジェクトは以下の点で注目に値します。
- シンプルさ: 意味のあるコードベース全体が約3ファイルです。
- 透明性: すべてのエージェントの決定はログに記録され、レビュー可能です。
- アクセシビリティ: 単一のコンシューマー/リサーチGPUで実行できます。
- ビジョン: AIエージェントが真のML研究を自律的に実行できる可能性を示しています。
また、「Markdownを介してAI研究組織をプログラミングする」ためのテンプレートとしても機能します。これは、AIコーディングエージェントがより有能になるにつれて標準になる可能性のあるパラダイムです。
注目すべきフォーク
- miolini/autoresearch-macos — macOS/MPSサポート
要約
| プロパティ | 値 |
|---|---|
| タイプ | 自律型AIリサーチエージェントフレームワーク |
| 主な用途 | 一晩中の自動LLMトレーニング実験 |
| エージェントインターフェース | program.md(Markdown指示) |
| エージェントアクション空間 | train.py(GPTモデル + トレーニングループ) |
| 実験時間 | 5分(固定) |
| スループット | 約12実験/時間、約100実験/一晩 |
| メトリック | val_bpb(validation bits per byte) |
| ハードウェア | 単一NVIDIA GPU(H100テスト済み) |
| ライセンス | MIT |