論文の概要: Teaching Code LLMs to Use Autocompletion Tools in Repository-Level Code
Generation
- arxiv url: http://arxiv.org/abs/2401.06391v1
- Date: Fri, 12 Jan 2024 06:03:56 GMT
- ステータス: 処理完了
- システム内更新日: 2024-01-15 20:20:12.046570
- Title: Teaching Code LLMs to Use Autocompletion Tools in Repository-Level Code
Generation
- Title(参考訳): リポジトリレベルコード生成における自動補完ツールの使い方
- Authors: Chong Wang and Jian Zhang and Yebo Feng and Tianlin Li and Weisong Sun
and Yang Liu and Xin Peng
- Abstract要約: ToolGenは、自動補完ツールをコードLLM生成プロセスに統合するアプローチである。
オフラインフェーズでは、ToolGenは特定のコードコーパス内の機能を特別なマークトークンで拡張し、自動補完ツールを起動する位置を示す。
オンラインフェーズでは、ToolGenは、微調整LDMを使用してトークンを段階的に予測することで、関数を反復的に生成する。
- 参考スコア(独自算出の注目度): 16.236502156508877
- License: http://creativecommons.org/licenses/by/4.0/
- Abstract: Recent code large language models (LLMs) have shown promising performance in
generating standalone functions but face limitations in repository-level code
generation due to their lack of awareness of repository-level dependencies
(e.g., user-defined attributes), resulting in dependency errors such as
undefined-variable and no-member errors. In this work, we introduce ToolGen, an
approach that integrates autocompletion tools into the code LLM generation
process to address these dependencies. ToolGen comprises two main phases: Data
Augmentation and Model Fine-tuning (Offline), and Tool-integrated Code
Generation (Online). During the offline phase, ToolGen augments functions
within a given code corpus with a special mark token, indicating positions to
trigger autocompletion tools. These augmented functions, along with their
corresponding docstrings, are then used to fine-tune a selected code LLM. In
the online phase, ToolGen iteratively generates functions by predicting tokens
step-by-step using the fine-tuned LLM. Whenever a mark token is encountered,
ToolGen invokes the autocompletion tool to suggest code completions and selects
the most appropriate one.
We conduct comprehensive experiments to evaluate ToolGen's effectiveness in
repository-level code generation. To facilitate this evaluation, we create a
benchmark comprising 680 real-world code repositories and introduce two new
repository-level metrics: Dependency Coverage and Success Rate. The results
demonstrate that ToolGen significantly improves dependency coverage by 15.2% to
45.8% and success rates by 10.9% to 42.2% across three distinct code LLMs,
while maintaining competitive performance in widely-recognized similarity
metrics. Furthermore, our generalizability evaluation confirms ToolGen's
consistent performance when applied to diverse code LLMs, including various
model architectures and scales.
- Abstract(参考訳): 最近のコード大言語モデル(LLM)は、スタンドアロン関数の生成において有望なパフォーマンスを示しているが、リポジトリレベルの依存性(例えば、ユーザ定義属性)に対する認識の欠如により、リポジトリレベルのコード生成の制限に直面している。
本稿では、自動補完ツールをコードLLM生成プロセスに統合し、これらの依存関係に対処するToolGenを紹介する。
ToolGenは、Data AugmentationとModel Fine-tuning(Offline)とTool-Integated Code Generation(Online)の2つの主要なフェーズで構成されている。
オフラインフェーズでは、ToolGenは特定のコード内の機能を特別なマークトークンで拡張し、自動補完ツールを起動する位置を示す。
これらの拡張関数は対応するドクストリングとともに、選択されたコードLLMを微調整するために使用される。
オンラインフェーズでは、ToolGenは微調整LDMを使用してトークンを段階的に予測することで関数を反復的に生成する。
マークトークンに遭遇するたびに、ToolGenは自動補完ツールを呼び出して、コード補完を提案し、最も適切なものを選択する。
リポジトリレベルのコード生成におけるToolGenの有効性を評価するために、包括的な実験を行う。
この評価を容易にするために、680の実際のコードリポジトリからなるベンチマークを作成し、依存性のカバレッジと成功率という2つの新しいリポジトリレベルのメトリクスを導入します。
その結果、ツールゲンは依存関係のカバレッジを15.2%から45.8%、成功率を10.9%から42.2%と3つの異なるコードllmで大幅に改善した。
さらに,汎用性評価により,様々なモデルアーキテクチャやスケールを含む多様なコードllmに適用した場合のツールゲンの性能の一貫性を確認した。
関連論文リスト
- ToolGen: Unified Tool Retrieval and Calling via Generation [34.34787641393914]
ToolGenは、ツール知識を大きな言語モデルのパラメータに直接統合するパラダイムシフトです。
ToolGenは、ツール検索と自律タスク補完の両方において、優れた結果が得られることを示す。
ToolGenは、より汎用的で効率的で自律的なAIシステムを実現する。
論文 参考訳(メタデータ) (2024-10-04T13:52:32Z) - Codev-Bench: How Do LLMs Understand Developer-Centric Code Completion? [60.84912551069379]
Code-Development Benchmark (Codev-Bench)は、細粒度で現実世界、リポジトリレベル、開発者中心の評価フレームワークです。
Codev-Agentは、リポジトリのクローリングを自動化し、実行環境を構築し、既存のユニットテストから動的呼び出しチェーンを抽出し、データ漏洩を避けるために新しいテストサンプルを生成するエージェントベースのシステムである。
論文 参考訳(メタデータ) (2024-10-02T09:11:10Z) - HexaCoder: Secure Code Generation via Oracle-Guided Synthetic Training Data [60.75578581719921]
大規模言語モデル(LLM)は、自動コード生成に大きな可能性を示している。
最近の研究は、多くのLLM生成コードが深刻なセキュリティ脆弱性を含んでいることを強調している。
我々は,LLMがセキュアなコードを生成する能力を高めるための新しいアプローチであるHexaCoderを紹介する。
論文 参考訳(メタデータ) (2024-09-10T12:01:43Z) - On the Impacts of Contexts on Repository-Level Code Generation [5.641402231731082]
リポジトリレベルのコード生成を評価するために設計された新しいベンチマークである textbfmethodnamews を提案する。
実行可能性、包括的なテストケース生成による機能的正当性、ファイル間のコンテキストの正確な利用という3つの重要な側面に注目します。
論文 参考訳(メタデータ) (2024-06-17T10:45:22Z) - Class-Level Code Generation from Natural Language Using Iterative, Tool-Enhanced Reasoning over Repository [4.767858874370881]
実世界のリポジトリ内でクラスレベルのコードを生成する際に,LLMを厳格に評価するためのベンチマークであるRepoClassBenchを紹介する。
RepoClassBenchには、リポジトリの選択からJava、Python、C#にまたがる"Natural Language to Class Generation"タスクが含まれている。
Retrieve-Repotools-Reflect (RRR)は,レポジトリレベルのコンテキストを反復的にナビゲートし,推論する静的解析ツールを備えた新しいアプローチである。
論文 参考訳(メタデータ) (2024-04-22T03:52:54Z) - Iterative Refinement of Project-Level Code Context for Precise Code Generation with Compiler Feedback [29.136378191436396]
我々は,コンパイラフィードバックを用いてLLM生成コードを改善する新しいコード生成手法であるCoCoGenを提案する。
CoCoGenは、まず静的解析を利用して、生成されたコードとプロジェクトのコンテキストのミスマッチを特定する。
その後、コードリポジトリから抽出された情報を使用して、識別されたエラーを反復的に調整し、修正する。
論文 参考訳(メタデータ) (2024-03-25T14:07:27Z) - LLMs in the Imaginarium: Tool Learning through Simulated Trial and Error [54.954211216847135]
既存の大規模言語モデル(LLM)は30%から60%の範囲でしか正当性に至らない。
試行錯誤(STE)を模擬したツール拡張LDMの生物学的なインスピレーション法を提案する。
STEは、試行錯誤、想像力、記憶という、生物学的システムにおけるツール使用行動の成功のための3つの重要なメカニズムを編成する。
論文 参考訳(メタデータ) (2024-03-07T18:50:51Z) - 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) - CodeAgent: Enhancing Code Generation with Tool-Integrated Agent Systems for Real-World Repo-level Coding Challenges [41.038584732889895]
大規模言語モデル(LLM)は自動コード生成において有望であるが、通常は単純なタスクでのみ優れている。
私たちの研究は、実世界のリポジトリレベルのコード生成という、より現実的な設定でLLMを評価することに向かっています。
我々は,効率的なリポジトリレベルのコード生成に外部ツールを利用する,新しいLLMベースのエージェントフレームワークであるCodeAgentを紹介する。
論文 参考訳(メタデータ) (2024-01-14T18:12:03Z) - 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) - CRAFT: Customizing LLMs by Creating and Retrieving from Specialized
Toolsets [75.64181719386497]
大規模言語モデル(LLM)のためのツール作成・検索フレームワークであるCRAFTを提案する。
タスク用に特別にキュレートされたツールセットを作成し、複雑なタスクを解決する能力を高めるためにこれらのセットからツールを取得するコンポーネントをLLMに装備する。
本手法はフレキシブルに設計されており,既製のLCMを細かな調整なしに未確認領域やモダリティに適応するためのプラグアンドプレイ方式を提供する。
論文 参考訳(メタデータ) (2023-09-29T17:40:26Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。