CodeBERT: 프로그래밍 언어와 자연 언어를 위한 사전 학습 모델

우리는 프로그래밍 언어(PL)와 자연어(NL)를 위한 이모달 사전 학습 모델인 CodeBERT를 제시합니다. CodeBERT는 자연어 코드 검색, 코드 문서 생성 등과 같은 하류 NL-PL 응용 프로그램을 지원하는 일반적인 목적의 표현을 학습합니다. 우리는 Transformer 기반 신경망 구조로 CodeBERT를 개발하였으며, 대체 토큰 감지(replaced token detection)라는 사전 학습 작업을 포함하는 하이브리드 목적 함수로 이를 학습시킵니다. 이 작업은 생성기에서 샘플링된 가능한 대안을 감지하는 것입니다. 이를 통해 PL-NL 쌍의 이모달 데이터와 단일 모달 데이터 모두를 활용할 수 있으며, 전자는 모델 학습에 대한 입력 토큰을 제공하고 후자는 더 나은 생성기를 학습하는 데 도움을 줍니다. 우리는 모델 파라미터를 미세 조정(fine-tuning)하여 두 가지 NL-PL 응용 프로그램에서 CodeBERT를 평가하였습니다. 결과는 CodeBERT가 자연어 코드 검색과 코드 문서 생성 작업에서 최신 성능(state-of-the-art performance)을 달성함을 보여줍니다. 또한, CodeBERT가 어떤 유형의 지식을 학습했는지를 조사하기 위해 우리는 NL-PL 탐침(probing) 데이터셋을 구성하고, 사전 학습된 모델의 파라미터가 고정된 상태(zero-shot setting)에서 평가하였습니다. 결과는 CodeBERT가 이전의 사전 학습된 모델들보다 NL-PL 탐침 작업에서 더 우수한 성능을 보임을 입증하였습니다.