Le guide pratique de l’auto-hébergement des systèmes LLM composés
Organisé pendant la SF #TechWeek, le « Unstructured Data Meetup » mensuel de Zilliz a réuni plus de 800 builders, fondateurs et VCs pour discuter des dernières évolutions de l’écosystème de l’IA. La deuxième intervention, donnée par Chaoyu Yang (fondateur/CEO de BentoML), a fourni des conseils actionnables à ceux qui privilégient le contrôle et la personnalisation de l’auto-hébergement de grands modèles de langage (LLMs) tout en cherchant à atteindre les performances d’un simple appel à une API managée. BentoML partage ses enseignements de recherche en orchestration de l’IA, en démontrant des solutions qu’il a développées pour optimiser les problèmes de performance courants lors de l’auto-hébergement de modèles.
Dans cet article, nous récapitulerons les points clés de l’intervention de Chaoyu et discuterons des principaux défis, considérations et pratiques pour auto-héberger vos LLMs. Nous explorerons également comment intégrer BentoML et Milvus pour créer des applications GenAI plus puissantes.
La LLM Doom Stack
En tant que personne relativement nouvelle dans l’IA, j’ai trouvé qu’il était plus facile de comprendre BentoML et Milvus dans le contexte de la stack LLM moderne. Sans ordre particulier — juste parce que ça sonne bien — explorons ce que j’appelle la « LLM DOOM Stack ».
Données : Préparer, stocker et traiter des ensembles de données à grande échelle pour un entraînement et une inférence de haute qualité. Ces technologies incluent les pipelines de données, les modèles d’embedding et les bases de données vectorielles (comme Zilliz/Milvus, woo !)
Opérations : Surveiller, dimensionner et maintenir la santé et les performances des modèles déployés. Observabilité en temps réel pour un débogage actif afin de maintenir la fiabilité.
Orchestration : Déployer et dimensionner des modèles sur l’infrastructure, gérer le flux entre les LLMs, les systèmes externes et les utilisateurs. (C’est là que BentoML joue un rôle clé.)
Modèles d’IA : Le cœur des applications LLM — entraîner, fine-tuner et optimiser des modèles pour des tâches spécifiques, qu’il s’agisse d’utiliser des APIs, des modèles open-source ou des modèles pré-entraînés.
Figure- The LLM Doom Stack.png
Figure : La LLM Doom Stack (adapté de cette image.)
Chaque startup d’infrastructure IA s’inscrit dans ce cadre DOOM. Milvus et son service cloud managé, Zilliz Cloud, sont des bases de données vectorielles conçues pour stocker, indexer et récupérer des données non structurées sous forme de représentations numériques appelées embeddings vectoriels dans un espace à haute dimension. Ce sont des composants fondamentaux de divers systèmes alimentés par les LLMs, en particulier la génération augmentée par récupération (RAG). BentoML fournit des optimisations opérationnelles pour les workflows LLM actuels. En empruntant des concepts qui ont fait leurs preuves avec les systèmes d’exploitation et en les combinant avec une recherche étayée par les données, BentoML a prouvé qu’il offrait des performances supérieures pour construire et déployer des LLMs — et son fondateur, Chaoyu, en a partagé les secrets dans cette intervention.
Le dilemme des LLM : auto-héberger ou simplement appeler l’API ?
L’une des décisions les plus critiques lors du déploiement de LLMs est de choisir entre l’auto-hébergement et le recours à des APIs managées. Les deux options comportent leurs propres compromis, ce qui rend essentiel de peser la commodité face au contrôle. Les APIs managées sont attrayantes par leur facilité d’utilisation, leur moindre charge de maintenance et leur capacité de mise à l’échelle rapide, tandis que l’auto-hébergement offre un contrôle et une flexibilité complets, permettant une personnalisation plus poussée. En fin de compte, pour la plupart des équipes, la décision revient à équilibrer la rapidité de déploiement à court terme avec les objectifs de scalabilité et de performance à long terme.
Figure- Benefits and Challenges of Self-Hosting LLMs.png
Figure : avantages et défis de l’auto-hébergement des LLM
Qui devrait auto-héberger des LLM ?
Chaoyu a commencé son intervention par un rapide sondage sur les LLM gérés vs. auto-hébergés. La plupart des participants ont levé la main pour les API gérées, et cela se comprend : créer, faire évoluer et maintenir l’infrastructure tout en développant simultanément votre application n’est pas une tâche facile.
Chaoyu a souligné que les services gérés, bien que pratiques, privilégient souvent le débit plutôt que l’optimisation pour des cas d’utilisation spécifiques. L’auto-hébergement, en revanche, permet un fine-tuning personnalisé des modèles, des stratégies d’inférence avancées, ainsi qu’une qualité et une latence prévisibles.
Cependant, l’auto-hébergement n’est pas le bon choix pour tout le monde. Alors, qui devrait exactement envisager d’auto-héberger des LLM ? Voici les principales raisons d’explorer cette approche :
Figure- Who Should Self-Host LLMs? .png
Figure : qui devrait auto-héberger des LLM ?
Contrôle : l’auto-hébergement vous permet d’exécuter des LLM selon vos propres conditions, en respectant la sécurité des données, les réglementations en matière de confidentialité et les besoins spécifiques de l’organisation. Cela est particulièrement vrai pour les secteurs soumis à des exigences strictes en matière de protection des données, où les données sensibles ne peuvent pas quitter votre infrastructure.
Personnalisation : avec l’auto-hébergement, vous pouvez affiner les modèles et optimiser les stratégies d’inférence pour votre cas d’utilisation spécifique, obtenant de meilleures performances, une meilleure vitesse et une meilleure précision que ce que les API gérées peuvent offrir. Vous gagnez également la flexibilité d’expérimenter des techniques d’inférence avancées comme le décodage Chain of Thought (CoT) ou Equilibrium Search, qui ne sont possibles qu’avec un contrôle total sur la couche d’inférence.
Avantages en matière de coûts à long terme : bien que l’auto-hébergement puisse entraîner des coûts initiaux plus élevés en matière d’infrastructure et de maintenance, il peut offrir des économies à long terme. Vous pouvez optimiser les coûts au fil du temps et à grande échelle en tirant parti de plateformes open-source comme BentoML et OpenLLM, sans être enfermé dans les modèles tarifaires des fournisseurs.
Principaux défis et optimisations pour l’auto-hébergement des LLM
L’auto-hébergement des LLM offre un meilleur contrôle, mais s’accompagne d’un ensemble de défis techniques, notamment en matière de mise à l’échelle, d’optimisation de l’inférence et de problème de démarrage à froid. BentoML propose une suite de solutions pour résoudre ces problèmes, permettant aux équipes d’optimiser efficacement leurs déploiements. Chaoyu a partagé les principales approches qu’ils ont utilisées pour relever ces défis.
Optimisation de l’inférence
Lors de l’auto-hébergement de LLM, l’optimisation de l’inférence est cruciale pour améliorer les performances et réduire les coûts. Chaoyu a mis en avant plusieurs techniques clés :
Figure- LLM Inference Optimization- The Table Stacks.png
Figure : optimisation de l’inférence des LLM : The Table Stacks
Regroupement des requêtes
Comme l’une des stratégies les plus efficaces, le regroupement des requêtes peut augmenter le débit jusqu’à 23 fois. En traitant plusieurs requêtes en parallèle plutôt que séquentiellement, vous pouvez maximiser l’utilisation des ressources GPU, réduire les temps d’inactivité et améliorer l’efficacité, en particulier pour les applications à fort trafic.
Streaming de tokens
Une autre optimisation essentielle est le streaming de tokens, qui renvoie les tokens progressivement à mesure qu’ils sont générés. Cette approche améliore considérablement la latence perçue, en particulier dans les applications en temps réel comme les chatbots, où des temps de réponse plus rapides améliorent l’expérience utilisateur.
Quantification
De plus, la quantification réduit l’utilisation de la mémoire et la latence d’inférence en diminuant la précision du modèle (par exemple, de 32 bits à 8 bits). Bien que cette approche puisse entraîner une légère réduction de la qualité de sortie pour certaines tâches, le compromis en vaut la peine pour les gains de performance.
Optimisations du noyau
L’optimisation au niveau du noyau permet des optimisations GPU de bas niveau adaptées aux charges de travail des LLM, garantissant que les tâches de calcul sont traitées aussi efficacement que possible. Cependant, ces optimisations peuvent réduire la portabilité entre différentes plateformes matérielles.
Parallélisme de modèle
Pour les modèles extrêmement volumineux (plus de 70B paramètres), la répartition de la charge de travail sur plusieurs GPU permet une inférence plus efficace. Bien que cela améliore le débit, cela introduit une certaine surcharge de communication entre les GPU.
Mise à l’échelle de l’inférence LLM : autoscaling basé sur la concurrence
Un défi courant dans les environnements auto-hébergés est la gestion de l’échelle. Les métriques de mise à l’échelle traditionnelles comme l’utilisation CPU/GPU et les requêtes par seconde (QPS) sont insuffisantes pour les LLM, dont les exigences en ressources varient selon la complexité des entrées.
Chaoyu a expliqué que la mise à l’échelle basée sur la concurrence est une approche plus efficace. Cette méthode surveille le nombre de requêtes concurrentes afin de déterminer la charge du système et ajuste dynamiquement les ressources en fonction de la taille du lot. Cette méthode garantit que le système évolue précisément lorsque c’est nécessaire, évitant le surprovisionnement et réduisant les coûts tout en maintenant des performances élevées lors des pics de trafic.
Mise en cache des préfixes pour réduire les coûts
L’un des moyens les plus efficaces de réduire les coûts et d’améliorer les performances dans les environnements d’auto-hébergement consiste à utiliser la mise en cache des préfixes, qui peut entraîner plus de 90 % d’économies. Cette stratégie fonctionne en mettant en cache les parties communes des prompts, telles que les instructions système ou le contenu statique, afin d’éviter les calculs redondants.
En plaçant les informations statiques au début des requêtes, vous augmentez la probabilité de cache hits, réduisant ainsi la charge de calcul pour les requêtes ultérieures présentant des structures similaires. Cela est particulièrement utile pour les applications traitant des requêtes fréquentes et répétées, où la majeure partie du prompt reste identique. La mise en cache des préfixes réduit la latence et diminue l’utilisation des ressources, optimisant considérablement les performances et les coûts de l’inférence LLM.
Le problème du démarrage à froid
Un autre défi majeur de l’auto-hébergement est le problème du démarrage à froid — le délai lorsque de nouvelles instances prennent du temps à être prêtes à gérer le trafic. Chaoyu a présenté deux stratégies clés pour surmonter ce problème.
Une solution consiste à disposer de modèles préchauffés en attente. Cela garantit que les modèles sont immédiatement prêts à traiter les requêtes lorsqu’une hausse survient, minimisant les délais de démarrage.
Une autre optimisation essentielle consiste à alléger les images de conteneurs. En réduisant les dépendances inutiles, vous pouvez diminuer considérablement le temps nécessaire pour récupérer les images lors de la mise à l’échelle dynamique des services. Par exemple, une image de 154MB se chargera beaucoup plus rapidement qu’une image volumineuse de 6.7GB, réduisant significativement le temps de démarrage.
De plus, le streaming des poids du modèle progressivement dans la mémoire GPU plutôt que leur chargement séquentiel réduit encore davantage le temps d’initialisation. Cela garantit que votre système peut gérer des pics soudains de trafic sans longs délais de démarrage, améliorant la réactivité globale de vos modèles auto-hébergés.
Intégration de BentoML et Milvus pour des applications LLM plus puissantes
BentoML optimise les systèmes de service en ligne pour les applications d’IA et l’inférence de modèles. Son service géré, BentoCloud, propose une gamme de modèles d’IA open-source de pointe, notamment Llama 3, Stable Diffusion, CLIP et Sentence Transformers. Ces modèles préconstruits peuvent être déployés en un seul clic sur la plateforme.
Milvus est une base de données vectorielle open source conçue pour stocker, indexer et rechercher des données non structurées à l’échelle du milliard à l’aide d’embeddings vectoriels de grande dimension. Elle est idéale pour les applications d’IA modernes comme la RAG, la recherche sémantique, la recherche multimodale et les systèmes de recommandation.
BentoCloud s’intègre parfaitement à Milvus et à son service managé, Zilliz Cloud, permettant de développer facilement de puissantes applications alimentées par des LLM, en particulier la génération augmentée par récupération (RAG). La RAG est une technique visant à améliorer la sortie des LLM en fournissant au modèle des connaissances externes auxquelles il n’avait pas accès.
Vous pouvez utiliser BentoCloud pour servir des modèles d’embedding et convertir des données non structurées en embeddings vectoriels, qui peuvent ensuite être stockés et récupérés dans Milvus (ou Zilliz Cloud). Milus récupère ensuite les résultats les plus pertinents et les fournit comme contexte au LLM afin de générer des résultats plus précis.
Figure- Workflow RAG.png
Pour plus d’informations sur la manière de créer des applications RAG ou d’autres types d’applications GenAI, consultez les tutoriels et blogs ci-dessous :
Tutoriel : Génération augmentée par récupération (RAG) avec Milvus et BentoML | Documentation Milvus
Tutoriel : RAG sans OpenAI : BentoML, OctoAI et Milvus
Blog | Défis d’infrastructure liés au passage à l’échelle de la RAG avec des modèles d’IA personnalisés
Vidéo | RAG as a service avec BentoML
Résumé
Le déploiement de LLM implique des décisions et des défis critiques, du choix entre l’auto-hébergement et les API managées à l’optimisation des performances et du passage à l’échelle. Si les API managées offrent commodité et simplicité, l’auto-hébergement offre davantage de contrôle, de flexibilité et d’efficacité des coûts à long terme pour les équipes ayant besoin de solutions personnalisées. La plateforme de BentoML répond à de nombreuses complexités de l’auto-hébergement, en proposant des outils puissants pour optimiser l’inférence, passer efficacement à l’échelle et surmonter des obstacles techniques comme le problème du démarrage à froid.
En tirant parti de BentoML, Milvus ou de leurs services managés, les équipes peuvent intégrer de manière fluide les couches Données et Opérations de leurs applications LLM, en construisant des systèmes hautes performances qui répondent à leurs besoins spécifiques.
Si vous êtes prêt à vous lancer dans l’auto-hébergement de LLM et à créer des applications LLM, des outils comme BentoML, OpenLLM et Milvus facilitent la prise en main et l’optimisation pour votre cas d’utilisation unique.
Faites équipe avec des personnes déterminées à optimiser leur couche de la pile DOOM. Tenez-vous sur les épaules de géants, exploitez le monde comme Archimède, et maintenez l’élan.
Continuer à lire

The AWS Outage Was a Wake-Up Call for Vector Database Cross-Region Disaster Recovery
Zilliz Cloud Had the Answer Before the Crisis. Zilliz Cloud is the world's first vector database with native cross-region disaster recovery.

Bringing AI to Legal Tech: The Role of Vector Databases in Enhancing LLM Guardrails
Discover how vector databases enhance AI reliability in legal tech, ensuring accurate, compliant, and trustworthy AI-powered legal solutions.

OpenAI o1: What Developers Need to Know
In this article, we will talk about the o1 series from a developer's perspective, exploring how these models can be implemented for sophisticated use cases.



