Fine-tuned LLM-based Code Migration Framework
Ce document présente un cadre de modèle de langage à grande échelle affiné qui automatise efficacement la migration de systèmes basés sur SQL d'Oracle PL/SQL vers PostgreSQL en intégrant des techniques d'ingénierie traditionnelles, une analyse d'erreurs itérative et les retours d'experts afin de réduire considérablement les erreurs de syntaxe et d'optimiser la logique de la base de données.
Article original sous licence CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Ceci est une explication générée par l'IA de l'article ci-dessous. Elle n'a pas été rédigée ni approuvée par les auteurs. Pour une précision technique, consultez l'article original. Lire la clause de non-responsabilité complète
Imaginez que vous possédez une immense bibliothèque de manuels d'instructions écrits dans un ancien langage complexe (Oracle SQL). Votre entreprise souhaite passer à un nouveau langage, plus moderne (PostgreSQL), pour économiser de l'argent et gagner en rapidité. Le problème ? Les anciens manuels sont gigantesques, comprenant des milliers de fichiers, et les deux langages ne se contentent pas d'avoir des mots différents ; ils ont des grammaires, des logiques et des règles totalement différentes.
Ce document décrit un système automatisé intelligent conçu par des chercheurs d'EPAM Systems pour traduire ces anciens manuels vers le nouveau langage sans rien casser. Voici comment ils ont procédé, expliqué simplement :
1. Le Problème : Ce n'est pas qu'un simple « Rechercher et Remplacer »
Vous ne pouvez pas utiliser un simple dictionnaire pour traduire cela car les « phrases » de l'ancien système (Oracle) signifient souvent quelque chose de totalement différent dans le nouveau système (PostgreSQL). Les outils traditionnels (comme une application de traduction standard) tentent de suivre des règles strictes, mais ils se retrouvent souvent bloqués face à des histoires complexes, omettant de larges portions du manuel ou écrivant des absurdités.
2. La Solution : Un Robot « Super-Traducteur »
L'équipe a construit un robot d'IA personnalisé (un Grand Modèle de Langage ou LLM) et l'a formé spécifiquement pour cette tâche. Ils ne lui ont pas simplement demandé de « traduire » ; ils l'ont entraîné en utilisant une méthode spéciale en deux étapes :
- Étape 1 : Apprendre les règles (La salle de classe) : D'abord, ils ont appris à l'IA à comprendre la grammaire et la structure des deux langages séparément. Ils lui ont donné des exemples de l'apparence d'une commande Oracle spécifique et de la manière dont elle devrait être décrite en langage clair. Cela a aidé l'IA à comprendre « l'ambiance » et la structure du code avant de tenter la traduction.
- Étape 2 : Apprendre à traduire (La pratique) : Une fois que l'IA a compris les règles, ils lui ont donné des paires directes : « Voici une phrase Oracle, voici la phrase PostgreSQL correspondante ». C'est là qu'elle a appris la conversion réelle.
3. Le Filet de Sécurité « L'Humain dans la Boucle »
Même les robots intelligents font des erreurs. Ainsi, le système dispose d'une équipe de contrôle qualité intégrée :
- Le Vérificateur Automatique : Le système scanne automatiquement le nouveau code pour détecter les erreurs de grammaire (syntaxe) et les erreurs de logique.
- Les Experts Réviseurs : Lorsque le système est incertain (face à une instruction très rare ou complexe), il signale l'élément à un expert humain. L'expert corrige l'erreur, et le système apprend de cette correction pour faire mieux la prochaine fois. C'est comme un élève qui reçoit une note et un commentaire, puis étudie ce sujet spécifique avant le prochain examen.
4. La « Fiche de Révision » (RAG)
Parfois, l'IA a besoin de consulter des règles spécifiques pendant son travail. Les chercheurs ont construit deux types de « fiches de révision » (bases de connaissances) :
- Stratégie A (L'Encyclopédie) : L'IA peut consulter simultanément le code original, les règles officielles du nouveau langage et les guides de traduction écrits par des experts.
- Stratégie B (Le Livre d'Exemples) : L'IA consulte simplement un livre d'exemples « Avant et Après » pour deviner la meilleure traduction.
Ils ont constaté que le fait de disposer de « l'Encyclopédie » (Stratégie A) aidait l'IA à mieux comprendre le contexte, surtout pour les parties délicates.
5. Le « Compteur d'Écart » (Savoir quoi étudier)
L'une des parties les plus fascinantes de leur système est sa capacité à savoir ce qu'il doit étudier ensuite. Après chaque cycle de traduction, le système calcule un « Score d'Écart » pour différents types de code :
- « Nous sommes excellents pour traduire les commandes mathématiques de base. »
- « Mais nous sommes très mauvais pour traduire les scripts de sauvegarde. »
Le système utilise ce score pour dire à l'équipe humaine : « Ne perdez pas de temps à étudier les mathématiques ; allez nous trouver 50 exemples supplémentaires de scripts de sauvegarde. » Cela garantit que l'IA s'améliore précisément là où elle est la plus faible, plutôt que de simplement deviner.
6. Les Résultats : Un Gain de Temps Massif
Lorsqu'ils ont testé leur nouveau système d'IA par rapport aux anciens outils basés sur des règles :
- Précision : L'IA a commis beaucoup moins d'erreurs et a traduit une plus grande partie du code correctement.
- Complétude : Les anciens outils abandonnaient souvent face à des phrases complexes, les laissant vides. L'IA, elle, tente la traduction et réussit généralement.
- Argent et Temps : Les chercheurs ont calculé que pour un projet de 100 000 fichiers, leur IA pouvait traduire avec succès environ 27 000 fichiers de plus que l'ancien outil.
- L'analogie : Si un expert humain peut traduire 150 fichiers par jour, l'ancien outil laisserait une pile de travail qu'un humain mettrait 9 mois à terminer manuellement. L'IA a accompli ce travail automatiquement en une fraction du temps.
Résumé
Ce document prouve qu'en combinant une IA intelligente, une méthode d'entraînement en deux étapes, des experts humains pour les cas complexes, et un système qui détermine constamment ce qu'il doit apprendre, on peut migrer de vastes et complexes systèmes informatiques d'un langage à un autre beaucoup plus rapidement, moins cher et plus précisément qu'auparavant. Cela transforme un cauchemar de réécriture manuelle en un processus automatisé et gérable.
Noyé(e) sous les articles dans votre domaine ?
Recevez des digests quotidiens des articles les plus récents correspondant à vos mots-clés de recherche — avec des résumés techniques, dans votre langue.