論文の概要: Hierarchical Context Pruning: Optimizing Real-World Code Completion with Repository-Level Pretrained Code LLMs
- arxiv url: http://arxiv.org/abs/2406.18294v2
- Date: Thu, 27 Jun 2024 04:40:52 GMT
- ステータス: 処理完了
- システム内更新日: 2024-06-28 12:59:10.940740
- Title: Hierarchical Context Pruning: Optimizing Real-World Code Completion with Repository-Level Pretrained Code LLMs
- Title(参考訳): 階層型コンテキストプルーニング - Repository-Level Pretrained Code LLMによる実世界のコード補完の最適化
- Authors: Lei Zhang, Yunshui Li, Jiaming Li, Xiaobo Xia, Jiaxi Yang, Run Luo, Minzheng Wang, Longze Chen, Junhao Liu, Min Yang,
- Abstract要約: 本稿では,階層型コンテキストプルーニング(HCP)という戦略を提案し,高い情報量を持つコンプリートプロンプトを構築する。
HCPは関数レベルでコードリポジトリをモデル化し、コードファイル間のトポロジ的な依存関係を維持しながら、大量の無関係なコードコンテンツを削除する。
- 参考スコア(独自算出の注目度): 24.00351065427465
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: Some recently developed code large language models (Code LLMs) have been pre-trained on repository-level code data (Repo-Code LLMs), enabling these models to recognize repository structures and utilize cross-file information for code completion. However, in real-world development scenarios, simply concatenating the entire code repository often exceeds the context window limits of these Repo-Code LLMs, leading to significant performance degradation. In this study, we conducted extensive preliminary experiments and analyses on six Repo-Code LLMs. The results indicate that maintaining the topological dependencies of files and increasing the code file content in the completion prompts can improve completion accuracy; pruning the specific implementations of functions in all dependent files does not significantly reduce the accuracy of completions. Based on these findings, we proposed a strategy named Hierarchical Context Pruning (HCP) to construct completion prompts with high informational code content. The HCP models the code repository at the function level, maintaining the topological dependencies between code files while removing a large amount of irrelevant code content, significantly reduces the input length for repository-level code completion. We applied the HCP strategy in experiments with six Repo-Code LLMs, and the results demonstrate that our proposed method can significantly enhance completion accuracy while substantially reducing the length of input. Our code and data are available at https://github.com/Hambaobao/HCP-Coder.
- Abstract(参考訳): 最近開発されたコード大言語モデル(Code LLM)はリポジトリレベルのコードデータ(Repo-Code LLM)で事前トレーニングされており、リポジトリ構造を認識し、コード補完にクロスファイル情報を利用することができる。
しかし、実際の開発シナリオでは、単にコードリポジトリ全体を結合するだけで、Repo-Code LLMのコンテキストウィンドウ限界を超え、パフォーマンスが大幅に低下する。
本研究では,6つのRepo-Code LLMの予備実験と解析を行った。
その結果、ファイルのトポロジ的依存関係を維持し、コンプリートプロンプトでコードファイルの内容を増やすことで、コンプリート精度が向上することが示唆された。
これらの知見に基づいて,高情報コードコンテンツを用いたコンプリートプロンプト構築のための階層型コンテキストプルーニング(HCP)という戦略を提案した。
HCPは関数レベルでコードリポジトリをモデル化し、コードファイル間のトポロジ的な依存関係を維持しながら、大量の無関係なコードコンテンツを取り除き、リポジトリレベルのコード補完の入力長を大幅に削減します。
その結果,提案手法は入力長を大幅に削減しつつ,完了精度を大幅に向上させることができることを示した。
私たちのコードとデータはhttps://github.com/Hambaobao/HCP-Coder.orgで公開されています。
関連論文リスト
- OpenCoder: The Open Cookbook for Top-Tier Code Large Language Models [70.72097493954067]
コードのための大規模言語モデル(LLM)は、コード生成、推論タスク、エージェントシステムなど、さまざまな領域で必須になっている。
オープンアクセスのコード LLM はプロプライエタリなモデルの性能レベルに近づきつつあるが、高品質なコード LLM は依然として限られている。
トップクラスのコードLLMであるOpenCoderは、主要なモデルに匹敵するパフォーマンスを達成するだけでなく、研究コミュニティの"オープンクックブック"としても機能します。
論文 参考訳(メタデータ) (2024-11-07T17:47:25Z) - Codev-Bench: How Do LLMs Understand Developer-Centric Code Completion? [60.84912551069379]
Code-Development Benchmark (Codev-Bench)は、細粒度で現実世界、リポジトリレベル、開発者中心の評価フレームワークです。
Codev-Agentは、リポジトリのクローリングを自動化し、実行環境を構築し、既存のユニットテストから動的呼び出しチェーンを抽出し、データ漏洩を避けるために新しいテストサンプルを生成するエージェントベースのシステムである。
論文 参考訳(メタデータ) (2024-10-02T09:11:10Z) - On the Impacts of Contexts on Repository-Level Code Generation [5.641402231731082]
リポジトリレベルのコード生成を評価するために設計された新しいベンチマークである textbfmethodnamews を提案する。
実行可能性、包括的なテストケース生成による機能的正当性、ファイル間のコンテキストの正確な利用という3つの重要な側面に注目します。
論文 参考訳(メタデータ) (2024-06-17T10:45:22Z) - 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) - RepoHyper: Search-Expand-Refine on Semantic Graphs for Repository-Level Code Completion [12.173834895070827]
Toolは、リポジトリレベルのコード補完に関連する複雑な問題に対処するために設計されたフレームワークである。
Em Repoレベルセマンティックグラフ(RSG)は、コードリポジトリの広大なコンテキストをカプセル化する、新しいセマンティックグラフ構造である。
評価の結果,ツールがリポジトリレベルのコード補完において,既存のテクニックを著しく上回っていることが明らかとなった。
論文 参考訳(メタデータ) (2024-03-10T05:10:34Z) - Enhancing LLM-Based Coding Tools through Native Integration of
IDE-Derived Static Context [41.91246546266515]
我々は,統合開発環境(IDE)がリポジトリレベルのコード補完のために,直接的かつ正確かつリアルタイムなクロスファイル情報を提供できると主張している。
本稿では,IDEネイティブな静的コンテキストをクロスコンテキスト構築に利用し,自己再定義のための診断結果を生成するフレームワークを提案する。
論文 参考訳(メタデータ) (2024-02-06T01:59:41Z) - 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) - SparseCoder: Identifier-Aware Sparse Transformer for File-Level Code
Summarization [51.67317895094664]
本稿では,大規模なソースコードプロジェクトの理解と維持を支援するファイルレベルのコード要約について検討する。
長いコードシーケンスを効果的に処理するための識別子対応スパース変換器であるSparseCoderを提案する。
論文 参考訳(メタデータ) (2024-01-26T09:23:27Z) - 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)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。