Après 3 mois avec Milvus en production : c’est décent pour le prototypage, frustrant pour la scalabilité.
Donc, me voilà, trois mois plongé dans le travail avec Milvus pour un projet axé sur la recherche de similarité vectorielle. Pour donner un peu de contexte, j’ai commencé à utiliser Milvus en janvier 2026 et je l’ai intégré dans une application de taille moyenne impliquant un système de recommandation. L’échelle était relativement significative, atteignant environ 2 millions d’entrées dans notre espace vectoriel lors des pics d’utilisation. Mon enthousiasme initial pour le projet s’est maintenant transformé en un enthousiasme tempéré.
À quoi je l’ai utilisé
Comme je l’ai mentionné plus tôt, je travaille sur un moteur de recommandation qui prédit les préférences des utilisateurs en fonction de leur comportement historique. Ce système prend les interactions des utilisateurs et les transforme en représentations vectorielles. Nous avons opté pour Milvus car nous avions besoin d’un moteur de stockage spécialisé dans les requêtes de données à haute dimension.
Au cours de ces trois mois, j’ai poussé Milvus à ses limites. La charge de travail inclut non seulement les requêtes mais aussi la mise à jour continue des données alors que de nouveaux retours utilisateurs arrivent. Notre architecture utilise un modèle de microservices, ce qui signifie que Milvus est une pièce d’un puzzle plus grand, s’intégrant avec un backend Node.js et un frontend React.
Ce qui fonctionne
Tout d’abord, la capacité à gérer les recherches vectorielles est là où Milvus brille vraiment. Les capacités d’indexation, en particulier avec le type d’index IVF (Inverted File), ont été excellentes pour accélérer les requêtes. Une fois, j’ai effectué un test simple avec une recherche de similarité cosinus sur 100 000 vecteurs, et il a retourné des résultats en moins de 100 millisecondes avec une précision moyenne supérieure à 95 %. Voici ce qui a également bien fonctionné pour moi :
1. Plusieurs Types d’Index
Milvus propose un ensemble diversifié de méthodes d’indexation, comme HNSW (Hierarchical Navigable Small World) et IVF, qui offrent aux développeurs flexibilité selon leurs charges de travail. En fonction du compromis entre la vitesse de recherche et la précision, j’ai pu changer de type d’index sans problème.
2. Fonctionnalités de Scalabilité
En tournant sur un cluster Kubernetes, l’auto-scaling de Milvus a fonctionné étonnamment bien sous charge. J’ai réalisé des bancs d’essai avec 100 utilisateurs simultanés, et mon service Milvus containerisé a amélioré ses performances lors des requêtes de pointe. Nous avons rarement connu une dégradation des performances, ce qui a été une agréable surprise. Cependant, la scalabilité n’était pas sans ses problèmes, comme décrit dans la section suivante.
3. Communauté et Support
La communauté Milvus est active ; j’ai posé des questions sur leur page de problèmes GitHub et j’ai reçu des retours dans les 24 heures. Le développement actif est un plus, le dépôt Milvus affichant 43 421 étoiles et 3 909 forks. Voir ce niveau d’engagement vous donne confiance dans les futures mises à jour et le support, surtout avec de réels problèmes traités dans les issues ouvertes.
| Fonctionnalité | Types d’Indexation | Scalabilité | Engagement Communautaire (Étoiles/Forks) |
|---|---|---|---|
| Milvus | IVF, HNSW, ANNOY | Excellent | 43 421 / 3 909 |
| Faiss | IVF, HNSW | Bon | 22 718 / 4 226 |
| Pinecone | Standard | Modéré | 8 123 / 1 025 |
Ce qui ne fonctionne pas
Mais bon, tout n’est pas rose. Ce qui ne fonctionne pas avec Milvus peut parfois être douloureusement évident. Voici un compte-rendu franc :
1. Gestion des Erreurs
Oh là là, les messages d’erreur peuvent être cryptiques. Une fois, en réindexant des vecteurs, j’ai reçu l’erreur suivante :
2026-03-15 14:23:45 - ERROR - [code: 4004] - Erreur d'Index - Type d'indexation invalide spécifié.
Le message ne spécifiait pas quel type d’indexation était invalide. J’ai fini par passer une bonne heure à essayer de résoudre quelle partie de ma requête était incorrecte. Avoir des messages d’erreur plus clairs permettrait de gagner d’innombrables heures à traquer les bugs.
2. Consommation de Ressources
Sur des machines de bas de gamme, Milvus peut être gourmand en ressources. Mon déploiement initial sur une instance AWS EC2 basique avec 16 Go de RAM et un seul CPU avait du mal à maintenir des performances acceptables. Les requêtes non optimisées entraînaient une utilisation significative de la mémoire, provoquant des plantages lors d’opérations simples. Les ressources nécessaires pour le faire fonctionner efficacement peuvent être prohibitifs, surtout pour les petites équipes.
3. Lacunes dans la Documentation
Écoutez, je comprends que chaque projet open-source a ses lacunes, mais la documentation de Milvus peut manquer dans certains domaines. Je me suis retrouvé à explorer les problèmes GitHub ou des forums externes parce que certaines configurations avancées n’étaient pas suffisamment couvertes dans leur documentation. Ce syndrome de « fonctionnalité non documentée » était frustrant lorsque vous souhaitez itérer rapidement.
Tableau de Comparaison
Maintenant, étant donné l’état de Milvus, vous vous demandez peut-être comment il se compare à ses concurrents. Voici un tableau comparant Milvus avec deux alternatives : Faiss et Pinecone.
| Critères | Milvus | Faiss | Pinecone |
|---|---|---|---|
| Facilité d’Utilisation | Modérée | Élevée | Élevée |
| Vitesse de Requête | Rapide | Très Rapide | Rapide |
| Coût | Gratuit (open-source) | Gratuit (open-source) | Basé sur abonnement |
| Scalabilité | Excellent | Bon | Excellent |
| Support Communautaire | Actif | Actif | Modéré |
Les Chiffres
Alors, à quoi ressemblent les indicateurs de performance ? Après avoir réalisé de nombreux tests sur les temps de requête et l’utilisation des ressources, voici ce que j’ai trouvé :
- Indexation de 1 million de vecteurs : A pris en moyenne 32 secondes avec HNSW.
- Temps de Recherche : Moyenne de 75 ms pour 10 000 vecteurs.
- Utilisation de la Mémoire : Pic à environ 7 Go pour une recherche de 2 millions de vecteurs.
Comparativement, mes tests avec Faiss dans des conditions similaires ont donné des résultats légèrement meilleurs :
- Indexation de 1 million de vecteurs : 28 secondes avec HNSW.
- Temps de Recherche : 60 ms pour 10 000 vecteurs.
Qui devrait l’utiliser
Si vous êtes un data scientist ou un développeur backend essayant de déployer un moteur de recommandation, Milvus pourrait bien convenir, surtout si vous êtes en phase de prototypage. Il est définitivement adapté aux applications de taille moyenne, où votre équipe est prête à jongler avec les particularités de l’environnement pour faire avancer les choses rapidement. Si vous expérimentez des applications d’apprentissage profond et que vous voulez simplement des capacités de recherche vectorielle, allez-y !
Qui ne devrait pas
Si vous êtes un développeur solo sur un petit projet et que vous voulez juste quelque chose qui fonctionne simplement, éloignez-vous. La configuration peut être un peu délicate lorsque vous commencez, sans parler des problèmes de mémoire. Je ne le recommanderais pas pour des applications de grande taille avec des exigences en temps réel tant qu’ils n’améliorent pas la gestion des erreurs et l’optimisation des ressources. Les entreprises à la recherche d’un outil de production poli et professionnel devraient également réfléchir à deux fois.
FAQs
Milvus est-il gratuit à utiliser ?
Oui, Milvus est open-source et sous licence Apache 2.0, donc vous pouvez le modifier, le distribuer et l’utiliser gratuitement.
Puis-je utiliser Milvus avec des fournisseurs de cloud ?
Absolument ! Vous pouvez exécuter Milvus sur AWS, Google Cloud, ou tout autre fournisseur de cloud qui prend en charge l’orchestration de conteneurs.
Quels langages de programmation sont pris en charge avec Milvus ?
Milvus dispose de SDK pour Python, Go, et Java, entre autres. Si vous êtes dans un environnement polyglotte, vous ne devriez avoir aucun problème à l’intégrer.
Données à partir du 21 mars 2026. Sources : Dépôt GitHub Milvus, Documentation Milvus
Articles Connexes
- Quand ne pas utiliser les agents d’IA
- Réduire la complexité des agents d’IA
- Construire l’Harmonie : L’Art de l’Équilibre Vie-Travail dans la Tech
🕒 Published: