SpecRover: Code Intent Extraction via LLMs

要約

自律的なプログラムの改善には通常、バグ修正や機能追加が自動的に行われます。
このようなプログラムの改善は、大規模言語モデル (LLM) とプログラム分析機能を LLM エージェントの形式で組み合わせることによって実現できます。
プログラムの修復やプログラムの改善には通常、意図した動作の仕様が必要であるため、仕様の推論は高品質のプログラム パッチを作成するのに役立ちます。
この研究では、LLM エージェント内で反復的な仕様推論を行うための効率的で低コストのワークフローを検証します。
ソフトウェア プロジェクトで GitHub の問題を解決する必要があるとすると、私たちの目標は、仕様推論を伴う反復的なコード検索を実行し、それによってプロジェクトの構造と動作の両方から意図を推論することです。
このようにして捕捉された意図は、パッチを精査することと、精査されたパッチの信頼性の尺度を提供することを目的として、レビュー担当者エージェントによって検査されます。
私たちのアプローチ SpecRover (AutoCodeRover-v2) は、オープンソース LLM エージェント AutoCodeRover に基づいて構築されています。
2,294 件の GitHub の問題で構成される完全な SWE-Bench での評価では、AutoCodeRover と比較して有効性が 50% 以上向上していることが示されています。
利用可能なオープンソース エージェントと比較して、私たちの取り組みでは、SWE-Bench lite での GitHub の平均的な問題の解決にかかるコストは低め (問題あたり 0.65 ドル) です。
SpecRover による説明の作成により、提案されたパッチがいつ自信を持って受け入れられるかについて、より適切な「シグナル」を開発者に与えることができます。
SpecRover はまた、プログラム修復技術が LLM 時代に入っても、自動プログラム修復における仕様推論の継続的な重要性を実証しようとしています。

要約(オリジナル)

Autonomous program improvement typically involves automatically producing bug fixes and feature additions. Such program improvement can be accomplished by a combination of large language model (LLM) and program analysis capabilities, in the form of an LLM agent. Since program repair or program improvement typically requires a specification of intended behavior – specification inference can be useful for producing high quality program patches. In this work, we examine efficient and low-cost workflows for iterative specification inference within an LLM agent. Given a GitHub issue to be resolved in a software project, our goal is to conduct iterative code search accompanied by specification inference – thereby inferring intent from both the project structure and behavior. The intent thus captured is examined by a reviewer agent with the goal of vetting the patches as well as providing a measure of confidence in the vetted patches. Our approach SpecRover (AutoCodeRover-v2) is built on the open-source LLM agent AutoCodeRover. In an evaluation on the full SWE-Bench consisting of 2294 GitHub issues, it shows more than 50% improvement in efficacy over AutoCodeRover. Compared to the open-source agents available, our work shows modest cost ($0.65 per issue) in resolving an average GitHub issue in SWE-Bench lite. The production of explanation by SpecRover allows for a better ‘signal’ to be given to the developer, on when the suggested patches can be accepted with confidence. SpecRover also seeks to demonstrate the continued importance of specification inference in automated program repair, even as program repair technologies enter the LLM era.

arxiv情報

著者 Haifeng Ruan,Yuntong Zhang,Abhik Roychoudhury
発行日 2024-08-07 14:52:17+00:00
arxivサイト arxiv_id(pdf)

提供元, 利用サービス

arxiv.jp, Google

カテゴリー: cs.AI, cs.SE パーマリンク