Skip to main content
QUICK REVIEW

[논문 리뷰] Automatic Code Generation using Pre-Trained Language Models

Luis J. Dominguez Perez, Lizi Ottens|arXiv (Cornell University)|2021. 02. 21.
Topic Modeling참고 문헌 8인용 수 11
한 줄 요약

이 논문은 함수 서명과 문서화 문자열을 입력으로 사용하여 파이썬에서 엔드 투 엔드 코드 생성을 위해 미세조정된 사전 훈련된 GPT-2 언어 모델을 제안한다. 이 방법은 BLEU 점수 0.22를 기록하여 문자 수준의 RNN 기반 모델 대비 46% 향상된 성능을 보이며, 대규모 사전 훈련된 모델이 문법적으로 올바르고 의미적으로 유의미한 코드를 효과적으로 생성할 수 있음을 보여준다.

ABSTRACT

Recent advancements in natural language processing \cite{gpt2} \cite{BERT} have led to near-human performance in multiple natural language tasks. In this paper, we seek to understand whether similar techniques can be applied to a highly structured environment with strict syntax rules. Specifically, we propose an end-to-end machine learning model for code generation in the Python language built on-top of pre-trained language models. We demonstrate that a fine-tuned model can perform well in code generation tasks, achieving a BLEU score of 0.22, an improvement of 46\% over a reasonable sequence-to-sequence baseline. All results and related code used for training and data processing are available on GitHub.

연구 동기 및 목표

  • 사전 훈련된 언어 모델이 파이썬과 같은 매우 구조화된 도메인에서 코드 생성에 효과적으로 미세조정될 수 있는지 조사하기 위해.
  • 함수 서명과 문서화 문자열에서 함수 본문을 생성하는 과제에서, 미세조정된 GPT-2 모델의 성능을 문자 수준의 RNN 기반 모델과 비교하기 위해.
  • 사전 훈련이 문법적 정확성과 의미적 관련성 측면에서 코드 생성 품질에 미치는 영향을 평가하기 위해.
  • 자연어 사전 훈련에서의 지식 전이가 프로그래밍 언어 생성에 대해 실현 가능한지 평가하기 위해.

제안 방법

  • 50만 개의 (문서화 문자열, 코드) 쌍을 포함하는 CodeSearchNet 데이터셋의 정제된 하위 집합에 대해 소형 GPT-2 모델(117M 파라미터)을 미세조정한다.
  • 입력으로 함수 서명과 문서화 문자열을, 출력으로 해당 함수 본문을 갖는 시퀀스 투 시퀀스 프레임워크를 사용한다.
  • 문자 수준의 임베딩보다 품질을 향상시키기 위해 보조 페어 인코딩(BPE)을 토크나이저로 사용한다.
  • 표준 언어 모델링 목표를 사용하여 배치 크기가 2인 100,000개의 미니배치 반복 동안 모델을 훈련한다.
  • 생성된 코드와 기준 코드 간의 n-gram 겹침을 측정하기 위해 보류된 테스트 세트에서 BLEU 점수를 사용하여 성능을 평가한다.
  • 강력한 기반 모델로, 10%의 파이썬 데이터에 대해 훈련된 문자 수준의 RNN을 사용하며, 128토큰 시퀀스와 소프트맥스 교차 엔트로피 손실을 적용한다.

실험 결과

연구 질문

  • RQ1GPT-2와 같은 사전 훈련된 언어 모델이 함수 서명과 문서화 문자열을 입력으로 받아 문법적으로 정확하고 의미적으로 유의미한 파이썬 함수 본문을 효과적으로 생성할 수 있는가?
  • RQ2미세조정된 GPT-2 모델의 성능은 함수 본문 생성 과제에서 문자 수준의 RNN 기반 모델과 비교해 어떻게 다른가?
  • RQ3대규모 자연어 데이터에 대한 사전 훈련이 파이썬과 같은 구조화된 프로그래밍 언어에서의 코드 생성에 얼마나 효과적으로 전이되는가?
  • RQ4보조 페어 인코딩(BPE)을 사용하는 것이 문자 수준의 토크나이제이션보다 코드 생성 품질을 향상시키는가?

주요 결과

  • 미세조정된 GPT-2 모델은 코드 생성 과제에서 BLEU 점수 0.22를 기록하여 문자 수준의 RNN 기반 모델을 크게 앞서 갔다.
  • GPT-2 모델은 동일한 평가 세트에서 0.015의 점수를 기록한 RNN 기반 모델 대비 BLEU 점수에서 46%의 상대적 향상을 보였다.
  • 품질 분석을 통해 모델은 if 문, 함수 호출, 메서드 정의 등 올바른 파이썬 문법을 갖춘 새로운 코드를 생성하는 것으로 확인되었다.
  • 모델는 다양한 함수 서명과 문서화 문자열에 대해 조건부로도 의미적으로 관련 있는 코드를 생성하는 데 있어 강력한 일반화 능력을 보였다.
  • GPT-2에서 BPE 토크나이제이션의 사용은 문자 수준의 임베딩보다 더 나은 성능과 더 일관된 코드 생성을 이끌었다.
  • 훈련 손실과 BLEU 점수가 시간이 지남에 따라 계속 향상되어, 추가적인 미세조정으로 더 큰 성과 향상이 가능할 것임을 시사했다.

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

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

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

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