
2026/03/24 3:40
既存の研究アイデアに対する自己主導型調査
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
研究は、検索空間とサンドボックス制約が厳密に定義された場合、LLM駆動エージェントが機械学習トレーニングパイプラインを自律的に改善できることを示しています。エージェントは制限付きループで動作します:仮説 →
train.py/program.md を編集(メモリ用にスクラッチパッド使用)→ トレーニング(RTX 4090 で約800ステップ ≈ 3 分)→ 平均順位を評価し、コミットまたはロールバック。各実行はノイズ過剰適合を防ぐために約5 分の壁時計時間で制限されます。
トレーニングは医療用X線データセットから始まり、その後 Ukiyo‑eVG(≈11 K 日本の木版画)へ切り替えました。フレーズ注釈はガウスヒートマップに変換され、追加の「視線」入力として使用されました。CLIPバックボーンは ViT‑Small (22 M) + DistilBERT (66 M) + HeatmapProcessor (~90 M パラメータ) で構成され、ホールドアウト1 Kテストセットで評価しました(ベースライン平均順位 344.68、R@1 img→txt 17.2%、txt→img 16.5%)。
1日間にわたりエージェントは42実験を実行し、そのうち13がコミットされ29がロールバックされました。平均順位は344.68から157.43へ(54 %減少)しました。主な向上は温度制限修正(-113点)と Optuna++ ハイパーパラメータ調整(-30点)によるもので、他のアーキテクチャ変更はほぼ影響がありませんでした。フェーズ 4/5では成功率が低下し、多くの「スパゲッティ」仮説が失敗しました;サンドボックス違反は、エージェントが未承認の bash 呼び出しを試みたりループを早期に停止した際に発生しました。
実験は、LLM エージェントが明確に定義された検索空間内で機械学習研究を自律的に推進できることを示していますが、予期せぬ(「未知の未知」)挙動には苦戦し、厳格なサンドボックス化が必要です。将来の作業では計画段階やサブエージェントを導入して、1実験あたりの単一変更制限を克服し、ハイパーパラメータのより深い探索と成功率の向上を可能にすることが考えられます。
本文
これをGHフィードで見たときから、Karpathy氏の Autoresearch が頭の奥で鳴り止まない思考を抱えていました。自分が十分に理解できる研究課題に試してみたいと願い、この週末には古い eCLIP のリサーチコードを取り出し、依存関係を整理して「Claude Code」に渡すことにしました。同時に家事も片付けつつ作業を進めました。
以下が私の実験経緯です…
コアアイデア
Autoresearch は LLM エージェントを中心とした単純な制約付き最適化ループです。エージェントは train.py の1ファイルを逐次改変しながら、評価指標を改善します。指示は program.md から読み取り、作業メモとして scratchpad.md を使用して思考過程と実験履歴を記録します。
program.md での探索フェーズ
- ハイパーパラメータ調整
- 小規模アーキテクチャ変更
- ムーンショットアイデア
最終フェーズでは制約を極力緩め、ウェブアクセスを許可して論文を閲覧し新たなアイデアを探ります。ループは「仮説 → 編集 → 訓練 → 評価 → コミット/リバート → 繰り返し」の流れです。
実験は1回あたり約5 分のウォールクロックで短く保ち、ノイズへの過学習を防ぎます。train.py の内容は時間枠内に収まる限り何でも変更可能です。
サンドボックス化
ワークステーション上で任意コード実行を防ぐため、訓練ループをコンテナ化しネットアクセスを遮断しました。全ての実験フローは run.sh が制御し、Claude Code は train.py と program.md のみ編集可能に限定します。直接 Python 実行・pip インストール・ネットワーク接続・git push いずれも禁止です。
データセット
オリジナル論文ではアクセスできなくなった医療 X‑ray データを使用していたため、空間注釈付きの新データが必要でした。そこで Ukiyo‑eVG を選択しました:CIGAr 論文(ECCV 2024 VISART)から取得した約11 K件の日本語版木版画に「フレーズ → バウンディングボックス」注釈を付与。バウンディングボックスはガウスヒートマップへ変換し、元の eCLIP と同様にモデルへの追加入力として利用します。
Hello — Claude Code
家事で忙しい一週間を過ごした後、Claude を古いリサーチコードにポイントして洗濯に出かけました。Claude は Python 環境をアップグレードし、新データセット用のインジェストコードを書き、実験ループをスキャフォールドしました。CV スプリット、評価ロジック、program.md の初期アイデアも設定しました。
評価指標は Mean Rank(検索埋め込みの平均順位)としました。事後的に見ると Median Rank の方が外れ値に強いですが、エージェントに変化が良いか悪いかを直感的に示すために Mean Rank を選びました。最終結果は標準で Recall@K を用います。
追加詳細
- CLIP バックボーン: ViT‑Small (22 M) + DistilBERT (66 M) + HeatmapProcessor ≈ 90 M パラメータ
- 訓練: 800 ステップ(RTX 4090 上で約3 分/実行)
- 評価: テストセット1 K枚に対する Mean Rank、Recall@K をサニティチェックとして併用
- ベースライン: Val 平均順位 344.68, img→txt R@1 17.2 %、 txt→img R@1 16.5 %
結果
土曜の朝にループを開始し、日中ずっと走らせました。時折エージェントへ手直しを促しましたが、食料品買い出しまでに数十実験を行い評価平均順位を大幅に改善しました。
- 実験総数: 42
- コミット: 13 / リバート: 29
- GPU: RTX 4090 1 台
日が暮れる頃、平均順位は 344.68 → 157.43(54 %減)に落ち込みました。探索終了後、全データセットで最終訓練を実施するとテストスコアがバリデーションよりも良く、短時間の800ステップでは過学習が起きていたと判断しました。
主な成果
- Temperature Clamp Fix(平均順位 -113): 学習可能温度パラメータを 2 に clamp しているバグを発見。制限を緩めることで評価指標が大幅に改善されました。
- Optuna++(平均順位 -30): 主にハイパーパラメータ調整で得られた追加効果。投影次元の増加と LR の再調整でさらに 30 ポイントを獲得しました。
減少するリターン
フェーズ 4 に入る頃、LLM の仮説成功率は急激に低下。heatmap プロセッサ内の注意機構変更やムーンショットアイデアはほとんど効果がなく、ほぼ失敗でした。
サンドボックスの重要性
実験終盤で Claude Code は時折権限を忘れ、奇妙な bash 呼び出しを行い、不満を訴えてループを停止。訓練完了まで待つことに飽きて会話を終了させる場面もありました。完全自律にはまだ至っていません。
締めくくり
LLM プロジェクトと同様、最初の 90 % はほぼスムーズで介入は少なく、残り 10 % が苦労でした。この実験は、探索空間が明確に定義されている場合、LLM エージェントが ML リサーチを構造化して推進できることを示しました。Autoresearch のコミット/リバートループは驚くほど有効でした。
改善案
- ムーンショットアイデアでは「実験ごとに一つの変更」制約を緩める
- 計画段階を挿入し、エージェントが先読みできるようにする
- サブエージェントを導入する
夕食へ向かい、映画鑑賞を計画した私は Claude と別れました… もちろん月曜までにはまた再会です。
謝辞
- Ukiyo‑eVG:CIGAr 論文(ECCV 2024 VISART)からのフレーズ→バウンディングボックス注釈付き約11 K件の木版画
- Autoresearch:Andrej Karpathy によるオリジナルアイデア