ITSkillsCenter
Blog

Vector DB self-hosted 2026 : Qdrant, Weaviate, Chroma, Milvus

29 min de lecture





Vector DB self-hosted 2026 : Qdrant, Weaviate, Chroma, Milvus


Vector DB self-hosted 2026 : Qdrant, Weaviate, Chroma, Milvus — le guide de référence

Méta-description : Qdrant, Weaviate, Chroma ou Milvus : lequel self-héberger pour votre RAG en 2026 ? Comparatif complet, critères de choix, adaptation Afrique de l’Ouest et tutoriels pratiques. (155 caractères)

Introduction — L’ère RAG rend les vector DB incontournables

Depuis que les grands modèles de langage (LLM) se sont imposés dans les workflows techniques, un composant discret est devenu la pièce maîtresse de toute architecture IA sérieuse : la base de données vectorielle. Sans elle, un LLM travaille dans le vide, prisonnier de ses données d’entraînement. Avec elle, il peut interroger en temps réel des milliers de documents, des bases de connaissances métier, des archives juridiques ou des historiques de tickets — et répondre avec une précision que le seul contexte de sa fenêtre ne lui permettrait jamais d’atteindre. Ce pattern s’appelle le RAG, pour Retrieval-Augmented Generation, et il est devenu en 2026 le standard de facto pour toute application IA d’entreprise.

Pendant deux ou trois ans, Pinecone a été la référence par défaut. Son API propre, sa documentation soignée et sa disponibilité en SaaS en faisaient un choix évident pour les équipes qui voulaient aller vite. Mais en 2026, la facture Pinecone commence à faire grimacer les budgets. Le plan Standard démarre à 50 USD par mois, avec des frais variables difficiles à prévoir — frais de lecture (Read Units), frais d’écriture (Write Units), frais de stockage à environ 3,60 USD par Go par mois, sans compter les mystérieux « capacity fees » qui apparaissent dans le tableau de bord après coup, sans formule publiée. Pour une PME sénégalaise, malienne ou ivoirienne qui paie en CFA et dont le budget infra mensuel dépasse rarement 50 000 FCFA, une facture Pinecone dont la composante variable est incontrôlable est une contrainte structurelle, pas un détail opérationnel.

La bonne nouvelle est que l’écosystème open source a rattrapé le SaaS. En 2026, quatre solutions de vector DB auto-hébergeables ont atteint une maturité de production : Qdrant, Weaviate, Chroma et Milvus. Chacune a une philosophie distincte, une courbe d’apprentissage différente, et s’adresse à des cas d’usage spécifiques. Ce guide exhaustif vous donne toutes les clés pour choisir, déployer et opérer la solution la mieux adaptée à votre contexte — qu’il s’agisse d’un prototype RAG sur un laptop à Dakar, d’un service de recherche sémantique pour une startup d’Abidjan, ou d’une plateforme IA à l’échelle pour un groupe industriel de Casablanca.

Cet article est le pilier du cluster vector-db-selfhost. Chaque solution est détaillée ici dans sa philosophie et ses capacités ; les tutoriels pas-à-pas d’installation et d’intégration sont traités dans les articles satellites listés en section 6.

Pourquoi self-hoster son vector DB en 2026

La question « cloud managé ou self-hosted » n’est plus un débat de puristes. En 2026, elle est avant tout économique, réglementaire et stratégique. Examinons chaque dimension.

L’argument économique est décisif en Afrique de l’Ouest

Prenons un scénario concret : une startup dakaroise construit un assistant juridique RAG sur la législation OHADA. Elle indexe 500 000 documents, chacun représenté par un vecteur de 1536 dimensions (format OpenAI text-embedding-3-small). Sur Pinecone Standard à 50 USD/mois, les coûts fixes sont acceptables au départ, mais dès que la charge de requêtes augmente — 100 000 requêtes/jour en production — les Read Units s’accumulent et la facture mensuelle peut dépasser 150 à 200 USD selon la documentation officielle de Pinecone. En FCFA au cours actuel, cela représente 90 000 à 120 000 FCFA par mois uniquement pour le stockage vectoriel, sans compter le LLM ni l’infrastructure applicative. À l’opposé, un VPS Hetzner CX22 à 3,79 €/mois (environ 2 500 FCFA) avec Qdrant installé en Docker peut gérer un million de vecteurs avec des performances de production, comme nous le détaillons dans la section dédiée au contexte ouest-africain.

La souveraineté des données devient une exigence

