Turbulence : Test systématique et automatique des grands modèles linguistiques ajustés par instruction pour le code

Nous présentons une méthode pour évaluer de manière systématique la correction et la robustesse des grands modèles linguistiques (LLM) ajustés à des instructions dans le domaine de la génération de code, à l’aide d’une nouvelle base d’évaluation appelée Turbulence. Turbulence se compose d’un grand ensemble de modèles de questions en langage naturel, chacun correspondant à un problème de programmation, paramétrés de manière à pouvoir être formulés sous de nombreuses formes différentes. Chaque modèle de question est associé à un oracle de test qui évalue la correction d’une solution de code fournie par un LLM. Ainsi, à partir d’un seul modèle de question, il devient possible de poser à un LLM un voisinage de questions de programmation très similaires, et d’évaluer la correction de chaque réponse obtenue. Cette approche permet d’identifier des lacunes dans les capacités de génération de code des LLM, y compris des anomalies où le modèle résout correctement presque toutes les questions d’un voisinage, mais échoue pour certaines instanciations spécifiques des paramètres. Nous présentons des expériences menées sur cinq LLM provenant d’OpenAI, Cohere et Meta, chacun testé à deux configurations de température. Nos résultats montrent que, dans tous les cas, Turbulence est capable de révéler des faiblesses dans la capacité de raisonnement des LLM. Cela va au-delà de la simple constatation que les LLM produisent parfois du code incorrect (ce qui n’est pas surprenant) : en identifiant systématiquement les cas où les LLM parviennent à résoudre certaines questions d’un voisinage, mais échouent à généraliser à l’ensemble du voisinage, notre méthode est particulièrement efficace pour mettre en évidence des problèmes de robustesse. Nous fournissons des données et des exemples qui éclairent les types d’erreurs commises par les LLM lorsqu’ils produisent des résultats de code incorrects.