코드 순서와 코드 구조
코드를 토큰의 나열로만 보면 내부 구조가 담고 있는 의미를 놓칠 수 있다. GraphCodeBERT는 코드 이해에 필요한 구조 정보를 사전 학습에서 함께 사용한다.
값의 출처를 나타내는 관계
추상 구문 트리 대신 변수 사이에서 값이 어디로부터 왔는지를 나타내는 데이터 흐름을 사용했다. 구문의 계층보다 의미 수준의 연결에 초점을 맞춘 선택이다.
구조를 배우는 사전 과제
마스킹 언어 모델링에 더해 코드 구조의 간선을 예측하고 소스 코드와 구조의 표현을 정렬하는 과제를 도입했다. 그래프 유도 마스킹 어텐션으로 구조를 모델에 반영한다.
여러 코드 과제의 평가
소개 연구는 코드 검색과 유사 코드 탐지, 코드 번역 및 개선 과제로 평가했다. 코드 구조와 추가 사전 학습 과제가 다양한 후속 작업에 주는 영향을 비교한 연구다.
관련 문서
CodeBERT / CodeXGLUE / CodeSearchNet / Transformer / 그래프 / 프로그래밍