概要
- Autoresearch は、LLMエージェントを活用した自動研究最適化ループの実践記録。
- Claude Codeを使い、eCLIPの旧研究コードを新しいデータセットで自動実験。
- Ukiyo-eVG データセットを用い、ヒートマップによる注目領域の制御。
- 42回の実験で 評価指標(Mean Rank)を大幅改善。
- LLMの限界やサンドボックス運用の重要性も明らかに。
Autoresearchによる自動研究実験の試み
- Autoresearch は、LLMエージェントを中心としたシンプルな制約付き最適化ループ
- エージェントは train.py を逐次修正し、 program.md の指示に従い評価指標を改善
- ワーキングメモリとして scratchpad.md を追加し、思考過程や実験履歴を記録
- 探索フェーズ を明確に分け、ハイパーパラメータ調整→小規模アーキテクチャ変更→大胆なアイデアへと段階的に展開
- 最終フェーズではウェブアクセスを許可し、論文検索や新規アイデア探索も実施
実験のワークフローとサンドボックス化
- 仮説立案→編集→学習→評価→コミットorリバート→繰り返し のタイトなループ
- 1実験あたり約5分で完結、迅速な試行錯誤とノイズへの過学習防止を両立
- セキュリティ対策として コンテナ化+ネットワーク遮断、編集可能ファイルも厳格に限定
- run.sh による実験オーケストレーション、直接的なPython実行やpip install、git push等は禁止
データセットとモデル構成
- 元論文の医療X線データが未入手のため、 Ukiyo-eVG (約1.1万枚の浮世絵+フレーズ→バウンディングボックスアノテーション)を採用
- バウンディングボックスをガウスヒートマップ化し、 eCLIP の注目機構を模倣
- モデル構成: ViT-Small(22M)+DistilBERT(66M)+HeatmapProcessor、約90Mパラメータ
- 学習ステップ:800(1実験あたり約3分、RTX 4090使用)
- 評価指標: Mean Rank (主要)、 Recall@K (サニティチェック)
Claude Codeの活躍と評価指標の変遷
- Claude Codeが Python環境のアップグレード、データセット取込、実験ループ構築 を自動化
- CV分割、評価ロジック、program.mdの初期案 も整備
- 評価指標は Mean Rank (直感的で変化が分かりやすい)が、後から考えるとMedian Rankの方が頑健
- ベースライン:Val mean rank 344.68、img→txt R@1 17.2%、txt→img R@1 16.5%
実験結果と改善内容
- 1日で 42回の実験(13コミット、29リバート) を実施
- Mean Rankは344.68→157.43(54%削減) へ大幅改善
- 最終的なテストセットでのスコアもバリデーションより良好
- 最大の改善要因 :温度パラメータのクランプ解除(−113 Mean Rank)、コードのバグ修正
- ハイパーパラメータ最適化(Optuna++) でさらに−30 Mean Rank
- アーキテクチャ変更や大胆なアイデア(Phase 4, 5)はほぼ効果なし、成功率が低下
LLMエージェントの限界と運用上の注意
- フェーズ後半では 仮説の成功率が低下、新規性の高い変更はほぼ不発
- Claude Codeが サンドボックス権限を忘れる ・bashコマンドを誤発行する等の挙動も観察
- 完全な自律運用はまだ難しく、 人間の監督が必須
考察と今後の展望
- LLMを用いた自動研究は 明確な探索空間とコミットorリバートループ があれば非常に効果的
- 未知の領域や複雑な最適化には 計画フェーズやサブエージェントの導入 が有効かもしれない
- しかし、1日の実験としては十分な成果であり、 人間とLLMの協調作業の可能性 を実感
謝辞・参考情報
- Ukiyo-eVG :CIGAr論文(ECCV 2024 VISART)より、浮世絵とバウンディングボックスアノテーション
- Autoresearch :Andrej Karpathyによるオリジナルアイデア