Les données qu’on indexe dans un vector DB ne sont pas des données anodines : ce sont les embeddings de vos documents confidentiels, de vos bases de connaissances propriétaires, de vos contrats et de vos échanges clients. Envoyer ces vecteurs — et les documents source qui les ont générés — vers un service SaaS américain pose des questions réglementaires croissantes. L’UEMOA et la CEDEAO publient progressivement des cadres de localisation des données, et les entreprises du secteur financier (banques, assurances, microfinance) sont déjà soumises à des obligations de résidence des données. Self-héberger son vector DB dans un datacenter de Dakar, d’Abidjan ou sur un VPS en Europe via Hetzner, c’est rester maître de l’endroit où vos données résident.

La flexibilité technique est incomparable

Les solutions SaaS figent votre pipeline dans une architecture que vous ne contrôlez pas. Les quatre solutions open source présentées ici vous permettent de choisir votre modèle d’embedding (local via Ollama, distant via API, ou hybride), de personnaliser l’indexation, d’ajouter des filtres métadonnées complexes, de modifier les paramètres HNSW selon votre ratio précision/vitesse, et d’intégrer des outils comme LangChain, LlamaIndex ou des frameworks maison. Cette flexibilité est particulièrement précieuse quand on travaille sur des langues minoritaires ou des domaines très spécialisés — deux réalités courantes en Afrique de l’Ouest — où les modèles d’embedding génériques des SaaS ne sont pas optimaux.

La maturité de l’écosystème lève les dernières réserves

Le principal argument en faveur des solutions managées a longtemps été la fiabilité et la facilité opérationnelle. En 2026, cet argument s’effrite. Qdrant vient de lever 50 millions de dollars en Série B (mars 2026), signe d’une adoption massive en production. Milvus est utilisé en production par des entreprises gérant des milliards de vecteurs. Weaviate et Chroma ont des écosystèmes d’intégration (LangChain, LlamaIndex, Haystack) aussi riches que Pinecone. Les images Docker officielles sont stables, les API sont versionnées, les migrations sont documentées. Le risque opérationnel du self-hosting a considérablement baissé.

Les 4 contenders

Qdrant — Performance Rust, API REST propre

Qdrant est né en 2021 d’un constat simple : les bases de données vectorielles existantes étaient soit trop lentes, soit trop gourmandes en mémoire, soit les deux. Son créateur, Andrei Vasnetsov, a choisi Rust comme langage d’implémentation — un choix qui n’est pas anodin. Rust élimine les pauses de garbage collection qui affectent les bases de données Go ou Java sous forte charge, garantit une empreinte mémoire prédictible, et atteint des performances proches du C dans les opérations de calcul vectoriel.

Concrètement, les benchmarks publiés par l’équipe Qdrant sur leur site officiel (qdrant.tech) montrent que Qdrant consomme 2 à 3 fois moins de mémoire qu’une base vectorielle Go équivalente pour le même jeu de données, avec un débit pouvant atteindre 4 fois plus de requêtes par seconde dans les configurations haute charge. Ces gains sont amplifiés par les techniques de quantification : Qdrant propose la Scalar Quantization, la Product Quantization et — fait rare — la Binary Quantization, qui peut réduire l’usage mémoire jusqu’à 64 fois tout en maintenant une qualité de recherche acceptable. Sur un million de vecteurs de 768 dimensions, un Qdrant non-quantifié peut tenir dans 3 à 4 Go de RAM ; avec Binary Quantization activée, ce même dataset tient dans 400 Mo.

L’API de Qdrant est REST et gRPC. La REST API est particulièrement propre et bien documentée — créer une collection, indexer des vecteurs et lancer une recherche sémantique sont des opérations que n’importe quel développeur backend maîtrise en une heure. Le support des payloads (métadonnées associées à chaque vecteur) et du filtrage payload est un point fort majeur : vous pouvez faire une recherche vectorielle filtrée par date, catégorie, auteur ou tout autre champ JSON, ce qui est essentiel pour les usages RAG métier. Qdrant supporte également les vecteurs sparse (SPLADE) pour la recherche hybride dense+sparse, et les named vectors pour indexer plusieurs représentations d’un même document.

Sur le plan du déploiement, Qdrant existe en quatre formes : image Docker officielle (la plus courante pour le self-hosting), binaire natif compilé en Rust, déploiement Kubernetes via Helm, et Qdrant Cloud (le SaaS managé). Pour les usages PME en Afrique de l’Ouest, la voie Docker est la plus directe et la plus documentée.

Weaviate — GraphQL, modules IA, hybrid search

