論文の概要: GraphCoder: Enhancing Repository-Level Code Completion via Code Context Graph-based Retrieval and Language Model
- arxiv url: http://arxiv.org/abs/2406.07003v2
- Date: Fri, 13 Sep 2024 07:19:16 GMT
- ステータス: 処理完了
- システム内更新日: 2024-09-16 23:07:35.891349
- Title: GraphCoder: Enhancing Repository-Level Code Completion via Code Context Graph-based Retrieval and Language Model
- Title(参考訳): GraphCoder: コードコンテキストグラフベースの検索と言語モデルによるリポジトリレベルのコード補完の強化
- Authors: Wei Liu, Ailun Yu, Daoguang Zan, Bo Shen, Wei Zhang, Haiyan Zhao, Zhi Jin, Qianxiang Wang,
- Abstract要約: GraphCoderは検索拡張コード補完フレームワークである。
一般的なコード知識と、グラフベースの検索生成プロセスを通じてリポジトリ固有の知識を使用する。
コードマッチでは+6.06、識別子マッチでは+6.23となり、時間と空間は少ない。
- 参考スコア(独自算出の注目度): 30.625128161499195
- License: http://creativecommons.org/licenses/by-nc-sa/4.0/
- Abstract: The performance of repository-level code completion depends upon the effective leverage of both general and repository-specific knowledge. Despite the impressive capability of code LLMs in general code completion tasks, they often exhibit less satisfactory performance on repository-level completion due to the lack of repository-specific knowledge in these LLMs. To address this problem, we propose GraphCoder, a retrieval-augmented code completion framework that leverages LLMs' general code knowledge and the repository-specific knowledge via a graph-based retrieval-generation process. In particular, GraphCoder captures the context of completion target more accurately through code context graph (CCG) that consists of control-flow, data- and control-dependence between code statements, a more structured way to capture the completion target context than the sequence-based context used in existing retrieval-augmented approaches; based on CCG, GraphCoder further employs a coarse-to-fine retrieval process to locate context-similar code snippets with the completion target from the current repository. Experimental results demonstrate both the effectiveness and efficiency of GraphCoder: Compared to baseline retrieval-augmented methods, GraphCoder achieves higher exact match (EM) on average, with increases of +6.06 in code match and +6.23 in identifier match, while using less time and space.
- Abstract(参考訳): リポジトリレベルのコード補完のパフォーマンスは、一般的な知識とリポジトリ固有の知識の両方を効果的に活用することに依存する。
一般的なコード補完タスクにおけるLLMの印象的な能力にもかかわらず、レポジトリ固有の知識が欠如しているため、レポジトリレベルのコンプリートではパフォーマンスが不十分であることが多い。
この問題に対処するため,グラフベースの検索生成プロセスを通じてLLMの一般的なコード知識とリポジトリ固有の知識を活用する検索拡張コード補完フレームワークであるGraphCoderを提案する。
特に、GraphCoderは、コードステートメント間の制御フロー、データ、制御依存性で構成されるコードコンテキストグラフ(CCG)を通じて、補完対象のコンテキストをより正確にキャプチャする。既存の検索拡張アプローチで使用されるシーケンスベースのコンテキストよりも、補完対象のコンテキストをキャプチャする構造的な方法である。
GraphCoderは、ベースライン検索で拡張されたメソッドと比較して、コードマッチングでは+6.06、識別子マッチでは+6.23、時間と空間では+6.23という高い精度のマッチング(EM)を達成する。
関連論文リスト
- Codev-Bench: How Do LLMs Understand Developer-Centric Code Completion? [60.84912551069379]
Code-Development Benchmark (Codev-Bench)は、細粒度で現実世界、リポジトリレベル、開発者中心の評価フレームワークです。
Codev-Agentは、リポジトリのクローリングを自動化し、実行環境を構築し、既存のユニットテストから動的呼び出しチェーンを抽出し、データ漏洩を避けるために新しいテストサンプルを生成するエージェントベースのシステムである。
論文 参考訳(メタデータ) (2024-10-02T09:11:10Z) - CodexGraph: Bridging Large Language Models and Code Repositories via Code Graph Databases [13.733229886643041]
大きな言語モデル(LLM)は、HumanEvalやMBPPのようなスタンドアロンのコードタスクに優れていますが、コードリポジトリ全体の処理に苦労しています。
類似性に基づく検索は複雑なタスクではリコールが低いことが多いが、手動ツールやAPIは通常タスク固有であり、専門家の知識を必要とする。
我々は,LLMエージェントをコードリポジトリから抽出したグラフデータベースインターフェースと統合するシステムであるCodexGraphを紹介する。
論文 参考訳(メタデータ) (2024-08-07T17:13:59Z) - Hierarchical Context Pruning: Optimizing Real-World Code Completion with Repository-Level Pretrained Code LLMs [24.00351065427465]
本稿では,階層型コンテキストプルーニング(HCP)という戦略を提案し,高い情報量を持つコンプリートプロンプトを構築する。
HCPは関数レベルでコードリポジトリをモデル化し、コードファイル間のトポロジ的な依存関係を維持しながら、大量の無関係なコードコンテンツを削除する。
論文 参考訳(メタデータ) (2024-06-26T12:26:16Z) - On the Impacts of Contexts on Repository-Level Code Generation [5.641402231731082]
リポジトリレベルのコード生成を評価するために設計された新しいベンチマークである textbfmethodnamews を提案する。
実行可能性、包括的なテストケース生成による機能的正当性、ファイル間のコンテキストの正確な利用という3つの重要な側面に注目します。
論文 参考訳(メタデータ) (2024-06-17T10:45:22Z) - On The Importance of Reasoning for Context Retrieval in Repository-Level Code Editing [82.96523584351314]
我々は、コンテキスト検索のタスクをリポジトリレベルのコード編集パイプラインの他のコンポーネントと分離する。
我々は、推論が収集された文脈の精度を向上させるのに役立っているが、それでもその十分性を識別する能力は欠如していると結論づける。
論文 参考訳(メタデータ) (2024-06-06T19:44:17Z) - Dataflow-Guided Retrieval Augmentation for Repository-Level Code Completion [17.4397495929138]
本稿では,リポジトリレベルのコード補完のためのデータフロー誘導型検索拡張手法DraCoを提案する。
実験では、DraCoの精度と適用効率が向上し、コード精度が3.43%向上し、識別子F1スコアが平均3.27%向上した。
論文 参考訳(メタデータ) (2024-05-30T07:48:00Z) - RepoHyper: Search-Expand-Refine on Semantic Graphs for Repository-Level Code Completion [12.173834895070827]
Toolは、リポジトリレベルのコード補完に関連する複雑な問題に対処するために設計されたフレームワークである。
Em Repoレベルセマンティックグラフ(RSG)は、コードリポジトリの広大なコンテキストをカプセル化する、新しいセマンティックグラフ構造である。
評価の結果,ツールがリポジトリレベルのコード補完において,既存のテクニックを著しく上回っていることが明らかとなった。
論文 参考訳(メタデータ) (2024-03-10T05:10:34Z) - StepCoder: Improve Code Generation with Reinforcement Learning from
Compiler Feedback [58.20547418182074]
2つの主要コンポーネントからなるコード生成の新しいフレームワークであるStepCoderを紹介します。
CCCSは、長いシーケンスのコード生成タスクをCurriculum of Code Completion Subtaskに分割することで、探索課題に対処する。
FGOは、未実行のコードセグメントをマスクすることでのみモデルを最適化し、Fine-Grained Optimizationを提供する。
提案手法は,出力空間を探索し,対応するベンチマークにおいて最先端の手法より優れた性能を発揮する。
論文 参考訳(メタデータ) (2024-02-02T13:14:31Z) - LongCoder: A Long-Range Pre-trained Language Model for Code Completion [56.813974784131624]
LongCoderは自己アテンションにスライディングウィンドウ機構を採用し、グローバルアクセス可能なトークンを2種類導入している。
ブリッジトークンは入力シーケンス全体を通して挿入され、ローカル情報を集約し、グローバルな相互作用を促進する。
メモリトークンは、後で呼び出され、記憶する必要がある重要なステートメントをハイライトするために含まれます。
論文 参考訳(メタデータ) (2023-06-26T17:59:24Z) - RepoCoder: Repository-Level Code Completion Through Iterative Retrieval
and Generation [96.75695811963242]
RepoCoderはリポジトリレベルのコード補完プロセスを合理化するフレームワークである。
類似性ベースのレトリバーと、事前訓練されたコード言語モデルが組み込まれている。
バニラ検索で拡張されたコード補完アプローチよりも一貫して優れています。
論文 参考訳(メタデータ) (2023-03-22T13:54:46Z) - ReACC: A Retrieval-Augmented Code Completion Framework [53.49707123661763]
本稿では,語彙のコピーと類似したセマンティクスを持つコード参照の両方を検索により活用する検索拡張コード補完フレームワークを提案する。
我々は,Python および Java プログラミング言語のコード補完タスクにおけるアプローチを評価し,CodeXGLUE ベンチマークで最先端のパフォーマンスを実現する。
論文 参考訳(メタデータ) (2022-03-15T08:25:08Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。