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)|2023. 04. 06.
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)의 성능을 평가하기 위해.
  • 유의미한 데이터 선택을 통해 인간의 레이블링을 최소화하면서도 높은 성능의 예측 모델을 훈련시킬 수 있음을 입증하기 위해.

제안 방법

  • 소스 코드를 추상 구문 트리(_ASTs_)로 파싱한 후, 데이터 흐름 및 제어 흐름 간선을 추가하여 플로우 보강된-AST(FA-AST) 그래프를 구성한다.
  • 비지도 학습(예: Graph2Vec) 및 지도 학습(예: GNN 기반) 방법을 사용하여 그래프 임베딩을 생성하며, 테스트 데이터의 특징과/또는 부분적으로 레이블링된 학습 데이터의 특징을 통합한다.
  • 각 FA-AST 그래프를 잠재 공간 표현으로 매핑하여 학습 과제를 그래프 구조에서 분리시키며, 표준 회귀 모델의 사용을 가능하게 한다.
  • 다양한 획득 함수(균일 랜덤, 코어셋, 분산, 질의-공동결정(QBC))를 갖춘 가우시안 프로세스 회귀기(GPR)를 적용하여 가장 정보가 많은 샘플을 선택한다.
  • 능동 학습 전략을 반복적으로 적용하여 레이블을 쿼리하고, 모델을 재학습하며, 실행 시간 예측과 같은 회귀 과제에서 성능을 평가한다.
  • 실제 데이터셋(HadoopTests, OSSBuilds)을 사용하여 초기 레이블 세트와 배치 크기가 다양한 조건에서 프레임워크의 성능을 평가한다.

실험 결과

연구 질문

  • RQ1임베딩 구축 시 테스트 데이터 특징을 포함시키는 것이 소스 코드 성능 예측에서 능동 학습 성능에 어떤 영향을 미치는가?
  • RQ2부분적으로 이용 가능한 학습 레이블이 그래프 임베딩 품질과 이후의 회귀 성능에 어느 정도 향상되는가?
  • RQ3소스 코드에 대한 그래프 기반의 회귀 설정에서 랜덤, 코어셋, 분산, QBC 중 어떤 능동 학습 쿼리 전략이 가장 높은 성능을 내는가?
  • RQ4그래프 임베딩 방법의 선택(Graph2Vec 대 GNN)이 성능 예측에서 능동 학습의 효과성에 어떤 영향을 미치는가?
  • RQ5이 통합 프레임워크를 통해 소스 코드 실행 시간에 대한 높은 예측 정확도를 작은 레이블링 데이터 세트로도 달성할 수 있는가?

주요 결과

  • Graph2Vec 임베딩은 특히 테스트 데이터 특징을 통합한 경우, 모든 데이터셋과 쿼리 전략에서 가장 높은 성능를 기록했다.
  • 지도 학습 기반 GNN 임베딩은 성능 순서에서 두 번째로 높았으며, 학습 레이블을 임베딩 학습 과정에 활용함으로써 유의미한 이점을 보였다.
  • 적응형 쿼리 전략(분산, 코어셋, QBC)은 랜덤 선택 대비 성능 향상을 보였지만, 회귀 및 딥러닝 설정의 특성상 일부 경우에서 성능 향상은 미미했다.
  • 전체 데이터 항목의 소수만을 레이블링하여도 프레임워크가 뛰어난 회귀 성능를 달성했으며, 이는 높은 레이블링 효율성을 의미한다.
  • 수동 임베딩에서는 쿼리 전략 간 성능 차이가 감소하여, 임베딩 품질이 쿼리 전략의 효과성에 큰 영향을 미친다는 것을 시사한다.
  • 파일 수준 파싱 대비 시스템 수준 파싱 설정에서 쿼리 전략의 성능 경쟁력이 더 높았으며, 후반 단계에서는 코어셋과 분산 전략이 지배적이었다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.