L’intégration des modèles de génération de l’IA, notamment les grands modèles de langage (LLMs), révolutionne le secteur du développement logiciel. De plus en plus d’entreprises et de startups adoptent ces outils, transformant ainsi l’avenir de la programmation.

Traditionnellement, la programmation symbolique prédominait, où les développeurs utilisent du code symbolique pour exprimer des logiques. Cependant, l’adoption des LLMs a suscité l’intérêt pour une nouvelle approche, la programmation neuro-symbolique, combinant réseaux neuronaux et code symbolique classique pour créer des algorithmes sophistiqués.

Les LLMs fonctionnent en traitant des entrées textuelles pour générer des sorties textuelles, avec l’ingénierie des prompts comme méthode principale de programmation. Construire des prompts adéquats peut être complexe et fastidieux, diminuant la lisibilité et la maintenabilité du code. Pour lever ces obstacles, des bibliothèques open-source et des recherches comme LangChain et Guidance émergent, simplifiant la construction de prompts même si une intervention humaine est souvent nécessaire pour décider du type de prompts à utiliser.

La complexité de la programmation avec les LLMs découle en grande partie du manque d’abstraction dans l’interfaçage avec ces modèles. Contrairement à la programmation symbolique classique où les opérations se font sur des variables ou des valeurs typées, les LLMs nécessitent de convertir les variables en prompts et de parser les réponses en variables, ajoutant ainsi une logique supplémentaire.

Pour pallier ce problème, une nouvelle approche propose de traiter les LLMs comme des constructions natives du code et d’offrir un support syntaxique au niveau du langage de programmation. Cela introduit un nouveau type de « signification » en tant qu’abstraction pour les interactions avec les LLMs. L’automatisation du processus de translation des structures de code conventionnelles et des significations, appelées Transformations de Type de Signification (MTT), vise à réduire la complexité pour les développeurs.

La notion de « chaînes sémantiques » (semstrings) est introduite pour annoter le code existant avec un contexte supplémentaire, permettant une intégration fluide des LLMs. Les semstrings facilitent la Transformation Automatique de Type de Signification (A-MTT), automatisant la génération de prompts et le parsing des réponses. Cette approche simplifie l’utilisation des LLMs dans le code.

À travers des exemples concrets, l’A-MTT est démontrée pour rationaliser les opérations de code symbolique telles que l’instanciation d’objets de types personnalisés, les appels de fonctions autonomes, et les méthodes de membres de classe. L’introduction de ces nouvelles abstractions et fonctionnalités linguistiques représente une avancée significative dans le paradigme de programmation, rendant l’intégration des LLMs plus efficace et plus simple pour les développeurs.

Cette avancée promet de transformer l’avenir de la programmation, la rendant plus accessible et moins contraignante pour ceux qui travaillent avec des modèles d’IA générative.