Avec LLM Compiler, Meta propulse le développement logiciel dans une nouvelle ère

Avec LLM Compiler, Meta propulse le développement logiciel dans une nouvelle ère
Avec LLM Compiler, Meta propulse le développement logiciel dans une nouvelle ère


Meta lance en open source une famille de LLM spécialisés dans la compréhension des langages de bas niveau. De nouveaux modèles qui pourraient être rapidement adoptés par les ingénieurs logiciels.

Après s’être attaqué aux LLM spécialisés dans le code de haut niveau (C++, C++, Java, C#…), Meta se lance dans les modèles d’IA optimisés pour le code bas niveau. Des chercheurs du laboratoire américain ont développé LLM Compiler, une nouvelle famille de grands modèles de langages spécialisés dans l’optimisation de code grâce à une compréhension fine du processus de compilation et des langages bas niveau. De nouveaux modèles qui ouvrent la voie à une optimisation plus poussée des programmes développés, permettant de gagner en efficacité et en rapidité d’exécution.

Une famille modèle basée sur Code Llama

Les chercheurs de Meta AI sont partis d’un constat : les LLM de code actuellement déployés sur le marché sont plutôt bons pour la génération et la complétion de code. Cependant, leur capacité d’optimisation est encore très limitée. Les principaux LLM parviennent à optimiser partiellement le code mais ne comprennent pas suffisamment le processus de compilation et les langages de bas niveau pour produire des résultats impactant réellement le programme final. Pour combler ces lacunes, les chercheurs de Meta ont décidé d’entraîner une nouvelle famille de modèles capables de comprendre les langages intermédiaires (IR) utilisés par les compilateurs ainsi que les langages assembleurs. L’objectif est de simuler le comportement d’un compilateur. Pour rappel, le compilateur est un programme informatique qui traduit le code source (c, c++, java) en un langage de bas niveau comme le langage machine ou l’assembleur, que l’ordinateur peut exécuter directement.

Pour développer LLM Compiler sans partir de zéro, les chercheurs ont sélectionné plusieurs versions de Code Llama, le LLM de Meta spécialisé dans le code. Ils l’ont entraîné sur un jeu de données composé de 546 milliards de tokens de code de bas niveau composé de code LLVM-IR (représentation intermédiaire du code source, située entre le code source d’origine et le code machine final) et de code assembleur (x86_84, ARM et CUDA). Cette étape a permis aux modèles d’acquérir une compréhension approfondie du fonctionnement interne des compilateurs et des optimisations qu’ils appliquent.

Mais les chercheurs ne se sont pas arrêtés là : ils ont ensuite procédé à des réglages précis en entraînant les modèles pour prédire les effets des optimisations du compilateur sur le code généré. Enfin, des variantes spécialisées du compilateur LLM, appelées LLM Compiler FTD, ont été créées en affinant davantage les modèles sur des tâches spécifiques d’optimisation et de désassemblage de code.

Résumé de la formation du modèle (LLM Compiler et LLM Compiler FTD). © Capture d’écran Meta AI / JDN

Quatre modèles publiés

Meta présente en fait quatre modèles différents. Le modèle de base, simplement appelé LLM Compiler, existe en deux tailles : 7 et 13 milliards de paramètres. Ces modèles sont capables de comprendre et d’émuler le fonctionnement des compilateurs. Mais les choses deviennent encore plus intéressantes avec les versions spécialisées appelées LLM Compiler FTD en 7 et 13 milliards de paramètres.

Ces variantes ont bénéficié d’un réglage fin pour exceller en flag tuning, c’est-à-dire prédire les meilleurs paramètres de compilation afin de minimiser la taille du code généré, et en désassemblage. Plus concrètement, le modèle est capable d’optimiser les paramètres du compilateur pour un code machine plus efficace et il peut également reconstruire du code de haut niveau (en IR) à partir du code assembleur. Deux types de modèles qui ouvrent la voie à de nombreux cas d’usage, notamment pour les ingénieurs logiciels.

Quelles sont les applications pratiques de ces modèles ?

Avec son compilateur LLM, Meta propose de nouvelles applications plus avancées des LLM dans le processus de développement. Le modèle de compilateur LLM affiné peut être utilisé comme un assistant intelligent lors de la compilation du code. Il peut suggérer, à partir du code IR intermédiaire, des séquences d’optimisation (un ensemble d’étapes que le compilateur suivra pour optimiser le code, comme éliminer le code inutilisé, dérouler des boucles) adaptées au code source. Tout cela permet d’obtenir un exécutable plus efficace sans effort manuel (sans avoir à itérer plusieurs fois à la main par exemple).

De son côté, LLM Compiler FTD sera parfaitement adapté pour prédire la meilleure configuration possible dans le code intermédiaire LLVM afin de réduire directement la taille du code final d’un programme. Une situation idéale pour les cas où le programme doit s’exécuter dans un environnement contraint en mémoire, comme les systèmes embarqués ou les microcontrôleurs. De même, LLM Compiler FTD peut être utilisé pour la rétro-ingénierie. Avec sa capacité à désassembler le code machine (convertir le code machine en une représentation de plus haut niveau), il peut faciliter l’analyse et la maintenance d’anciens programmes dont le code source original a été perdu. Il sera ainsi possible de « retrouver » du code exploitable pour l’adapter et éventuellement l’adapter à une nouvelle architecture.

Cependant, cette facilité de démontage pourrait également être exploitée à des fins malveillantes : des pirates pourraient utiliser LLM Compiler FTD pour analyser plus facilement des programmes ou des firmwares propriétaires, à la recherche de vulnérabilités à exploiter. Par rapport aux solutions existantes sur le marché, telles que IDA Pro ou Ghidra, LLM Compiler FTD pourrait rendre le démontage plus accessible et automatisé, ne nécessitant pas un haut niveau d’expertise en ingénierie inverse. Face à cette menace, il est probable que de nouvelles techniques d’obscurcissement du code devront être développées.

Une nouvelle lacune dans le code

Les quatre modèles présentés par Meta sont publiés sous une licence spéciale, éditée par Meta. Il permet aux entreprises et aux chercheurs de modifier, de redistribuer et même de commercialiser des produits basés sur LLM Compiler, à condition qu’ils ne l’utilisent pas pour améliorer d’autres grands modèles de langage. La licence comprend une clause spéciale pour les très grandes entreprises, exigeant une autorisation d’utilisation spéciale pour celles qui dépassent 700 millions d’utilisateurs actifs mensuels. L’objectif sous-jacent ? Pour empêcher les laboratoires d’IA d’utiliser les modèles pour former les leurs.

LLM Compiler et LLM Compiler FTD offrent de nouvelles fonctionnalités qui pourraient révolutionner les pratiques de développement logiciel. Leur capacité à comprendre et optimiser le code de bas niveau promet des gains de performances substantiels, tout en réduisant (encore un peu) la charge de travail des développeurs. Il y a fort à parier que les modèles de Meta seront rapidement adoptés par les ingénieurs logiciels et intégrés directement dans certains IDE dans les prochains mois.

 
For Latest Updates Follow us on Google News
 

PREV Le lancement des ETF Ethereum reporté à nouveau
NEXT BMW va copier Hyundai pour ses voitures de sport électriques – .