CodeRL : Maîtriser la génération de code grâce aux modèles pré-entraînés et l'apprentissage par renforcement profond

La synthèse de programmes ou la génération de code vise à produire un programme satisfaisant une spécification de problème donnée. Les approches récentes basées sur des modèles linguistiques pré-entraînés à grande échelle (LM) ont montré des résultats prometteurs, mais elles présentent toutefois des limitations critiques. En particulier, elles suivent généralement une procédure classique d’ajustement fin supervisé, entraînant un modèle de génération de code uniquement à partir de paires de descriptions en langage naturel et de programmes corrects (ground-truth). Ce paradigme ignore largement des signaux importants mais potentiellement utiles présents dans la spécification du problème, tels que les tests unitaires, ce qui entraîne souvent des performances médiocres lors de la résolution de tâches de codage complexes inconnues auparavant. Pour surmonter ces limites, nous proposons « CodeRL », un nouveau cadre pour les tâches de synthèse de programmes, combinant des modèles linguistiques pré-entraînés et l’apprentissage par renforcement profond (RL). Plus précisément, pendant l’entraînement, nous considérons le modèle LM de génération de code comme un réseau acteur, et introduisons un réseau critique entraîné pour prédire la correction fonctionnelle des programmes générés, fournissant ainsi des signaux de rétroaction densifiés à l’acteur. Pendant l’inférence, nous introduisons une nouvelle procédure de génération reposant sur une stratégie d’échantillonnage cruciale, permettant au modèle de régénérer automatiquement des programmes en se basant sur les retours des tests unitaires d'exemple et sur les scores fournis par le réseau critique. Concernant les architectures de base du modèle, nous avons étendu l’architecture encodeur-décodage de CodeT5 en intégrant des objectifs d’apprentissage améliorés, des tailles de modèle plus importantes et des données d’entraînement préalable de meilleure qualité. Notre méthode atteint non seulement de nouveaux résultats SOTA sur le défi APPS, mais démontre également une forte capacité de transfert zéro-shot, obtenant de nouveaux résultats SOTA sur le benchmark plus simple MBPP.