Skip to main content
QUICK REVIEW

[논문 리뷰] CoditT5: Pretraining for Source Code and Natural Language Editing

Jiyang Zhang, Sheena Panthaplackel|arXiv (Cornell University)|2022. 08. 10.
Software Engineering Research인용 수 5
한 줄 요약

CoditT5는 소프트웨어 편집 작업에서 코드와 자연어 편집을 명시적으로 추론할 수 있도록 하는 새로운 에디트 기반 사전학습 목표를 도입한다. 출력을 생성하기 전에 에디트 연산을 생성함으로써, 댓글 업데이트, 버그 수정, 자동 코드 리뷰 작업에서 표준 생성 모델보다 성능이 뛰어나며, 표준 모델을 사용한 재정렬을 통해 추가로 성능 향상을 이룬다.

ABSTRACT

Pretrained language models have been shown to be effective in many software-related generation tasks; however, they are not well-suited for editing tasks as they are not designed to reason about edits. To address this, we propose a novel pretraining objective which explicitly models edits and use it to build CoditT5, a large language model for software-related editing tasks that is pretrained on large amounts of source code and natural language comments. We fine-tune it on various downstream editing tasks, including comment updating, bug fixing, and automated code review. By outperforming standard generation-based models, we demonstrate the generalizability of our approach and its suitability for editing tasks. We also show how a standard generation model and our edit-based model can complement one another through simple reranking strategies, with which we achieve state-of-the-art performance for the three downstream editing tasks.

연구 동기 및 목표

  • 표준 사전학습된 언어 모델이 소프트웨어 작업에서 국소적 편집을 추론하는 데 한계가 있음.
  • 삽입, 삭제, 대체와 같은 에디트 연산을 명시적으로 모델링하는 사전학습 목표를 개발하여 에디트 인식 생성 성능을 향상시키기.
  • 다양한 편집 작업을 지원하기 위해 590만 개의 코드 스니펫과 160만 개의 댓글로 사전학습된 대규모 모델인 CoditT5를 구축하기.
  • 댓글 업데이트, 버그 수정, 자동 코드 리뷰와 같은 다수의 소프트웨어 편집 작업에 걸쳐 에디트 기반 접근법의 일반화 능력을 입증하기.
  • 재정렬을 통해 CoditT5를 표준 생성 모델과 조합하여 상호보완적인 강점을 활용하고 최신 기술 수준 성능을 달성하기

제안 방법

  • 두 단계 디코딩 프로세스 설계: 먼저 삽입, 삭제, 대체와 같은 연산을 지정하는 에디트 계획을 생성하고, 그 후에 에디트 계획에 주의를 기울여 수정된 출력을 생성하기.
  • CodeSearchNet에서 확보한 590만 개의 오픈소스 코드 스니펫과 160만 개의 자연어 댓글을 사용해 새로운 에디트 인식 목표를 기반으로 CoditT5를 사전학습하기.
  • 에디트 연산을 표현하기 위해 특수 토큰 형식을 사용하는 시퀀스-투-시퀀스 트랜스포머 아키텍처(T5 기반) 사용하기.
  • 입력 시퀀스 내에서 에디트 연산과 그 위치를 예측하도록 모델을 훈련시켜 생성 과정에서 국소적 추론을 가능하게 하기.
  • 댓글 업데이트, 버그 수정, 자동 코드 리뷰와 같은 세 가지 다운스트림 편집 작업에서 CoditT5를 미세조정하기.
  • CoditT5를 표준 생성 모델(예: CodeT5)과 재정렬을 통해 조합하여 상호보완적인 강점을 활용하기.

실험 결과

연구 질문

  • RQ1에디트 연산을 명시적으로 모델링하는 사전학습 목표가 표준 생성 모델에 비해 소프트웨어 편집 작업 성능을 향상시키는가?
  • RQ2CoditT5는 댓글 업데이트, 버그 수정, 자동 코드 리뷰와 같은 다양한 편집 작업에 얼마나 잘 일반화되는가?
  • RQ3에디트 기반 모델인 CoditT5가 표준 생성 모델과 어떻게 보완되어 전체 성능 향상에 기여하는가?
  • RQ4디코딩 중에 에디트 계획을 통합할 경우, 순수 자동회귀 생성에 비해 더 정확하고 국소적인 편집이 이루어지는가?
  • RQ5간단한 재정렬 전략이 에디트 기반 모델과 생성 기반 모델의 출력을 효과적으로 조합하여 최신 기술 수준의 성능을 달성할 수 있는가?

주요 결과

  • CoditT5는 댓글 업데이트, 버그 수정, 자동 코드 리뷰와 같은 세 가지 다운스트림 편집 작업에서 표준 생성 기반 모델(예: CodeT5, PLBART)을 모두 능가한다.
  • 자동 코드 리뷰 작업에서 CoditT5는 기존의 미세조정된 BART 및 T5 변형 모델을 모두 능가하는 새로운 최고 성능을 기록한다.
  • 표준 모델 대비 불필요하거나 복사 전용 생성을 최대 34.25% 감소시켜 더 나은 에디트 인식 능력을 보여준다.
  • CoditT5의 출력과 표준 생성 모델(예: CodeT5)의 출력을 재정렬하여 조합하면 성능 향상이 이루어지며, 세 작업 모두 새로운 최고 성능을 달성한다.
  • 에디트 기반 접근법은 강력한 일반화 능력을 보이며, 코드와 댓글을 포함한 다양한 편집 시나리오에서 일관된 성능 향상을 보인다.
  • CoditT5와 표준 생성기의 조합이 개별적으로 각각의 성능을 뛰어넘으며, 이는 두 모델 간의 상호보완적 성격을 확인한다.

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

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

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

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