Weaviate (weaviate.io) adopte une philosophie radicalement différente : plutôt que d’être une base de données vectorielle pure, Weaviate veut être une base de données IA complète. Sa signature architecturale est un système de modules pluggables qui s’intègrent directement dans le pipeline d’indexation. En pratique, vous pouvez configurer Weaviate pour qu’il vectorise automatiquement vos documents lors de leur insertion, en appelant un module OpenAI, Cohere, HuggingFace ou un modèle local — sans que votre application ait à gérer cette étape séparément. C’est un gain de simplicité notable pour les équipes qui débutent en RAG.

L’interface de requête principale de Weaviate est GraphQL, complétée par une REST API et, depuis 2024, une API gRPC haute performance qui a considérablement amélioré la latence pour les requêtes en production. Le GraphQL permet des requêtes expressives qui combinent recherche sémantique, recherche par mots-clés (BM25) et filtres structurés en une seule requête — c’est la recherche hybride native. Cette capacité est précieuse pour des usages comme la recherche dans un catalogue produit (où la sémantique et les filtres attributs coexistent) ou dans une base documentaire juridique.

Weaviate se déploie via Docker ou Kubernetes. La configuration Docker Compose officielle inclut un fichier d’environnement pour activer les modules désirés. En mode self-hosted sans modules cloud, Weaviate peut fonctionner entièrement localement en combinaison avec des modèles Ollama ou des endpoints OpenAI-compatible locaux. L’architecture de Weaviate est conçue pour la scalabilité horizontale via des shards et des réplicas, ce qui en fait un choix naturel pour les équipes qui anticipent une croissance importante de leur dataset vectoriel. En contrepartie, la surface de configuration est plus large qu’avec Qdrant, et la courbe d’apprentissage du GraphQL peut surprendre les développeurs habitués à des APIs REST simples.

Chroma — Simplicité Python, idéal pour les prototypes

Chroma (trychroma.com) occupe une niche bien définie : la base de données vectorielle la plus simple à intégrer dans un projet Python. Sa philosophie est celle du moindre effort — pip install chromadb, quelques lignes de code, et vous avez un store vectoriel fonctionnel. Pas de configuration YAML complexe, pas d’orchestration Kubernetes, pas de module à activer. Chroma s’installe et fonctionne.

Techniquement, Chroma utilise SQLite pour le stockage des métadonnées et hnswlib (une implémentation C++ de l’algorithme HNSW) pour l’index vectoriel. En mode embarqué — c’est-à-dire quand Chroma tourne dans le même processus Python que votre application — il n’y a aucun serveur à gérer, aucun port à ouvrir. Les données sont persistées sur disque dans un répertoire local. Ce mode est idéal pour les prototypes, les scripts d’analyse, les notebooks Jupyter et les applications mono-instance. Pour les déploiements multi-clients, Chroma dispose d’un mode serveur activé via chroma run --path /chroma_db_path, qui expose une API REST et gRPC.

Par défaut, Chroma vectorise les textes avec le modèle all-MiniLM-L6-v2 (384 dimensions) via la bibliothèque sentence-transformers. Vous pouvez substituer n’importe quel modèle HuggingFace, OpenAI, Google ou Cohere en passant une fonction d’embedding personnalisée à la création d’une collection. L’intégration native avec LangChain et LlamaIndex est particulièrement soignée — Chroma est souvent le vector store par défaut dans les tutoriels de ces frameworks, ce qui explique sa popularité chez les développeurs IA débutants.

La limite principale de Chroma est sa scalabilité. L’équipe recommande de ne pas dépasser 5 à 10 millions de vecteurs sur un nœud unique. Pour les usages plus importants, il faudra passer à Qdrant ou Milvus. Chroma n’est pas conçu pour des architectures distribuées multi-nœuds. C’est son choix assumé : rester simple, rester accessible, laisser les cas d’usage complexes aux autres.

Milvus — Distribué, Kubernetes-native, échelle milliards

Milvus (milvus.io) est né d’un besoin que les autres solutions ne satisfaisaient pas : gérer des milliards de vecteurs avec une latence de recherche en millisecondes. Créé par Zilliz et open-sourcé en 2019, Milvus est aujourd’hui l’une des solutions de vector DB les plus déployées en production à l’échelle mondiale, utilisée par des entreprises gérant des archives multimédia massives, des systèmes de recommandation à l’échelle internet, et des plateformes IA d’entreprise.

