論文の概要: RLCoder: Reinforcement Learning for Repository-Level Code Completion
- arxiv url: http://arxiv.org/abs/2407.19487v1
- Date: Sun, 28 Jul 2024 12:47:20 GMT
- ステータス: 処理完了
- システム内更新日: 2024-07-30 17:52:40.908259
- Title: RLCoder: Reinforcement Learning for Repository-Level Code Completion
- Title(参考訳): RLCoder: リポジトリレベルのコード補完のための強化学習
- Authors: Yanlin Wang, Yanli Wang, Daya Guo, Jiachi Chen, Ruikai Zhang, Yuchi Ma, Zibin Zheng,
- Abstract要約: Repositoryレベルのコード補完は、指定されたリポジトリのコンテキスト内で未完成のコードスニペットのためのコードを生成することを目的としている。
既存のアプローチは主に、入力シーケンス長の制限による検索強化された生成戦略に依存している。
ラベル付きデータを必要とせずに、検索者がコード補完に有用なコンテンツを取得することができる新しい強化学習フレームワークであるRLCoderを提案する。
- 参考スコア(独自算出の注目度): 39.38066628941757
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: Repository-level code completion aims to generate code for unfinished code snippets within the context of a specified repository. Existing approaches mainly rely on retrieval-augmented generation strategies due to limitations in input sequence length. However, traditional lexical-based retrieval methods like BM25 struggle to capture code semantics, while model-based retrieval methods face challenges due to the lack of labeled data for training. Therefore, we propose RLCoder, a novel reinforcement learning framework, which can enable the retriever to learn to retrieve useful content for code completion without the need for labeled data. Specifically, we iteratively evaluate the usefulness of retrieved content based on the perplexity of the target code when provided with the retrieved content as additional context, and provide feedback to update the retriever parameters. This iterative process enables the retriever to learn from its successes and failures, gradually improving its ability to retrieve relevant and high-quality content. Considering that not all situations require information beyond code files and not all retrieved context is helpful for generation, we also introduce a stop signal mechanism, allowing the retriever to decide when to retrieve and which candidates to retain autonomously. Extensive experimental results demonstrate that RLCoder consistently outperforms state-of-the-art methods on CrossCodeEval and RepoEval, achieving 12.2% EM improvement over previous methods. Moreover, experiments show that our framework can generalize across different programming languages and further improve previous methods like RepoCoder. We provide the code and data at https://github.com/DeepSoftwareAnalytics/RLCoder.
- Abstract(参考訳): Repositoryレベルのコード補完は、指定されたリポジトリのコンテキスト内で未完成のコードスニペットのためのコードを生成することを目的としている。
既存のアプローチは主に、入力シーケンス長の制限による検索強化された生成戦略に依存している。
しかし、BM25のような従来の語彙ベースの検索手法は、コードセマンティクスを捉えるのに苦労する一方で、モデルベースの検索手法は、トレーニングのためのラベル付きデータがないため、課題に直面している。
そこで提案するRLCoderは,ラベル付きデータを必要とせずに,検索者がコード補完に有用なコンテンツを取得することができる新しい強化学習フレームワークである。
具体的には、検索したコンテンツを追加のコンテキストとして提供した場合、対象コードの難易度に基づいて検索したコンテンツの有用性を反復的に評価し、検索パラメータを更新するためのフィードバックを提供する。
この反復的なプロセスにより、レトリバーはその成功と失敗から学び、関連性のある高品質なコンテンツを取得する能力を徐々に改善する。
全ての状況がコードファイル以上の情報を必要としているわけではなく、すべての検索コンテキストが生成に有用であるわけではないことを考慮し、検索者がいつ、どの候補を自律的に保持するかを判断できるように、停止信号機構も導入する。
大規模な実験結果によると、RLCoderはCrossCodeEvalとRepoEvalの最先端メソッドを一貫して上回り、従来の方法よりも12.2%のEM改善を実現している。
さらに、実験により、我々のフレームワークは様々なプログラミング言語にまたがって一般化し、RepoCoderのような従来の手法をさらに改善できることが示されている。
私たちはhttps://github.com/DeepSoftwareAnalytics/RLCoderでコードとデータを提供します。
関連論文リスト
- Learning to Retrieve Iteratively for In-Context Learning [56.40100968649039]
イテレーティブ検索は、ポリシー最適化によるイテレーティブな意思決定を可能にする、新しいフレームワークである。
テキスト内学習例を構成するための反復型検索器をインスタンス化し,様々な意味解析タスクに適用する。
ステートエンコーディングのためのパラメータを4M追加するだけで、オフザシェルフの高密度レトリバーをステートフル反復レトリバーに変換する。
論文 参考訳(メタデータ) (2024-06-20T21:07:55Z) - GraphCoder: Enhancing Repository-Level Code Completion via Code Context Graph-based Retrieval and Language Model [30.625128161499195]
GraphCoderは検索拡張コード補完フレームワークである。
一般的なコード知識と、グラフベースの検索生成プロセスを通じてリポジトリ固有の知識を使用する。
コードマッチでは+6.06、識別子マッチでは+6.23となり、時間と空間は少ない。
論文 参考訳(メタデータ) (2024-06-11T06:55:32Z) - Dataflow-Guided Retrieval Augmentation for Repository-Level Code Completion [17.4397495929138]
本稿では,リポジトリレベルのコード補完のためのデータフロー誘導型検索拡張手法DraCoを提案する。
実験では、DraCoの精度と適用効率が向上し、コード精度が3.43%向上し、識別子F1スコアが平均3.27%向上した。
論文 参考訳(メタデータ) (2024-05-30T07:48:00Z) - Repoformer: Selective Retrieval for Repository-Level Code Completion [30.706277772743615]
検索強化生成(RAG)の最近の進歩は、リポジトリレベルのコード補完の新たな時代が始まった。
本稿では,不要な場合の検索を回避するため,選択的なRAGフレームワークを提案する。
我々のフレームワークは、異なる世代モデル、レトリバー、プログラミング言語に対応できることを示します。
論文 参考訳(メタデータ) (2024-03-15T06:59:43Z) - ReFIT: Relevance Feedback from a Reranker during Inference [109.33278799999582]
Retrieve-and-Rerankは、ニューラル情報検索の一般的なフレームワークである。
本稿では,リランカを利用してリコールを改善する手法を提案する。
論文 参考訳(メタデータ) (2023-05-19T15:30:33Z) - RepoCoder: Repository-Level Code Completion Through Iterative Retrieval
and Generation [96.75695811963242]
RepoCoderはリポジトリレベルのコード補完プロセスを合理化するフレームワークである。
類似性ベースのレトリバーと、事前訓練されたコード言語モデルが組み込まれている。
バニラ検索で拡張されたコード補完アプローチよりも一貫して優れています。
論文 参考訳(メタデータ) (2023-03-22T13:54:46Z) - Enhancing Semantic Code Search with Multimodal Contrastive Learning and
Soft Data Augmentation [50.14232079160476]
コード検索のためのマルチモーダルコントラスト学習とソフトデータ拡張を用いた新しい手法を提案する。
我々は,6つのプログラミング言語を用いた大規模データセットにおけるアプローチの有効性を評価するために,広範囲な実験を行った。
論文 参考訳(メタデータ) (2022-04-07T08:49:27Z) - ReACC: A Retrieval-Augmented Code Completion Framework [53.49707123661763]
本稿では,語彙のコピーと類似したセマンティクスを持つコード参照の両方を検索により活用する検索拡張コード補完フレームワークを提案する。
我々は,Python および Java プログラミング言語のコード補完タスクにおけるアプローチを評価し,CodeXGLUE ベンチマークで最先端のパフォーマンスを実現する。
論文 参考訳(メタデータ) (2022-03-15T08:25:08Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。