論文の概要: 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と同じコンテキスト情報を持つ)は、リポジトリのどれかを渡すことができない。
関連論文リスト
- Interactive and Expressive Code-Augmented Planning with Large Language Models [62.799579304821826]
大きな言語モデル(LLM)は、常識的推論と対話的な意思決定において強力な能力を示す。
近年,制御フローなどのコード・アジャセント技術を用いてLCM出力を構造化し,計画性能を向上させる技術が提案されている。
完全コード表現で動的なLEM計画手法であるREPL-Planを提案する。
論文 参考訳(メタデータ) (2024-11-21T04:23:17Z) - Unlocking Reasoning Potential in Large Langauge Models by Scaling Code-form Planning [94.76546523689113]
CodePlanは、テキストコード形式の計画を生成し、追跡するフレームワークで、高いレベルの構造化された推論プロセスの概要を擬似コードで示します。
CodePlanは、洗練された推論タスク固有のリッチなセマンティクスと制御フローを効果的にキャプチャする。
反応を直接生成するのに比べて25.1%の相対的な改善が達成されている。
論文 参考訳(メタデータ) (2024-09-19T04:13:58Z) - 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) - 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) - VersiCode: Towards Version-controllable Code Generation [58.82709231906735]
大規模言語モデル(LLM)は、コード生成において大きな進歩を遂げていますが、既存の研究は、ソフトウェア開発の動的な性質を説明できません。
バージョン別コード補完(VSCC)とバージョン別コードマイグレーション(VACM)の2つの新しいタスクを提案する。
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) - 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)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。