[논문 리뷰] CoTran: An LLM-based Code Translator using Reinforcement Learning with Feedback from Compiler and Symbolic Execution
CoTran은 컴파일러와 기호 실행 피드백을 활용한 강화학습을 통해 번역 정확도를 향상시키는 새로운 LLM 기반 코드 번역기이다. 컴파일러 피드백(컴파일 성공률)과 기호 실행 피드백(기능적 동치성)을 통합함으로써 CoTran은 파이썬에서 자바로의 번역에서 48.68%의 기능적 동치성 정확도와 76.98%의 컴파일 성공률을 달성하며, 기존의 PLBART-base 및 CodeT5 기반 모델을 뛰어넘는 성능을 보였다.
In this paper, we present an LLM-based code translation method and an associated tool called CoTran, that translates whole-programs from one high-level programming language to another. Existing LLM-based code translation methods lack training to ensure that the translated code reliably compiles or bears substantial functional equivalence to the input code. In our work, we fine-tune an LLM using reinforcement learning, incorporating compiler feedback, and symbolic execution (symexec)-based testing feedback to assess functional equivalence between the input and output programs. The idea is to guide an LLM during fine-tuning, via compiler and symexec-based testing feedback, by letting it know how far it is from producing perfect translations. We conduct extensive experiments comparing CoTran with 14 other code translation tools, including human-written transpilers, LLM-based translation tools, and ChatGPT. Using a benchmark of over um{57000} code pairs in Java and Python, we demonstrate that CoTran outperforms the other tools on relevant metrics such as compilation accuracy (CompAcc) and functional equivalence accuracy (FEqAcc). For example, in Python-to-Java translation, CoTran achieves 48.68% FEqAcc and 76.98% CompAcc, whereas the nearest competing tool (PLBART-base) gets 38.26% and 75.77% respectively. Additionally, CoTran, built on top of CodeT5, improves FEqAcc by +14.89% and CompAcc by +8.14% for Python-to-Java (resp., +12.94% and +4.30% for Java-to-Python).
연구 동기 및 목표
- 기존의 LLM 기반 코드 번역 도구에서의 신뢰할 수 없는 컴파일 성공률과 기능적 동치성 문제를 해결하기 위해.
- LLM 미세조정 중에 수정 피드백을 통합하여 전체 프로그램 기반 코드 번역을 향상시키기 위해.
- 컴파일러와 기호 실행 피드백을 활용한 강화학습을 통해 번역 정확도를 향상시키기 위해.
- 양방향 번역에 기반한 LLM을 훈련시켜 자동으로 기능적 동치성 검증을 수행할 수 있도록 하기 위해.
- LoRA를 활용한 자원 친화적이고 파rameter 효율적인 훈련 프레임워크를 개발하여 양방향 모델의 공동 미세조정을 가능하게 하기 위해.
제안 방법
- CoTran은 감독 미세조정(SFT)과 Proximal Policy Optimization(PPO)를 통한 강화학습(RL)을 조합한 이중 단계 훈련 파이프라인을 사용한다.
- 이 방법은 컴파일러 피드백(CF)을 통해 컴파일 성공 여부를 평가하고, Symflower가 생성한 단위 테스트를 활용해 기호 실행 피드백(SF)을 통해 기능적 동치성을 검증한다.
- 백터백(back-to-back, b2b) 아키텍처는 자바에서 파이썬(P2J)과 파이썬에서 자바(J2P)로의 LLM 쌍을 사용하여 기능적 동치성의 종단 간 검증을 가능하게 한다.
- 피드백 보상은 SF(기능적 동치성)와 CF(컴파일 성공률)의 가중합으로 계산되며, 분포 이탈을 방지하기 위해 KL-발산 정규화가 적용된다.
- 대부분의 모델 파rameter를 동결하고 낮은 랭크의 투영 행렬만 훈련시킴으로써 파rameter 효율적인 미세조정이 LoRA를 통해 달성된다.
- SFT와 RL 최적화를 번갈아가며 수행하는 혼합 훈련 루프를 통해 검증 정확도 기반으로 최고 성능을 보인 모델을 선택한다.

실험 결과
연구 질문
- RQ1컴파일러와 기호 실행 피드백을 활용한 강화학습이 LLM 기반 코드 번역의 컴파일 성공률과 기능적 정확도를 크게 향상시킬 수 있는가?
- RQ2컴파일러와 기호 실행 피드백를 모두 통합한 피드백은 감독 미세조정만을 사용한 경우에 비해 번역 품질에 어떤 영향을 미치는가?
- RQ3백터백 LLM을 사용할 경우 전체 프로그램 기반 번역에서 기능적 동치성 검증이 얼마나 향상되는가?
- RQ4LoRA를 활용한 파rameter 효율적인 미세조정은 공동 번역 모델 훈련에서 계산 비용을 줄이면서도 높은 성능을 유지할 수 있는가?
- RQ5CoTran은 PLBART 및 CodeT5와 같은 최신 기술 대비 컴파일 성공률과 기능적 동치성 정확도 측면에서 어떻게 비교되는가?
주요 결과
- CoTran은 파이썬에서 자바로의 번역에서 48.68%의 기능적 동치성 정확도(FEqAcc)와 76.98%의 컴파일 성공률(CompAcc)을 달성하였으며, 가장 가까운 경쟁자인 PLBART-base(38.26% FEqAcc, 75.77% CompAcc)를 크게 앞서나갔다.
- CodeT5를 기반으로 한 CoTran은 자바에서 파이썬으로의 번역에서 FEqAcc를 11.23%p 향상시키고 CompAcc를 4.07%p 향상시켰으며, 파이썬에서 자바로의 번역에서는 각각 14.89%p와 8.14%p 향상되었다.
- 컴파일러 피드백과 기호 실행 피드백를 모두 활용할 경우, 감독 미세조정만을 사용한 경우에 비해 번역 정확도가 크게 향상된다.
- 검증 성능 기반 모델 선택을 통한 SFT-RL 혼합 훈련 루프는 훈련을 안정화시키고 최종 모델 품질을 향상시킨다.
- LoRA 기반의 파rameter 효율적인 미세조정 접근법은 메모리와 계산 자원 요구량을 줄이며 양방향 모델의 공동 훈련을 가능하게 한다.
- 백터백 LLM 아키텍처는 언어 간 번역을 완전히 뒤바꾸어 검증함으로써 자동으로 종단 간 기능적 동치성 검증을 수행할 수 있도록 한다.

더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.