DEVOPS, MLOPS, LLMOPS : du code au prompt
Dans un monde où les technologies évoluent rapidement, assurer la satisfaction des utilisateurs est la priorité absolue. Peu importe ce que fait le microprocesseur en arrière-plan, ce qui compte, c’est que la solution fonctionne, soit fiable et évolutive. DevOps, MLOps et LLMOps ne sont pas seulement des concepts techniques : ils garantissent que les logiciels et les modèles d’IA restent pertinents et performants dans le temps. Mais en quoi diffèrent-ils et pourquoi sont-ils essentiels ? Décryptage
Pourquoi DevOps, MLOps & LLMOps ?
Le cycle de vie d’un logiciel ne s’arrête pas à la mise en production. Certes, un logiciel aura passé toutes les étapes de développement et réussi la phase de qualification qui est sans doute la plus cruciale.
Cependant, cette phase de validation par des utilisateurs sélectionnés, même si on l’espère aussi représentative que possible, n’est que rarement totalement fidèle à l’usage qui en sera fait dans la durée : il y aura toujours un utilisateur qui fera une manipulation inattendue mettant en exergue une faiblesse du logiciel… à corriger. Et, comme il se doit, le temps fera son œuvre : l’activité évoluera et le logiciel devra suivre cette transformation.
Cette acceptation du besoin de faire évoluer une solution en continu a entraîné la mise en place des solutions DevOps, contraction de « Développement » et « Opérations ». Souvent représenté par un anneau en forme de 8, le principe est d’automatiser le cycle de vie du logiciel de manière reproductible et fiable.
Ainsi, le logiciel suivra tout un cycle de transformations automatisées : de la compilation, aux tests, au déploiement, au retour des utilisateurs… au développeur. Le but de DevOps est de garantir un maintien d’une solution au meilleur niveau grâce à une démarche maîtrisée et, ce, quelle que soit la manière dont celle-ci a été obtenue.
Plus récemment, cette notion est étendue aujourd’hui au MLOps (Machine Learning – Ops) et LLMOps (Large Language Model – Ops). Il convient de parler de « variantes » car les projets d’intelligence artificielle restent d’abord et avant tout des projets informatiques même si ces derniers apportent des particularités qu’il convient de traiter.
Développement logiciel « classique »
Dans le cas d’un développement logiciel classique, avec un programme en Java, Python ou tout autre langage de programmation, c’est ce code source qui doit être maintenu.
Une dimension essentielle de ce processus est que le code source peut évoluer sans pour autant remettre en cause les fonctionnalités validées. On pense naturellement aux corrections d’anomalies (les « bugs »), mais il peut aussi s’agir de corrections plus profondes nécessitant une éventuelle restructuration du programme (on parle de « refactoring »). Ces modifications permettent d’améliorer la performance et la lisibilité du code sans impacter l’expérience utilisateur.
Ce qui importe ici, c’est que le logiciel fonctionne de manière fluide et fiable, indépendamment des ajustements techniques qui se cachent sous la surface : seul le résultat compte, mais c’est le code source qui est en jeu.
Développements MLOps
Le développement d’un projet d’IA « classique » (MLOps) passe par plusieurs étapes élémentaires :
- Acquisition, nettoyage et préparation des données souvent par le biais de « pipeline » qui enchaînent les opérations élémentaires.
- Développement des algorithmes, souvent par le biais de « Notebook ». Ces éditeurs un peu particuliers, fréquemment utilisés par les DataScientists, permettent de tester des algorithmes sans entrer dans une procédure de développement complète, même si le code se doit d’être adapté pour atteindre une qualité déployable.
Ces différentes étapes doivent, comme toute production, passer par des mécanismes de gestion des versions et de test, notamment pour les pipelines.
Cependant, le déploiement du code ne marque pas la fin de l’évolution de l’application d’IA. En effet, en IA classique, l’entraînement des modèles se fait sur la base d’exemples, d’un dataset que l’on cherche à rendre autant que possible proche de la réalité. Mais le monde change. La « réalité » aussi. Dès lors, les données que l’on pensait être représentatives peuvent ne plus l’être et le modèle perd de sa pertinence. Il devient alors nécessaire de mesurer une potentielle dérive des modèles ou des données (on parle de « Data Drift » et « Model Drift »).
En fait, si le code est au cœur de la démarche DevOps, ce sont bien les données et le modèle qui sont le point sensible d’un projet MLOps. Un modèle performant aujourd’hui peut être obsolète demain si les données d’entrée évoluent. Le MLOps vise donc à automatiser la surveillance, l’adaptation et l’amélioration continue des modèles afin qu’ils conservent leur pertinence et leur efficacité.
Ici, l’asset le plus précieux sont les données et le modèle qui en est déduit.
Développement LLMOps
Un développement de type LLMOps s’appuie, comme son nom l’indique, sur des LLMs. Ces modèles fondamentaux sont aujourd’hui pléthores et prétendent tous être meilleurs les uns que les autres. De fait, si la qualité s’améliore sans cesse, in fine, ces modèles restent des solutions statistiques, stochastiques et donc imparfaites au sens non déterministes.
De plus, l’évolution des modèles se comptant pour ainsi dire plus en semaines qu’en mois, ce qui va compter est l’utilisation et le contrôle que l’on va en faire plutôt que la qualité intrinsèque de celui retenu.
En d’autres termes, ce qui va créer de la valeur : c’est le prompt. La manière dont celui-ci est formulé, la précision avec laquelle les questions sont posées aura une grande influence sur le résultat obtenu. Aujourd’hui, la gestion et l’optimisation des prompts deviennent un élément critique, au même titre que l’entraînement des modèles en MLOps. LLMOps consiste donc à structurer et surveiller l’utilisation des modèles de langage pour garantir des résultats cohérents et fiables.
In fine, ici, la partie essentielle qui compte et comptera le plus demain c’est le prompt. C’est lui qui devient l’élément essentiel du LLMOps.
Conclusion
L’objet d’un développement informatique n’est pas d’écrire un programme, mais, c’est de fournir une solution qui réponde aux besoins des utilisateurs et qui évolue avec leurs attentes.
Il y a déjà bien longtemps que les binaires exécutés par les processeurs n’intéressent plus personne, car ils sont régénérés à chaque itération. Les méthodes DevOps, qui président aux cycles de vie des logiciels, sont, de facto, remontées d’un degré d’abstraction.
Avec le MLOps, cette ascension continue. Ici, les données et la surveillance des modèles deviennent les éléments clés pour garantir la pertinence et la performance des solutions d’IA. Aujourd’hui, la génération d’une solution repose de plus en plus sur des prompts intelligemment conçus. Le LLMOps se concentre ainsi sur la maîtrise de l’interaction avec les modèles de langage, s’assurant que les résultats générés restent cohérents et exploitables.
Ce qui importe réellement, ce n’est pas l’architecture sous-jacente, mais l’expérience utilisateur, la pertinence des réponses et la capacité à évoluer avec les besoins du marché.
Pour apprendre comment intégrer ces solutions efficacement :