Transcoder, c’est le petit nom du modèle développé par des chercheurs du laboratoire de Facebook AI Research, basé à Paris depuis cinq ans. Il est capable de traduire un code source vers un autre. Il a été présenté dans un article le 5 juin.

Du Python vers du C++

Transcoder est un transcompilateur, c’est-à-dire qu’il prend le code source d’un langage de programmation et le compile dans un autre langage de programmation. En temps normal un transcompilateur utilise des techniques qui manquent souvent de lisibilité et ne respecte pas toujours les conventions du langage de destination. Cela induit le besoin d’avoir recours à des corrections manuelles, plus longues et donc plus couteuses.

En tant que transcompilateur neuronal non supervisé, Transcoder améliore significativement la précision avec laquelle un code source est traduit. Selon Guillaume Lample, l’un des chercheurs du projet joint par lemondeinformatique, l’utilité de Transcoder est de « convertir du code écrit dans un langage lent à l’exécution, comme Python, vers un langage plus rapide comme le C ou le C++ ». Il permettra également de convertir des programmes et des librairies de code datés comme Cobol. L’un des avantages du modèle créer par l’équipe de Facebook AI Research est de ne requérir « aucune expertise dans les langages source ou cible et peut être facilement généralisée à d’autres langages de programmation ».

La traduction de langues naturelles comme inspiration pour Transcoder

Pour parvenir à ce résultat, les scientifiques se sont basés sur leurs travaux datant de 2 ans sur la traduction du langage naturel avec peu de ressources. Facebook portant une attention particulière aux IA dans le domaine des langues naturelles. Guillaume Lample a expliqué à lemondeinformatique, « On entraine un modèle à traduire du Python vers le C++, et on l’entraine à reconstruire le code Python initial en se basant sur la traduction générée, approximative, en C++ ». Entrainé sur des codes en open source puis testé de différentes façons, les chercheurs démontrent avoir obtenu des résultats supérieurs aux modèles du genre préexistant.