Faire progresser la programmation dans les langages à faibles ressources
Les dernières avancées de nos modèles renforcent leurs capacités à créer et à migrer des logiciels dans des langages de programmation à faibles ressources comme COBOL, Fortran et Visual Basic. Ces langages offrent moins de code et de documentation pour l’apprentissage des modèles que des langages comme Python et JavaScript, mais ils soutiennent des infrastructures critiques et des services essentiels partout dans le monde. COBOL soutient(s'ouvre dans une nouvelle fenêtre) plus de 40 % des systèmes bancaires en ligne, 80 % des transactions par carte de crédit en personne et 95 % des transactions aux guichets automatiques, tandis que Fortran est utilisé pour les prévisions météorologiques(s'ouvre dans une nouvelle fenêtre) et l’analyse de la sûreté des réacteurs nucléaires(s'ouvre dans une nouvelle fenêtre). Améliorer la capacité de l’IA à travailler dans ces langages pourrait aider les équipes à maintenir et à moderniser les logiciels dont dépendent les services essentiels.
Ce travail s’appuie sur les commentaires de développeurs et d’entreprises clientes qui nous ont indiqué que les modèles de programmation éprouvent souvent des difficultés avec ces langages. Maintenir et moderniser ces logiciels peut être difficile : la documentation peut être incomplète, les développeurs d’origine peuvent avoir quitté l’entreprise et des règles d’affaires importantes peuvent n’exister que dans le code. Qu’elles corrigent des bogues ou migrent vers un autre langage, les équipes doivent préserver le comportement dont dépendent leurs systèmes.
Pour mesurer les progrès, nous avons conçu deux évaluations. MultiLangBench vérifie si un modèle peut créer de toutes pièces un moteur de base de données compatible avec SQLite dans 20 langages de programmation différents. Notre évaluation de migration COBOL vérifie si un modèle peut migrer des programmes existants vers un autre langage tout en préservant leur comportement. Ensemble, elles évaluent deux compétences complémentaires : créer de nouveaux logiciels et préserver le fonctionnement des logiciels existants.
Nos derniers modèles affichent des améliorations considérables dans les deux évaluations, offrant une exactitude nettement supérieure à moindre coût.
Sur MultiLangBench, GPT‑6 Astra atteint un taux moyen de réussite aux tests de 87,4 % dans 20 langages de programmation, contre 26,8 % pour GPT‑5.6 Sol, avec des améliorations dans tous les langages évalués. GPT‑6 Luna surpasse aussi GPT‑5.6 Sol, atteignant 40,3 % à un coût estimé de l’API inférieur d’environ 78 %.
Dans notre évaluation de migration COBOL, GPT‑6.1 Sol atteint une exactitude de 86,6 % à faible effort de raisonnement, contre seulement 5,4 % pour GPT‑5.6 Sol, tout en coûtant 39 % moins cher. À un effort de raisonnement plus élevé, l’exactitude atteint 97,9 %, frôlant le plafond de l’évaluation.
Ensemble, ces résultats montrent que nos modèles deviennent nettement plus performants dans un large éventail de langages de programmation, tout en gagnant en rentabilité.
MultiLangBench demande à un modèle de créer un moteur de base de données compatible avec SQLite dans un langage de programmation donné. Le modèle doit organiser une base de code, gérer l’état, traiter les erreurs et ajouter de nouvelles fonctionnalités tout en préservant celles qui existent déjà.
Pour comparer les implémentations d’un langage à l’autre, nous utilisons des fichiers de base de données comme interface commune. Le programme évalué reçoit une base de données initiale et une requête SQL, puis produit une base de données modifiée. Nous utilisons l’implémentation de référence de SQLite pour vérifier si la base de données obtenue contient les données attendues. Cela nous permet d’appliquer les mêmes tests, quel que soit le langage utilisé pour créer le moteur.
Nous avons adapté à ce format des tests de la suite de tests existante de SQLite. L’évaluation mesure la quantité de fonctionnalités opérationnelles qu’un modèle peut créer au cours d’une longue session de programmation, en indiquant le taux de réussite aux tests et le coût de l’API.
À l’effort de raisonnement maximal, GPT‑6 Astra atteint un taux moyen de réussite aux tests de 87,4 % dans les 20 langages, contre 26,8 % pour GPT‑5.6 Sol. Les améliorations touchent tous les langages évalués, notamment COBOL (de 10,9 % à 72,1 %), OCaml (de 25,6 % à 85,8 %), Fortran (de 21,4 % à 83,5 %) et Visual Basic (de 27,5 % à 89,4 %). Astra obtient plus de 83 % dans 19 des 20 langages, COBOL demeurant le plus difficile à 72 %.
GPT‑6 Luna offre une option moins coûteuse qui surpasse aussi GPT‑5.6 Sol dans tous les langages évalués. À l’effort de raisonnement maximal, il atteint un taux moyen de réussite aux tests de 40,3 %. Les gains touchent notamment COBOL (de 10,9 % à 17,1 %), OCaml (de 25,6 % à 34,1 %), Fortran (de 21,4 % à 31,4 %) et Visual Basic (de 27,5 % à 41,6 %). Ces améliorations s’accompagnent d’un coût moyen estimé de l’API de 0,77 $ par échantillon, contre 3,48 $ pour GPT‑5.6 Sol, soit environ 78 % de moins.
Nous publions la configuration d’évaluation et la suite de tests de MultiLangBench sur GitHub(s'ouvre dans une nouvelle fenêtre), ainsi que les résultats pour chaque langage. Les développeurs peuvent examiner ce que l’évaluation mesure, consulter les performances dans les langages qu’ils utilisent et repérer les lacunes qui comptent pour leur propre travail.
Notre deuxième évaluation demande aux modèles de migrer des programmes COBOL vers C++, Java, Kotlin, Python ou Rust tout en préservant le fonctionnement de chaque programme.
Pour réussir une migration, il faut comprendre à la fois la logique d’affaires du programme et le comportement propre au langage COBOL. Les programmes COBOL traitent souvent des transactions financières et des enregistrements commerciaux, où des détails comme les règles d’arrondi et la gestion des enregistrements manquants reflètent des exigences d’affaires. Par exemple, l’arithmétique à virgule fixe de COBOL supprime les décimales excédentaires, sauf si l’arrondi est explicitement demandé. Une version réécrite qui arrondit plutôt ces valeurs peut s’exécuter sans erreur tout en produisant des résultats financiers différents.
Pour vérifier si ces comportements sont préservés, nous soumettons nos modèles à des tests cachés qui exigent des sorties observables identiques octet par octet. Une migration est considérée comme réussie uniquement si tous les tests sont réussis. Ces capacités de préservation du comportement sont utiles aux équipes qui maintiennent et modernisent des systèmes anciens. Leur application à des logiciels en production exige toutefois encore une révision par des experts et des tests tenant compte des règles d’affaires et des dépendances du système.
Dans cette évaluation, GPT‑6.1 Sol atteint une exactitude de 86,6 % à faible effort de raisonnement, contre 5,4 % pour GPT‑5.6 Sol au même réglage, pour seulement 61 % du coût de l’API. À un effort de raisonnement plus élevé, l’exactitude atteint 97,9 %, approchant le plafond de l’évaluation. Ces résultats d’évaluation démontrent des progrès vers une migration de code plus exacte et abordable pour les équipes qui modernisent les logiciels dont dépendent leurs entreprises.
Ces évaluations, ainsi que les commentaires directs des développeurs et des entreprises clientes, nous aident à voir où nos modèles s’améliorent et où ils présentent encore des lacunes.
Notre objectif est d’aider les modèles à appliquer leurs compétences en génie logiciel dans davantage de langages : comprendre des dépôts inconnus, planifier des changements, utiliser des outils de compilation, exécuter des tests et corriger des défaillances.
Vous pouvez essayer nos derniers modèles par l’API pour des tâches de programmation dans les langages qu’utilise votre équipe. Vos commentaires sur ce qui fonctionne, les difficultés des modèles et les langages ou flux de travail à privilégier ensuite orientent notre façon d’entraîner et d’évaluer les modèles pour mieux prendre en charge les logiciels dont vous dépendez.





