論文の概要: CodePlan: Repository-level Coding using LLMs and Planning
- arxiv url: http://arxiv.org/abs/2309.12499v1
- Date: Thu, 21 Sep 2023 21:45:17 GMT
- ステータス: 処理完了
- システム内更新日: 2023-10-23 06:38:41.668293
- Title: CodePlan: Repository-level Coding using LLMs and Planning
- Title(参考訳): CodePlan: LLMを使ったリポジトリレベルのコーディングと計画
- Authors: Ramakrishna Bairi, Atharv Sonwane, Aditya Kanade, Vageesh D C, Arun
Iyer, Suresh Parthasarathy, Sriram Rajamani, B. Ashok, Shashank Shet
- Abstract要約: 私たちは、リポジトリレベルのコーディングを計画上の問題として捉え、CodePlanと呼ばれるタスクに依存しないフレームワークを提示します。
パッケージマイグレーション(C#)と時間コード編集(Python)の2つのリポジトリレベルタスクにおけるCodePlanの有効性を評価する。
以上の結果から,CodePlanはベースラインよりも真実と一致していることがわかった。
- 参考スコア(独自算出の注目度): 5.987469779811903
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: Software engineering activities such as package migration, fixing errors
reports from static analysis or testing, and adding type annotations or other
specifications to a codebase, involve pervasively editing the entire repository
of code. We formulate these activities as repository-level coding tasks.
Recent tools like GitHub Copilot, which are powered by Large Language Models
(LLMs), have succeeded in offering high-quality solutions to localized coding
problems. Repository-level coding tasks are more involved and cannot be solved
directly using LLMs, since code within a repository is inter-dependent and the
entire repository may be too large to fit into the prompt. We frame
repository-level coding as a planning problem and present a task-agnostic
framework, called CodePlan to solve it. CodePlan synthesizes a multi-step chain
of edits (plan), where each step results in a call to an LLM on a code location
with context derived from the entire repository, previous code changes and
task-specific instructions. CodePlan is based on a novel combination of an
incremental dependency analysis, a change may-impact analysis and an adaptive
planning algorithm.
We evaluate the effectiveness of CodePlan on two repository-level tasks:
package migration (C#) and temporal code edits (Python). Each task is evaluated
on multiple code repositories, each of which requires inter-dependent changes
to many files (between 2-97 files). Coding tasks of this level of complexity
have not been automated using LLMs before. Our results show that CodePlan has
better match with the ground truth compared to baselines. CodePlan is able to
get 5/6 repositories to pass the validity checks (e.g., to build without errors
and make correct code edits) whereas the baselines (without planning but with
the same type of contextual information as CodePlan) cannot get any of the
repositories to pass them.
- Abstract(参考訳): パッケージマイグレーション、静的解析やテストからのエラーレポートの修正、コードベースへの型アノテーションや他の仕様の追加といったソフトウェアエンジニアリング活動には、コードのリポジトリ全体を広く編集することが含まれる。
これらのアクティビティをリポジトリレベルのコーディングタスクとして定式化する。
大規模言語モデル(LLM)を活用したGitHub Copilotのような最近のツールは、ローカライズされたコーディング問題に対する高品質なソリューションの提供に成功している。
リポジトリ内のコードは相互依存しており、リポジトリ全体が大きすぎてプロンプトに収まらないため、リポジトリレベルのコーディングタスクはより複雑で、LSMを使って直接解決できない。
リポジトリレベルのコーディングを計画問題として構成し、それを解決するためにcodeplanと呼ばれるタスクに依存しないフレームワークを提示します。
CodePlanは複数ステップの編集(計画)の連鎖を合成し、各ステップはリポジトリ全体、以前のコード変更、タスク固有の命令から派生したコンテキストで、コードロケーション上のLCMへの呼び出しを出力する。
codeplanは、インクリメンタルな依存性分析、変更可能な影響分析、適応的計画アルゴリズムの新たな組み合わせに基づいている。
パッケージマイグレーション(C#)と時間コード編集(Python)の2つのリポジトリレベルタスクにおけるCodePlanの有効性を評価する。
各タスクは複数のコードリポジトリ上で評価され、各タスクは複数のファイル(2-97ファイル)に対する相互依存的な変更を必要とする。
このレベルの複雑さのコーディングタスクは、これまでLLMを使用して自動化されていなかった。
以上の結果から,CodePlanはベースラインよりも真実と一致していることがわかった。
codeplanは5/6のレポジトリに妥当性チェック(例えば、エラーなしでビルドし、正しいコード編集を行う)を渡すことができるが、ベースライン(計画がないが、codeplanと同じコンテキスト情報を持つ)は、リポジトリのどれかを渡すことができない。
関連論文リスト
- CodeUpdateArena: Benchmarking Knowledge Editing on API Updates [77.81663273436375]
コードドメインの知識編集のためのベンチマークであるCodeUpdateArenaを提示する。
私たちのベンチマークのインスタンスは、プログラム合成例と組み合わせた合成API関数のアップデートで構成されています。
ベンチマークでは、7つのPythonパッケージから54の関数へ、さまざまなタイプの更新をカバーしています。
論文 参考訳(メタデータ) (2024-07-08T17:55:04Z) - Hierarchical Context Pruning: Optimizing Real-World Code Completion with Repository-Level Pretrained Code LLMs [24.00351065427465]
本稿では,階層型コンテキストプルーニング(HCP)という戦略を提案し,高い情報量を持つコンプリートプロンプトを構築する。
HCPは関数レベルでコードリポジトリをモデル化し、コードファイル間のトポロジ的な依存関係を維持しながら、大量の無関係なコードコンテンツを削除する。
論文 参考訳(メタデータ) (2024-06-26T12:26:16Z) - Long Code Arena: a Set of Benchmarks for Long-Context Code Models [75.70507534322336]
Long Code Arenaは、プロジェクト全体のコンテキストを必要とするコード処理タスクのための6つのベンチマークスイートである。
これらのタスクは、ライブラリベースのコード生成、CIビルドの修復、プロジェクトレベルのコード補完、コミットメッセージ生成、バグローカライゼーション、モジュールの要約といった、コード処理のさまざまな側面をカバーする。
各タスクに対して、テスト用の手作業によるデータセット、評価スイート、オープンソースのベースラインソリューションを提供しています。
論文 参考訳(メタデータ) (2024-06-17T14:58:29Z) - REPOEXEC: Evaluate Code Generation with a Repository-Level Executable Benchmark [5.641402231731082]
RepoExecは、リポジトリレベルのスケールでコード生成を評価するための新しいベンチマークである。
RepoExecは、実行可能性、カバレッジ率の高い自動テストケース生成による機能的正しさ、コードを正確に生成するクロスファイルコンテキストの3つの主な側面に焦点を当てている。
論文 参考訳(メタデータ) (2024-06-17T10:45:22Z) - VersiCode: Towards Version-controllable Code Generation [58.82709231906735]
VersiCodeは,大規模言語モデルが特定のライブラリのバージョンに対して検証可能なコードを生成する能力を評価するために設計された,最初の包括的なデータセットである。
バージョン別コード補完(VSCC)とバージョン別コード編集(VACE)の2つの専用評価タスクを設計する。
LLMのパフォーマンスをベンチマークするために総合的な実験が行われ、これらのタスクとVersiCodeの難しさを明らかにしている。
論文 参考訳(メタデータ) (2024-06-11T16:15:06Z) - How to Understand Whole Software Repository? [64.19431011897515]
リポジトリ全体に対する優れた理解は、自動ソフトウェアエンジニアリング(ASE)への重要な道になるでしょう。
本研究では,リポジトリ全体を包括的に理解するためのエージェントによるRepoUnderstanderという新しい手法を開発した。
リポジトリレベルの知識をより活用するために、エージェントをまとめ、分析し、計画する。
論文 参考訳(メタデータ) (2024-06-03T15:20:06Z) - Iterative Refinement of Project-Level Code Context for Precise Code Generation with Compiler Feedback [29.136378191436396]
我々は,コンパイラフィードバックを用いてLLM生成コードを改善する新しいコード生成手法であるCoCoGenを提案する。
CoCoGenは、まず静的解析を利用して、生成されたコードとプロジェクトのコンテキストのミスマッチを特定する。
その後、コードリポジトリから抽出された情報を使用して、識別されたエラーを反復的に調整し、修正する。
論文 参考訳(メタデータ) (2024-03-25T14:07:27Z) - ML-Bench: Evaluating Large Language Models and Agents for Machine Learning Tasks on Repository-Level Code [76.84199699772903]
ML-Benchは、既存のコードリポジトリを利用してタスクを実行する現実世界のプログラミングアプリケーションに根ざしたベンチマークである。
LLM(Large Language Model)とAIエージェントの両方を評価するために、事前に定義されたデプロイメント環境でLLMのテキスト-コード変換を評価するML-LLM-Benchと、Linuxサンドボックス環境でエンドツーエンドのタスク実行で自律エージェントをテストするML-Agent-Benchの2つの設定が採用されている。
論文 参考訳(メタデータ) (2023-11-16T12:03:21Z) - InstructCoder: Instruction Tuning Large Language Models for Code Editing [26.160498475809266]
ユーザインストラクションに基づいたコード編集にLLM(Large Language Models)を用いる方法について検討する。
InstructCoderは、汎用コード編集にLLMを適用するために設計された最初の命令チューニングデータセットである。
InstructCoderで微調整されたオープンソースのLLMは、コード編集の精度を大幅に向上させることができる。
論文 参考訳(メタデータ) (2023-10-31T10:15:35Z) - RepoCoder: Repository-Level Code Completion Through Iterative Retrieval
and Generation [96.75695811963242]
RepoCoderはリポジトリレベルのコード補完プロセスを合理化するフレームワークである。
類似性ベースのレトリバーと、事前訓練されたコード言語モデルが組み込まれている。
バニラ検索で拡張されたコード補完アプローチよりも一貫して優れています。
論文 参考訳(メタデータ) (2023-03-22T13:54:46Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。