論文の概要: Iterative Refinement of Project-Level Code Context for Precise Code Generation with Compiler Feedback
- arxiv url: http://arxiv.org/abs/2403.16792v2
- Date: Tue, 2 Apr 2024 08:17:12 GMT
- ステータス: 処理完了
- システム内更新日: 2024-04-04 07:48:16.655231
- Title: Iterative Refinement of Project-Level Code Context for Precise Code Generation with Compiler Feedback
- Title(参考訳): コンパイラフィードバックによる精密コード生成のためのプロジェクトレベルコードコンテキストの反復的リファインメント
- Authors: Zhangqian Bi, Yao Wan, Zheng Wang, Hongyu Zhang, Batu Guan, Fangxin Lu, Zili Zhang, Yulei Sui, Xuanhua Shi, Hai Jin,
- Abstract要約: 大規模言語モデル(LLM)は、コードの自動生成において顕著な進歩を示している。
しかし、LLMベースのコード生成を実際のソフトウェアプロジェクトに組み込むことが課題となっている。
本稿では,プロジェクトレベルのコードコンテキストを反復的に洗練するProCoderという新しいアプローチを提案する。
- 参考スコア(独自算出の注目度): 29.136378191436396
- License: http://creativecommons.org/licenses/by-nc-sa/4.0/
- Abstract: Large language models (LLMs) have shown remarkable progress in automated code generation. Yet, incorporating LLM-based code generation into real-life software projects poses challenges, as the generated code may contain errors in API usage, class, data structure, or missing project-specific information. As much of this project-specific context cannot fit into the prompts of LLMs, we must find ways to allow the model to explore the project-level code context. To this end, this paper puts forward a novel approach, termed ProCoder, which iteratively refines the project-level code context for precise code generation, guided by the compiler feedback. In particular, ProCoder first leverages compiler techniques to identify a mismatch between the generated code and the project's context. It then iteratively aligns and fixes the identified errors using information extracted from the code repository. We integrate ProCoder with two representative LLMs, i.e., GPT-3.5-Turbo and Code Llama (13B), and apply it to Python code generation. Experimental results show that ProCoder significantly improves the vanilla LLMs by over 80% in generating code dependent on project context, and consistently outperforms the existing retrieval-based code generation baselines.
- Abstract(参考訳): 大規模言語モデル(LLM)は、コードの自動生成において顕著な進歩を示している。
しかし、LLMベースのコード生成を実際のソフトウェアプロジェクトに組み込むことは、生成されたコードがAPIの使用、クラス、データ構造、プロジェクト固有の情報の欠如を含む可能性があるため、課題となる。
プロジェクト固有のコンテキストの多くはLCMのプロンプトに適合しないので、モデルがプロジェクトレベルのコードコンテキストを探索できるようにする方法を見つけなければなりません。
そこで本研究では,ProCoderと呼ばれる新しいアプローチを提案し,コンパイラフィードバックによって導かれる,正確なコード生成のためのプロジェクトレベルのコードコンテキストを反復的に洗練する。
特にProCoderは、まずコンパイラ技術を活用して、生成されたコードとプロジェクトのコンテキストのミスマッチを特定する。
その後、コードリポジトリから抽出された情報を使用して、識別されたエラーを反復的に調整し、修正する。
我々は ProCoder を GPT-3.5-Turbo と Code Llama (13B) の2つの代表的な LLM と統合し,Python コード生成に適用する。
実験の結果,ProCoderはプロジェクトコンテキストに依存したコード生成において,バニラLLMを80%以上改善し,既存の検索ベースコード生成ベースラインを一貫して上回っていることがわかった。
関連論文リスト
- VersiCode: Towards Version-controllable Code Generation [58.82709231906735]
VersiCodeは,大規模言語モデルが特定のライブラリのバージョンに対して検証可能なコードを生成する能力を評価するために設計された,最初の包括的なデータセットである。
バージョン別コード補完(VSCC)とバージョン別コード編集(VACE)の2つの専用評価タスクを設計する。
LLMのパフォーマンスをベンチマークするために総合的な実験が行われ、これらのタスクとVersiCodeの難しさを明らかにしている。
論文 参考訳(メタデータ) (2024-06-11T16:15:06Z) - Enhancing Repository-Level Code Generation with Integrated Contextual Information [8.58692613099365]
CatCoderは静的型付けプログラミング言語用に設計された新しいコード生成フレームワークである。
CatCoderは、関連するコードと型コンテキストを統合することで、リポジトリレベルのコード生成を強化する。
CatCoderは、pass@kスコアの点で、RepoCoderベースラインを最大17.35%上回っている。
論文 参考訳(メタデータ) (2024-06-05T13:56:42Z) - Benchmarking the Communication Competence of Code Generation for LLMs and LLM Agent [2.8391355909797644]
大規模言語モデル(LLM)は、コード生成の分野でタスクを実行する能力を大幅に改善した。
LLMが有能なプログラマであることと、最上位のソフトウェアエンジニアであることの間にはまだギャップがある。
論文 参考訳(メタデータ) (2024-05-31T22:06:18Z) - CodecLM: Aligning Language Models with Tailored Synthetic Data [51.59223474427153]
命令追従能力のための高品質な合成データを適応的に生成するフレームワークであるCodecLMを紹介する。
まず、ターゲットの指示分布をキャプチャするために、オンザフライで生成された簡潔なキーワードであるメタデータにシード命令をエンコードする。
また、デコード中に自己論理とコントラストフィルタを導入し、データ効率の良いサンプルを調整する。
論文 参考訳(メタデータ) (2024-04-08T21:15:36Z) - InfiCoder-Eval: Systematically Evaluating the Question-Answering Capabilities of Code Large Language Models [56.723509505549536]
InfiCoder-Evalは、コードのQAベンチマークである。
慎重に選択された234の高品質なStack Overflow質問で構成されており、15のプログラミング言語にまたがっている。
InfiCoder-Eval 上で 80 以上のコード LLM に対して,系統的な評価を行い,一連の知見を得た。
論文 参考訳(メタデータ) (2024-03-11T02:06:30Z) - 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) - Function-constrained Program Synthesis [12.55507214959886]
大規模言語モデル(LLM)は、開発環境で利用可能なすべてのコードを描画することで、リアルタイムでコードを生成することができる。
現在のシステムには効果的なリカバリ方法が欠如しており、ユーザーは十分な解に到達するまで、修正されたプロンプトでモデルを反復的に再起動せざるを得ない。
提案手法は,コード生成を明示的な関数集合に制約し,自動生成されたサブ関数を通じて失敗した試行からのリカバリを可能にする。
論文 参考訳(メタデータ) (2023-11-27T02:55:34Z) - Test-Case-Driven Programming Understanding in Large Language Models for
Better Code Generation [15.166827643436346]
muFiXは、大きな言語モデル(LLM)のコード生成性能を改善する新しいプロンプト技術である。
まず、テストケース分析を利用して仕様の理解を得、自己改善プロセスを可能にする。
muFiXはさらに、提供された理解と実際の理解の間のギャップを減らす方向に向けた仕様理解を修正している。
論文 参考訳(メタデータ) (2023-09-28T02:58:07Z) - Coarse-Tuning Models of Code with Reinforcement Learning Feedback [0.0]
コード上で事前訓練されたLarge Language Models (LLM) が、プログラム合成の主流のアプローチとして登場した。
コードの品質を評価する接地関数からのフィードバックを用いて、強化学習により事前学習したLLMをさらに訓練するRCCFを提案する。
論文 参考訳(メタデータ) (2023-05-25T22:09:08Z) - CoCoMIC: Code Completion By Jointly Modeling In-file and Cross-file
Context [82.88371379927112]
予め訓練されたコード LM 上で,ファイル内コンテキストとファイル内コンテキストを協調的に学習するための,クロスファイルコンテキストを組み込んだフレームワークを提案する。
CoCoMICは既存のコードLMを33.94%の精度で改善し、クロスファイルコンテキストが提供されるとコード補完のための識別子マッチングが28.69%増加した。
論文 参考訳(メタデータ) (2022-12-20T05:48:09Z) - ReACC: A Retrieval-Augmented Code Completion Framework [53.49707123661763]
本稿では,語彙のコピーと類似したセマンティクスを持つコード参照の両方を検索により活用する検索拡張コード補完フレームワークを提案する。
我々は,Python および Java プログラミング言語のコード補完タスクにおけるアプローチを評価し,CodeXGLUE ベンチマークで最先端のパフォーマンスを実現する。
論文 参考訳(メタデータ) (2022-03-15T08:25:08Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。