Qu'est-ce que Qdrant? Le guide ultime pour comprendre ce moteur de recherche vectoriel
Published on
Vous avez entendu parler des moteurs de recherche vectoriels, mais vous êtes-vous déjà demandé ce qui les différenciait ? Voici Qdrant, un révolutionnaire dans le domaine de la recherche de données de haute dimension. Cet article vise à démystifier ce qu'est Qdrant, comment il fonctionne et pourquoi cela devrait vous intéresser.
Que vous soyez un data scientist, un développeur ou simplement quelqu'un intéressé par les dernières avancées en matière de technologie de recherche, ce guide est pour vous. Nous plongerons en profondeur dans les aspects techniques, le comparerons à d'autres moteurs comme Faiss, et vous guiderons même dans l'installation et l'utilisation. Alors, commençons!
Vous voulez connaître les dernières actualités du LLM ? Consultez le dernier classement du LLM !
Qu'est-ce que Qdrant ?
Qu'est-ce que Qdrant en termes techniques ?
Qdrant est un moteur de recherche vectoriel open-source conçu pour traiter des données de haute dimension. Il utilise des algorithmes avancés comme les graphes Hierarchical Navigable Small World (HNSW) et la Quantification de Produit. Ces algorithmes le rendent incroyablement efficace pour indexer et rechercher des vecteurs, même lorsqu'il s'agit de vastes ensembles de données.
-
Graphes HNSW: Ils sont utilisés pour un indexage efficace. Ils permettent à Qdrant de parcourir rapidement les données de haute dimension, réduisant ainsi le temps nécessaire pour trouver des résultats pertinents.
-
Quantification de Produit: Il s'agit d'une technique utilisée pour compresser les vecteurs. Elle garantit que le moteur est non seulement rapide, mais aussi économe en mémoire.
Qu'est-ce que Qdrant en termes simples ?
Pensez à Qdrant comme à un organisateur super-intelligent pour votre contenu numérique. Disons que vous avez une énorme collection de photos, d'articles ou même de chansons. Trouver quelque chose de spécifique dans cette pile peut être comme chercher une aiguille dans une botte de foin. Qdrant utilise son "intelligence" pour trouver rapidement ce que vous recherchez. C'est comme avoir un assistant personnel qui connaît votre collection aussi bien que vous, voire peut-être même mieux !
Ce qui rend Qdrant unique
-
Graphes HNSW: Ces graphes sont une forme de structure de données qui permet à Qdrant d'indexer efficacement des données de haute dimension. Ils réduisent la complexité computationnelle, rendant ainsi le processus de recherche plus rapide.
-
Quantification de Produit: Cette technique compresse les vecteurs de la base de données. C'est comme compresser un fichier ; le contenu reste le même, mais il occupe moins d'espace. Ceci est essentiel pour gérer de grands ensembles de données sans compromettre la vitesse.
-
Recherche sémantique: Il s'agit de la capacité à comprendre le contexte et les nuances d'une requête.
Les moteurs de recherche traditionnels se limitent aux recherches basées sur des mots-clés. Qdrant, en revanche, utilise la recherche sémantique. Cela signifie qu'il comprend le sens derrière votre requête, pas seulement les mots que vous utilisez.
Par exemple, si vous recherchez "Apple", une recherche basée sur des mots-clés pourrait donner des résultats liés au fruit et à l'entreprise technologique. Une recherche sémantique comprendrait le contexte et fournirait des résultats plus pertinents.
Qdrant se démarque de plusieurs façons :
-
Open-source: Être open-source signifie que n'importe qui peut contribuer à son développement. Cela crée un environnement axé sur la communauté qui favorise l'innovation et la transparence.
-
Efficacité: Qdrant est conçu pour fournir des résultats de recherche rapides et précis. L'utilisation d'algorithmes avancés garantit qu'il se démarque en termes de vitesse et de fiabilité.
Qdrant vs Faiss: Comparaison des performances
Dans l'espace des moteurs de recherche vectoriels, Qdrant et Faiss sont souvent évalués côte à côte. Cependant, l'absence d'un benchmark unifié a rendu difficile les comparaisons claires. Cette analyse vise à fournir une perspective technique et basée sur les données sur la manière dont Qdrant se compare à Faiss et à d'autres concurrents.
Le tableau suivant présente les principales mesures de performance d'un test de benchmark. Le test a été réalisé sur l'ensemble de données deep-image-96-angular
, avec chaque moteur configuré différemment.
Moteur | Nom de la configuration | Ensemble de données | Temps de mise en ligne (s) | Temps de mise en ligne + indexation (s) | P95 (s) | RPS | Parallèle | P99 (s) | Latence (s) | Précision | Paramètres du moteur |
---|---|---|---|---|---|---|---|---|---|---|---|
Qdrant | qdrant-rps-m-64-ef-512 | deep-image-96-angular | 845,78 | 8959,44 | 0,055 | 1541,86 | 100 | 0,063 | 0,024 | 0,96 | {"search_params":{"hnsw_ef":64}} |
Weaviate | weaviate-m-16-ef-128 | deep-image-96-angular | 8922,25 | 8922,25 | 0,35 | 507,33 | 100 | 0,41 | 0,19 | 0,94 | {"vectorIndexConfig":{"ef":256}} |
Milvus | milvus-m-16-ef-128 | deep-image-96-angular | 364,46 | 2116,90 | 0,22 | 339,44 | 100 | 0,23 | 0,17 | 0,97 | {"params":{"ef":128}} |
Elastic | elastic-m-16-ef-128 | deep-image-96-angular | 5252,68 | 6069,67 | 1,11 | 95,90 | 100 | 1,67 | 0,92 | 0,97 | {"num_candidates":128} |
Explication des paramètres :
-
Temps de mise en ligne: Qdrant a un temps de mise en ligne modéré de 845,78 secondes, qui est plus rapide que Weaviate mais plus lent que Milvus.
-
Temps d'indexation: Le temps total pour la mise en ligne et l'indexation dans Qdrant est de 8959,44 secondes, ce qui est le plus élevé parmi les moteurs testés.
-
Latence: Qdrant se distingue par sa faible latence de seulement 0,024 seconde, dépassant nettement tous les autres moteurs.
-
Requêtes par seconde (RPS): Qdrant est en tête avec un RPS de 1541,86, ce qui indique un débit plus élevé.
-
Précision: Qdrant et Milvus ont tous les deux des scores de précision élevés, avec Qdrant à 0,96 et Milvus à 0,97.
-
Latences P95 et P99: Qdrant a les latences P95 et P99 les plus faibles, ce qui indique une meilleure cohérence des performances.
Perspectives techniques à partir des données:
-
Qdrant utilise un graphique HNSW (Hierarchical Navigable Small World) avec un paramètre
hnsw_ef
fixé à 64, ce qui optimise les performances de recherche. -
Weaviate utilise un paramètre
ef
différent fixé à 256, ce qui pourrait expliquer sa latence plus élevée et son RPS plus faible. -
Milvus utilise également un paramètre
ef
fixé à 128 mais parvient à obtenir un score de précision plus élevé de 0,97.
Sur la base des données, Qdrant montre de bonnes performances en termes de latence et de débit (RPS), bien qu'il prenne plus de temps pour charger et indexer les données. Son score de précision élevé en fait également un choix fiable pour les tâches de recherche de similarité.
Comment installer Qdrant : Un guide complet
Installation de Qdrant à l'aide de Docker
Docker est une plateforme populaire pour la conteneurisation, et c'est l'un des moyens les plus simples d'installer et d'exécuter Qdrant. Voici un guide étape par étape :
-
Installation de Docker : Si Docker n'est pas encore installé sur votre machine, téléchargez-le et installez-le depuis le site officiel.
-
Téléchargement de l'image Qdrant : Ouvrez votre terminal et exécutez la commande suivante pour télécharger la dernière image Qdrant depuis Docker Hub.
docker pull qdrant/qdrant
- Lancement du conteneur Qdrant : Pour démarrer un nouveau conteneur basé sur l'image téléchargée, exécutez :
docker run -p 6333:6333 qdrant/qdrant
- Vérification de l'installation : Pour vous assurer que Qdrant fonctionne, ouvrez un nouveau terminal et exécutez :
curl http://localhost:6333
Si vous obtenez une réponse JSON, votre installation de Qdrant est réussie.
Installation de Qdrant sur le Cloud
Qdrant Cloud propose un service géré pour ceux qui préfèrent ne pas gérer l'infrastructure. Voici comment commencer :
-
Inscrivez-vous : Rendez-vous sur le site web de Qdrant Cloud et créez un compte.
-
Créez une instance : Suivez les instructions à l'écran pour configurer une nouvelle instance Qdrant.
-
Clés d'API : Une fois que l'instance est créée, vous recevrez des clés d'API et des points d'accès. Conservez-les en toute sécurité.
-
Testez l'instance : Utilisez les clés d'API pour effectuer une requête de test. Une réponse réussie signifie que votre instance cloud est opérationnelle.
Installation de Qdrant à l'aide de Python
Pour les développeurs Python, Qdrant propose une bibliothèque cliente Python. Voici comment l'installer :
-
Installez Python et pip : Si ce n'est pas déjà fait, téléchargez et installez Python et pip.
-
Installez le client Qdrant : Ouvrez un terminal et exécutez :
pip install qdrant-client
- Script Python : Pour interagir avec Qdrant, vous pouvez utiliser le code d'exemple suivant :
from qdrant_client import QdrantClient
client = QdrantClient(host='localhost', port=6333)
Tutoriel Qdrant : Construire un système de questions-réponses avec Qdrant
Étape 1 : Initialiser les variables et importer les bibliothèques
Avant de plonger dans le code, initialisez les variables et importez les bibliothèques nécessaires.
import openai
from qdrant_client.http.models import PointStruct
points = []
i = 1
Étape 2 : Parcourir les fragments de texte
Parcourez chaque fragment de texte pour générer des embeddings. Les fragments de texte doivent avoir été précédemment créés et stockés dans une liste appelée chunks
.
for chunk in chunks:
i += 1
Étape 3 : Générer des embeddings
Dans la boucle, appelez le modèle ada002 d'OpenAI pour créer des embeddings pour chaque fragment de texte.
response = openai.Embedding.create(
input=chunk,
model="text-embedding-ada-002"
)
embeddings = response['data'][0]['embedding']
Étape 4 : Stocker les embeddings
Après avoir généré les embeddings, stockez-les dans une liste avec un ID et le texte d'origine.
points.append(PointStruct(id=i, vector=embeddings, payload={"text": chunk}))
Pourquoi utiliser ada002 ?
Le modèle ada002 est conçu pour capturer les nuances sémantiques du texte, ce qui le rend idéal pour des applications telles que la recherche sémantique ou les systèmes de questions-réponses. Il prend un fragment de texte en entrée et renvoie un vecteur numérique qui encapsule le sens de ce texte.
Étape 5 : Initialiser le client Qdrant
Tout d'abord, initialisez le client Qdrant avec l'hôte approprié et la clé API.
from qdrant_client import QdrantClient
qdrant_client = QdrantClient(
host="<NOM_HOTE>",
api_key="<CLE_API>",
)
Étape 6 : Créer ou recréer une collection
Créez une nouvelle collection dans Qdrant pour stocker les embeddings. Si la collection existe déjà, vous pouvez la recréer.
qdrant_client.recreate_collection(
collection_name="mycollection",
vectors_config=models.VectorParams(size=1536, distance=models.Distance.COSINE),
)
Étape 7 : Indexer les embeddings
Maintenant, indexez les embeddings dans la collection que vous venez de créer.
operation_info = qdrant_client.upsert(
collection_name="mycollection",
wait=True,
points=points
)
Pourquoi utiliser Qdrant pour l'indexation ?
Qdrant offre un service robuste et prêt pour la production, adapté à un support de filtrage étendu. Son API est pratique pour stocker, rechercher et gérer les points, qui dans ce cas sont les embeddings. En indexant les embeddings dans Qdrant, vous pouvez ensuite effectuer des recherches de similarité efficaces basées sur les entrées de l'utilisateur.
Conclusion
En résumé, l'analyse basée sur les données révèle que Qdrant excelle dans des métriques essentielles de performance telles que la latence, le RPS et la précision. Bien qu'il puisse prendre plus de temps pour charger et indexer les données, il offre en retour un moteur à haut débit et faible latence qui fournit des résultats précis. Ces caractéristiques font de Qdrant un choix attractif pour les organisations qui accordent la priorité aux performances de recherche et à l'exactitude des résultats dans leurs besoins en moteur de recherche vectorielle.
Questions fréquemment posées (FAQ)
-
Ce qui distingue Qdrant en termes de latence et de RPS ? Qdrant utilise un graphe HNSW (Hierarchical Navigable Small World) optimisé pour la recherche, ce qui contribue à sa faible latence et à son nombre de requêtes par seconde élevé. Les paramètres du moteur, en particulier
hnsw_ef
fixé à 64, sont ajustés pour obtenir cette performance. -
Pourquoi Qdrant prend-il plus de temps pour charger les données et les indexer ?
Le temps supplémentaire nécessaire pour charger les données et les indexer dans Qdrant est un compromis pour sa haute performance dans les requêtes de recherche. Le moteur se concentre sur la création d'une structure d'index optimisée, qui, bien que prenne du temps à réaliser, donne ensuite des résultats de recherche plus rapides et plus précis.
- Comment se compare la précision de Qdrant à celle des autres moteurs ?
Qdrant a un score de précision élevé de 0,96, ce qui est comparable à celui de Milvus à 0,97. Cela indique que Qdrant est très fiable pour les tâches de recherche de similarité, renvoyant des résultats précis la plupart du temps.
- Qdrant convient-il aux déploiements à grande échelle ?
Compte tenu de son nombre de requêtes par seconde élevé et de sa faible latence, Qdrant convient parfaitement aux déploiements à grande échelle où le débit élevé et les temps de réponse rapides sont essentiels. Cependant, les organisations doivent prendre en compte les temps de chargement et d'indexation plus longs lors de la planification de leur canalisation de données.
Vous voulez connaître les dernières actualités LLM ? Consultez la dernière liste de classement LLM !