Premiers pas avec le LLMOps : créer de meilleures applications d’IA
L’émergence de ChatGPT d’OpenAI a suscité une vague d’intérêt pour les grands modèles de langage (LLMs) au sein des entreprises. Les grandes entreprises technologiques et les organismes de recherche rendent désormais les LLMs plus accessibles, s’efforçant d’améliorer l’infrastructure de données, d’affiner les modèles pour des applications personnalisées et de surveiller des problèmes tels que les hallucinations et les biais. Cet intérêt croissant a également entraîné une forte hausse de la demande pour les fournisseurs de technologies qui prennent en charge les opérations liées aux grands modèles de langage (LLMOps). Ces fournisseurs proposent des flux de travail complets pour développer, affiner et déployer des LLMs dans des environnements de production.
Lors de notre récent Unstructured Data Meetup, Sage Elliott, ingénieur en apprentissage automatique chez Union.ai, a abordé le déploiement et la gestion des LLMs, offrant des informations précieuses sur les outils, les stratégies et les bonnes pratiques nécessaires à l’intégration de ces modèles dans les applications métier. Sa présentation a été particulièrement utile pour les développeurs en IA et les responsables des opérations, en mettant l’accent sur la fiabilité et l’évolutivité des applications LLM dans les environnements de production.
Dans cet article, nous récapitulerons les principaux enseignements de l’intervention de Sage et discuterons du concept et des méthodologies des LLMOps.
<< Regarder la rediffusion de l’intervention de Sage Elliott >>
Que sont les LLMOps ?
LLMOps signifie Large Language Model Operations, qui sont analogues aux MLOps, mais spécifiquement pour les grands modèles de langage (LLMs). Pour comprendre les LLMOps, commençons par expliquer les MLOps.
MLOps (Machine Learning Operations) désigne les pratiques et les outils utilisés pour déployer et maintenir efficacement des modèles d’apprentissage automatique dans des environnements de production. Il s’agit d’une extension de DevOps (Development and Operations), qui intègre le développement d’applications et les opérations dans un processus cohérent. Cette approche garantit que le développement et les opérations sont pris en compte ensemble, plutôt que de fonctionner dans des silos distincts.
Que sont les MLOps ?
Que sont les MLOps ? Source de l’image : https://ml-ops.org/content/MLOps-principles
Avant l’émergence de la méthodologie DevOps, les équipes de développement se concentraient sur l’écriture d’applications ou de mises à jour aussi rapidement que possible, tandis que les équipes d’exploitation privilégiaient la stabilité, l’efficacité et l’expérience utilisateur de l’application. Cette approche compartimentée entraînait souvent des inefficacités, conduisant à des applications sous-optimales avec un développement lent et des mises à jour peu fréquentes.
DevOps transforme ce processus en favorisant la collaboration entre les équipes de développement et d’exploitation, assurant ainsi un flux de travail plus rationalisé et plus efficace. Les MLOps étendent ces principes à l’apprentissage automatique, en répondant aux défis du déploiement et de la maintenance des modèles ML.
Les LLMOps se concentrent sur l’approche holistique des MLOps en appliquant leurs principes aux applications de grands modèles de langage (LLM). Ils concernent tous les aspects du développement, du déploiement, de la maintenance et de l’amélioration continue des applications LLM.
La philosophie centrale de coopération est également inhérente à la définition des LLMOps donnée par Sage — « Building AI Together », qui met l’accent sur l’idée que toutes les unités métier pertinentes, par exemple le développement, les opérations, la gestion produit, etc., doivent travailler ensemble pour produire les applications LLM les plus performantes, de manière rapide et rentable.
Intégration continue et livraison/déploiement continu (CI/CD)
Comme avec DevOps, l’un des principes fondamentaux des LLMOps est l’intégration continue/le déploiement continu (CI/CD) : le processus d’automatisation du cycle de vie du développement des applications LLM.
L’intégration continue (CI) est la pratique consistant à prendre automatiquement les mises à jour d’une application et à les fusionner avec la branche principale, c’est-à-dire la version de l’application LLM actuellement exécutée en production. Lorsqu’un développeur soumet du code à un référentiel, tel que GitHub, cette action déclenche un flux de travail automatisé qui vérifie si les mises à jour sont prêtes à être intégrées. La CI encourage les changements fréquents par les équipes de développement et aide à éviter les conflits de fusion de code.
La livraison/le déploiement continu(e) (CD) désigne le processus de déploiement automatique des changements apportés à l’application dans un environnement de production après intégration et validation. Ce processus comprend des tests supplémentaires, tels que les tests fonctionnels et d’acceptation utilisateur, ainsi que la configuration de l’infrastructure.
Bien que la livraison continue et le déploiement continu soient souvent utilisés de manière interchangeable, il existe une différence entre les deux. La livraison continue s’arrête avant le déploiement automatique en production, généralement pour permettre des vérifications finales humaines afin de garantir la conformité organisationnelle et réglementaire. À l’inverse, le déploiement continu publie automatiquement les mises à jour de l’application aux utilisateurs. Avec ce concept à l’esprit, le véritable déploiement continu est rare - en particulier dans le développement d’applications LLM, qui en est encore à ses débuts.
Qui devrait utiliser LLMOps ?
En bref, toute personne développant une application LLM devrait utiliser LLMOps dans une certaine mesure.
D’une part, LLMOps est essentiel pour les applications d’IA de niveau production, l’infrastructure exacte dépendant des besoins de l’application. À l’inverse, même un projet d’IA simple et personnel bénéficiera de la mise en œuvre d’un pipeline LLMOps simple.
L’intégration de LLMOps dans votre application d’IA offre les avantages suivants :
Gestion des ressources et évolutivité: être conscient de votre utilisation des ressources de calcul afin de fournir une expérience utilisateur optimale. Les LLM nécessitent de grandes quantités de mémoire pour fonctionner efficacement ; il est donc crucial de pouvoir déterminer si votre matériel, c’est-à-dire les GPU, est suffisant pour les besoins de votre application.
Mise à jour et améliorations du modèle: être informé plus rapidement des échecs ou des lacunes d’un modèle et le mettre à jour en conséquence.
Pratiques d’IA éthiques et responsables: être conscient de l’objectif prévu de votre application d’IA et des conséquences potentielles de son dysfonctionnement. L’une des principales préoccupations concernant les LLM est leur tendance à « halluciner », c’est-à-dire à fournir une sortie inexacte ou non pertinente ; ce problème pourrait s’avérer catastrophique dans une application destinée à donner des conseils médicaux, par exemple.
Exemple de pipeline LLMOps simplifié
La carte du marché créée par CBInsights identifie plus de 90 entreprises réparties dans 12 catégories qui aident les entreprises à gérer des projets LLM de bout en bout. Ce paysage montre également la taille du marché LLMOps.
Paysage du marché LLMOps
Paysage du marché LLMOps : plus de 90 entreprises réparties dans 12 catégories différentes aidant les entreprises à mener des projets LLM de bout en bout.
Pour faciliter la compréhension, Sage a créé un pipeline LLMOps simplifié.
Un pipeline LLMOps simplifié
Expliquons les éléments de ce diagramme :
Sys Prompt: L’entrée utilisateur devient partie intégrante du prompt système et est transmise au LLM.
Modèle: Le LLM sous-tend l’application pour la génération de réponses.
Garde-fou: Les contrôles que vous avez mis en place pour vous assurer que l’utilisateur ne saisit que des entrées appropriées, c’est-à-dire éviter de tenter de faire générer au modèle du contenu nuisible ou offensant.
Stockage de données : les bases de données vectorielles comme Milvus et Zilliz Cloud (le Milvus managé). Ces bases de données fournissent au LLM une mémoire à long terme et des informations contextuelles de requête, et aident le LLM à générer des résultats plus précis. Ce composant est particulièrement bénéfique dans les applications de Retrieval Augmented Generation (RAG).
Surveillance : les outils utilisés pour surveiller en continu l’application LLM
Orchestrateur CI/CD : une plateforme qui gère votre application et aide à automatiser son intégration et son déploiement dans des environnements de production.
Bien démarrer avec les LLMOps
Bien que les LLMOps évoluent rapidement et que les fournisseurs publient chaque jour de nouveaux outils LLMOps, heureusement, les principes fondamentaux des LLMOps restent les mêmes.
Voici une philosophie simple en trois étapes pour démarrer avec les LLMOps.
Expédier le modèle
Surveiller les performances du modèle
Améliorer le modèle
Examinons chaque étape plus en détail.
Expédier votre modèle
Expédier le modèle désigne le déploiement de votre application LLM dans un environnement de production dès que possible. Cette approche est essentielle, car elle vous permet d’obtenir des données précises provenant d’utilisateurs interagissant avec le modèle et d’apprendre rapidement comment adapter votre application LLM aux besoins des utilisateurs. Un exemple typique est une application de chatbot, où il est bien plus utile d’obtenir des exemples d’entrées réelles d’utilisateurs et de ce que le modèle produit en réponse que de simplement prédire les entrées dans un environnement de test.
HuggingFace Spaces est une ressource fantastique qui simplifie la mise en production de votre modèle. Il s’agit d’une plateforme d’hébergement pour la plupart des applications ML, fournissant des GPU cloud à faible coût pour alimenter les LLM, ce qui la rend idéale pour le prototypage. Vous pouvez également déployer votre application dans un espace privé, en fournissant un accès limité aux personnes auprès desquelles vous souhaitez tester votre application LLM, ou la rendre publique afin de recueillir les retours de la grande communauté active de HuggingFace.
HuggingFace Spaces
HuggingFace Spaces
HuggingFace offre bien plus que Spaces pour le déploiement de modèles ; il fournit un écosystème complet pour développer et déployer des applications. Au cœur de leur offre se trouve une vaste collection de plus de 640 000 modèles ML open-source, comprenant des modèles de parole, de vision par ordinateur et de langage. De plus, HuggingFace fournit plusieurs bibliothèques qui incluent tous les composants nécessaires à la création d’applications LLM de bout en bout, ainsi que les jeux de données nécessaires à l’entraînement.
Pour illustrer comment vous pouvez créer des applications LLM avec HuggingFace, voyons comment télécharger et entraîner un modèle en utilisant ses bibliothèques Transformer (pour accéder aux LLM) et Datasets (pour accéder aux données d’entraînement).
Tout d’abord, vous devez installer les bibliothèques appropriées :
pip install torch transformers datasets
Ensuite, nous allons télécharger le LLM que nous souhaitons utiliser dans notre application. Comme indiqué ci-dessus, HuggingFace propose des centaines de milliers de modèles, chacun fournissant le code nécessaire pour l’intégrer à votre application. Par exemple, nous allons charger le modèle Llama 3 comme suit :
from transformers import AutoModelForCausalLM
model = AutoModelForCausalLM.from_pretrained("meta-llama/Meta-Llama-3-8B-Instruct”)
Ensuite, nous devons charger le jeu de données pour affiner le modèle. Pour cet exemple, nous utiliserons l’un des nombreux jeux de données disponibles de HuggingFace. Cependant, si vous préférez utiliser vos propres données à des fins propres à un domaine ou à une tâche, il vous suffit de remplacer le chemin du fichier par celui qui pointe vers votre dossier de données d’entraînement.
from datasets import load_dataset
dataset = load_dataset("talkmap/telecom-conversation-corpus")
Après avoir chargé le jeu de données, nous devons le tokeniser en le convertissant en tokens de sous-mots que le LLM peut facilement traiter. Nous devons utiliser le tokenizer associé au modèle Llama 3 afin de garantir que les données sont tokenisées de manière cohérente avec le processus de pré-entraînement et qu’elles conservent les mêmes correspondances tokens-index, ou « vocabulaire ». Vous pouvez réaliser cette étape avec seulement quelques lignes de code.
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("meta-llama/Meta-Llama-3-8B-Instruct")
# Define tokenizer function
def tokenize_function(examples):
return tokenizer(examples["text"], padding="True", truncation=True)
tokenized_dataset = dataset.map(tokenize_function, batched=True)
Maintenant, nous devons définir les configurations des hyperparamètres pour affiner notre modèle à l’aide d’un objet TrainingArguments. Cette configuration propose 109 paramètres optionnels, vous donnant un contrôle granulaire sur le processus d’entraînement. Si vous préférez, vous pouvez vous appuyer sur les paramètres par défaut en ne passant aucun paramètre spécifique.
from transformers import TrainingArguments
training_args = TrainingArguments()
Enfin, après avoir défini les éléments de notre modèle, il nous suffit de les placer dans un objet d’entraînement et d’appeler la fonction d’entraînement associée comme suit :
Une fois les éléments de notre objet trainer configurés, il ne reste plus qu’à les assembler et à appeler la fonction train pour affiner notre modèle de base Llama 3.
from transformers import Trainer
trainer = Trainer(
model=model,
dataset=dataset,
args=training_args,
)
trainer.train()
Et voilà : avec seulement quelques lignes de code, vous pouvez télécharger et entraîner un modèle de langage pouvant être utilisé pour alimenter une application LLM.
Pour un exemple plus spécifique et approfondi de la façon dont HuggingFace simplifie le développement d’applications LLM, consultez notre tutoriel sur la création d’une application de QA avec Milvus
Surveillance et évaluation continues
Une fois votre application LLM déployée dans un environnement de production, il est essentiel de la surveiller pour les raisons suivantes :
Pour déterminer les performances de votre modèle en production, répond-il à son cas d’utilisation prévu ? Est-il aligné avec les attentes de l’utilisateur ?
Comment pouvez-vous améliorer le modèle ?
Par la suite, lorsque vous apportez des améliorations au modèle, entraînent-elles les gains de performance attendus, ou des changements supplémentaires sont-ils nécessaires ?
Les ressources de calcul consommées par votre modèle : devez-vous allouer davantage de ressources, par exemple des GPU, pour améliorer les performances de votre application ? De plus, compte tenu des ressources qu’elle consomme, dans quelle mesure votre application est-elle scalable ?
Comment se comporte-t-il après des changements, par exemple un entraînement supplémentaire ou un fine-tuning ?
Les métriques d’évaluation vous aident à mesurer la capacité de votre modèle à produire une sortie correcte en réponse au prompt d’un utilisateur. Les métriques les plus couramment utilisées incluent BLEU, ROUGE et BERTScore, décrites ci-dessous.
| Métrique | Objectif |
| BLEU (Bilingual Evaluation Understudy) | Souvent utilisé en traduction automatique, mesure la similarité entre le texte généré par le modèle et le texte de référence sur la base du chevauchement des n-grammes (n mots consécutifs) |
| ROUGE (Recall-Oriented Understudy for Gisting Evaluation) | Évalue la qualité des résumés générés par le modèle en comparant le chevauchement des n-grammes, les séquences de mots et les paires de mots avec des résumés de référence. |
| Score BERTScore (Bidirectional Encoder Representations from Transformers) | Mesure la similarité textuelle en exploitant les embeddings BERT pour capturer le sens sémantique ; fournit une évaluation plus détaillée que le chevauchement superficiel des n-grammes, comme avec BLEU et ROUGE. |
De plus, il existe d’autres moyens qualitatifs d’évaluer les performances de votre application LLM.
Évaluer l’exactitude et la pertinence de la sortie : une réponse peut être bien formulée, mais dans quelle mesure est-elle utile par rapport au prompt d’entrée ? Fournit-elle la valeur attendue par l’utilisateur ?
Déterminer comment les utilisateurs utilisent votre application LLM et si vous devez l’affiner en conséquence.
Évaluer le sentiment des réponses : l’application répond-elle dans le ton souhaité ?
Y a-t-il des tentatives de contournement, c.-à-d. essayer d’amener le modèle à produire une sortie qu’il ne devrait pas ? Par exemple, demander à un chatbot comment fabriquer des armes artisanales. Cette approche détermine si vous devez inclure des garde-fous dans votre application ou améliorer ceux que vous avez peut-être déjà mis en œuvre.
Surveiller en continu vos applications LLM n’est pas compliqué. De nombreux outils sont disponibles sur le marché pour évaluer vos applications propulsées par des LLM, notamment LangKit, comme Sage l’a souligné dans son intervention, Ragas, Continuous Eval, TruLens-Eval, LlamaIndex, Phoenix, DeepEval, LangSmith et OpenAI Evals.
Pour en savoir plus sur l’évaluation des applications LLM, consultez notre article sur l’évaluation RAG.
Améliorer votre modèle
En utilisant les métriques et les retours issus de la surveillance de votre modèle, vous pouvez créer de nouvelles itérations de vos LLM en beaucoup moins de temps. Un moyen puissant et efficace de mettre en œuvre des améliorations consiste à intégrer un orchestrateur MLOps comme Flyte dans votre pipeline. Un orchestrateur MLOps simplifie la gestion de votre application LLM des manières suivantes :
Tests automatisés : exécution automatique des tests chaque fois que des modifications sont apportées.
Builds logiciels : compilation du code et préparation au déploiement.
Déploiement : passage de la dernière version de l’application en production.
Surveillance et reporting : suivi de l’état des builds, des tests et des déploiements, et fourniture de retours.
Un orchestrateur gère votre application au moyen de workflows, qui sont une série d’étapes nécessaires pour exécuter une tâche ou un objectif spécifique. Chaque étape d’un workflow peut être exécutée, testée et vérifiée individuellement, tandis que l’orchestrateur gère la séquence dans laquelle chaque tâche est effectuée. Parmi les exemples de workflows, on peut citer l’entraînement ou le fine-tuning d’un LLM, le déploiement d’une application dans un environnement, ou l’intégration de nouvelles fonctionnalités dans une application exécutée en production.
Les workflows rationalisent le développement et la maintenance des applications LLM de plusieurs façons. Tout d’abord, les workflows sont reproductibles, de sorte qu’un workflow existant peut être copié entre différents pipelines, ce qui permet d’économiser beaucoup de temps et d’efforts. De même, les workflows peuvent être versionnés, ce qui garantit que vous pouvez rétablir un pipeline à l’état où il se trouvait à un moment donné.
En réalité, un orchestrateur MLOps est mieux adapté aux applications LLM de niveau entreprise développées par plusieurs personnes ou équipes, et constitue probablement une solution excessive pour une application plus petite. Au lieu d’un orchestrateur, expédier votre modèle en production, surveiller son utilisation et mettre à jour manuellement votre application en fonction des enseignements que vous avez tirés est une approche plus pratique.
Résumé
Donc, pour récapituler la présentation de Sage Elliot sur LLMOps :
LLMOps désigne un ensemble de philosophies et de technologies qui facilitent le développement, le déploiement, la maintenance et l’amélioration efficaces des applications LLM.
LLMOps peut également être défini comme « Building AI Together », ce qui signifie que, comme DevOps (dont il est dérivé), différentes équipes au sein d’une organisation collaborent pour créer des applications LLM au lieu de fonctionner en silos avec des objectifs divergents.
Bien que cela puisse sembler écrasant, vous pouvez commencer avec LLMOps grâce à un processus en trois étapes :
Expédier : déployer un modèle en production dès que possible pour obtenir des retours d’utilisateurs réels
Surveiller : utiliser des métriques pour évaluer ses performances
Améliorer : utiliser les enseignements issus de la surveillance pour améliorer votre application.
HuggingFace est une excellente ressource pour déployer rapidement des prototypes en production. La bibliothèque Transformer vous permet de télécharger et de fine-tuner facilement des modèles, la bibliothèque Datasets fournit les données pour le fine-tuner, et Spaces fournit une plateforme d’hébergement pour le déployer rapidement en production.
Flyte est un exemple d’orchestrateur MLOps qui simplifie la gestion de votre application LLM.
Ressources supplémentaires
Nous vous encourageons à explorer les ressources ci-dessous pour approfondir votre compréhension de LLMOps et apprendre à l’appliquer à votre processus de développement d’applications d’IA.
Pour en savoir plus sur les bases de données vectorielles, les grands modèles de langage (LLM) et d’autres concepts clés de l’IA et de l’apprentissage automatique, consultez la base de connaissances Zilliz Learn .
Continuer à lire

VDBBench Adds Cost-Aware Benchmarking for Vector Databases
Compare Zilliz Cloud, Pinecone, and turbopuffer with VDBBench cost-aware vector database benchmarks across latency, freshness, multitenancy, and cold starts.

3 Easiest Ways to Use Claude Code on Your Mobile Phone
Run Claude Code from your phone with Remote Control, Happy Coder, or SSH + Tailscale. Comparison table, setup steps, and tools for typing, memory, and parallel tasks.

Proactive Monitoring for Vector Database: Zilliz Cloud Integrates with Datadog
we're excited to announce Zilliz Cloud's integration with Datadog, enabling comprehensive monitoring and observability for your vectorDB deployments.