L’architecture de Milvus est cloud-native et microservices par conception. Elle dissocie le stockage (MinIO ou S3), les métadonnées (etcd), le streaming de logs (Pulsar ou Kafka), les coordinateurs et les nœuds de travail. Cette séparation permet une scalabilité composant par composant — on peut augmenter les query nodes pour absorber une charge de lecture intense sans toucher aux data nodes qui gèrent l’écriture. C’est la puissance d’une architecture conçue dès le départ pour le scale horizontal.

Milvus existe en trois saveurs d’après sa documentation officielle : Milvus Lite, une bibliothèque Python installable via pip, idéale pour les tests et les notebooks ; Milvus Standalone, un déploiement single-machine via Docker Compose pour les datasets de quelques dizaines de millions de vecteurs ; et Milvus Distributed, le mode cluster Kubernetes complet pour les scénarios milliards de vecteurs. Pour une PME ou une startup, Milvus Standalone est généralement le bon point d’entrée si Chroma devient trop limité mais que Qdrant ne suffit pas. La migration de Lite vers Standalone puis vers Distributed est documentée et ne nécessite pas de changer l’API applicative.

La complexité de Milvus est réelle. Déployer Milvus Distributed suppose de maîtriser Kubernetes, etcd, MinIO et Pulsar. Les besoins en RAM sont plus importants que pour Qdrant ou Chroma. Mais pour les équipes qui opèrent à l’échelle des dizaines ou centaines de millions de vecteurs avec des contraintes de haute disponibilité, Milvus est souvent le seul choix raisonnable parmi les solutions open source.

Critères de choix

Choisir sa vector DB n’est pas un problème à une dimension. Plusieurs axes de décision entrent en jeu simultanément, et les priorités varient selon le contexte de chaque équipe.

La taille du dataset et la croissance anticipée sont le premier filtre. Si vous indexez moins de 500 000 vecteurs et que vous ne prévoyez pas de croissance explosive à court terme, Chroma ou Qdrant suffisent largement, avec une préférence pour Qdrant dès que la performance est importante. Entre 1 million et 50 millions de vecteurs, Qdrant et Milvus Standalone se disputent la première place. Au-delà de 50 millions de vecteurs avec des contraintes de disponibilité, Milvus Distributed ou Weaviate scalé horizontalement sont les candidats naturels.

Le niveau de maturité de l’équipe conditionne fortement le choix. Une équipe Python-first qui découvre le RAG démarrera presque toujours avec Chroma — l’intégration en 10 lignes de code est imbattable pour un premier prototype. Une équipe backend expérimentée appréciera l’API REST propre de Qdrant et sa documentation technique dense. Une équipe habituée à GraphQL ou à l’écosystème Kubernetes sera à l’aise avec Weaviate. Une équipe SRE qui gère déjà etcd et Kafka en production pour d’autres services n’aura pas peur de Milvus Distributed.

Les exigences de recherche hybride (vecteurs denses + mots-clés + filtres) orientent vers Qdrant (filtrage payload avancé, sparse vectors) ou Weaviate (hybrid search GraphQL natif). Si vous avez besoin de combiner une recherche sémantique avec des filtres structurés complexes — par exemple « documents de l’OHADA publiés entre 2020 et 2025 appartenant à la catégorie droit commercial » — Qdrant et Weaviate sont nettement supérieurs à Chroma.

La contrainte d’infrastructure est déterminante en Afrique de l’Ouest. Un VPS 4 Go RAM est le minimum absolu pour Qdrant ou Chroma en production légère. Weaviate sans modules cloud tourne aussi sur 4 Go RAM mais préfère 8 Go. Milvus Standalone nécessite au moins 8 Go RAM, idéalement 16 Go. Milvus Distributed nécessite un cluster Kubernetes avec plusieurs nœuds — on sort alors du domaine du VPS individuel.

L’intégration avec l’écosystème IA local est enfin un critère souvent sous-estimé. Si votre stack IA repose sur Ollama et Open WebUI — ce qui est de plus en plus courant pour les équipes qui veulent une solution 100% locale sans appels API externes — sachez que Open WebUI supporte nativement Qdrant, Chroma et Milvus comme backends vectoriels RAG. Qdrant est particulièrement bien documenté dans l’écosystème Ollama.

Tableau comparatif

