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 distingue des autres ? Entrez Qdrant, un véritable 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 vous devriez vous en préoccuper.
Que vous soyez un data scientist, un développeur ou simplement quelqu'un qui s'intéresse aux dernières avancées en matière de technologie de recherche, ce guide est fait pour vous. Nous plongerons dans les aspects techniques, le comparerons à d'autres moteurs tels que Faiss, et vous guiderons même dans l'installation et l'utilisation. Alors, commençons !
Vous voulez connaître les dernières actualités de LLM ? Consultez le dernier LLM leaderboard !
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 tels que 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 avec des ensembles de données massifs.
-
Graphes HNSW : Ceux-ci sont utilisés pour un indexage efficace. Ils permettent à Qdrant de filtrer rapidement des 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 efficace en termes de 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 immense collection de photos, d'articles ou même de chansons. Trouver quelque chose de spécifique dans cette pile peut ressembler à 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 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 le processus de recherche plus rapide.
-
Quantification de Produit : Cette technique compresse les vecteurs dans la base de données. C'est comme compresser un fichier ; le contenu est le même, mais il prend moins de place. Cela est essentiel pour traiter 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 vous 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 distingue de plusieurs façons :
-
Open source : Le fait d'être open source signifie que n'importe qui peut contribuer à son développement. Cela crée un environnement piloté par 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. Son 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 l'établissement de 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 principaux indicateurs de performance d'un test de benchmark. Le test a été réalisé sur le jeu de données deep-image-96-angular
, chaque moteur étant configuré différemment.
Moteur | Nom de configuration | Jeu de données | Temps d'upload (s) | Temps d'upload + d'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} |
Explications des paramètres :
-
Temps d'upload : Qdrant a un temps d'upload modéré de 845,78 secondes, ce qui est plus rapide que Weaviate mais plus lent que Milvus.
-
Temps d'indexation : Le temps total d'upload et d'indexation dans Qdrant est de 8 959,44 secondes, ce qui est le plus élevé parmi les moteurs testés.
-
Latence : Qdrant excelle en matière de latence avec seulement 0,024 secondes, surpassant largement tous les autres moteurs.
-
Requêtes par seconde (RPS) : Qdrant mène la course avec un RPS de 1541,86, indiquant un débit plus élevé.
-
Précision: Qdrant et Milvus ont tous deux des scores de précision élevés, Qdrant étant à 0,96 et Milvus à 0,97.
-
Latences P95 et P99: Qdrant a les latences P95 et P99 les plus basses, ce qui indique une meilleure cohérence des performances.
Aperçus techniques des données:
-
Qdrant utilise un graphe HNSW (Hierarchical Navigable Small World) avec un paramètre
hnsw_ef
défini sur 64, optimisant les performances de recherche. -
Weaviate utilise un paramètre différent
ef
défini sur 256, ce qui pourrait expliquer sa latence plus élevée et son RPS plus faible. -
Milvus utilise également un paramètre
ef
défini sur 128 mais parvient à obtenir un score de précision plus élevé de 0,97.
Selon les données, Qdrant présente de bonnes performances en termes de latence et de débit (RPS), bien qu'il prenne plus de temps pour charger et indexer. 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 de démarrer Qdrant. Voici un guide étape par étape :
-
Installer Docker : Si Docker n'est pas déjà installé sur votre machine, téléchargez-le et installez-le depuis le site officiel.
-
Tirer l'image de Qdrant : Ouvrez votre terminal et exécutez la commande suivante pour tirer la dernière image de Qdrant depuis Docker Hub.
docker pull qdrant/qdrant
-
Exécuter le conteneur Qdrant : Pour démarrer un nouveau conteneur basé sur l'image tirée, exécutez :
docker run -p 6333:6333 qdrant/qdrant
-
Vérifier 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 :
-
S'inscrire : Visitez le site web de Qdrant Cloud et créez un compte.
-
Créer une instance : Suivez les instructions à l'écran pour configurer une nouvelle instance Qdrant.
-
Clés d'API : Après la création de l'instance, vous recevrez des clés d'API et des points de terminaison. Stockez-les en toute sécurité.
-
Tester 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 :
-
Installer Python et pip : Si ce n'est pas déjà fait, téléchargez et installez Python et pip.
-
Installer 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 et 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
Itérez à travers chaque fragment de texte pour générer des embeddings. Les fragments de texte doivent avoir été préalablement créés et stockés dans une liste appelée chunks
.
for chunk in chunks:
i += 1
Étape 3 : Générer des embeddings
À l'intérieur de 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 original.
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 en fait un choix 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 produit 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 le nom d'hôte et la clé API appropriés.
from qdrant_client import QdrantClient
qdrant_client = QdrantClient(
host="<NOM_HOTE>",
api_key="<CLE_API>",
)
Étape 6 : Créer ou Recréer la 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é à la prise en charge étendue de la filtration. Son API est pratique pour stocker, rechercher et gérer des points, qui dans ce cas sont les embeddings. En indexant les embeddings dans Qdrant, vous pouvez ensuite effectuer des recherches de similarité efficaces en fonction de l'entrée de l'utilisateur.
Conclusion
En résumé, l'analyse basée sur les données révèle que Qdrant excelle dans les principaux indicateurs de performance tels que la latence, le RPS et la précision. Bien qu'il puisse prendre plus de temps pour charger et indexer les données, le compromis est un moteur à haut débit et à faible latence qui offre des résultats précis. Ces caractéristiques font de Qdrant un choix convaincant pour les organisations qui accordent de l'importance à la performance de la recherche et à l'exactitude des résultats dans leurs besoins en moteur de recherche vectorielle.
Foire aux questions (FAQ)
-
Qu'est-ce qui distingue Qdrant en termes de latence et de RPS ? Qdrant utilise un graphe optimisé Hierarchical Navigable Small World (HNSW) pour la recherche, ce qui contribue à sa faible latence et à son haut RPS. Les paramètres du moteur, en particulier
hnsw_ef
réglé sur 64, sont optimisés pour atteindre cette performance. -
Pourquoi Qdrant prend-il plus de temps pour le chargement des données et l'indexation ?
Le temps prolongé nécessaire pour le chargement des données et l'indexation dans Qdrant est un compromis pour sa haute performance lors des requêtes de recherche. Le moteur se concentre sur la création d'une structure d'index optimisée, ce qui nécessite du temps mais permet d'obtenir des recherches plus rapides et plus précises par la suite.
-
Comment la précision de Qdrant se compare-t-elle à celle d'autres moteurs de recherche ?
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 ?
Avec son haut RPS et sa faible latence, Qdrant convient parfaitement aux déploiements à grande échelle où un débit élevé et des 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 pipeline de données.
Vous voulez connaître les dernières actualités de LLM ? Découvrez le dernier classement LLM !