Leveraging Automated Unit Tests for Unsupervised Code Translation
Baptiste Roziere, Jie Zhang, Francois Charton, Mark Harman, Gabriel Synnaeve, Guillaume Lample
Abstract
With little to no parallel data available for programming languages, unsupervised methods are well-suited to source code translation. However, the majority of unsupervised machine translation approaches rely on back-translation, a method developed in the context of natural language translation and one that inherently involves training on noisy inputs. Unfortunately, source code is highly sensitive to small changes; a single token can result in compilation failures or erroneous programs, unlike natural languages where small inaccuracies may not change the meaning of a sentence. To address this issue, we propose to leverage an automated unit-testing system to filter out invalid translations, thereby creating a fully tested parallel corpus. We found that fine-tuning an unsupervised model with this filtered data set significantly reduces the noise in the translations so-generated, comfortably outperforming the state-of-the-art for all language pairs studied. In particular, for Java→Python and Python→C++ we outperform the best previous methods by more than 16% and 24% respectively, reducing the error rate by more than 35%.
BibTeX
@inproceedings{
roziere2022leveraging,
title={Leveraging Automated Unit Tests for Unsupervised Code Translation},
author={Baptiste Roziere and Jie Zhang and Francois Charton and Mark Harman and Gabriel Synnaeve and Guillaume Lample},
booktitle={International Conference on Learning Representations},
year={2022},
url={https://openreview.net/forum?id=cmt-6KtR4c4}
}