Simple Science

La science de pointe expliquée simplement

# Informatique# Calcul et langage# Intelligence artificielle

Solutions modernes pour les systèmes mainframe hérités

Un nouvel outil améliore la modernisation des systèmes mainframe critiques et du code COBOL.

― 9 min lire


Refonte des systèmesRefonte des systèmesmainframe héritésCOBOL.gestion et la modernisation du codeDes modèles spécialisés améliorent la
Table des matières

Les ordinateurs principaux existent depuis les années 1940 et sont toujours utilisés dans des secteurs importants comme la finance et le gouvernement. Beaucoup de gens pensent que ces systèmes sont démodés. Ils demandent beaucoup de travail pour rester opérationnels et beaucoup ont besoin de mises à jour pour fonctionner avec des technologies plus récentes. Cependant, mettre à jour ces systèmes n'est pas facile parce qu'ils utilisent souvent des langages de programmation anciens comme le COBOL, qui est encore largement utilisé dans les applications mainframe.

Pour aider avec ce problème, on a développé un outil spécial appelé modèle de langage large (LLM), conçu spécifiquement pour travailler avec les systèmes mainframe et le code COBOL. Cet outil est censé aider à comprendre et interagir avec ces anciens codes de manière plus efficace. On a aussi créé une méthode pour produire des données d'entraînement de haute qualité, ce qui améliore les performances de l'outil avec ces systèmes hérités.

L'importance de la Modernisation des mainframes

Les systèmes mainframe sont cruciaux pour de nombreuses grandes entreprises, y compris plusieurs qui font partie du Fortune 1000. Ces systèmes gèrent des tâches majeures dans des secteurs comme la banque et le gouvernement. Ils gèrent beaucoup d'utilisateurs et d'applications chaque jour. Même s'ils datent des années 1950, beaucoup de leurs vieilles applications fonctionnent encore sur COBOL. On estime qu'il y a plus de 220 milliards de lignes de code COBOL actuellement utilisées, avec environ 1,5 milliard de nouvelles lignes ajoutées chaque année. Ces systèmes sont aussi responsables de la gestion de trois trillions de dollars en commerce quotidien.

Malgré leur importance, il y a un problème croissant : beaucoup de développeurs COBOL et d'experts mainframe prennent leur retraite, et les jeunes talents ne sont pas vraiment intéressés à travailler avec ces systèmes dépassés. Cette pénurie rend encore plus difficile le maintien et la mise à jour des systèmes mainframe. Il y a un besoin d'outils et de méthodes meilleurs pour connecter les anciens systèmes COBOL avec les technologies plus modernes afin de faciliter la modernisation.

Défis de la modernisation des mainframes

Utiliser des outils modernes comme les LLM pour mettre à jour les systèmes mainframe vient avec plusieurs défis :

  1. Connaissances limitées sur le COBOL : La plupart des LLM n'ont pas assez de formation sur le COBOL et d'autres langages mainframe. Il n'y a pas beaucoup de code COBOL disponible en ligne, ce qui limite la compréhension de ces modèles.

  2. Manque de bons outils d'évaluation : Il n'y a pas assez de critères solides pour évaluer les performances des LLM avec les tâches mainframe. Sans documentation appropriée et objectifs clairs, mesurer l'efficacité devient difficile.

  3. Au-delà du code : La plupart des LLM existants se concentrent principalement sur la génération de nouveau code, mais la mise à jour des systèmes mainframe implique souvent de passer du COBOL à des langages modernes. Donc, ces LLM doivent être capables de faire plus que juste générer du code.

Ces points soulignent l'importance de créer des modèles spéciaux qui peuvent mieux gérer les besoins spécifiques de la modernisation des mainframes.

Tâches clés dans les systèmes mainframe

Pour comprendre comment les LLM peuvent aider à la modernisation des mainframes, on devrait examiner certaines tâches critiques auxquelles ces modèles peuvent contribuer :

Comprendre les systèmes mainframe

