DeNovoSWE: Scaling Long-Horizon Environments for Generating Entire Repositories from Scratch
本論文は、長期的なソフトウェアエンジニアリング・タスクのためのLLMエージェントを訓練するために設計された、4,818件のリポジトリ全体生成インスタンスからなる大規模かつ自動キュレーションされたデータセットであるDeNovoSWEを紹介するものであり、これはBeyondSWE-Doc2Repoベンチマークにおける性能を5.8%から47.2%へと大幅に向上させている。
原論文は CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) でライセンスされています。 これは以下の論文のAI生成解説です。著者が執筆または承認したものではありません。技術的な正確性については原論文を参照してください。 免責事項の全文を読む
ある熟練した建築家を想像してみてください。その人は、壁にあるたった一つの壊れたレンガを直すことに関しては、驚くほど才能があります。特定のひび割れを見つめ、なぜそれが起きたのかを突き止め、完璧に補修することができるのです。これは、現在のAIコーディングアシスタントが得意としていることです。つまり、既存のソフトウェアにある小さなバグを修正することです。
しかし、もし同じ建築家に、ナプキンに描かれた漠然としたスケッチだけを渡して、「ゼロから超高層ビルを建ててほしい」と頼んだらどうなるでしょうか? それははるかに難しい仕事です。基礎の設計、エレベーターの設計、電気配線、そしてすべての部屋が論理的につながっていることを確認する必要があります。これまで、AIはこの「建物全体」を作るという課題に苦戦してきました。なぜなら、十分な練習経験がなかったからです。
問題点:設計図の不足
AIがソフトウェアの「超高層ビル」(リポジトリ)全体を構築するのに苦労している主な理由は、トレーニングデータの不足です。既存のトレーニングデータの多くは、「この蛇口の漏れを直して」や「この窓のひび割れを修理して」といったリストのようなものです。高レベルな記述(ユーザーマニュアルのようなもの)から、ゼロから完全に機能する複雑な建物をどのように作り上げるかを教えるデータは、ほとんど存在しません。
解決策:DeNovoSWE
この論文では、AIにゼロからソフトウェアプロジェクト全体を構築する方法を教えるために特別に設計された、大規模な新しいトレーニングデータセットであるDeNovoSWEを紹介しています。これは、4,818個の「建設チャレンジ」を集めた巨大なライブラリだと考えてください。それぞれのチャレンジにおいて、AIには詳細な指示書(ドキュメント)が与えられ、その指示通りにソフトウェアシステム全体を完璧に構築しなければなりません。
トレーニングデータの構築方法(「分割統治」戦略)
このようなデータセットを構築するのは困難です。なぜなら、AIに「複雑なアプリのマニュアルを書いて」と頼んでも、それが完璧である保証はないからです。著者らは、AIエージェントによる巧妙に自動化されたチームを使用して、この重労働を行わせました。
- 「分割(Divide)」フェーズ: 巨大な都市のマニュアルを書こうとしている場面を想像してください。一度にすべてを行うには大きすぎます。そこで、AIはまず都市を「近隣地区(機能)」へと細分化します。各地区が何を行い、どの建物(コードファイル)がそこに属しているかを特定します。
- 「征服(Conquer)」フェーズ: 次に、特化したAIエージェントが、一度に一つの近隣地区に対してのみマニュアルを作成します。
- ドラフト・エージェント(下書き担当): マニュアルの初稿を書きます。
- クリティック・エージェント(批評担当): 厳格な編集者のように振る舞います。マニュアルをチェックします。「信号機の仕組みの説明を忘れていないか? 配線図は分かりやすいか?」
- リペア・エージェント(修復担当): クリティックが見つけた間違いを修正します。
このサイクルを、マニュアルが完璧になるまで繰り返します。
- 「ゴールデン(黄金)」テスト: マニュアルが書かれたら、システムは「クリーンルーム(サンドボックス)」を作成します。元のコードを取り除き、マニュアルだけを残します。そして、別のAIエージェントに対し、そのマニュアル「のみ」を使用してソフトウェアを再構築するように命じます。もし新しいソフトウェアがすべてのテストに合格すれば、そのマニュアルは高品質であると見なされ、データセットに追加されます。
AIの誠実さを保つ(不正防止)
AIが、本来再構築すべき元のコードを「覗き見る」ことで「ズル」をするのではないかという懸念は、大きな問題です。著者らは、これを防ぐための厳格なセキュリティシステムを構築しました。
- 履歴、キャッシュ、隠しファイルをすべて削除します。
- AIがオンラインにアクセスして元のコードをダウンロードすることをブロックします。
- AIが真に「クローズドブック(持ち込み禁止)」であることを保証し、与えられたドキュメントのみに頼るよう強制します。
「難易度を考慮した」フィルター
すべての建設プロジェクトが同じではありません。小さな物置もあれば、超高層ビルもあります。もし、AIが最初の一回で完璧な超高層ビルを建てられたプロジェクトの例だけを残してしまうと、AIが惜しいミスをしたものの、完全には成功しなかった「難しいプロジェクト」から得られる貴重な教訓を失ってしまいます。
著者らは、プロジェクトの難易度を判断するスマートなフィルターを作成しました。
- 簡単なプロジェクト(小さな物置)の場合: 満点を要求します。
- 難しいプロジェクト(超高層ビル)の場合: 完璧な超高層ビルを完成させることは非常に困難であるため、多少低いスコア(例:成功率80%)も受け入れます。
これにより、AIが「簡単な成功」からも、「困難なタスクにおけるあと一歩の失敗」からも学べるようになります。
結果
この新しいデータセットを用いてAIモデルを学習させたところ、劇的な結果が得られました。
- 学習前、AIは要求されたソフトウェアを正しく構築できる割合はわずか**5.8%**でした。
- DeNovoSWEによる学習後、その成功率は**47.2%**へと跳ね上がりました。
これは、適切な種類の「建設練習」——問題を細分化し、厳格な編集者を使い、部分的な成功からも学ぶこと——を与えることで、AIを単なる「レンガの修理屋」から、真の「ソフトウェア・アーキテクト(設計者)」へと進化させられることを証明しています。
自分の分野の論文に埋もれていませんか?
研究キーワードに一致する最新の論文のダイジェストを毎日受け取りましょう——技術要約付き、あなたの言語で。