
초록
우리는 과거의 편집을 학습한 모델을 기반으로 편집 완료를 예측하는 문제에 대해 다룹니다. 부분적으로 편집된 코드 조각이 주어졌을 때, 우리의 목표는 해당 조각의 나머지 부분에 대한 편집 완료를 예측하는 것입니다. 이 작업을 EditCompletion 작업이라고 하며, 이를 해결하기 위한 새로운 접근법을 제시합니다. 주요 아이디어는 구조적 편집을 직접 표현하는 것입니다. 이 방법은 편집 자체의 가능성 확률을 모델링하는 것이 아니라, 편집된 코드의 가능성 확률을 학습하는 것과 달리, 편집 자체의 가능성 확률을 모델링할 수 있게 합니다. 우리는 편집 연산을 프로그램의 추상 문법 트리(Abstract Syntax Tree, AST)에서 편집의 출발점에서 목적지까지 이어지는 경로로 표현합니다. 이러한 표현 방식을 사용하여, EditCompletion 작업에 대한 강력하면서도 가벼운 신경망 모델을 제시합니다.우리는 철저한 평가를 수행하여, LSTM, Transformer, 신경망 CRF 등 여러 강력한 모델들로 구동되는 다양한 표현 및 모델링 접근법과 우리의 접근법을 비교했습니다. 실험 결과, 우리의 모델은 최신 순차적 모델보다 상대적으로 28% 높은 성능 개선율을 보였으며, 직접적인 편집 모델링 대신 편집된 코드 생성을 학습하는 문법적 모델보다 2배 더 높은 정확도를 달성했습니다.우리의 코드, 데이터셋 및 학습된 모델은 https://github.com/tech-srl/c3po/ 에 공개되어 있습니다.