論文の概要: 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と同じコンテキスト情報を持つ)は、リポジトリのどれかを渡すことができない。
関連論文リスト
- CodeCloak: A Method for Evaluating and Mitigating Code Leakage by LLM Code Assistants [23.462703429753706]
LLMベースのコードアシスタントを使用する場合、コード漏洩のリスクを軽減するための2つの補完手法を提案する。
1つ目は、コードアシスタントサービスに送信されたコードセグメントから、開発者のオリジナルを再構築するテクニックである。
2つ目は、コードアシスタントサービスに送信する前にプロンプトを操作する、新しいディープ強化学習エージェントであるCodeCloakである。
論文 参考訳(メタデータ) (2024-04-13T19:30:58Z) - Iterative Refinement of Project-Level Code Context for Precise Code Generation with Compiler Feedback [29.136378191436396]
大規模言語モデル(LLM)は、コードの自動生成において顕著な進歩を示している。
しかし、LLMベースのコード生成を実際のソフトウェアプロジェクトに組み込むことが課題となっている。
本稿では,プロジェクトレベルのコードコンテキストを反復的に洗練するProCoderという新しいアプローチを提案する。
論文 参考訳(メタデータ) (2024-03-25T14:07:27Z) - 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) - CodeLL: A Lifelong Learning Dataset to Support the Co-Evolution of Data
and Language Models of Code [6.491009626125319]
コード変更に焦点を当てた生涯学習データセットであるCodeLLを紹介します。
私たちのデータセットは、オープンソースソフトウェアリポジトリのリリース履歴全体にわたるコード変更を包括的にキャプチャすることを目的としています。
CodeLLは、コード変更を学ぶための生涯にわたる微調整設定において、LMの振る舞いを研究することができる。
論文 参考訳(メタデータ) (2023-12-20T01:20:24Z) - ML-Bench: Evaluating Large Language Models for Code Generation in Repository-Level Machine Learning Tasks [76.85930757493409]
大規模言語モデル(LLM)は、コード生成ベンチマークの習熟度を示しているが、これらの結果を実用的な開発シナリオに変換することは依然として難しい。
ML-Benchは、レポジトリレベルのオープンソースライブラリを統合して機械学習タスクを完了させるLLMの機能を評価するために設計された、新しいベンチマークである。
以上の結果から, GPT-4は他のLSMよりも優れており, 課題の複雑さを浮き彫りにしたタスクは33.82%に過ぎなかった。
論文 参考訳(メタデータ) (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) - CodeT5+: Open Code Large Language Models for Code Understanding and
Generation [72.1638273937025]
大きな言語モデル (LLM) は膨大なソースコードで事前訓練されており、コードインテリジェンスにおいて顕著な進歩を遂げている。
CodeT5+は、コンポーネントモジュールを柔軟に組み合わせて、幅広い下流のコードタスクに適合させることができるコードのためのエンコーダ-デコーダLLMのファミリーである。
我々は、ゼロショット、微調整、命令調整を含む20以上のコード関連ベンチマークでCodeT5+を広範囲に評価した。
論文 参考訳(メタデータ) (2023-05-13T14:23:07Z) - Plan, Eliminate, and Track -- Language Models are Good Teachers for
Embodied Agents [99.17668730578586]
事前訓練された大言語モデル(LLM)は、世界に関する手続き的な知識をキャプチャする。
Plan, Eliminate, and Track (PET)フレームワークはタスク記述をハイレベルなサブタスクのリストに変換する。
PETフレームワークは、人間の目標仕様への一般化のために、SOTAよりも15%改善されている。
論文 参考訳(メタデータ) (2023-05-03T20:11:22Z) - RepoCoder: Repository-Level Code Completion Through Iterative Retrieval
and Generation [96.75695811963242]
RepoCoderはリポジトリレベルのコード補完プロセスを合理化するフレームワークである。
類似性ベースのレトリバーと、事前訓練されたコード言語モデルが組み込まれている。
バニラ検索で拡張されたコード補完アプローチよりも一貫して優れています。
論文 参考訳(メタデータ) (2023-03-22T13:54:46Z) - Jointly Learning to Repair Code and Generate Commit Message [78.4177637346384]
バグの多いコード、固定コード、新しいタスクのコミットメッセージを含む多言語3重データセットを構築した。
カスケード方式の誤り伝搬問題に対処するため,コード修復とコミットメッセージ生成の両立が可能なジョイントモデルを提案する。
実験結果から,教師学習法とマルチタスク学習法を併用した拡張カスケードモデルにより,自動コード修復のメトリクスの最良のスコアが得られた。
論文 参考訳(メタデータ) (2021-09-25T07:08:28Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。