EXPEREPAIR: Dual-Memory Enhanced LLM-based Repository-Level Program Repair
ExpeRepair は、具体的な修復実例のためのエピソード記憶と抽象的な洞察のための意味記憶からなる二重記憶システムを活用する新規の LLM ベースのフレームワークであり、歴史的修復知識の効果的な再利用を通じて文脈を認識したプロンプトを動的に構成し、SWE-Bench Lite および Verified ベンチマークにおいて最先端のオープンソース性能を達成する。
原論文は CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) でライセンスされています。 これは以下の論文のAI生成解説です。著者が執筆または承認したものではありません。技術的な正確性については原論文を参照してください。 免責事項の全文を読む
あなたは複雑な古典車のエンジンを修理しようとする熟練のメカニックだと想像してみてください。過去には、新しい問題が発生するたびに、ゼロからやり直す必要がありました:マニュアルを読み、何が悪いのかを推測し、修理を試み、それがうまくいくことを願うのです。失敗すれば、前のミスから学んだことを忘れ、ただ再度試すだけでした。
ExpeRepair は、そのメカニックに人間の脳の仕組みに着想を得た、超強力な二重の記憶システムを与えるようなものです。毎回ゼロから始めるのではなく、このシステムは AI が過去の修理を「記憶」し、そこから学ぶのを助け、ソフトウェアのバグ修正を格段に得意にします。
以下に、その仕組みを簡単な概念に分解して説明します。
2 種類の記憶
この論文は、人間の記憶が単一の大きな容器ではなく、2 つの明確な部分から成り立っていると説明しています。ExpeRepair はこの設計を模倣します。
エピソード記憶(「写真アルバム」):
- 何であるか: これは具体的で具体的な事例の集まりです。過去の修理のスクラップブックだと考えてください。そこには、特定のエラーメッセージ、壊れた正確なコード、そしてそれを修正した具体的なパッチという、「前と後」の正確な「写真」が含まれています。
- どのように役立つか: 新しいバグが発生したとき、システムはこのスクラップブックをめくって、類似した過去の事例を探します。「ねえ、先週似たような壊れたスイッチを修理したよね;同じ手を使ってみよう。」これは、従うべき具体的なレシピを提供します。
意味記憶(「規則集」):
- 何であるか: これは、それらすべての過去の修理から得られた抽象的な知恵です。特定の「写真」についてのものではなく、一般的な原則についてのものです。平易な英語で書かれた「ベストプラクティス」や「経験則」のリストだと考えてください。
- どのように役立つか: これは AI に一般的な教訓を教え、例えば「セキュリティの問題を修正する際は、常にエッジケースを確認すること」や「関数が複数の入力を処理する場合、言及されたものだけでなく、すべてを修正すること」などです。これにより、AI は以前に見たことのない新しい状況に適応できるようになります。
バグを修正する方法(ワークフロー)
このシステムは、バグの存在を証明するためのテストスクリプトを作成する「エージェント(AI ワーカー)」と、実際の修正を作成するもう一つの「エージェント」の 2 人を使って修理を行います。
- 従来の方法: AI はバグ報告を受け取り、一般的なトレーニングに基づいて修正を推測し、最善を祈ります。失敗すれば、同じ静的な指示で再度試します。
- ExpeRepair の方法:
- 振り返る: 新しいバグを修正する前に、システムは類似した過去の失敗と成功を写真アルバム(エピソード記憶)から確認します。
- 規則を読む: また、この種の問題に関連する高レベルの助言を規則集(意味記憶)から確認します。
- 動的な指示: 硬直的で事前に書かれた指示マニュアルを使う代わりに、システムは AI ワーカー用のカスタム化された「動的」プロンプトを作成します。「これが新しいバグだ。これが先月修正した類似のバグだ(写真アルバムから)。そして、エッジケースの処理に関するこの規則を忘れるな(規則集から)。」と言います。
- 学習と更新: 修正が完了したら(あるいは失敗しても)、システムはその経験を保存します。具体的な詳細を写真アルバムに追加し、学んだ教訓を次回のために規則集に要約して記録します。
結果
研究者たちは、このシステムを実世界のソフトウェアバグの 2 つの有名なセット(SWE-Bench Lite と SWE-Bench Verified と呼ばれる)でテストしました。
- スコア: 強力な AI モデル(Claude 4 Sonnet)を使用し、ExpeRepair は、より難しいテストセットで74.6%、軽いセットで**60.3%**のバグを正常に修正しました。
- 比較: これは、彼らがテストしたすべてのオープンソース手法の中で最高のパフォーマンスでした。SWE-agent、Aider、AutoCodeRover といった他のトップツールを凌駕しました。
- コスト: AI モデルの高価で時間のかかる再トレーニングを必要とすることなく、これらの高いスコアを達成しました。それは単に、自身の過去の作業を「読む」ことで学習しただけです。
なぜ重要なのか
この論文は、現在の AI 修理ツールは、テストを受け、成績を得て、次のテストの前にすぐにすべてを忘れる学生のようなものだとの主張を述べています。ExpeRepair は、学習ガイドを持ち、ミスをレビューし、解決するすべての問題ごとに賢くなる学生のようなものです。
具体的な事例(エピソード的)と一般的な知恵(意味的)を組み合わせることで、このシステムはフィードバックループを作成します。これにより、AI は作業を行うほどにソフトウェアの修正が上手くなり、人間の開発者が時間とともに学び、改善していく様子を模倣します。
自分の分野の論文に埋もれていませんか?
研究キーワードに一致する最新の論文のダイジェストを毎日受け取りましょう——技術要約付き、あなたの言語で。