Skip to main content
QUICK REVIEW

[논문 리뷰] CommitBART: A Large Pre-trained Model for GitHub Commits

Shangqing Liu, Yanzhou Li|arXiv (Cornell University)|2022. 08. 17.
Software Engineering Research인용 수 9
한 줄 요약

CommitBART는 7개 프로그래밍 언어에서 799만 개의 GitHub 커밋을 포함한 벤치마크 데이터셋으로 미세조정된 대규모 사전 훈련된 인코더-디코더 트랜스포머 모델이다. 여섯 가지 사전 훈련 작업을 통해 복원, 다중모달 생성, 대비 학습 목표를 활용하여 커밋 이해 및 생성 작업(커밋 메시지 생성, 업데이트된 코드 스니펫 생성 포함)에서 최신 기술 성능을 달성한다.

ABSTRACT

GitHub commits, which record the code changes with natural language messages for description, play a critical role for software developers to comprehend the software evolution. To promote the development of the open-source software community, we collect a commit benchmark including over 7.99 million commits across 7 programming languages. Based on this benchmark, we present CommitBART, a large pre-trained encoder-decoder Transformer model for GitHub commits. The model is pre-trained by three categories (i.e., denoising objectives, cross-modal generation and contrastive learning) for six pre-training tasks to learn commit fragment representations. Furthermore, we unify a ``commit intelligence'' framework with one understanding task and three generation tasks for commits. The comprehensive experiments on these tasks demonstrate that CommitBARTsignificantly outperforms previous pre-trained works for code. Further analysis also reveals each pre-training task enhances the model performance.

연구 동기 및 목표

  • 소프트웨어 공학 분야에서 전문화된 모델을 훈련하기 위한 대규모 공개 커밋 데이터의 부족을 해결하기 위해.
  • 코드와 자연어 의미를 모두 포괄하는 커밋 전용으로 특화된 사전 훈련 모델을 개발하기 위해.
  • 커밋 이해 및 생성 작업을 모두 지원하는 '커밋 지능' 프레임워크를 통합하기 위해.
  • 다중 목표 사전 훈련을 통해 커밋 관련 NLP 작업의 성능을 향상시키기 위해.
  • 연구를 가속화하기 위해 대규모 커밋 벤치마크와 모델을 공개하기 위해.

제안 방법

  • C, CSharp, Java, JavaScript, PHP, Python, TypeScript 7개 프로그래밍 언어에서 상위 500개 GitHub 프로젝트로부터 799만 개의 커밋을 수집하여 벤치마크를 구축한다.
  • 세 가지 유형의 목표를 사용하여 CommitBART를 설계 및 사전 훈련한다: 복원(텍스트 인필링 및 그래프 유도 토큰 마스킹), 다중모달 생성(PL2NL 및 PLNL2PL), 대비 학습(NLPL 정렬 및 SimCSE).
  • 공통된 토큰을 포함하는 커밋 메시지와 코드 변경 사항 간의 의미적 정렬을 향상시키기 위해 그래프 유도 토큰 마스킹을 사용한다.
  • 코드 변경 사항에서 커밋 메시지를 예측하는 PL2NL 생성과 이전 코드 및 커밋 메시지에서 업데이트된 코드를 예측하는 PLNL2PL 생성을 구현한다.
  • NLPL 정렬을 통해 코드와 메시지 임베딩을 정렬하고, 드롭아웃 증강 인코딩을 통해 강력한 의미적으로 동일한 표현을 학습하기 위해 SimCSE를 통해 대비 학습을 적용한다.
  • 보안 패치 식별(이해), 커밋 메시지 생성, 양성 코드 문장 생성, 업데이트된 코드 스니펫 생성 등의 다운스트림 작업에 CommitBART를 미세조정한다.

실험 결과

연구 질문

  • RQ1일반적인 코드 모델에 비해 커밋 전용 대규모 사전 훈련 모델이 커밋 관련 NLP 작업의 성능을 크게 향상시킬 수 있는가?
  • RQ2복원, 다중모달 생성, 대비 학습과 같은 다양한 사전 훈련 목표가 커밋 표현 학습에 얼마나 효과적인가?
  • RQ3그래프 유도 토큰 마스킹이 커밋 메시지와 코드 변경 사항 간의 의미적 정렬을 얼마나 향상시키는가?
  • RQ4통합된 '커밋 지능' 프레임워크가 다양한 다운스트림 작업에 대해 강력한 일반화 성능을 보일 수 있는가?
  • RQ5기능적 정확성과 의미 정확성을 요구하는 생성 작업에서 CommitBART의 성능은 어떠한가?

주요 결과

  • CommitBART는 보안 패치 식별 및 커밋 메시지 생성을 포함한 모든 평가된 작업에서 최신 기술 성능을 달성하여 UniXcoder 및 Incr-PLBART와 같은 이전 모델을 능가한다.
  • 제거 실험 결과, PLNL2PL 생성 작업을 제거하면 7개 언어 전역에서 업데이트된 코드 스니펫 생성의 BLEU-4 점수가 57.63에서 53.70으로 감소함을 확인하였다.
  • 그래프 유도 토큰 마스킹은 생성 작업 성능을 크게 향상시켜 코드와 자연어 간 의미 격차를 줄이는 데 효과적임을 시사한다.
  • 대비 학습 목표(NLPL 정렬 및 SimCSE)는 모두 모델 성능에 기여하며, 임베딩 품질을 향상시킨다.
  • 사례 연구 결과, CommitBART는 'xray.backends'와 같은 정확한 패키지 이름을 커밋 메시지에 생성하는 데 성공했고, 베이스라인은 이를 실패함을 확인하여 더 뛰어난 의미 포착 능력을 보였다.
  • 세그먼트 임베딩이 유용한 것으로 나타났으며, 이는 메시지와 코드 변경 사항 등 여러 구성 요소를 포함하는 커밋의 복잡한 구조 때문일 것이다.

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

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

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

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