論文の概要: Copiloting the Copilots: Fusing Large Language Models with Completion
Engines for Automated Program Repair
- arxiv url: http://arxiv.org/abs/2309.00608v3
- Date: Wed, 8 Nov 2023 22:24:26 GMT
- ステータス: 処理完了
- システム内更新日: 2023-11-10 17:44:58.969528
- Title: Copiloting the Copilots: Fusing Large Language Models with Completion
Engines for Automated Program Repair
- Title(参考訳): copiloting the copilots: プログラムの自動修復のための補完エンジンを備えた大型言語モデルの使用
- Authors: Yuxiang Wei, Chunqiu Steven Xia, Lingming Zhang
- Abstract要約: 大規模言語モデル(LLM)は、様々なコーディングタスクを開発者を支援する上で、"コパイロット"として有用であることが示されている。
修復プロセス中により有効なパッチを合成することにより、AIの"コパイロット"(すなわち、LLM)をさらに協調する一般的なコード生成フレームワークであるRepilotを提案する。
広く使用されているDefects4j 1.2と2.0データセットのサブセットに対する評価では、Repilotは、それぞれ27%と47%のバグを修正することで、最先端の技術よりも優れています。
- 参考スコア(独自算出の注目度): 15.391586175711907
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: During Automated Program Repair (APR), it can be challenging to synthesize
correct patches for real-world systems in general-purpose programming
languages. Recent Large Language Models (LLMs) have been shown to be helpful
"copilots" in assisting developers with various coding tasks, and have also
been directly applied for patch synthesis. However, most LLMs treat programs as
sequences of tokens, meaning that they are ignorant of the underlying semantics
constraints of the target programming language. This results in plenty of
statically invalid generated patches, impeding the practicality of the
technique. Therefore, we propose Repilot, a general code generation framework
to further copilot the AI "copilots" (i.e., LLMs) by synthesizing more valid
patches during the repair process. Our key insight is that many LLMs produce
outputs autoregressively (i.e., token by token), resembling human writing
programs, which can be significantly boosted and guided through a Completion
Engine. Repilot synergistically synthesizes a candidate patch through the
interaction between an LLM and a Completion Engine, which 1) prunes away
infeasible tokens suggested by the LLM and 2) proactively completes the token
based on the suggestions provided by the Completion Engine. Our evaluation on a
subset of the widely-used Defects4j 1.2 and 2.0 datasets shows that Repilot
outperforms state-of-the-art techniques by fixing 27% and 47% more bugs,
respectively. Moreover, Repilot produces more valid and correct patches than
the base LLM with the same budget. While we focus on leveraging Repilot for APR
in this work, the overall approach is also generalizable to other code
generation tasks.
- Abstract(参考訳): 自動プログラム修復(APR)において、汎用プログラミング言語で現実世界のシステムに対して正しいパッチを合成することは困難である。
最近の大規模言語モデル(llm)は、様々なコーディングタスクの開発者を支援する上で有用な"コパイロット"であることが示されており、パッチ合成にも直接適用されている。
しかし、ほとんどのLLMはプログラムをトークンのシーケンスとして扱うため、ターゲットプログラミング言語の基本的なセマンティクス制約に無関係である。
この結果、多くの静的に無効なパッチが生まれ、この技術の実用性を妨げている。
そこで本稿では,修復プロセス中により有効なパッチを合成することにより,AIの"コパイロット"(すなわちLLM)をさらに協調する汎用コード生成フレームワークであるRepilotを提案する。
我々の重要な洞察は、多くのLLMが自動回帰的に(トークン単位のトークン)出力を生成し、人間の記述プログラムに似ており、コンプリーションエンジンを通じて大幅に向上しガイドすることができるということである。
RepilotはLLMとCompletion Engineの相互作用を通じて、候補パッチを相乗的に合成する
1) LLMが提案する実用不可能なトークンを削除し、
2) 完了エンジンが提供する提案に基づいてトークンを積極的に完了させる。
広く使用されているDefects4j 1.2と2.0データセットのサブセットに対する評価では、Repilotは、それぞれ27%と47%のバグを修正することで、最先端の技術よりも優れています。
さらに、Repilotは同じ予算でベースLLMよりも有効で正しいパッチを生成する。
この作業ではRepilotをAPRに活用することに重点を置いていますが、全体的なアプローチは他のコード生成タスクにも一般化可能です。
関連論文リスト
- A Novel Approach for Automatic Program Repair using Round-Trip
Translation with Large Language Models [50.86686630756207]
研究によると、ある文の文法的誤りは、それを他の言語に翻訳し、その語を返せば修正できる。
現在の自動プログラム修復(APR)生成モデルは、ソースコードで事前訓練され、修正のために微調整されている。
本稿では,あるプログラミング言語から別のプログラミング言語,あるいは自然言語へのコード変換,そして,その逆といった,微調整ステップをバイパスし,ラウンド・トリップ変換(RTT)を用いる手法を提案する。
論文 参考訳(メタデータ) (2024-01-15T22:36:31Z) - Guess & Sketch: Language Model Guided Transpilation [61.24102712913847]
学習されたトランスパイレーションは、手作業による書き直しやエンジニアリングの取り組みに代わるものだ。
確率的ニューラルネットワークモデル(LM)は、入力毎に可塑性出力を生成するが、正確性を保証するコストがかかる。
Guess & Sketch は LM の特徴からアライメントと信頼性情報を抽出し、意味的等価性を解決するためにシンボリック・ソルバに渡す。
論文 参考訳(メタデータ) (2023-09-25T15:42:18Z) - RAP-Gen: Retrieval-Augmented Patch Generation with CodeT5 for Automatic
Program Repair [75.40584530380589]
新たな検索型パッチ生成フレームワーク(RAP-Gen)を提案する。
RAP-Gen 以前のバグ修正ペアのリストから取得した関連する修正パターンを明示的に活用する。
RAP-GenをJavaScriptのTFixベンチマークとJavaのCode RefinementとDefects4Jベンチマークの2つのプログラミング言語で評価する。
論文 参考訳(メタデータ) (2023-09-12T08:52:56Z) - SheetCopilot: Bringing Software Productivity to the Next Level through
Large Language Models [60.171444066848856]
本研究では,スプレッドシートの要求を満たすために自然言語処理と制御を行うスプレッドシートコパイロットエージェントを提案する。
221のスプレッドシート制御タスクを含む代表データセットをキュレートし,完全自動評価パイプラインを構築した。
当社の SheetCopilot は1世代で44.3% のタスクを正しく完了し、強力なコード生成ベースラインを広いマージンで上回っている。
論文 参考訳(メタデータ) (2023-05-30T17:59:30Z) - Enhancing Automated Program Repair through Fine-tuning and Prompt
Engineering [2.3826139428423576]
シーケンス・ツー・シーケンスのモデルは、十分に大規模なデータセットでトレーニングされた時に、誤ったプログラムを正しいプログラムに変換するために使われてきた。
いくつかの最近の研究は、コードレビューがプログラムの修復をさらに改善できるという強い実証的な証拠を示した。
PLとNLの本質的な知識が,プログラムの自動修復の改善に有効かどうかを検討する。
論文 参考訳(メタデータ) (2023-04-16T17:29:51Z) - KNOD: Domain Knowledge Distilled Tree Decoder for Automated Program
Repair [33.04645845117822]
APR(Automated Program repair)は、バグ修正プログラム用のパッチを自動生成することで、ソフトウェアの信頼性を向上させる。
最近のAPR技術は、ディープラーニング(DL)を利用して、既存のパッチやコードコーパスからパッチを生成するためのモデルを構築する。
本稿では,パッチ生成を直接的かつ包括的にガイドするために,ドメイン知識を取り入れたDLベースのAPRアプローチを提案する。
論文 参考訳(メタデータ) (2023-02-03T17:02:56Z) - Conversational Automated Program Repair [10.071615423169902]
本稿では,パッチ生成と検証を対話的に交互に行うプログラム修復のための新しいパラダイムを提案する。
我々は,大規模な事前学習型言語モデルの長期的コンテキストウインドウを活用して,以前の不正なパッチの生成を回避するだけでなく,検証フィードバックを取り入れて,テスト対象のプログラムの意味をモデルが理解できるようにする。
論文 参考訳(メタデータ) (2023-01-30T19:22:36Z) - Repair Is Nearly Generation: Multilingual Program Repair with LLMs [9.610685299268825]
Codexのようなコード(LLMC)でトレーニングされた大規模言語モデルを利用した多言語修復エンジンであるRingを紹介する。
プログラマが手動でバグを修正する方法からインスピレーションを得て、修復をローカライズ、トランスフォーメーション、候補ランキングとして概念化するプロンプトベースの戦略が、最小限の努力で複数のドメインでのプログラムの修復に成功できることを示す。
論文 参考訳(メタデータ) (2022-08-24T16:25:58Z) - BigIssue: A Realistic Bug Localization Benchmark [89.8240118116093]
BigIssueは、現実的なバグローカライゼーションのためのベンチマークである。
実際のJavaバグと合成Javaバグの多様性を備えた一般的なベンチマークを提供する。
われわれは,バグローカライゼーションの最先端技術として,APRの性能向上と,現代の開発サイクルへの適用性の向上を期待している。
論文 参考訳(メタデータ) (2022-07-21T20:17:53Z) - CodeRL: Mastering Code Generation through Pretrained Models and Deep
Reinforcement Learning [92.36705236706678]
CodeRLは、事前訓練されたLMと深層強化学習によるプログラム合成タスクのための新しいフレームワークである。
推論中、我々は重要なサンプリング戦略を持つ新しい生成手順を導入する。
モデルバックボーンについては,CodeT5のエンコーダデコーダアーキテクチャを拡張し,学習目標を拡張した。
論文 参考訳(メタデータ) (2022-07-05T02:42:15Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。