Critère Qdrant Weaviate Chroma Milvus
Langage core Rust Go Python / C++ (hnswlib) Go
API principale REST + gRPC GraphQL + REST + gRPC REST + gRPC gRPC + REST (PyMilvus)
Index vectoriel HNSW (natif Rust) HNSW HNSW (hnswlib) HNSW, IVF, DiskANN, SCANN
Quantification Scalar, Product, Binary PQ (via module) Non SQ8, PQ, BFloat16
Recherche hybride Oui (dense + sparse) Oui (GraphQL natif) Limitée Oui (dense + sparse)
Filtrage métadonnées Avancé (payload filtering) Avancé (GraphQL where) Basique (metadata) Avancé (scalar filtering)
RAM min. production 2–4 Go (1M vecteurs) 4–8 Go 1–2 Go (petit dataset) 8–16 Go (Standalone)
Scalabilité Multi-nœuds (Qdrant Cloud / k8s) Sharding horizontal Single-node uniquement Distribué natif (milliards)
Persistance Disque + WAL Disque + réplication SQLite + fichiers HNSW MinIO / S3 + etcd
Modules IA intégrés Non (délégué à l’app) Oui (OpenAI, Cohere, HF…) Oui (sentence-transformers) Non (délégué à l’app)
Facilité de démarrage Facile (Docker, 1 conteneur) Moyenne (config modules) Très facile (pip install) Moyenne à complexe
Intégration LangChain/LlamaIndex Native Native Native (défaut souvent) Native
Open WebUI RAG Oui (supporté) Non (pas listé dans v0.6) Oui (défaut) Oui (supporté)
Licence Apache 2.0 BSD-3-Clause Apache 2.0 Apache 2.0
Cas d’usage idéal RAG production, recherche haute perf IA multimodale, hybrid search Prototype, notebook, dev local Milliards de vecteurs, entreprise

Tutoriels du cluster

Ce pilier est le point d’entrée du cluster vector-db-selfhost. Chaque tutoriel ci-dessous approfondit un aspect pratique de la mise en œuvre des vector DB en self-hosting. Ils peuvent être lus indépendamment, mais il est recommandé de commencer par ce pilier pour comprendre les choix architecturaux avant de se lancer dans l’installation.

Ces quatre tutoriels couvrent l’arc complet du cycle de vie d’un projet vector DB : du prototype local (Satellite 3) à la production haute performance (Satellite 1 et 2) jusqu’à l’échelle entreprise (Satellite 4). Le choix du bon point d’entrée dépend de votre contexte, détaillé dans les critères de choix ci-dessus.

Adaptation au contexte ouest-africain

Construire un pipeline RAG en Afrique de l’Ouest en 2026 implique de résoudre plusieurs contraintes spécifiques que les tutoriels génériques — écrits pour des équipes avec une connexion à 1 Gbps et un budget infra en USD — n’anticipent pas. Cette section est une synthèse des choix techniques les plus adaptés à ce contexte.

Hetzner CX22 : l’infrastructure de référence accessible

Le VPS Hetzner CX22 (2 vCPU, 4 Go RAM, 40 Go SSD, 20 To de bande passante mensuelle) est disponible à environ 3,79 €/mois depuis les datacenters de Nuremberg, Falkenstein et Helsinki. En 2026, c’est le point d’entrée le plus économique pour un déploiement Qdrant production-ready. Un Qdrant non-quantifié sur ce VPS peut héberger confortablement 1 million de vecteurs de 384 dimensions (format bge-m3 compressé) avec des temps de requête inférieurs à 10 ms. Avec la Binary Quantization activée, ce même VPS peut monter à 4 à 5 millions de vecteurs dans le même budget mémoire. Pour les équipes qui travaillent sur des bases documentaires de taille moyenne — une bibliothèque de textes OHADA, un corpus de jurisprudence sénégalaise, une base de connaissances produits pour un e-commerce ivoirien — le CX22 est largement suffisant. Le passage au CX32 (4 vCPU, 8 Go RAM, ~5,77 €/mois) est la prochaine étape naturelle si le dataset dépasse les 2 millions de vecteurs non-quantifiés.

RAG pour la documentation OHADA et SYSCOHADA

L’un des cas d’usage les plus porteurs pour les vector DB en Afrique de l’Ouest est la construction d’assistants RAG sur la documentation juridique et comptable régionale. L’OHADA (Organisation pour l’Harmonisation en Afrique du Droit des Affaires) produit des Actes Uniformes qui régissent le droit commercial, le droit des sociétés, le droit du travail et les procédures collectives pour 17 pays membres. Le référentiel comptable SYSCOHADA révisé (2017) est le standard comptable de la zone. Ces documents sont publics, bien structurés et représentent une base de connaissance idéale pour un assistant juridique ou comptable RAG.

