Evaluating large language models trained on code

저자: Mark Chen, Jerry Tworek, Heewoo Jun, Qiming Yuan, Henrique Pondé de Oliveira Pinto, Jared Kaplan, Harrison Edwards, Yuri Burda, Nicholas Joseph, Greg Brockman, Alex Ray, Raul Puri, Gretchen Krueger, Michael Petrov, Heidy Khlaaf, Girish Sastry, Pamela Mishkin, Brooke Chan, Scott Gray, Nick Ryder | 날짜: 2021 | DOI: N/A


Essence

Figure 1

HumanEval 데이터셋에서 모델 크기에 따른 통과율. 단일 샘플 생성 시 Codex-12B는 28.8%, 100개 샘플 생성 후 단위 테스트 통과 샘플 선택 시 77.5% 달성

GitHub 코드로 미세조정된 GPT 기반의 Codex 모델을 제시하고, 새로운 벤치마크인 HumanEval을 통해 함수형 정확성(functional correctness) 기반의 평가 체계를 제안한 논문이다. Codex는 도큐스트링(docstring)으로부터 Python 함수를 생성하는 능력에서 기존 모델들을 크게 능가한다.

Motivation

Achievement

Figure 2

HumanEval 데이터셋의 3개 문제 예시와 Codex-12B가 생성한 정답. 도큐스트링만으로 함수를 완전히 구현하는 예시 제시

  1. 성능 향상: 단일 샘플 기준 Codex-12B는 28.8% 해결률(GPT-3: 0%, GPT-J: 11.4%), 100개 샘플 생성 시 Codex-S는 77.5% 달성. 모델 크기 확대(300M → 12B)에 따른 성능 스케일링 확인.
  2. 메트릭 기여: pass@k 메트릭의 불편 추정량(unbiased estimator) 제안으로 샘플링 기반 평가의 분산(variance) 문제 해결. 함수형 정확성이 BLEU 점수보다 신뢰성 높음을 입증.
  3. 평가 자산 공개: 164개 문제의 HumanEval 벤치마크와 평가 프레임워크를 오픈소스로 공개하여 재현성 확보.
  4. 실용적 응용: 로그 확률(log-probability) 기반 샘플 선택으로 44.5% 해결률 달성 - 모든 샘플을 완전 평가할 수 없는 배포 환경에서 활용 가능.

How

```

pass@k = 1 - ∏(1 - k/(n-c+i)) for i=1 to k

```

여기서 n=생성 샘플 수, c=정답 샘플 수. 단순 추정 1-(1-p̂)^k는 편향됨을 증명.

Originality

Limitation & Further Study

Evaluation

총평: 이 논문은 코드 생성 모델의 평가 체계를 근본적으로 개선하고 실용적 벤치마크를 제공함으로써 프로그래밍 합성 분야에 중대한 기여를 했다. Codex 모델의 실제 성능은 놀라울 정도이나, 평가 범위의 한정과 윤리적 논의의 깊이 부족이 아쉬움.

같이 보면 좋은 논문

기반 연구
Codex의 코드 생성 평가 방법론을 다국어 코드 생성으로 확장한 발전된 형태이다
기반 연구
코드 훈련된 대규모 언어모델 평가가 Agent K의 코딩 능력 기반을 제공한다.
기반 연구
코드 훈련된 대규모 언어모델 평가가 CodeAct의 Python 코드 실행 능력 기반이다.
기반 연구
코드 생성 모델의 함수형 정확성 평가가 과학 연구 코딩 벤치마크 설계의 기초가 된다
다른 접근
Codex의 폐쇄형 모델에 대응하는 오픈소스 코드 생성 접근법을 제시한다
후속 연구
코드 학습된 대규모 언어모델의 평가 방법론을 확장하여 코드 품질과 복제 문제를 다룬다
후속 연구
GitHub 코드 기반 모델을 다양한 프로그래밍 언어와 과학 코딩으로 확장한 차세대 모델이다
후속 연구
코드 생성 능력을 형식적 수학 정리 증명이라는 고도의 논리적 추론으로 확장했다
후속 연구
일반적인 코드 생성 평가를 과학자들이 직접 큐레이션한 연구 중심 코딩 작업으로 특화했다
응용 사례
코드 생성 능력을 수학적 정리 증명이라는 고도의 논리적 추론 작업에 적용한다
← 목록으로 돌아가기