Skip to main content
QUICK REVIEW

[論文レビュー] MultiPL-E: A Scalable and Extensible Approach to Benchmarking Neural Code Generation

Federico Cassano, John Gouwar|arXiv (Cornell University)|Aug 17, 2022
Software Engineering Research被引用数 13
ひとこと要約

本論文は、Pythonから18の追加言語に単体テスト駆動のコード生成ベンチマークを翻訳するスケーラブルで拡張可能なフレームワーク、MultiPL-Eを紹介する。これにより、ニューラルコードモデルの多言語評価が可能になる。主な貢献は、Codexが複数の非Python言語においてもPythonより優れた性能を示すことを明らかにした、並列で多言語対応のベンチマーク(MultiPL-HumanEvalおよびMultiPL-MBPP)の構築である。これは、言語固有のパフォーマンスやモデルの一般化に関する仮定に挑戦するものである。

ABSTRACT

Large language models have demonstrated the ability to generate both natural language and programming language text. Such models open up the possibility of multi-language code generation: could code generation models generalize knowledge from one language to another? Although contemporary code generation models can generate semantically correct Python code, little is known about their abilities with other languages. We propose MultiPL-E, a system for translating unit test-driven code generation benchmarks to new languages. We create the first massively multilingual code generation benchmark by using MultiPL-E to translate two popular Python code generation benchmarks to 18 additional programming languages. We use MultiPL-E to extend the HumanEval benchmark and MBPP benchmark to 18 languages that encompass a range of programming paradigms and popularity. Using these new parallel benchmarks, we evaluate the multi-language performance of three state-of-the-art code generation models: Codex, CodeGen, and InCoder. We find that Codex matches or even exceeds its performance on Python for several other languages. The range of programming languages represented in MultiPL-E allow us to explore the impact of language frequency and language features on model performance. Finally, the MultiPL-E approach of compiling code generation benchmarks to new programming languages is both scalable and extensible, making it straightforward to evaluate new models, benchmarks, and languages.

研究の動機と目的

  • ニューラルコード生成における多言語評価の不足を解消するため、既存のPython中心のベンチマークを他の言語に拡張すること。
  • パラダイムや人気の異なる多様なプログラミング言語において、一貫した並列評価を可能にすること。
  • 言語固有の特徴、人気、プロンプト設計がコード生成におけるモデルパフォーマンスに与える影響を調査すること。
  • 完全なコンパイラのオーバーヘッドなしに、新しい言語におけるコード生成モデルのベンチマークを再利用可能で拡張可能なフレームワークとして開発すること。

提案手法

  • MultiPL-Eは、関数シグネチャ、単体テスト、ドキュメンテーション文字列、型注釈の4つのコンponentsを、Pythonからターゲット言語に翻訳するための軽量でルールベースのコンパイラ(各約200行)を用いる。
  • Python固有の用語(例:'list' → 'vector' in C++)を適切な言語用語に翻訳するための言語適正な用語翻訳モジュールを採用し、プロンプトの明確性を向上させる。
  • コンテナ化されたサンドボックス環境で、タイムアウト付きで生成コードを実行し、出力を単体テストと照合して、正解、構文エラー、実行時エラーの分類を行う。
  • 複数のパラダイムと人気レベルをカバーする18の言語をサポートし、各言語の評価スクリプトは約20行程度である。
  • 既存のベンチマーク(HumanEvalおよびMBPP)を再利用し、テストケースとプロンプトを新しい言語に翻訳しながら意味的同等性を保持する。
  • 一貫した問題セットを用いて、言語間でゼロショット評価が可能なコード生成モデルの評価を可能にする。

実験結果

リサーチクエスチョン

  • RQ1コード生成モデルは、Pythonから他のプログラミング言語に知識を一般化できるか。また、パフォーマンスは言語によってどのように変化するか。
  • RQ2言語の人気度と文法的特徴(例:静的型付け)は、コード生成におけるモデルパフォーマンスにどのように影響するか。
  • RQ3モデルのパープレキシティとコードの正しさの間に相関があるか。
  • RQ4多言語環境において、プロンプト設計と言語固有の用語がモデルパフォーマンスに与える感受性はどの程度か。
  • RQ5型注釈は、静的型付け言語においてコード生成を向上させるか、あるいは妨げるか。

主な発見

  • CodexはJavaScript、C++、Scala、TypeScriptにおいても、Pythonでのパフォーマンスと同等またはそれを上回っており、顕著な言語間一般化能力を示している。
  • モデルパフォーマンスは言語の人気度と中程度の相関を示すが、Racket や Swift といったニッチ言語も主流言語と同等のパフォーマンスを示している。
  • モデルのパープレキシティとコードの正しさの間に強い相関は認められず、パープレキシティはコード生成品質の弱い代理指標である可能性を示唆している。
  • 静的型付けはモデルパフォーマンスに顕著な向上も劣化ももたらさないため、型注釈は主な支援要因とも障害要因とも言えない。
  • プロンプト設計の感受性は、人気のある言語でもニッチ言語でも顕著であり、モデル出力の品質はプロンプトの形式に大きく依存する。
  • エラー解析から、Swiftにおける誤った文字列インデックス参照やPythonにおける入力処理の問題といった、言語固有の落とし穴が明らかになり、モデルが言語固有の慣習を正しく処理できない限界が示された。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。