Les systèmes mainframe sont compliqués, et comprendre comment ils fonctionnent est un gros challenge. Les managers ont besoin de connaître les raisons et les méthodes derrière leurs opérations. Cette tâche est dure parce que ces systèmes sont énormes, manquent souvent de documents de conception, et il n’y a pas assez d’experts pour aider. Les LLM peuvent soutenir les managers en fournissant des réponses automatiques aux questions, ce qui aide à clarifier les fonctions du système basées sur la documentation et le code existants.

Interpréter le code hérité

Beaucoup de développeurs ont du mal avec le code écrit dans des langages de programmation dépassés. Souvent, ce code hérité n'a pas de bonne documentation, rendant difficile de saisir son intention originale. Les LLM peuvent aider les développeurs en interprétant le code plus efficacement. Ils peuvent résumer et expliquer ce que fait le code, aidant à combler le fossé de la connaissance et simplifiant la maintenance de ces systèmes complexes.

Maintenir les systèmes

Les systèmes mainframe ont souvent besoin de maintenance et de mises à jour puisqu'ils jouent des rôles vitaux dans les affaires. Cependant, sans une connaissance suffisante de l'architecture et du code existants, les développeurs peuvent faire des erreurs. Les LLM peuvent analyser les systèmes existants et suggérer les modifications nécessaires, garantissant la cohérence et réduisant les bugs. Ils peuvent aussi aider à prévoir les problèmes potentiels avant qu'ils ne deviennent réels.

Évaluer le code migré

Lors du passage de modules du COBOL à des langages de programmation modernes, il est essentiel de s'assurer que le nouveau code fonctionne comme prévu. Des vérifications manuelles peuvent aider, mais les LLM peuvent automatiser ce processus plus efficacement. Ils peuvent comparer l'ancien et le nouveau code, rechercher des différences, et confirmer que les nouveaux modules respectent les normes nécessaires.

Nos contributions

Reconnaissant que beaucoup de LLM existants manquent des connaissances nécessaires sur les systèmes mainframe, on a créé un LLM spécialisé qui se concentre sur ces défis. Ce modèle est conçu pour mieux performer dans les tâches liées à la compréhension et à la synthèse du code COBOL, grâce au processus de collecte de données spécifique qu'on a développé.

De plus, on a introduit une référence appelée MainframeBench, qui teste les connaissances des LLM sur des tâches comme la réponse à des questions, des questions à choix multiples et la synthèse du code COBOL. Dans nos évaluations, notre modèle spécialisé a systématiquement surpassé d'autres LLM bien connus.

Travaux connexes sur les LLM de code

Ces dernières années, plusieurs LLM de code ont été créés et entraînés sur de grands ensembles de données. Ils ont montré de grands progrès dans diverses tâches de programmation, y compris la génération de code et la réparation de programmes. Certains de ces modèles peuvent s'adapter à différents domaines de programmation sans avoir besoin de changer leur structure de base, montrant ainsi leur flexibilité.

Cependant, les LLM généralisés ont souvent du mal avec des domaines spécifiques, où de plus petits modèles entraînés sur des ensembles de données dédiés performent mieux. Cela a conduit au développement de LLM spécialisés dans de nombreux domaines, y compris la finance et la santé, qui donnent de meilleurs résultats pour les tâches dans ces domaines.

Malheureusement, le domaine des systèmes mainframe manque d'attention adéquate de la recherche en IA. Très peu de modèles se concentrent sur des tâches liées aux mainframes, et les modèles existants se concentrent souvent trop sur les documents plutôt que sur le code. Notre objectif est de construire un modèle complet qui peut exceller dans diverses tâches liées aux systèmes mainframe et COBOL.

Construction de bases de données de qualité

Des données de qualité sont essentielles pour former des LLM efficaces. Trouver des ensembles de données de haute qualité pour le COBOL et les mainframes s'est avéré difficile. Pour y remédier, on a développé notre propre pipeline de collecte pour rassembler des données spécifiquement pour le domaine des mainframes.

Notre ensemble de données contient des informations provenant de diverses sources, y compris des projets COBOL sur GitHub et des documents pertinents de ressources en ligne. Après avoir soigneusement filtré ces données, on a pu créer un ensemble de données de haute qualité qui sert de base pour entraîner notre modèle.

