Skip to main content
QUICK REVIEW

[논문 리뷰] Making the most of small Software Engineering datasets with modern machine learning

Julian Aron Prenner, Romain Robbes|arXiv (Cornell University)|2021. 06. 29.
Software Engineering Research인용 수 4
한 줄 요약

이 논문은 BERT 및 RoBERTa와 같은 사전 훈련된 트랜스포머 모델을 1,300개 미만의 샘플을 가진 13개의 소규모 소프트웨어 공학 데이터셋에서 평가하여 자연어 처리 작업에서의 효과성과 코드 관련 작업에서의 경쟁력 있는 성능을 입증한다. 연구 결과, 사전 훈련은 소규모 소프트웨어 공학 데이터셋에서 성능 향상을 이끌지만, 매우 소규모의 코드 데이터셋에서는 전통적인 기계학습 방법이 여전히 트랜스포머를 능가하며, 학습 효율성을 향상시키기 위해 액티브 러닝과 소프트 레이블 같은 기법을 권장한다.

ABSTRACT

This paper provides a starting point for Software Engineering (SE) researchers and practitioners faced with the problem of training machine learning models on small datasets. Due to the high costs associated with labeling data, in Software Engineering,there exist many small (< 1 000 samples) and medium-sized (< 100 000 samples) datasets. While deep learning has set the state of the art in many machine learning tasks, it is only recently that it has proven effective on small-sized datasets, primarily thanks to pre-training, a semi-supervised learning technique that leverages abundant unlabelled data alongside scarce labelled data.In this work, we evaluate pre-trained Transformer models on a selection of 13 smaller datasets from the SE literature, covering both,source code and natural language. Our results suggest that pre-trained Transformers are competitive and in some cases superior to previous models, especially for tasks involving natural language; whereas for source code tasks, in particular for very small datasets,traditional machine learning methods often has the edge.In addition, we experiment with several techniques that ought to aid training on small datasets, including active learning, data augmentation, soft labels, self-training and intermediate-task fine-tuning, and issue recommendations on when they are effective. We also release all the data, scripts, and most importantly pre-trained models for the community to reuse on their own datasets.

연구 동기 및 목표

  • 높은 레이블링 비용으로 인해 흔한 소규모 소프트웨어 공학 데이터셋에서 효과적인 기계학습 모델을 훈련하는 데 도전하는 것.
  • 소규모 소프트웨어 공학 데이터셋에서 사전 훈련된 트랜스포머 모델(예: BERT, RoBERTa)의 성능을 소스 코드 및 자연어 처리 작업 전반에 걸쳐 평가하는 것.
  • 학습 성능 향상을 위한 기법들 — 예를 들어 액티브 러닝, 데이터 증강, 자기 훈련 — 을 조사하고 권장하는 것.
  • 모든 데이터, 코드, 사전 훈련된 모델을 공개하여 소프트웨어 공학 공동체 내에서의 재사용성과 재현 가능성을 지원하는 것.

제안 방법

  • 문헌에서 확보한 13개의 소규모 소프트웨어 공학 데이터셋(소스 코드 및 자연어 처리 작업 모두 포함)에 대해 사전 훈련된 트랜스포머 모델(예: BERT, RoBERTa)을 미세조정하는 것.
  • 백번역과 동의어 교체를 통한 데이터 증강을 통해 훈련 데이터의 다양성을 높이는 것.
  • 약한 레이블을 앙상블 모델에서 유도하여 제한된 레이블 데이터에서의 일반화 능력을 향상시키는 것.
  • 가장 불확실한 샘플을 반복적으로 선택하여 레이블링하는 방식으로 액티브 러닝을 구현하여 레이블링 비용을 절감하는 것.
  • 목표 소프트웨어 공학 작업에 대한 미세조정 전에 관련된 자연어 처리 작업에서 중간 단계의 미세조정을 수행하여 유도적 편향을 향상시키는 것.
  • 표준 평가 지표(예: F1, 정확도)를 사용하여 모델 성능을 평가하고, 각 데이터셋에서 이전 최고 성능 모델과의 비교를 수행하는 것.

실험 결과

연구 질문

  • RQ1사전 훈련된 트랜스포머 모델은 전통적인 기계학습 모델에 비해 소규모 소프트웨어 공학 데이터셋에서 어떻게 성능을 발휘하는가?
  • RQ2백번역, 소프트 레이블 등 다양한 데이터 증강 및 레이블링 기법 중에서 소규모 소프트웨어 공학 데이터셋에서 성능 향상에 가장 효과적인 것은 무엇인가?
  • RQ3액티브 러닝은 어떤 상황에서 레이블링 노력의 감소를 이끌어내면서도 성능을 유지하거나 향상시키는가?
  • RQ4중간 단계의 미세조정은 소규모 소프트웨어 공학 데이터셋에서 성능 향상에 기여하는가? 그리고 어떤 작업에서 가장 유익한가?
  • RQ5코드 관련 소프트웨어 공학 작업에서 사전 훈련된 모델가 전통적 기계학습 모델보다 성능이 뛰어나거나 열 劣하는 조건는 무엇인가?

주요 결과

  • 사전 훈련된 트랜스포머는 소규모 소프트웨어 공학 데이터셋에서 자연어 처리 작업에서 경쟁적 또는 슈퍼리어한 성능을 기록하며, 종종 이전 최고 성능 모델을 능가한다.
  • 매우 소규모의 코드 관련 데이터셋(예: 100개 미만의 샘플)에서는 여전히 SVM, 랜덤 포레스트 등의 전통적 기계학습 모델이 트랜스포머를 능가한다.
  • 액티브 러닝은 특히 자원이 제한된 환경에서 레이블링이 필요한 샘플 수를 크게 줄이며 높은 성능를 유지하는 데 효과적이다.
  • 앙상블 모델에서 유도된 소프트 레이블은 제한된 데이터에서 일반화 능력과 모델의 강건성을 향상시키며, 특히 노이즈가 많거나 레이블이 부족한 경우에 유용하다.
  • 백번역을 통한 데이터 증강은 자연어 처리 작업에서 성능 향상을 이끌지만, 코드 관련 작업에서는 효과가 다소 미미하다.
  • 중간 단계의 미세조정은 하류 소프트웨어 공학 작업에서 성능 향상에 기여하며, 특히 목표 작업과 의미적으로 유사한 중간 작업을 수행할 경우 가장 효과적이다.

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

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

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

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