ExecRepoBench: Multi-level Executable Code Completion Evaluation

要約

コード補完は、日々のソフトウェア開発に不可欠なツールとなっています。
既存の評価ベンチマークは多くの場合、現実世界のコーディング環境の動的な性質を完全には捉えていない静的な手法を採用しており、コンテキストの長さの制限、表面的な評価指標への依存、トレーニング データセットへの潜在的な過剰適合などの重大な課題に直面しています。
この研究では、リポジトリ レベルのベンチマーク ExecRepoBench と命令コーパス Repo-Instruct の作成を通じて、ソフトウェア開発におけるコード補完を強化するための新しいフレームワークを紹介します。これは、オープンソースの大規模言語モデル (LLM) の機能を向上させることを目的としています。
複数のファイルにわたる複雑な相互依存関係を伴う現実のコーディング シナリオ。
ExecRepoBench には、アクティブな Python リポジトリからの 1.2K のサンプルが含まれています。
さらに、さまざまな論理単位 (ステートメント、式、関数など) でコードの断片をマスクするために、抽象構文ツリーを条件としたマルチレベルの文法ベースの補完方法論を提示します。
次に、Repo-Instruct の 7B パラメーターを使用してオープンソース LLM を微調整し、オープンソース モデルに基づいた強力なコード補完ベースライン モデル Qwen2.5-Coder-Instruct-C を生成します。
Qwen2.5-Coder-Instruct-C は、MultiPL-E や ExecRepoBench などの既存のベンチマークに対して厳密に評価されており、すべてのプログラミング言語にわたって一貫して以前のベースラインを上回っています。
\ourmethod{} のデプロイメントは、プログラミング開発のための高性能のローカル サービスとして使用できます\footnote{\url{https://execrepobench.github.io/}}。

要約(オリジナル)

Code completion has become an essential tool for daily software development. Existing evaluation benchmarks often employ static methods that do not fully capture the dynamic nature of real-world coding environments and face significant challenges, including limited context length, reliance on superficial evaluation metrics, and potential overfitting to training datasets. In this work, we introduce a novel framework for enhancing code completion in software development through the creation of a repository-level benchmark ExecRepoBench and the instruction corpora Repo-Instruct, aim at improving the functionality of open-source large language models (LLMs) in real-world coding scenarios that involve complex interdependencies across multiple files. ExecRepoBench includes 1.2K samples from active Python repositories. Plus, we present a multi-level grammar-based completion methodology conditioned on the abstract syntax tree to mask code fragments at various logical units (e.g. statements, expressions, and functions). Then, we fine-tune the open-source LLM with 7B parameters on Repo-Instruct to produce a strong code completion baseline model Qwen2.5-Coder-Instruct-C based on the open-source model. Qwen2.5-Coder-Instruct-C is rigorously evaluated against existing benchmarks, including MultiPL-E and ExecRepoBench, which consistently outperforms prior baselines across all programming languages. The deployment of \ourmethod{} can be used as a high-performance, local service for programming development\footnote{\url{https://execrepobench.github.io/}}.

arxiv情報

著者 Jian Yang,Jiajun Zhang,Jiaxi Yang,Ke Jin,Lei Zhang,Qiyao Peng,Ken Deng,Yibo Miao,Tianyu Liu,Zeyu Cui,Binyuan Hui,Junyang Lin
発行日 2024-12-16 17:14:35+00:00
arxivサイト arxiv_id(pdf)

提供元, 利用サービス

arxiv.jp, Google

カテゴリー: cs.CL パーマリンク