Investigating the Performance of Language Models for Completing Code in Functional Programming Languages: a Haskell Case Study

要約

言語モデルベースのコード補完モデルの使用は急速に拡大し、何千人もの開発者がさまざまなプログラミング言語でコードを作成できるようになりました。
ただし、コード補完モデルの研究は通常、Python や JavaScript などの命令型言語に焦点を当てているため、関数型プログラミング言語の表現が不足しています。
その結果、これらのモデルは、Haskell などの関数型言語ではパフォーマンスが低下することがよくあります。
これを軽減できるかどうかを調査するために、関数型プログラミング言語 Haskell 上のコードの 2 つの言語モデル、CodeGPT と UniXcoder のパフォーマンスを評価します。
HuggingFace 上で公開されている Haskell データセットから取得した Haskell 関数のモデルを微調整し、評価します。
さらに、新しい翻訳された HumanEval データセットを使用してモデルを手動で評価します。
私たちの自動評価では、LLM の事前トレーニングにおける命令型プログラミング言語の知識は関数型言語にはうまく移行できない可能性があるが、関数型言語でのコード補完は実行可能であることが示されています。
したがって、これはより高品質な Haskell データセットの必要性を示しています。
HumanEval-Haskell の手動評価では、CodeGPT が空の予測や余分なコメントを頻繁に生成するのに対し、UniXcoder は不完全または不正確な予測を生成することが多いことが示されています。
最後に、GitHub (https://github.com/AISE-TUDelft/HaskellCCEval) で実験を再現するために必要な微調整されたモデルとすべてのコードとともに、HumanEval-Haskell をリリースします。

要約(オリジナル)

Language model-based code completion models have quickly grown in use, helping thousands of developers write code in many different programming languages. However, research on code completion models typically focuses on imperative languages such as Python and JavaScript, which results in a lack of representation for functional programming languages. Consequently, these models often perform poorly on functional languages such as Haskell. To investigate whether this can be alleviated, we evaluate the performance of two language models for code, CodeGPT and UniXcoder, on the functional programming language Haskell. We fine-tune and evaluate the models on Haskell functions sourced from a publicly accessible Haskell dataset on HuggingFace. Additionally, we manually evaluate the models using our novel translated HumanEval dataset. Our automatic evaluation shows that knowledge of imperative programming languages in the pre-training of LLMs may not transfer well to functional languages, but that code completion on functional languages is feasible. Consequently, this shows the need for more high-quality Haskell datasets. A manual evaluation on HumanEval-Haskell indicates CodeGPT frequently generates empty predictions and extra comments, while UniXcoder more often produces incomplete or incorrect predictions. Finally, we release HumanEval-Haskell, along with the fine-tuned models and all code required to reproduce our experiments on GitHub (https://github.com/AISE-TUDelft/HaskellCCEval).

arxiv情報

著者 Tim van Dam,Frank van der Heijden,Philippe de Bekker,Berend Nieuwschepen,Marc Otten,Maliheh Izadi
発行日 2024-03-22 13:13:13+00:00
arxivサイト arxiv_id(pdf)

提供元, 利用サービス

arxiv.jp, Google

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