Skip to main content
QUICK REVIEW

[論文レビュー] A Unified Active Learning Framework for Annotating Graph Data with Application to Software Source Code Performance Prediction

Peter Samoaa, Linus Aronsson|arXiv (Cornell University)|Apr 6, 2023
Software System Performance and Reliability被引用数 5
ひとこと要約

本稿では、グラフ構造のソフトウェアソースコードを対象とした統合的アクティブラーニングフレームワークを提案する。コードをフローアグギュメント付きAST(FA-AST)グラフに変換し、グラフ埋め込み(例:Graph2Vec、GNN)を活用することで、最小限のラベル付きデータで回帰ベースのパフォーマンス予測を可能にする。このフレームワークは、わずかに少数のラベル付きデータで優れた性能を達成し、Graph2Vecとテスト特徴の統合が、HadoopTests や OSSBuilds といった実世界のデータセットにおいて最も優れた結果をもたらした。

ABSTRACT

Most machine learning and data analytics applications, including performance engineering in software systems, require a large number of annotations and labelled data, which might not be available in advance. Acquiring annotations often requires significant time, effort, and computational resources, making it challenging. We develop a unified active learning framework specializing in software performance prediction to address this task. We begin by parsing the source code to an Abstract Syntax Tree (AST) and augmenting it with data and control flow edges. Then, we convert the tree representation of the source code to a Flow Augmented-AST graph (FA-AST) representation. Based on the graph representation, we construct various graph embeddings (unsupervised and supervised) into a latent space. Given such an embedding, the framework becomes task agnostic since active learning can be performed using any regression method and query strategy suited for regression. Within this framework, we investigate the impact of using different levels of information for active and passive learning, e.g., partially available labels and unlabeled test data. Our approach aims to improve the investment in AI models for different software performance predictions (execution time) based on the structure of the source code. Our real-world experiments reveal that respectable performance can be achieved by querying labels for only a small subset of all the data.

研究の動機と目的

  • AIドリブンのソフトウェア工学における重要な障壁である、ソフトウェアパフォーマンス予測におけるラベル付きデータの不足を解決すること。
  • グラフ構造のデータ、特にソースコード表現に適用可能な汎用的かつタスクに依存しないアクティブラーニングフレームワークの開発。
  • 追加情報(例:テスト特徴、部分的にラベル付けされた訓練データ)が埋め込みの品質とアクティブラーニングのパフォーマンスに与える影響の調査。
  • グラフ埋め込みコードにおける回帰設定での、多様なクエリ戦略(ランダム、コアセット、分散、QBC)の有効性の評価。
  • 情報性の高いデータ選択を活用することで、最小限の人為的ラベル付けで高精度な予測モデルを訓練できることの実証。

提案手法

  • ソースコードを抽象構文木(AST)に解析し、その後データフローおよび制御フローのエッジを追加してフローアグギュメント付きAST(FA-AST)グラフを構築する。
  • 教師なし(例:Graph2Vec)および教師あり(例:GNNベース)の両方の方法を用いてグラフ埋め込みを構築し、テストデータからの特徴や部分的にラベル付けされた訓練データを統合する。
  • 各FA-ASTグラフを潜在空間表現にマップすることで、学習タスクとグラフ構造を分離し、標準的な回帰モデルの使用を可能にする。
  • ガウス過程回帰(GPR)を用い、均一なランダム、コアセット、分散、およびクエリ・バイ・コミッティ(QBC)の複数の獲得関数を組み合わせ、最も情報量の多いサンプルを選択する。
  • アクティブラーニング戦略を繰り返し適用し、ラベルを取得し、モデルを再訓練し、実行時間予測などの回帰タスクでのパフォーマンスを評価する。
  • 実世界のデータセット(HadoopTests、OSSBuilds)を用いて、初期ラベルセットとバッチサイズの変動を考慮したフレームワークの評価。

実験結果

リサーチクエスチョン

  • RQ1埋め込み構築時にテストデータの特徴を統合することにより、ソースコードパフォーマンス予測におけるアクティブラーニングのパフォーマンスにどのような影響を与えるか?
  • RQ2部分的に利用可能な訓練ラベルは、グラフ埋め込みの品質とその後の回帰パフォーマンスにどの程度向上効果をもたらすか?
  • RQ3グラフベースの回帰設定におけるソースコードに対して、ランダム、コアセット、分散、QBCのうち、どのアクティブラーニングクエリ戦略が最も優れたパフォーマンスを発揮するか?
  • RQ4グラフ埋め込み手法の選択(例:Graph2Vec 対 GNN)が、パフォーマンス予測におけるアクティブラーニングの有効性に与える影響は何か?
  • RQ5本統合フレームワークを用いることで、ラベル付きデータの小さなサブセットで、ソースコード実行時間の予測精度を高水準に達成できるか?

主な発見

  • Graph2Vec埋め込み、特にテストデータ特徴を統合した場合、すべてのデータセットとクエリ戦略において最高のパフォーマンスを達成した。
  • 教師ありGNN埋め込みはパフォーマンスで2番目に高く、訓練ラベルを埋め込み学習中に活用することでその利点が示された。
  • 適応的クエリ戦略(分散、コアセット、QBC)はランダム選択よりもパフォーマンスが向上したが、回帰およびディープラーニングの設定のため、一部のケースでは上昇幅は限定的であった。
  • 本フレームワークは、全データのわずかに少数のラベル付きデータで優れた回帰パフォーマンスを達成しており、ラベル付けの効率性が非常に高いことが示された。
  • 手動埋め込みではクエリ戦略間のパフォーマンス差が小さくなったため、埋め込みの品質がクエリ戦略の有効性に強く影響することが示唆された。
  • システムレベルのパースィング設定では、ファイルレベルのパースィングに比べてクエリ戦略のパフォーマンスがより競争力があり、後期段階ではコアセットと分散戦略が優勢であった。

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

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

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

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