
autoresearch
Andrej Karpathyによって開発されたオープンソースのAIエージェントです。単一GPU上でLLM学習実験を自律的に夜間に実行し、コードを編集、改善点を評価、反復処理を行いながらあなたが眠っている間に作業を進めます。
概要
autoresearch は、Andrej Karpathy による実験的なオープンソースプロジェクトで、自律型AIエージェントが実際の機械学習研究を実行する能力を示しています。これは、AIコーディングエージェントが実験ループを完全に制御する、簡素化された nanochat 実装に基づいた最小限の単一GPUトレーニングハーネスを提供します。
研究者はPythonコードを手動で調整する代わりに、program.md Markdownファイルに高レベルの指示を記述します。その後、エージェントはトレーニングスクリプト(train.py)を反復的に編集し、固定時間(通常5分)のトレーニング実験を実行し、検証指標(例:val_bpb)に基づいて改善を評価し、成功した変更のみをGit機能ブランチにコミットします。
主な機能
- 自律型エージェントループ: AIエージェントが実験を計画し、コード(アーキテクチャ、ハイパーパラメータ、オプティマイザなど)を変更し、トレーニングを実行し、何を保持するかを決定します。
- 単一GPU効率: アクセス可能なハードウェア向けに設計されており、各実験は短い固定時間(〜5分)で実行されるため、1時間に約12回の実験が可能です。
- Gitベースのバージョン管理: 改善は機能ブランチのコミットによって追跡されるため、変更の確認や元に戻すことが容易です。
- 最小限のセットアップ: 数ファイルにまたがる小さなコードベース(〜630〜1000行)であり、客観的評価のための明確な1つの指標に焦点を当てています。
- プロンプトによる人間の監視: ユーザーはMarkdownでの自然言語指示を通じて「研究組織」を定義し、低レベルコードに触れることなく洗練されたエージェントの動作を可能にします。
- 拡張性: より多くのエージェントを追加したり、program.mdプロンプトを改善したり、異なるモデル/タスクに適応させたりすることが容易です。
仕組み
- ユーザーがリポジトリをセットアップし、
program.mdに研究目標を提供します。 - AIコーディングエージェント(例:Claude、GPT、またはローカルモデルで動作)が起動されます。
- エージェントはGit機能ブランチを作成/使用し、反復を開始します:
train.pyを編集します。- 時間制限付きのトレーニング実験を実行します。
- 主要な検証指標を測定します。
- 改善されれば変更をコミットし、そうでなければ破棄して再度試みます。
- 一晩または数日間にわたり、システムは数十から数百の実験を蓄積し、より優れたモデル設定を浮かび上がらせます。
このプロジェクトは、人間の介入なしに長期的な研究速度を最大化するために、エージェントプロンプト(「研究組織コード」)を設計することに重点を置いています。
ユースケース
-Agentを夜間やより高レベルのアイデアに集中している間に、ハイパーパラメータ、アーキテクチャ、または最適化を探索させることができます。
- 教育用デモ: 実際の実行可能なMLコンテキストで、エージェントAIワークフローを理解します。
- 分散型スウォーム: コミュニティ拡張により、複数のエージェントやマシンが協力することが可能になります(例:autoresearch@homeプロジェクト)。
- 迅速なプロトタイピング: 小規模なLLMトレーニングにおける自律的科学発見のアイデアをテストします。
- エージェント能力のベンチマーク: 異なるLLMが自律的研究者としてどれだけ優れたパフォーマンスを発揮するかを評価します。
はじめに
リポジトリをクローンし、pyproject.toml を通じて依存関係をインストールします。AIプロバイダー(APIキー)を設定し、研究指示を含む program.md を準備し、エージェントループを起動します。これは単一のGPU上で動作し、最小限のセットアップで済みます。
リポジトリには、ベースラインとなる program.md が含まれており、より良い結果を得るために反復的に改良することができます。
その重要性
autoresearchは、AIエージェントが実証研究の単調作業を処理し、人間を創造的な方向性に集中させられる未来の初期の一端を示しています。これにより、大きなコミュニティの関心、フォーク、移植(AMD、Apple Siliconなど)、そしてエージェント群や自動化された科学の「初期特異点」に関する議論が巻き起こっています。
制限事項
- 実験は毎回ゼロから開始されます(基本バージョンでは、実行間で永続的なメモリはありません)。
- 単一のシンプルな指標と小型モデルに焦点を当てています。
- 成功は、基盤となるコーディングエージェントの品質とプロンプトエンジニアリングに大きく依存します。
最新の詳細、コード、およびコミュニティの議論については、公式GitHubリポジトリをご覧ください。