Concrètement, un corpus OHADA complet (tous les Actes Uniformes, les règlements CCJA, la jurisprudence disponible) représente environ 200 000 à 400 000 chunks de texte après découpage — un volume que Qdrant gère sur un VPS CX22 sans aucune difficulté. Un tel assistant, capable de répondre à des questions comme « Quelles sont les conditions de validité d’une SARL selon l’Acte Uniforme sur les Sociétés Commerciales ? » en citant les articles précis, est aujourd’hui réalisable en une semaine de développement par une équipe de deux développeurs.

Embeddings multilingues avec bge-m3

Le choix du modèle d’embedding est critique pour la qualité du RAG en contexte multilingue. Le modèle BAAI/bge-m3 (disponible sur HuggingFace et dans le registre Ollama) est en 2026 la référence pour les usages qui mélangent le français, les langues locales (wolof, dioula, bambara, mooré, éwé) et l’anglais. Il supporte plus de 100 langues, accepte des contextes jusqu’à 8 192 tokens, et unifie les trois modes de retrieval : dense (sémantique), sparse (lexical) et multi-vecteurs (ColBERT). Pour les documents OHADA rédigés en français avec des termes techniques en latin ou en anglais, bge-m3 produit des embeddings de meilleure qualité que les modèles anglophones dominants comme text-embedding-3-small d’OpenAI.

Bge-m3 peut tourner via Ollama sur un VPS avec CPU uniquement — la vectorisation est plus lente qu’avec un GPU, mais pour des usages où les documents sont indexés une fois et rarement modifiés (comme un corpus OHADA), cette latence d’indexation est acceptable. Une fois les embeddings calculés et stockés dans Qdrant, les requêtes de recherche ne nécessitent que la vectorisation de la question de l’utilisateur (quelques dizaines de mots), ce qui est rapide même sur CPU.

Intégration Ollama + Open WebUI

La stack Ollama + Open WebUI + Qdrant (ou Chroma) forme aujourd’hui le trio le plus déployé pour les environnements RAG 100% locaux. Ollama (52 millions de téléchargements mensuels en Q1 2026) sert de runtime pour les LLM locaux (Mistral, LLaMA 3, Qwen 2.5, Gemma 3). Open WebUI fournit l’interface de chat et supporte nativement Qdrant, Chroma et Milvus comme backends RAG. L’ensemble peut tourner sur un VPS Hetzner CX32 ou CX42 (8 à 16 Go RAM), avec un LLM quantifié (Mistral 7B en Q4_K_M utilise environ 4,5 Go de RAM). Cette configuration permet à une PME ou une ONG d’avoir son propre assistant IA documentaire, souverain, sans aucun appel à des API externes payantes, pour un coût mensuel d’infrastructure inférieur à 15 €.

La contrainte principale en Afrique de l’Ouest reste la bande passante pour le téléchargement initial des modèles LLM (plusieurs gigaoctets) et des modèles d’embedding. La stratégie recommandée est de procéder aux téléchargements depuis un VPS européen Hetzner (où la bande passante est illimitée et rapide), puis de travailler en mode déconnecté depuis ce VPS. Les équipes disposant d’une connexion fibre locale à Dakar, Abidjan ou Accra peuvent aussi tout déployer on-premise sur un serveur physique dédié.

Erreurs fréquentes à éviter

Erreur Cause fréquente Solution recommandée
Changer de modèle d’embedding en cours de projet On commence avec all-MiniLM (384 dims) puis on veut passer à bge-m3 (1024 dims) pour améliorer la qualité Choisir le modèle d’embedding dès le début et ne jamais le changer sans re-indexer tout le corpus. Les vecteurs de dimensions différentes ne sont pas compatibles dans la même collection.
Oublier la persistance Docker Lancer Qdrant ou Chroma sans volume Docker — toutes les données disparaissent au redémarrage du conteneur Toujours monter un volume nommé (-v qdrant_data:/qdrant/storage) ou un bind mount. Vérifier que le volume survit à un docker restart avant de pousser en production.
Ne pas sécuriser l’API Qdrant en production Qdrant par défaut n’a pas d’authentification — l’API REST est ouverte sur le port 6333 Activer la clé API Qdrant via la variable d’environnement QDRANT__SERVICE__API_KEY, placer Qdrant derrière un reverse proxy (Nginx, Caddy) et ne jamais exposer le port 6333 directement sur Internet.
Chunking trop grossier ou trop fin Indexer des documents entiers (plusieurs milliers de tokens) ou des phrases d’une ligne dans des chunks trop petits Calibrer la taille des chunks selon le modèle d’embedding (512 tokens est souvent optimal) et utiliser un overlap de 50 à 100 tokens entre chunks consécutifs pour ne pas perdre le contexte aux jointures.
Confondre score de similarité et pertinence Retourner à l’utilisateur les K premiers résultats sans vérifier leur score — même un score de 0.45 peut produire une réponse hors sujet Définir un seuil minimal de score (typiquement 0.70 pour cosine similarity) en dessous duquel on renvoie « aucun document pertinent trouvé » plutôt que d’alimenter le LLM avec du bruit.
Milvus Distributed sur VPS insuffisant Tenter de déployer Milvus Distributed (qui nécessite etcd, MinIO, Pulsar + plusieurs nœuds Milvus) sur un seul VPS 4 Go RAM Pour un VPS unique, utiliser Milvus Standalone uniquement. Milvus Distributed nécessite un cluster Kubernetes multi-nœuds. En dessous de 10M vecteurs, Qdrant Standalone est souvent plus adapté.
Ignorer les mises à jour de schéma de collection Ajouter de nouveaux champs de payload sans les déclarer explicitement, ce qui désactive l’indexation des filtres sur ces champs Dans Qdrant, créer explicitement des index payload (create_payload_index) sur tous les champs utilisés dans des filtres fréquents. Sans index payload, le filtrage est linéaire (scan complet) et dégrade les performances à mesure que la collection grossit.

