CrossCodeEval: A Diverse and Multilingual Benchmark for Cross-File Code Completion

要約

コード補完モデルは近年大幅に進歩しましたが、HumanEval や MBPP などの現在人気のある評価データセットは、主に単一ファイル内のコード補完タスクに焦点を当てています。
この簡略化されすぎた設定は、リポジトリがファイル間の依存関係が多数ある複数のファイルにまたがっており、コードを正しく完成させるためにはファイル間のコンテキストにアクセスして理解することがしばしば必要となる、実際のソフトウェア開発シナリオを表すには不十分です。
このギャップを埋めるために、コードを正確に完成させるためにファイル間のコンテキストを深く理解する必要がある、多様な多言語コード補完ベンチマークである CrossCodeEval を提案します。
CrossCodeEval は、Python、Java、TypeScript、C# という 4 つの一般的なプログラミング言語による、現実世界のオープンソースで許容的にライセンスされたリポジトリの多様なセットに基づいて構築されています。
正確に完了するためにファイル間コンテキストを厳密に必要とするサンプルを作成するために、現在のファイル内でファイル間コンテキストの使用を正確に特定する、単純かつ効率的な静的分析ベースのアプローチを提案します。
CodeGen や StarCoder などの最先端のコード言語モデルに関する広範な実験により、関連するファイル間コンテキストが存在しない場合、CrossCodeEval は非常に困難であることが実証されており、これらのコンテキストをプロンプトに追加すると明らかな改善が見られます。
ただし、このような改善にもかかわらず、最高パフォーマンスのモデルであっても最高のパフォーマンスには到達していないことが顕著であり、CrossCodeEval が広範なコンテキストを活用してコード補完を向上させるモデルの能力を評価できることを示しています。
最後に、ファイル間コンテキストを取得するさまざまな方法のベンチマークを行い、CrossCodeEval をコード取得機能の測定にも使用できることを示しました。

要約(オリジナル)

Code completion models have made significant progress in recent years, yet current popular evaluation datasets, such as HumanEval and MBPP, predominantly focus on code completion tasks within a single file. This over-simplified setting falls short of representing the real-world software development scenario where repositories span multiple files with numerous cross-file dependencies, and accessing and understanding cross-file context is often required to complete the code correctly. To fill in this gap, we propose CrossCodeEval, a diverse and multilingual code completion benchmark that necessitates an in-depth cross-file contextual understanding to complete the code accurately. CrossCodeEval is built on a diverse set of real-world, open-sourced, permissively-licensed repositories in four popular programming languages: Python, Java, TypeScript, and C#. To create examples that strictly require cross-file context for accurate completion, we propose a straightforward yet efficient static-analysis-based approach to pinpoint the use of cross-file context within the current file. Extensive experiments on state-of-the-art code language models like CodeGen and StarCoder demonstrate that CrossCodeEval is extremely challenging when the relevant cross-file context is absent, and we see clear improvements when adding these context into the prompt. However, despite such improvements, the pinnacle of performance remains notably unattained even with the highest-performing model, indicating that CrossCodeEval is also capable of assessing model’s capability in leveraging extensive context to make better code completion. Finally, we benchmarked various methods in retrieving cross-file context, and show that CrossCodeEval can also be used to measure the capability of code retrievers.

arxiv情報

著者 Yangruibo Ding,Zijian Wang,Wasi Uddin Ahmad,Hantian Ding,Ming Tan,Nihal Jain,Murali Krishna Ramanathan,Ramesh Nallapati,Parminder Bhatia,Dan Roth,Bing Xiang
発行日 2023-11-17 02:51:39+00:00
arxivサイト arxiv_id(pdf)

提供元, 利用サービス

arxiv.jp, Google

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