위키득계정 ↗
기술

InCoder

InCoder기술
최초 공개
2022년
학회 발표
ICLR 2023
주요 기능
코드 합성과 빈 부분 채우기
학습 구성
무작위 구간 마스킹과 파일 끝으로 이동
InCoder는 코드를 왼쪽부터 생성하는 작업과 중간의 빈 부분을 채우는 편집을 함께 지원하는 모델이다. 코드 앞뒤의 문맥을 모두 이용할 수 있도록 학습 자료의 일부 구간을 가리고 재배치했다.

반복적으로 편집되는 코드

실제 코드는 처음부터 끝까지 한 번에만 작성되지 않고 수정과 정제를 반복한다. InCoder는 왼쪽에서 오른쪽으로 쓰는 생성과 중간을 채우는 편집을 하나의 생성 모델로 다루려 했다.

양쪽 문맥을 이용하는 학습

학습할 코드 파일에서 구간을 무작위로 가리고 끝으로 옮겼다. 이런 구성을 통해 빈 부분의 앞뒤 문맥에 조건을 두고 코드를 채우도록 한다.

제로샷 채우기의 평가

소개 연구는 추가 과제 학습 없이 코드의 빈 부분을 채우는 능력을 타입 추론과 주석 생성, 변수 이름 변경 등에서 평가했다. 뒤쪽 문맥까지 볼 수 있는 조건의 이점을 살폈다.

생성과 편집의 비교

양방향 문맥은 초기 실험의 편집 관련 과제에서 성능을 개선했다. 연구는 비슷한 규모로 사전 학습한 단방향 모델과 일반 프로그램 합성 평가도 함께 비교했다.

관련 문서

CodeGen / StarCoder / Code Llama / CodeT5 / HumanEval / 프로그래밍