FAQ — Questions fréquentes sur les vector DB self-hosted

Q : Quelle est la différence entre une vector DB et une base de données classique avec extension pgvector ?

Une vector DB native (Qdrant, Weaviate, Chroma, Milvus) a été conçue dès le départ pour stocker et rechercher des vecteurs à haute dimensionnalité. Tout son moteur — index HNSW, quantification, filtrage payload — est optimisé pour ce cas d’usage. pgvector est une extension PostgreSQL qui ajoute le type vecteur à une base relationnelle. La différence pratique : pour des datasets inférieurs à 500 000 vecteurs avec des besoins de jointures SQL complexes, pgvector est souvent suffisant et simplifie l’architecture (une seule base de données). Au-delà, ou quand les performances de recherche deviennent critiques, une vector DB native offre un débit et une latence nettement meilleurs, avec des fonctionnalités comme la quantification et la recherche hybride que pgvector ne propose pas nativement. Voir notre tutoriel pgvector avancé pour une comparaison approfondie.

Q : Peut-on utiliser ces vector DB sans GPU ?

Oui, absolument. Qdrant, Weaviate, Chroma et Milvus fonctionnent entièrement sur CPU. Le GPU n’est utilisé que pour la génération des embeddings (vectorisation des textes), pas pour leur stockage ni leur recherche. Si vous utilisez une API externe pour la vectorisation (OpenAI, Cohere, ou un endpoint Ollama distant), votre vector DB ne touche jamais le GPU. Même si vous faites tourner le modèle d’embedding localement via Ollama avec bge-m3, Ollama peut utiliser le CPU uniquement — c’est plus lent (quelques secondes par document lors de l’indexation), mais parfaitement fonctionnel pour des usages où l’indexation n’est pas temps-réel.

Q : Comment migrer de Chroma vers Qdrant quand mon dataset grandit ?

La migration implique trois étapes. Premièrement, exporter les données de Chroma : récupérer tous les embeddings, documents et métadonnées via l’API Python Chroma (collection.get(include=["embeddings", "documents", "metadatas"])). Deuxièmement, créer une collection Qdrant avec la même dimensionnalité vectorielle. Troisièmement, uploader les vecteurs par batch via l’API Qdrant (client.upsert). Si votre dataset tient en mémoire (moins de quelques millions de vecteurs), le processus prend moins d’une heure. Pour les gros datasets, procéder par pages de 1 000 à 10 000 vecteurs. Attention : si vous en profitez pour changer de modèle d’embedding, vous devrez re-vectoriser tous vos documents sources — gardez-les précieusement.

Q : Qdrant, Weaviate, Chroma et Milvus sont-ils tous gratuits ?

Les quatre solutions sont open source sous licence Apache 2.0 (Qdrant, Chroma, Milvus) ou BSD-3-Clause (Weaviate) — leur utilisation en self-hosting est gratuite sans restriction. Chacun propose également une offre SaaS cloud payante (Qdrant Cloud, Weaviate Cloud, Zilliz Cloud pour Milvus) pour les équipes qui ne souhaitent pas gérer l’infrastructure. Ces offres cloud ont des plans gratuits limités, mais les plans production sont payants. En self-hosting, le seul coût est celui du serveur.

Q : Quelle vector DB choisir pour construire un assistant IA sur des documents en wolof ou en dioula ?

