Skip to main content
QUICK REVIEW

[論文レビュー] Evaluating the Impact of Source Code Parsers on ML4SE Models

Ilya Utkin, Egor Spirin|arXiv (Cornell University)|Jun 17, 2022
Software Engineering Research被引用数 4
ひとこと要約

本論文は、ソフトウェア工学における機械学習(ML4SE)のモデル性能に、さまざまなソースコードパーサーが与える影響を評価する。Javaにおけるメソッド名予測を焦点として、新規ツール「SuperParser」を用いて、TreeLSTMおよびCode2Seqの2つのモデルにおいて8種類のパーサーを比較した。その結果、パーサーの選択がモデル品質に顕著な影響を及ぼすことが判明し、TreeLSTMでは最大27%、Code2Seqでは最大5.5%の性能差が生じた。

ABSTRACT

As researchers and practitioners apply Machine Learning to increasingly more software engineering problems, the approaches they use become more sophisticated. A lot of modern approaches utilize internal code structure in the form of an abstract syntax tree (AST) or its extensions: path-based representation, complex graph combining AST with additional edges. Even though the process of extracting ASTs from code can be done with different parsers, the impact of choosing a parser on the final model quality remains unstudied. Moreover, researchers often omit the exact details of extracting particular code representations. In this work, we evaluate two models, namely Code2Seq and TreeLSTM, in the method name prediction task backed by eight different parsers for the Java language. To unify the process of data preparation with different parsers, we develop SuperParser, a multi-language parser-agnostic library based on PathMiner. SuperParser facilitates the end-to-end creation of datasets suitable for training and evaluation of ML models that work with structural information from source code. Our results demonstrate that trees built by different parsers vary in their structure and content. We then analyze how this diversity affects the models' quality and show that the quality gap between the most and least suitable parsers for both models turns out to be significant. Finally, we discuss other features of the parsers that researchers and practitioners should take into account when selecting a parser along with the impact on the models' quality. The code of SuperParser is publicly available at https://doi.org/10.5281/zenodo.6366591. We also publish Java-norm, the dataset we use to evaluate the models: https://doi.org/10.5281/zenodo.6366599.

研究の動機と目的

  • 抽象構文木(AST)に依存するML4SEモデルの性能に、ソースコードパーサーの選択がどのように影響するかを調査すること。
  • 従来のML4SE研究においてAST抽出時にパーサーの詳細がしばしば省略されており、透明性と再現性に欠ける問題に対処すること。
  • 複数のパーサーとプログラミング言語に対応する統一的でパーサーに依存しないフレームワークを構築し、ML用コードデータセットの標準化を図ること。
  • TreeLSTMおよびCode2Seqという2つの広く使われているモデルを用いて、パーサーの多様性がモデル品質に与える影響を評価すること。
  • パーサー選択がML4SEパイプラインにおける重要なハイパーパrameterであることが実証され、単なる実装上の細部ではないことを示すこと。

提案手法

  • PathMinerを基盤として構築した、複数言語対応でパーサーに依存しないライブラリ「SuperParser」を開発。これにより、さまざまなパーサーを用いて一貫したASTおよびコード表現を抽出できる。
  • YAMLベースの設定システムを実装。これにより、コード変更を最小限に抑えながらパーサーを切り替えられ、エンドツーエンドのデータセット作成を一貫して行える。
  • Java用に8種類のパーサー(JavaCC、ANTLR、Rhino、Squirrel、Tree-sitter、JDT、Javac、JShell)を用いて、メソッド名予測タスクにおけるモデル性能を評価。
  • 同じコードベースから、各パーサーを用いてASTおよびパスベース表現(Code2Seq用)を抽出。これにより、モデル学習および評価のための入力が一貫する。
  • TreeLSTMとCode2Seqの両モデルに対して、より多様な検証およびテストセットを備えたJava-smallと同等のサイズのJava-normデータセットを用い、より堅牢かつ代表的なモデル評価を実施。
  • F1スコアおよびChrFを用いてモデル性能を測定。パーサー間での性能差を比較し、ASTの構造的差異がモデルに与える影響を評価。

実験結果

リサーチクエスチョン

  • RQ1ソースコードパーサーの選択が、ASTに依存するML4SEモデルの性能にどのように影響するか。
  • RQ2木の深さ、ノード数、トークンの多様性などのAST構造および内容の差異が、モデル品質にどの程度影響を及えるか。
  • RQ3ML4SEモデルに普遍的に最適なパーサーは存在するのか、それとも最適なパーサーはモデルアーキテクチャに依存するのか。
  • RQ4統一的でパーサーに依存しないフレームワークは、ML4SE研究における再現性と比較可能性を向上させることができるか。
  • RQ5異なるパーサーで学習されたモデル間の性能差はどの程度顕著であり、統計的に有意義な差異であるか。

主な発見

  • パーサーの選択がモデル性能に顕著な影響を及えることが判明。TreeLSTMのF1スコアは、使用するパーサーによって最大27.0%の差が生じた。
  • Code2Seqでは、最良と最悪のパーサーの間でF1スコアに5.5%の差が生じ、近年のML4SEの文脈では顕著な差とみなされる。
  • TreeLSTMとCode2Seqの両モデルにおいて、パーサーの相対的順位が異なったため、普遍的に最適なパーサーは存在せず、モデルのアーキテクチャや処理方法に依存することが示された。
  • 異なるパーサーが生成するASTは、構造(例:木の深さ、サイズ)および内容(例:異なるノードタイプ数、トークン分布)において差異を示し、これがモデル学習に直接的な影響を与える。
  • SuperParserは、最小限の設定変更で複数のパーサーに対応した一貫性のあるデータセット作成を可能にし、実験の透明性を向上させる。
  • 本研究と併せて公開されたJava-normデータセットは、Java-smallよりも多様性に富み、代表的な評価セットを提供する。計算コストを増加させることなく、より堅牢なモデル比較が可能となる。

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

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

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

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