Entraînement du modèle

Pour construire notre modèle, on a commencé avec un modèle pré-entraîné existant connu sous le nom de DeepSeek-Coder. Ce modèle a été entraîné sur une large gamme de projets de codage et a une architecture spéciale pour comprendre le code. On a utilisé cette connaissance existante et l'a élargie avec nos données spécifiques au mainframe.

L'entraînement comportait deux étapes principales : d'abord un pré-entraînement sur notre ensemble de données, puis un affinage du modèle pour améliorer sa capacité à suivre des instructions en langage naturel. Cette approche en deux étapes a amélioré la performance globale du modèle pour exécuter des tâches liées aux systèmes mainframe.

Résultats expérimentaux

On a comparé notre modèle avec plusieurs LLM existants de pointe pour voir comment il performait sur différentes tâches. Nos évaluations ont montré que notre modèle surpassait systématiquement les autres sur des questions à choix multiples, la réponse à des questions et la synthèse de code COBOL.

Pour les questions à choix multiples, notre modèle a obtenu un score de précision élevé, dépassant celui des autres modèles. Dans la catégorie de réponse aux questions, il a également pris la tête des scores, montrant sa capacité à fournir des réponses pertinentes et précises. Enfin, notre modèle a montré une performance supérieure dans la synthèse du code COBOL, fournissant des résumés concis et informatifs par rapport à ses concurrents.

Conclusion

Dans cet article, on a présenté notre LLM spécialisé conçu pour les systèmes mainframe et le codage COBOL. Avec l'aide de données d'entraînement de haute qualité et d'une méthode d'évaluation ciblée, ce modèle améliore considérablement la façon dont les développeurs interagissent avec et gèrent le code hérité. Grâce à ses fonctionnalités avancées, notre modèle peut faire avancer la productivité dans la maintenance et la modernisation des systèmes mainframe essentiels qui jouent des rôles critiques dans de nombreuses entreprises aujourd'hui.

Source originale

Titre: XMainframe: A Large Language Model for Mainframe Modernization

Résumé: Mainframe operating systems, despite their inception in the 1940s, continue to support critical sectors like finance and government. However, these systems are often viewed as outdated, requiring extensive maintenance and modernization. Addressing this challenge necessitates innovative tools that can understand and interact with legacy codebases. To this end, we introduce XMainframe, a state-of-the-art large language model (LLM) specifically designed with knowledge of mainframe legacy systems and COBOL codebases. Our solution involves the creation of an extensive data collection pipeline to produce high-quality training datasets, enhancing XMainframe's performance in this specialized domain. Additionally, we present MainframeBench, a comprehensive benchmark for assessing mainframe knowledge, including multiple-choice questions, question answering, and COBOL code summarization. Our empirical evaluations demonstrate that XMainframe consistently outperforms existing state-of-the-art LLMs across these tasks. Specifically, XMainframe achieves 30% higher accuracy than DeepSeek-Coder on multiple-choice questions, doubles the BLEU score of Mixtral-Instruct 8x7B on question answering, and scores six times higher than GPT-3.5 on COBOL summarization. Our work highlights the potential of XMainframe to drive significant advancements in managing and modernizing legacy systems, thereby enhancing productivity and saving time for software developers.

Auteurs: Anh T. V. Dau, Hieu Trung Dao, Anh Tuan Nguyen, Hieu Trung Tran, Phong X. Nguyen, Nghi D. Q. Bui

Dernière mise à jour: 2024-08-26 00:00:00

Langue: English

Source URL: https://arxiv.org/abs/2408.04660

Source PDF: https://arxiv.org/pdf/2408.04660

Licence: https://creativecommons.org/publicdomain/zero/1.0/

Changements: Ce résumé a été créé avec l'aide de l'IA et peut contenir des inexactitudes. Pour obtenir des informations précises, veuillez vous référer aux documents sources originaux dont les liens figurent ici.

Merci à arxiv pour l'utilisation de son interopérabilité en libre accès.

Plus d'auteurs

Articles similaires