Le choix de la vector DB est secondaire par rapport au choix du modèle d’embedding. Pour les langues africaines, le modèle BAAI/bge-m3 (100+ langues) est actuellement le meilleur choix open source. En termes de vector DB, Qdrant est recommandé pour sa performance sur CPU avec peu de RAM. L’architecture pratique : Ollama pour servir bge-m3 localement, Qdrant pour stocker les embeddings, LangChain ou LlamaIndex pour orchestrer le pipeline RAG. Les résultats seront moins bons pour les langues africaines que pour le français ou l’anglais — les données d’entraînement multilingues sont déséquilibrées — mais le RAG reste utile car il ancre les réponses sur des documents réels plutôt que de générer de mémoire.

Q : Comment sauvegarder une vector DB Qdrant ou Milvus en production ?

Pour Qdrant, l’API officielle expose un endpoint de snapshot (POST /collections/{collection_name}/snapshots) qui crée une copie de la collection sur le disque du serveur. Ce snapshot peut ensuite être copié vers un stockage objet (Minio, Backblaze B2, S3). Automatiser ce snapshot via un cron job quotidien est la pratique recommandée. Pour Milvus Standalone, la sauvegarde passe par la copie du répertoire de données MinIO local. Pour Milvus Distributed, MinIO supporte la réplication native et les sauvegardes vers S3 externes. Chroma étant basé sur SQLite, un simple cp -r /chroma_db_path /backup/ est suffisant pour les petits datasets.

Q : Peut-on utiliser plusieurs modèles d’embedding dans la même vector DB ?

Oui, à condition de créer des collections séparées pour chaque modèle — jamais de mélange dans la même collection. Qdrant supporte également les « named vectors » qui permettent de stocker plusieurs représentations vectorielles pour un même document dans une seule collection (par exemple, une représentation dense bge-m3 et une représentation sparse SPLADE simultanément). C’est la base de la recherche hybride avancée. Weaviate gère cela via ses classes et propriétés vectorielles multi-représentations. En pratique, pour démarrer, choisissez un seul modèle d’embedding cohérent pour tout votre corpus.

Pour aller plus loin

Ce pilier vous a donné la vision d’ensemble du paysage des vector DB self-hosted en 2026. Voici les prochaines étapes concrètes selon votre profil.

Si vous débutez en RAG : commencez par le tutoriel Chroma + LangChain — vous aurez un prototype fonctionnel en moins d’une heure. Cela vous permettra de valider votre cas d’usage avant d’investir dans une infrastructure plus sérieuse.

Si vous passez en production : le tutoriel Qdrant sur VPS Linux est votre prochaine lecture obligatoire. Il couvre l’installation Docker, la persistance, la sécurisation de l’API, et un pipeline RAG complet avec LangChain et un LLM Ollama.

Si vous avez des besoins de recherche hybride complexe : explorez le tutoriel Weaviate avec modules locaux, qui détaille la configuration de la recherche hybride dense+BM25 et les requêtes GraphQL avancées.

Si vous anticipez une très grande échelle : le tutoriel Milvus Standalone et Distributed vous guide de l’installation Docker jusqu’au déploiement Kubernetes.

Ressources et documentation officielle

Formation et accompagnement

ITSkillsCenter propose des formations IA et infrastructure adaptées aux développeurs et entrepreneurs d’Afrique de l’Ouest : pipeline RAG complet, déploiement d’assistants IA souverains, intégration vector DB dans des projets métier. Que vous soyez débutant ou expérimenté, nos formateurs basés à Dakar accompagnent votre progression en contexte local.


Site réalisé par [ITS] ITSkillsCenter — Formation et expertise IT en Afrique de l’Ouest.

Mots-clés secondaires : vector database open source, RAG pipeline self-hosted, Qdrant Docker VPS, Weaviate hybrid search, ChromaDB Python tutorial, Milvus Kubernetes, embeddings multilingue Afrique, OHADA RAG assistant IA.



ملخص بالعربية: قواعد بيانات المتجهات المستضافة ذاتياً في 2026 — مقارنة شاملة بين Qdrant وWeaviate وChroma وMilvus لبناء أنظمة RAG فعّالة في السياق الأفريقي دون الاعتماد على خدمات سحابية مكلفة بالدولار.
Besoin d'un site web ?

Confiez-nous la Création de Votre Site Web

Site vitrine, e-commerce ou application web — nous transformons votre vision en réalité digitale. Accompagnement personnalisé de A à Z.

À partir de 250.000 FCFA
Parlons de Votre Projet
Publicité