Skip to main content
QUICK REVIEW

[논문 리뷰] AVATAR: A Parallel Corpus for Java-Python Program Translation

Wasi Uddin Ahmad, Golam Rahman Tushar|arXiv (Cornell University)|2021. 08. 26.
Natural Language Processing Techniques참고 문헌 14인용 수 14
한 줄 요약

이 논문은 경쟁적 프로그래밍 사이트와 오픈소스 리포지터리에서 수집한 9,515개의 프로그래밍 문제와 해당 문제에 대한 자바 및 파이썬 솔루션을 포함하는 병렬 코퍼스인 Avatar를 소개한다. 이 데이터셋은 功能적 정확도 평가를 위한 단위 테스트가 포함된 250개의 예시를 제공하며, 사전 훈련된 코드 언어 모델의 미세조정을 가능하게 하지만, 실험 결과 기존 모델들이 강한 어휘 성능에도 불구하고 여전히 功能적 정확도에서 어려움을 겪는 것으로 나타났다.

ABSTRACT

Program translation refers to migrating source code from one programming language to another. It has tremendous practical value in software development, as porting software across languages is time-consuming and costly. Automating program translation is of paramount importance in software migration, and recently researchers explored unsupervised approaches due to the unavailability of parallel corpora. However, the availability of pre-trained language models for programming languages enables supervised fine-tuning with a small number of labeled examples. Therefore, we present AVATAR, a collection of 9,515 programming problems and their solutions written in two popular languages, Java and Python. AVATAR is collected from competitive programming sites, online platforms, and open-source repositories. Furthermore, AVATAR includes unit tests for 250 examples to facilitate functional correctness evaluation. We benchmark several pre-trained language models fine-tuned on AVATAR. Experiment results show that the models lack in generating functionally accurate code.

연구 동기 및 목표

  • 자바-파이썬 프로그램 번역을 위한 대규모이자 고품질의 병렬 코퍼스 부족 문제를 해결하기 위해.
  • 사전 훈련된 코드 언어 모델(PLM)의 감독적 미세조정을 가능하게 하여 번역 성능을 향상시키기 위해.
  • 단위 테스트를 통한 번역된 코드의 功能적 정확도 평가를 가능하게 하기 위한 벤치마크 제공을 위해.
  • 현재 신경망 모델이 기능적으로 정확한 코드를 생성하는 데에 한계가 있는지 조사하기 위해.
  • 다양하고 공개 가능한 데이터셋을 배포하여 향후 자동 프로그램 번역 분야의 연구를 지원하기 위해.

제안 방법

  • 경쟁적 프로그래밍 플랫폼(AtCoder, Codeforces, AIZU, Code Jam, LeetCode, Project Euler)과 온라인 리포지터리(GeeksforGeeks, GitHub)에서 솔루션을 수집하였다.
  • 주석과 문서 문자열을 제거하고, 일관성을 확보하기 위해 길이 기준(≤464 토큰)을 적용하여 코드를 토큰화하고 필터링하였다.
  • 다양성을 확보하고 중복을 방지하기 위해 각 문제당 최대 5개의 서로 다른 솔루션을 유지하였다.
  • 데이터셋을 75% 훈련, 5% 검증, 20% 테스트로 분할하였으며, 검증 및 테스트 세트에는 다수의 정답 솔루션을 유지하였다.
  • 구문적 및 어휘적 일치 외에도 功能적 정확도 평가를 가능하게 하기 위해 250개의 예시에 단위 테스트를 제공하였다.
  • Avatar 데이터셋을 기반으로 여러 사전 훈련된 코드 언어 모델(예: CodeBERT, GraphCodeBERT, TransCoder-ST, PLBART)을 미세조정하여 번역 작업을 수행하였다.

실험 결과

연구 질문

  • RQ1사전 훈련된 코드 언어 모델이 새로운 대규모 병렬 코퍼스를 기반으로 자바-파이썬 번역에 대해 미세조정되었을 때 얼마나 효과적인가?
  • RQ2현재 모델들이 단위 테스트를 통해 검증된 바에 비해 얼마나 기능적으로 정확한 코드를 생성하는가?
  • RQ3어휘 정확도와 기능적 정확도 사이의 격차를 초래하는 요소는 무엇인가?
  • RQ4훈련 데이터의 다양성과 품질이 모델의 일반화 능력과 기능적 정확도에 어떤 영향을 미치는가?
  • RQ5정제된 병렬 코퍼스는 미리 보지 않은 문제에 대해 zero-shot 또는 few-shot 번역 성능을 향상시킬 수 있는가?

주요 결과

  • Avatar 데이터셋은 250개의 예시에 단위 테스트가 포함된 9,515개의 프로그래밍 문제를 포함하며, 功能적 정확도 평가가 가능하다.
  • 미세조정된 모델들은 어휘적 및 구문적 메트릭에서 뛰어난 성능을 보였지만, 단위 테스트 실행을 통한 기능적 정확도 측정에서는 상당히 낮은 정확도를 보였다.
  • 평가된 모델들 중에서 미세조정된 TransCoder-ST가 어휘적 및 기능적 메트릭 양면에서 가장 높은 성능을 보였으며, 그 다음으로 PLBART가 뒤이었다.
  • 강한 어휘 일치에도 불구하고 모델들이 기능적으로 정확한 코드를 자주 생성하지 못함으로써 의미적 이해의 심각한 격차가 있음을 시사한다.
  • 데이터셋은 모델들이 구문적으로는 유효하지만 논리적으로 잘못된 코드를 생성하는 경향이 있음을 드러내었으며, 특히 자료구조 및 제어 흐름 처리에서 두드러졌다.
  • 훈련에 소요된 탄소 배출량은 낮았으며(7.5kg CO2 equivalent), 중간 크기의 데이터셋에 대한 제한된 모델 미세조정 덕분이었다.

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

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

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

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