Comparaison de la profondeur des bases de données vectorielles : Weaviate, Milvus et Qdrant

Dans le domaine de l'intelligence artificielle et de l'apprentissage automatique, en particulier lors de la création d'applications telles que les systèmes RAG (Retrieval Augmented Generation) et la recherche sémantique, il devient crucial de traiter et d'extraire efficacement des données non structurées massives. Les bases de données vectorielles sont devenues une technologie de base pour relever ce défi. Il ne s'agit pas seulement de bases de données spécialisées pour le stockage de données vectorielles à haute dimension, mais aussi d'une infrastructure clé pour la prochaine génération d'applications d'intelligence artificielle.

Dans cet article, nous aborderons les concepts, les principes et les scénarios d'application des bases de données vectorielles, et nous comparerons et analyserons les principales bases de données vectorielles open source actuelles Weaviate, Milvus et Qdrant, dans le but de fournir aux lecteurs un guide complet et approfondi des bases de données vectorielles, qui vous aidera à comprendre la valeur des bases de données vectorielles et à faire des choix techniques éclairés dans le cadre de projets réels.

 

Qu'est-ce qu'une base de données vectorielle ? Des bases de données traditionnelles à la recherche vectorielle

Pour comprendre ce qui rend les bases de données vectorielles uniques, il faut d'abord comprendre ce que sont les vecteurs et pourquoi les bases de données traditionnelles sont dépassées lorsqu'elles traitent des données vectorielles.

Vecteurs : représentation mathématique des données

En termes simples, un vecteur est un outil mathématique utilisé pour représenter une caractéristique ou un attribut de données, qui peut être considéré comme un point dans un espace multidimensionnel. Dans le contexte des bases de données vectorielles, nous discutons généralement desvecteur à haute dimensionce qui signifie que ces vecteurs ont un grand nombre de dimensions, allant de dizaines à des milliers de dimensions, en fonction de la complexité des données et de la granularité de la représentation requise.

Vector embedding : représentation structurée de données non structurées

Comment ces vecteurs à haute dimension sont-ils générés ? La réponse se trouve dans l'outilfonction intégréequi convertit les données brutes non structurées (texte, images, audio, vidéo, etc.) en vecteurs. Ce processus de conversion, appeléIntégration vectorielleLa compression des informations sémantiques ou des caractéristiques des données dans un espace vectoriel compact se fait à l'aide de méthodes telles que les modèles d'apprentissage automatique, les techniques d'intégration de mots ou les algorithmes d'extraction de caractéristiques.

Par exemple, pour les données textuelles, nous pouvons utiliser un outil tel que Word2Vec, GloVe, FastText ou Transformateur Les modèles (par exemple, BERT, Sentence-BERT) et d'autres techniques convertissent chaque mot, phrase ou même le texte entier en un vecteur. Dans l'espace vectoriel, les vecteurs des textes sémantiquement similaires sont plus proches les uns des autres.

向量数据库深度对比:Weaviate、Milvus 与 Qdrant

 

Le point fort des bases de données vectorielles : la recherche de similarités

Les bases de données traditionnelles, telles que les bases de données relationnelles (par exemple PostgreSQL, MySQL) et les bases de données NoSQL (par exemple MongoDB, Redis), sont principalement conçues pour stocker et interroger des données structurées ou semi-structurées, et elles excellent dans la recherche de données sur la base de correspondances exactes ou de critères prédéfinis. Cependant, lorsqu'il s'agit d'extraire des données sur la base de critères prédéfinis, ces bases de données sont moins performantes.similarité sémantiquepeut-êtreSignification contextuelleLa recherche de données rend les bases de données traditionnelles inefficaces.

Les bases de données vectorielles sont apparues pour combler cette lacune. Leur force principale réside dans leur capacité àEffectuer efficacement la recherche et l'extraction de similarités sur la base de la distance vectorielle ou de la similarité. Cela signifie que nous pouvons trouver des données sur la base de leur similarité sémantique ou fonctionnelle sans avoir à faire correspondre des mots-clés exacts.

Principales différences entre les bases de données vectorielles et les bases de données traditionnelles

Afin de mieux comprendre le caractère unique des bases de données vectorielles, nous résumons comme suit les principales différences entre elles et les bases de données traditionnelles :

caractérisationbase de données vectoriellesBase de données traditionnelle (relationnelle/NoSQL)
type de donnéesIncorporation de vecteurs (vecteurs à haute dimension)Données structurées (données tabulaires, documents JSON, etc.)
opération de baseRecherche de similarité (calcul de la similarité des vecteurs)Recherche de correspondance exacte, recherche d'intervalle, analyse d'agrégation, etc.
Type d'indiceIndices vectoriels (indices ANN, etc.)Index B-tree, index de hachage, index inversés, etc.
Méthode d'enquêteBasé sur des distances vectorielles (distance cosinus, distance euclidienne, etc.)Requête basée sur SQL, requête clé-valeur, recherche plein texte, etc.
scénario d'applicationRecherche sémantique, systèmes de recommandation, systèmes de recommandation RAGRecherche d'images, d'audios et de vidéosTraitement des transactions, analyse des données, gestion du contenu, mise en cache
modèle de donnéesmodèle d'espace vectorielModèle relationnel, modèle documentaire, modèle clé-valeur, modèle graphique, etc.

La valeur des bases de données vectorielles : une pierre angulaire pour les applications d'IA

Les bases de données vectorielles jouent un rôle de plus en plus important dans le domaine de l'intelligence artificielle et de l'apprentissage automatique, en particulier dans les domaines suivants :

  • Les moteurs de recherche de la prochaine génération : Mettre en œuvre la recherche sémantique pour comprendre l'intention de la requête de l'utilisateur et renvoyer des résultats de recherche plus pertinents et contextuels, et pas seulement des correspondances de mots-clés.
  • Systèmes de recommandation intelligents : Recommandations personnalisées basées sur le comportement historique des utilisateurs et les caractéristiques des articles, afin d'améliorer la précision des recommandations et l'expérience des utilisateurs.
  • Applications de la modélisation des grandes langues (LLM) : Le LLM est doté d'une mémoire à long terme et de capacités de récupération contextuelle efficaces, ce qui permet de construire des chatbots, des systèmes de questions-réponses et des applications de génération de contenu plus puissants.
  • Recherche de données multimodales : Permettre la recherche de similarités intermodales, par exemple la recherche d'images ou de vidéos apparentées par le biais de descriptions textuelles.

En résumé, les bases de données vectorielles constituent l'infrastructure clé pour le traitement et l'extraction de données non structurées à l'ère de l'IA, et elles permettent aux machines de comprendre la sémantique et de raisonner sur les similitudes, ce qui favorise de nombreuses applications innovantes en matière d'IA.

 

Bases de données vectorielles et RAG : construction d'un système puissant de génération d'améliorations de la recherche

Les systèmes RAG (Retrieval-Augmented Generation) constituent actuellement une orientation populaire dans le domaine d'application de la modélisation linguistique à grande échelle. L'idée centrale des systèmes RAG est de récupérer des informations pertinentes à partir d'une base de connaissances externe avant de générer le texte, puis d'utiliser les informations récupérées comme contexte pour guider le modèle linguistique afin qu'il génère des réponses plus précises et plus fiables.

Le rôle central des bases de données vectorielles dans le système RAG

Dans le système RAG, la base de données vectorielles joue le rôle dedépôtLe système RAG est chargé de stocker et d'extraire efficacement des représentations vectorielles de documents de connaissance volumineux :

  1. Constitution d'une base de connaissances :
    • Intégration vectorielle de documents de connaissance (par exemple, textes, pages web, PDF, etc.) dans des représentations vectorielles.
    • Stocker ces vecteurs et leurs métadonnées correspondantes dans une base de données vectorielle.
  2. Demande de renseignements :
    • Recevoir la requête de l'utilisateur et le vecteur intégré à la requête pour obtenir le vecteur de la requête.
    • Une recherche de similarité est effectuée dans une base de données vectorielle à l'aide du vecteur d'interrogation afin d'extraire le vecteur de document qui est le plus similaire au vecteur d'interrogation.
    • Obtenir le document original ou le fragment de document correspondant au vecteur de document récupéré.
  3. Génération de textes :
    • Les fragments de documents récupérés sont introduits dans le modèle linguistique étendu (LLM) en tant que contexte avec la requête de l'utilisateur.
    • LLM génère la réponse ou le texte final sur la base d'informations contextuelles.
向量数据库深度对比:Weaviate、Milvus 与 Qdrant

Recherche sémantique d'images avec Milvus

 

Pourquoi les bases de données vectorielles sont-elles idéales pour les systèmes RAG ?

  • Capacités de recherche sémantique efficaces : Les bases de données vectorielles sont capables de retrouver des documents sur la base de la similarité sémantique, ce qui correspond parfaitement aux systèmes RAG qui doivent trouver dans la base de connaissances des informations contextuelles pertinentes par rapport à la requête de l'utilisateur.
  • Gérer des fichiers de connaissances volumineux : Les systèmes RAG doivent généralement traiter un grand nombre de documents de connaissance, et les bases de données vectorielles peuvent stocker et récupérer efficacement des données vectorielles massives pour répondre aux exigences d'évolutivité des systèmes RAG.
  • Réponse rapide aux questions des utilisateurs : La recherche de similarités dans la base de données vectorielle est très rapide et permet au système RAG de répondre rapidement aux demandes des utilisateurs.

Sélection de la base de données vectorielle : décisions clés pour les systèmes RAG

Le choix de la bonne base de données vectorielles est essentiel pour la performance et l'efficacité d'un système RAG. Les différentes bases de données vectorielles diffèrent en termes de performance, de fonctionnalité et de facilité d'utilisation. Dans les chapitres suivants, nous examinerons les facteurs de sélection des bases de données vectorielles et nous comparerons et analyserons trois excellentes bases de données vectorielles open source, à savoir Weaviate, Milvus et Qdrant, afin de vous aider à choisir la pierre angulaire la plus appropriée pour votre système RAG.

 

Sélection d'une base de données vectorielle : se concentrer sur ces facteurs clés, et pas seulement sur la performance

Avant de comparer des produits spécifiques, identifions les principales préoccupations liées à la sélection d'une base de données vectorielle. Ces facteurs auront un impact direct sur les performances, l'évolutivité, la stabilité et le coût du système RAG ou de l'application d'IA que vous créez.

1. open source vs. commercialisation : autonomie vs. facilité d'utilisation

  • Bases de données vectorielles libres (par exemple Milvus, Weaviate, Qdrant, Vespa) :
    • Avantage : Autonomie et flexibilité accrues pour la personnalisation libre et le développement secondaire, meilleur contrôle de la sécurité des données et de l'architecture du système. Soutenu par une communauté active de logiciels libres, avec une itération rapide et une résolution rapide des problèmes. Généralement, l'utilisation est peu coûteuse, voire gratuite.
    • Défi : Le déploiement, l'exploitation et la maintenance, ainsi que le dépannage nécessitent certaines compétences techniques. Le soutien commercial peut être relativement faible, ce qui nécessite de s'appuyer sur la communauté ou de résoudre soi-même les problèmes.
    • Scénarios applicables : Les projets qui nécessitent un degré élevé d'autonomie et de contrôle, qui sont soutenus par une équipe technique, qui souhaitent réduire les coûts et qui sont en mesure de participer activement à la coproduction communautaire.
  • Bases de données vectorielles commerciales (par exemple, bases de données vectorielles hébergées par des fournisseurs de services en nuage tels que Pinecone, etc :)
    • Avantage : Il fournit généralement des services gérés complets et une assistance technique, simplifie le déploiement et la complexité de l'exploitation et de la maintenance, et est facile à mettre en œuvre et à utiliser. Les performances et la stabilité sont commercialement prouvées et la qualité du service est garantie.
    • Défi : Coûts plus élevés et dépenses importantes au fil du temps. Risque possible de verrouillage du fournisseur, de personnalisation limitée et de développement secondaire.
    • Scénarios applicables : Les projets qui recherchent la facilité d'utilisation et la stabilité, qui veulent démarrer rapidement, réduire la charge d'exploitation et d'entretien, qui disposent d'un bon budget et qui ne sont pas sensibles aux risques de verrouillage des fournisseurs.

2. support CRUD : données dynamiques vs. données statiques

  • Support CRUD (Créer, Lire, Mettre à jour, Supprimer) :
    • Importance : Critique pour les systèmes RAG et de nombreuses applications de données dynamiques. Si les données doivent être mises à jour, supprimées ou modifiées fréquemment, il est important de choisir une base de données vectorielle qui prenne en charge toutes les opérations CRUD.
    • Impact : Une base de données qui prend en charge les opérations CRUD facilite la gestion des données qui changent de manière dynamique et permet de maintenir la base de connaissances en temps réel et avec précision.
  • Scénarios de données statiques :
    • Demande : Si les données sont statiques, comme dans le cas d'une base de connaissances préconstruite, et qu'elles sont mises à jour très rarement, une bibliothèque de vecteurs en lecture seule ou une base de données qui ne prend pas en charge l'intégralité du CRUD peuvent également convenir.
    • Sélectionner : Dans ce cas, des bibliothèques vectorielles légères peuvent être envisagées, ou des bases de données vectorielles axées sur une recherche performante avec une fonction de mise à jour des données faible.

3. architecture distribuée et évolutivité : faire face à des données massives et à une concurrence élevée

  • Architecture distribuée :
    • Nécessité : Les systèmes RAG et de nombreuses applications d'intelligence artificielle doivent généralement gérer des quantités massives de données et des requêtes hautement simultanées. Les architectures distribuées sont essentielles pour relever ces défis.
    • Avantage : Les bases de données vectorielles distribuées peuvent stocker des données dispersées sur plusieurs serveurs et prendre en charge des requêtes parallèles, améliorant ainsi la puissance de traitement des données et les performances des requêtes.
  • Évolutivité :
    • Expansion horizontale : Une bonne base de données vectorielle doit pouvoir évoluer horizontalement facilement, en ajoutant des nœuds pour faire face à la croissance du volume de données et des requêtes.
    • Élastique extensible : Il est souhaitable de prendre en charge la mise à l'échelle élastique pour ajuster dynamiquement les ressources en fonction de la charge réelle afin d'optimiser les coûts et les performances.

4. réplication des données et haute disponibilité : garantir la sécurité des données et la stabilité des services

  • Copie des données :
    • Rôle : Le mécanisme de copie des données est un moyen important de garantir la sécurité des données et la haute disponibilité du système.
    • Réalisation : En stockant des copies identiques des données sur plusieurs serveurs, le système continue à fonctionner normalement sans perte de données, même si certains des nœuds tombent en panne.
  • Haute disponibilité :
    • Importance : La haute disponibilité est essentielle pour les systèmes RAG et les applications en ligne qui nécessitent une grande stabilité de service.
    • Garanties : Des mécanismes tels que la copie des données, le transfert automatique des défauts, la surveillance et l'alarme fonctionnent ensemble pour assurer le fonctionnement continu et stable du système.

5. performance : vitesse et précision de la recherche

  • Temps de latence :
    • Indicateurs : Le temps de latence des requêtes, c'est-à-dire le temps qui s'écoule entre l'introduction d'une requête et l'obtention des résultats.
    • Facteurs d'influence : les algorithmes d'indexation, les ressources matérielles, la taille des données, la complexité des requêtes, etc.
    • Demande : Pour les applications soumises à des exigences élevées en matière de temps réel, il est nécessaire de choisir une base de données vectorielle avec une vitesse de recherche rapide.
  • Rappel, précision :
    • Indicateurs : Recall et Precision, qui mesurent la précision des résultats de la recherche par similarité.
    • Pesée : Il y a généralement un compromis entre la vitesse d'extraction et la précision, et le bon équilibre doit être choisi en fonction du scénario d'application. Par exemple, pour un système RAG, le rappel peut être plus important pour s'assurer que le plus grand nombre possible de documents pertinents sont récupérés.

6. l'entretien permanent et le soutien de la communauté : une garantie de fonctionnement stable à long terme

  • Maintenance continue :
    • Importance : La technologie des bases de données vectorielles évolue rapidement et la maintenance et les mises à jour permanentes sont essentielles.
    • Points de préoccupation : La base de données est continuellement maintenue et mise à jour par une équipe de développement active, qui corrige les bogues en temps utile et suit les dernières tendances technologiques.
  • Soutien communautaire :
    • Valeur : Une communauté active fournit une abondance de documentation, de tutoriels, d'exemples de code et de réponses aux questions, abaissant ainsi les barrières à l'apprentissage et à l'utilisation.
    • Évaluation : Le soutien de la communauté peut être évalué à l'aide de mesures telles que l'activité dans les dépôts GitHub, les discussions dans les forums communautaires, le nombre d'utilisateurs, etc.

7. considérations relatives aux coûts : source ouverte ou commercialisation, construction personnelle ou hébergement

  • Coûts de l'open source par rapport à ceux de la commercialisation :
    • Open Source : Le logiciel de base de données lui-même est gratuit, mais il faut tenir compte des coûts du matériel, des coûts d'exploitation et de maintenance, des coûts de main-d'œuvre, etc.
    • Commercialisation : Il y a des frais de licence de logiciel ou de service en nuage à payer, mais les coûts d'exploitation et d'entretien sont potentiellement moins élevés et l'assistance technique est meilleure.
  • Coûts d'autoconstruction ou d'hébergement :
    • Autoconstruction : Vous devez être responsable de l'acquisition du matériel, du déploiement, de l'exploitation et de la maintenance, de la surveillance, etc. L'investissement initial et les coûts d'exploitation et de maintenance à long terme sont élevés.
    • Hébergement : L'utilisation d'un service de base de données vectorielles hébergé auprès d'un fournisseur de services en nuage ne nécessite pas de se préoccuper de l'infrastructure sous-jacente, est payante et présente une structure de coûts plus souple, mais peut être plus coûteuse à long terme.

Synthèse :

Lors de la sélection d'une base de données vectorielle, vous devez prendre en compte les sept facteurs clés susmentionnés et faire des compromis et des choix en fonction des scénarios d'application, des besoins et des budgets spécifiques. Il n'existe pas de base de données optimale absolue, mais seulement la base de données la plus adaptée à un scénario spécifique.

 

Comparaison de différents types de solutions de bases de données vectorielles : un panorama de la sélection technologique

Face aux nombreuses solutions de bases de données vectorielles disponibles sur le marché, la compréhension de leurs types et de leurs caractéristiques vous aidera à réduire vos choix et à trouver plus rapidement la solution qui vous convient. Nous classons les solutions de bases de données vectorielles dans les cinq catégories suivantes :

1. bibliothèques vectorielles (FAISS, HNSWLib, ANNOY) : index légers, outils d'accélération des données statiques

Les bibliothèques vectorielles telles que FAISS (Facebook AI Similarity Search), HNSWLib (Hierarchical Navigable Small World Graphs Library) et ANNOY (Approximate Nearest Neighbors Oh Yeah), qui sont essentiellement desBibliothèques logicielles pour la construction d'index vectoriels et l'exécution de recherches de similarité. Ils fonctionnent généralement comme des bibliothèques intégrées à votre application, plutôt que comme des services de base de données autonomes.

tranchant: :

  • Haute performance : Se concentre sur l'indexation vectorielle et les algorithmes de recherche de similarité optimisés pour une recherche extrêmement rapide.
  • Léger : Faible encombrement des ressources, simplicité de déploiement et d'intégration dans les applications existantes.
  • Mature et stable : Après une longue période de développement et une large application, la technologie est mature et fiable et bénéficie d'un bon soutien de la part de la communauté.

limitations: :

  • Les données statiques sont prédominantes : Il est principalement utilisé pour stocker des données statiques et il n'est pas facile de mettre à jour les données après la construction de l'index. À l'exception de HNSWLib, la plupart des bibliothèques vectorielles ne prennent pas en charge les opérations CRUD, ce qui complique la mise à jour et la suppression des données.
  • Fonctionnalité limitée : En général, ils n'offrent qu'un index vectoriel de base et une fonction de recherche par similarité, mais ne disposent pas des fonctions de distribution, de copie des données, de gestion des droits, de contrôle des opérations et de maintenance, ni d'autres fonctions de base de données avancées.
  • Coûts d'exploitation et de maintenance élevés : Vous devez créer votre propre écosystème de déploiement, gérer la réplication des données et la tolérance aux pannes, et vous ne disposez pas d'outils O&M et d'interfaces de gestion sophistiqués.

Scénarios applicables: :

  • Recherche de similarité pour les ensembles de données statiques : Par exemple, les scénarios dans lesquels les données sont rarement mises à jour, comme les bases de connaissances construites hors ligne, les bases de marchandises, les bases de visages, etc.
  • Scénarios avec des exigences de performance très élevées mais une faible fréquence de mise à jour des données : Les exemples incluent la construction d'index hors ligne pour les moteurs de recherche et l'indexation hors ligne des caractéristiques pour les systèmes de recommandation à grande échelle.
  • comme composante d'accélération de l'index vectoriel pour d'autres bases de données : Par exemple, l'utilisation de bibliothèques vectorielles en conjonction avec des bases de données telles que Redis, MySQL, etc. accélère la recherche de similarités.

Produits représentatifs :

  • FAISS (Facebook AI Similarity Search) : Développé par Facebook AI Research, largement utilisé dans les universités et l'industrie. Il fournit une variété d'algorithmes d'indexation efficaces, tels que IVF, PQ, HNSW, etc., et est particulièrement performant dans le traitement d'ensembles de données à grande échelle.
  • HNSWLib (Hierarchical Navigable Small World Graphs Library) : Basé sur l'algorithme HNSW (Hierarchical Navigable Small World) , connu pour ses hautes performances et son efficacité . HNSWLib comparé à d'autres bibliothèques vectorielles , plus flexible , supportant les opérations CRUD et les lectures et écritures simultanées .
  • ANNOY (Approximate Nearest Neighbors Oh Yeah) : Développé par Spotify pour se concentrer sur la recherche rapide du plus proche voisin. Connu pour sa conception propre et efficace, il convient aux scénarios d'application sensibles à la latence.

2. bases de données de recherche en texte intégral (ElasticSearch, OpenSearch) : complément aux recherches vectorielles, capacité non essentielle

Les bases de données de recherche en texte intégral, telles qu'ElasticSearch et OpenSearch, sont principalement conçues pour être utilisées pourRecherche en texte intégral et par mot-cléIls sont basés sur la technologie de l'indexation inversée et sont puissants dans la recherche de texte et l'analyse avancée. Ces dernières années, ils ont également commencé à ajouter des capacités de recherche vectorielle, mais la recherche vectorielle n'est pas leur point fort.

tranchant: :

  • De puissantes capacités de recherche en texte intégral : Prise en charge des requêtes textuelles complexes, de la séparation des mots, des synonymes, de la correction orthographique, du tri par pertinence (par ex. BM25), etc.
  • Des analyses riches : Fournit l'agrégation, les statistiques, les rapports et la visualisation des données pour l'analyse des données et la compréhension de l'activité.
  • Écosystèmes matures : Avec une large base d'utilisateurs et un écosystème bien établi, il est facile à intégrer et à utiliser, avec une abondance d'outils périphériques et de plug-ins.

limitations: :

  • Les performances en matière de recherche vectorielle sont faibles : Par rapport aux bases de données vectorielles spécialisées, les performances de la recherche de similarités vectorielles sont faibles, en particulier pour les données à haute dimension et les ensembles de données à grande échelle, où le temps de latence des requêtes est élevé et la précision peut être insuffisante.
  • Consommation élevée de ressources : Pour prendre en charge des fonctions telles que la recherche et l'analyse en texte intégral, la consommation de ressources est élevée, de même que les coûts de déploiement, d'exploitation et de maintenance.
  • N'est pas doué pour la recherche sémantique : Elle s'appuie principalement sur la correspondance des mots-clés et l'indexation inversée, avec une compréhension sémantique limitée, ce qui la rend difficile à satisfaire les besoins de recherche sémantique complexes.

Scénarios applicables: :

  • La recherche par mot-clé est la principale application, complétée par la recherche vectorielle : Par exemple, la recherche de produits sur les sites de commerce électronique et la recherche d'articles sur les sites d'information utilisent principalement la recherche par mot-clé, et la recherche vectorielle est utilisée comme fonction auxiliaire pour améliorer la pertinence sémantique de la recherche.
  • Scénarios de recherche hybride qui nécessitent une combinaison de recherche en texte intégral et de recherche vectorielle : Par exemple, le système de service à la clientèle intelligent, qui prend en charge à la fois les recherches par mots-clés et les recherches sémantiques, répond aux différents besoins des utilisateurs en matière de recherche.
  • Analyse des journaux, surveillance des alarmes et autres scénarios nécessitant des fonctions d'analyse puissantes : Utilisez la puissante capacité d'analyse de la base de données de recherche en texte intégral pour l'analyse des journaux, la surveillance et l'alerte, l'audit de sécurité, etc.

produit représentatif: :

  • ElasticSearch : Construit sur Lucene, c'est l'un des moteurs de recherche plein texte open source les plus populaires, largement utilisé dans la recherche, l'analyse de logs, la visualisation de données et d'autres domaines.
  • OpenSearch : Branche d'AWS basée sur ElasticSearch et Kibana, elle maintient la compatibilité avec ElasticSearch et ajoute de nouvelles fonctionnalités et améliorations à ElasticSearch.

Conclusion : Bien qu'ElasticSearch et OpenSearch offrent des capacités de recherche vectorielle, leurs performances et leurs fonctionnalités restent inférieures à celles des bases de données vectorielles dédiées. Pour les systèmes RAG ou les applications d'intelligence artificielle qui se concentrent sur la recherche vectorielle, les bases de données vectorielles dédiées sont un meilleur choix. Les bases de données de recherche en texte intégral conviennent mieux comme complément à la recherche vectorielle que comme alternative.

3. bases de données SQL vectorielles (pgvector, Supabase, StarRocks) : extensions vectorielles des bases de données traditionnelles, pour des applications légères.

Les bases de données SQL, telles que PostgreSQL, prennent en charge les types de données vectorielles et les capacités de recherche de similarités grâce à des extensions (pgvector, par exemple). Cela permet aux utilisateurs de stocker et d'interroger des données vectorielles dans des bases de données relationnelles existantes sans avoir à introduire un nouveau système de base de données.

tranchant: :

  • Intégration facile : L'intégration transparente avec les bases de données SQL existantes réduit la complexité de la pile technologique et les coûts d'apprentissage et de migration.
  • Mature et stable : La technologie des bases de données SQL est mature et stable, avec de fortes capacités de gestion des données et de traitement des transactions, et une cohérence et une fiabilité des données garanties.
  • Faible coût d'apprentissage : Pour les développeurs qui sont familiers avec SQL, le coût d'apprentissage est faible et vous pouvez être rapidement opérationnel avec la fonctionnalité de recherche vectorielle.

limitations: :

  • Les performances de la recherche vectorielle sont limitées : Les bases de données relationnelles, dont l'architecture n'est pas conçue pour la recherche vectorielle, ne sont pas aussi performantes que les bases de données vectorielles spécialisées, en particulier lorsqu'il s'agit de données vectorielles à grande échelle et à haute dimension, pour lesquelles le temps de latence des requêtes est élevé.
  • L'évolutivité est limitée : Les bases de données relationnelles ont une évolutivité relativement faible, ce qui les rend difficiles à gérer avec des données vectorielles massives et des requêtes hautement concurrentes, ainsi qu'une évolutivité horizontale limitée.
  • Restrictions de la dimension des vecteurs : Par exemple, la limite supérieure de la dimension vectorielle prise en charge par pgvector est de 2000 dimensions, ce qui est inférieur aux bases de données vectorielles spécialisées et peut ne pas répondre aux besoins de données vectorielles à haute dimension.

Scénarios applicables: :

  • Applications avec de petits volumes de données vectorielles (inférieurs à 100 000) : Par exemple, les petits systèmes de recommandation, les recherches d'images simples, les bases de connaissances personnelles, etc. ont de petites quantités de données vectorielles et de faibles exigences en matière de performances.
  • Application des données vectorielles en tant que fonction auxiliaire : Par exemple, l'ajout d'un champ vectoriel de produit à la base de données de produits d'un site de commerce électronique pour la recommandation de produits ou la recherche de produits similaires, la recherche de vecteurs n'est qu'une fonction auxiliaire de la base de données.
  • Les applications qui disposent déjà de bases de données SQL matures et qui souhaitent ajouter rapidement des fonctionnalités de recherche vectorielle : Dans les projets qui utilisent déjà des bases de données SQL telles que PostgreSQL et qui souhaitent introduire rapidement une fonctionnalité de recherche vectorielle, il est possible d'utiliser des extensions telles que pgvector.

produit représentatif: :

  • pgvector : Extension de PostgreSQL, développée par Crunchy Data, fournissant des types de données vectorielles (vector) et des index (IVF, HNSW), ainsi que des capacités de recherche de similarités vectorielles.
  • Supabase : Plateforme PaaS open source basée sur PostgreSQL, intégrant pgvector, permettant aux utilisateurs de créer rapidement des applications supportant la recherche vectorielle.
  • StarRocks : Une base de données MPP orientée OLAP qui ajoute également une fonctionnalité de recherche vectorielle, mais la recherche vectorielle n'est pas son créneau principal et est principalement utilisée dans des scénarios d'analyse OLAP.

Conclusion : Les bases de données SQL qui supportent les vecteurs, comme pgvector, sont plus adaptées aux scénarios d'applications légères où la quantité de données vectorielles est faible, où les exigences de performance ne sont pas élevées et où les données vectorielles ne sont utilisées que comme une fonctionnalité complémentaire de l'application. Si les données vectorielles sont au cœur de l'application, ou s'il y a une forte demande d'évolutivité, une base de données vectorielle dédiée serait un meilleur choix.

4. les bases de données NoSQL vectorielles (Redis, MongoDB) : un projet émergent, qui présente à la fois un potentiel et des défis.

Les bases de données NoSQL, telles que Redis et MongoDB, commencent également à expérimenter l'ajout d'un support vectoriel, tel que Redis Vector Similarity Search (VSS) et MongoDB Atlas Vector Search, qui donne aux bases de données NoSQL la possibilité de traiter également des données vectorielles.

tranchant: :

  • Avantages inhérents aux bases de données NoSQL : Par exemple, Redis pour sa mise en cache très performante, sa faible latence et son débit élevé, et MongoDB pour son modèle de document flexible, sa facilité d'extensibilité et ses riches capacités de manipulation de documents.
  • Nouveauté technique : Elle représente la tendance de développement de la technologie des bases de données, incorporant la capacité de recherche vectorielle dans les bases de données NoSQL matures, avec un certain potentiel d'innovation et de développement.

limitations: :

  • La fonctionnalité n'est pas encore au point : La fonctionnalité du support vectoriel en est encore à ses débuts, les caractéristiques et les performances devant être affinées et validées, et l'écosystème étant relativement immature.
  • Écosystèmes pauvres : Il y a relativement peu d'outils, de bibliothèques et d'écosystèmes pertinents, dont l'utilisation et la maintenance peuvent être coûteuses, et le soutien de la communauté est relativement faible.
  • Performances à prendre en compte : Bien que Redis VSS revendique d'excellentes performances, les résultats réels doivent être vérifiés dans un plus grand nombre de scénarios et peuvent ne pas être aussi performants que les bases de données vectorielles dédiées pour les données de haute dimension et les ensembles de données à grande échelle.

Scénarios applicables: :

  • Scénarios avec des exigences de performance élevées et de petites quantités de données vectorielles : Par exemple, les systèmes de recommandation en temps réel basés sur Redis, la recherche de publicités en ligne, etc. nécessitent une recherche vectorielle à faible latence et à haut débit.
  • Scénarios dans lesquels vous souhaitez essayer une nouvelle technologie et êtes prêt à prendre des risques : Pour les amateurs de technologie, essayez d'utiliser les fonctions de support vectoriel des bases de données NoSQL pour explorer leur potentiel.
  • J'utilise déjà une base de données NoSQL et j'aimerais y ajouter des capacités de recherche vectorielle : Dans les projets qui utilisent déjà Redis ou MongoDB et qui souhaitent introduire rapidement une fonctionnalité de recherche vectorielle, il est possible d'utiliser le module d'extension vectorielle.

produit représentatif: :

  • Recherche de similarité vectorielle Redis (VSS) : Un module pour Redis qui fournit des fonctionnalités d'indexation vectorielle (HNSW) et de recherche par similarité en mettant l'accent sur la haute performance et la faible latence pour les scénarios exigeants en temps réel.
  • Recherche vectorielle dans l'Atlas MongoDB : Une nouvelle fonctionnalité d'Atlas, le service en nuage MongoDB, est conçue pour intégrer la recherche vectorielle dans la base de données documentaire MongoDB, offrant ainsi des capacités de traitement de données plus complètes.

Conclusion : Les fonctions vectorielles nouvellement ajoutées dans les bases de données NoSQL en sont encore aux premiers stades de développement, et leur maturité et leur stabilité doivent encore être vérifiées. Bien qu'elles aient un certain potentiel, elles peuvent encore être moins matures et moins puissantes que les bases de données vectorielles spécialisées en termes de fonctionnalités et de performances. Le choix doit être évalué avec soin et leurs limites doivent être pleinement prises en compte.

5. bases de données vectorielles dédiées (Pinecone, Milvus, Weaviate, Qdrant, Vespa, Vald, Chroma, Vearch) : conçues pour les vecteurs, premier choix pour les systèmes RAG et les applications d'intelligence artificielle.

Les bases de données vectorielles spécialisées, telles que Pinecone, Milvus, Weaviate, Qdrant, Vespa, Vald, Chroma, Vearch, etc.Stockage, indexation et recherche de données vectoriellesLes systèmes d'analyse de données vectorielles sont intrinsèquement bien équipés pour traiter des données vectorielles de haute dimension. Ils constituent la solution privilégiée pour la création d'applications d'intelligence artificielle telles que les systèmes RAG, la recherche sémantique, les systèmes de recommandation, etc.

tranchant: :

  • Excellentes performances en matière de recherche vectorielle : Il est profondément optimisé pour la recherche de similarités vectorielles, avec une vitesse de recherche rapide et une grande précision, et peut traiter efficacement des données vectorielles à grande échelle et à haute dimension.
  • Une puissante évolutivité : Il adopte généralement une architecture distribuée, facile à mettre à l'échelle horizontalement, capable de gérer des données massives et des requêtes très concurrentielles, afin de répondre aux besoins des applications à grande échelle.
  • Fonctionnalités riches : Il fournit généralement des fonctions parfaites de gestion des données vectorielles, de construction d'index, d'optimisation des requêtes, de surveillance et d'exploitation et de maintenance, ainsi que de riches algorithmes de recherche par similarité et des mesures de distance.
  • Options d'indexation flexibles : Prise en charge de plusieurs algorithmes d'indexation vectorielle (par exemple, IVF, HNSW, PQ, indexation par arbre, etc.), ce qui vous permet de choisir la stratégie d'indexation optimale en fonction des différents scénarios d'application et des caractéristiques des données.
  • Écosystème mature (certains produits) : Certains de ces produits disposent de communautés actives et d'écosystèmes bien établis, fournissant une documentation riche, des outils et des solutions d'intégration faciles à utiliser et à intégrer.

limitations: :

  • Des coûts d'apprentissage plus élevés : Par rapport aux bases de données traditionnelles, les bases de données vectorielles dédiées peuvent présenter une courbe d'apprentissage plus raide et nécessiter une compréhension des concepts liés à l'indexation vectorielle, à la recherche de similarités, etc.
  • La sélection des technologies est complexe : Il existe de nombreux produits dotés de fonctions et de caractéristiques différentes, et le choix nécessite une évaluation minutieuse afin de comparer les avantages et les inconvénients des différents produits.
  • Commercialisation partielle des produits : Certaines des meilleures bases de données vectorielles dédiées sont des produits commerciaux (par exemple Pinecone), qui sont plus coûteux à utiliser et peuvent présenter un risque de verrouillage du fournisseur.

Scénarios applicables: :

  • Applications centrées sur la recherche de vecteurs : Par exemple, les systèmes RAG, la recherche sémantique, la recherche d'images, la recherche audio, la recherche vidéo, les systèmes de recommandation, l'analyse bioinformatique, etc.
  • Les applications qui doivent traiter des quantités massives de données vectorielles à haute dimension : Par exemple, les graphes de connaissances à grande échelle, les bibliothèques de produits massives et l'analyse des données sur le comportement des utilisateurs nécessitent le traitement de données vectorielles à grande échelle et à haute dimension.
  • Applications présentant des exigences élevées en matière de performance et de précision de la recherche : Par exemple, le contrôle des risques financiers, la surveillance de la sécurité et les recommandations précises ont des exigences strictes en matière de rapidité et de précision de la recherche.
  • Applications nécessitant une évolutivité flexible et une haute disponibilité : Par exemple, les services en ligne à grande échelle et les plateformes en nuage doivent prendre en charge la mise à l'échelle horizontale et la haute disponibilité pour garantir la stabilité et la fiabilité des services.

produit représentatif: :

  • Pomme de pin : Cette base de données vectorielles en nuage, disponible dans le commerce et gérée par une équipe de professionnels, fournit des services de recherche vectorielle faciles à utiliser et hautement évolutifs. Connue pour sa facilité d'utilisation et ses performances élevées, elle est représentative des bases de données vectorielles basées sur le cloud. Cependant, la nature open source et la personnalisation sont limitées, et la version gratuite a des fonctionnalités limitées.
  • Milvus : La base de données vectorielle distribuée open source, dirigée par la société Zilliz, performante, riche en fonctionnalités, communauté active, est la référence en matière de base de données vectorielle open source. Prend en charge une variété de types d'index, de métriques de distance et de méthodes d'interrogation, peut être flexible pour traiter une variété de scénarios d'application.
  • Weaviate : La base de données vectorielles open source, développée par la société allemande SeMI Technologies, associe la recherche vectorielle à la technologie des bases de données graphiques pour offrir des capacités uniques de modélisation et d'interrogation des données. Elle prend en charge le langage d'interrogation GraphQL pour faciliter l'interrogation et l'analyse de données complexes.
  • Qdrant : Base de données vectorielle open source, développée par une équipe russe, écrite en langage Rust, axée sur la performance et la facilité d'utilisation, architecture légère, faible consommation de ressources. Populaire pour ses hautes performances, sa faible latence et sa facilité de déploiement.
  • Vespa : Développé par Yahoo et un moteur de recherche open source et une base de données vectorielle, puissant, d'excellentes performances, mais l'architecture est plus complexe, la courbe d'apprentissage est raide. Convient pour des scénarios avec des exigences très élevées en matière de performances et de fonctionnalités.
  • Vald : Base de données vectorielles distribuée open source, développée par une équipe japonaise, axée sur la recherche vectorielle de haute précision et de haute fiabilité. L'accent est mis sur la haute précision et la faible latence, ce qui convient aux scènes ayant des exigences très élevées en matière de précision. Cependant, il y a des lacunes dans l'intégration avec Langchain, et la taille de la communauté est petite.
  • Recherche : Base de données vectorielles distribuée open source, développée par une équipe chinoise, qui fournit des services de recherche vectorielle hautement performants et disponibles. L'accent est mis sur la facilité d'utilisation et l'évolutivité, et convient aux projets qui ont besoin de créer rapidement des applications de recherche vectorielle. Il y a des lacunes dans l'intégration avec Langchain et la communauté est petite.
  • Chroma : Chroma est une base de données vectorielles embarquée open source qui met l'accent sur la légèreté et la facilité d'utilisation, en utilisant SQLite comme magasin de documents. Adapté au développement local, au prototypage ou aux petites applications, avec une évolutivité et une efficacité relativement limitées, Chroma est conçu spécifiquement pour les données audio, mais n'est pas optimisé pour traiter les données textuelles, et il existe peu d'informations complètes sur l'étalonnage des performances.

Conclusion : Pour les systèmes RAG et la plupart des applications d'intelligence artificielle, les bases de données vectorielles dédiées constituent le meilleur choix. Elles sont plus performantes, plus fonctionnelles et plus évolutives et répondent mieux aux besoins de ces applications. Parmi les nombreuses bases de données vectorielles dédiées, Weaviate, Milvus, Qdrant et Vespa comptent parmi les plus populaires et les plus utilisées aujourd'hui.

Afin de comparer plus visuellement trois excellentes bases de données vectorielles open source, Weaviate, Milvus et Qdrant, nous avons résumé le tableau ci-dessous :

base de données complèteQdrantWeaviateMilvus
Open source et auto-hébergementêtreêtreêtre
protocole open sourceApache-2.0BSDApache-2.0
développement langueRouilleAllerGo, C++
Étoiles Github (à partir de 2024)17k+9.2k+26.2k+
Première date de sortie202120192019
SDKPython, JS, Go, Java, .Net, RustPython, JS, Java, GoPython, Java, JS, Go
Services hébergés dans le nuageêtreêtreêtre
Incrustation de texte intégréeFastEmbedêtreêtre
recherche hybrideêtreRRF*+RSF*Mélange multivectoriel dans la table
Filtrage des méta-informationsêtreêtreêtre
BM25 Soutienêtreêtreêtre
Recherche de texteêtreêtreêtre
multivecteur à point unique (math.)êtreêtreêtre
Recherche de tenseursêtreêtreêtre
Intégration de Langchainêtreêtreêtre
Intégration de l'index des lamasêtreêtreêtre
Géo Recherche d'informations géographiquesêtreêtreêtre
Support multi-locatairesvia les collections/métadonnéesêtreêtre
向量数据库深度对比:Weaviate、Milvus 与 Qdrant

 

Résumé :

  • Qdrant : Architecture légère, faible consommation de ressources, excellentes performances, facilité de déploiement et d'utilisation, développement du langage Rust, accent mis sur les performances et l'efficacité.
  • Weaviate : Fonctionnalités complètes, intégration de la recherche vectorielle, du stockage d'objets et de l'index inversé, prise en charge des requêtes GraphQL, capacités de modélisation des données, développement du langage Go, communauté active.
  • Milvus : Performances élevées, fonctionnalités riches, communauté active, prise en charge d'une grande variété de types d'index et de méthodes d'interrogation, possibilité de traiter avec souplesse une grande variété de scénarios complexes, développement des langages Go et C++, perfection écologique.

Vous pouvez choisir la base de données vectorielle qui correspond le mieux à vos besoins, à vos préférences en matière de pile technologique et aux capacités de votre équipe.

 

Explication des méthodes de recherche dans les bases de données vectorielles : découvrir les nombreuses possibilités de la recherche vectorielle

La fonction principale des bases de données vectorielles est la recherche de similarités, et différentes bases de données vectorielles proposent une variété de méthodes de recherche pour répondre à différentes exigences d'application. La compréhension de ces méthodes de recherche vous aidera à utiliser plus efficacement les bases de données vectorielles pour créer des applications d'intelligence artificielle plus puissantes.

向量数据库深度对比:Weaviate、Milvus 与 Qdrant

6. comparaison des méthodes de recherche dans les bases de données vectorielles

Nous nous concentrerons sur les principales méthodes de recherche de trois bases de données, Milvus, Weaviate et Qdrant :

6.1 Milvus : des stratégies de recherche flexibles et variées pour différents scénarios

Milvus fournit une stratégie de recherche riche et flexible, vous pouvez choisir la méthode de recherche appropriée en fonction des différentes structures de données et des exigences de la requête.

  • Recherche d'un seul vecteur : Il s'agit de la méthode de recherche la plus élémentaire, qui consiste à utiliser la fonction search() qui compare un vecteur de requête avec les vecteurs existants dans la collection, en renvoyant les ID d'entité les plus similaires et leurs distances. Vous pouvez choisir les valeurs des vecteurs et les métadonnées des résultats renvoyés. Idéal pour les scénarios de recherche de similarité simples, par exemple pour trouver le produit le plus similaire à un certain article, pour trouver l'image la plus similaire à une certaine image, etc.
  • Recherche multisectorielle : pour les collections contenant plusieurs champs de vecteurs, par hybrid_search() La méthode Milvus. La dernière version 2.4.x de Milvus prend en charge les recherches utilisant jusqu'à 10 vecteurs. La dernière version 2.4.x de Milvus prend en charge les recherches utilisant jusqu'à 10 vecteurs. La recherche multi-vectorielle est particulièrement adaptée aux scénarios complexes nécessitant une grande précision, par exemple :
    • Les mêmes données sont traitées à l'aide de différents modèles d'intégration : Par exemple, la même phrase peut être générée avec différentes représentations vectorielles à l'aide de différents modèles tels que BERT, Sentence-BERT, GPT-3, etc. La recherche multi-vectorielle peut fusionner les représentations vectorielles de ces différents modèles afin d'améliorer la précision de la recherche.
    • Fusion de données multimodales : Par exemple, les informations multi-modales telles que les images, les empreintes digitales et les empreintes vocales des individus sont converties en différents formats vectoriels pour une recherche exhaustive. La recherche multi-vectorielle peut fusionner les informations vectorielles de ces différentes modalités pour obtenir une recherche de similarité plus complète.
    • Augmenter les taux de rappel : En attribuant des poids à différents vecteurs et en utilisant les informations de plusieurs vecteurs dans le cadre d'une stratégie de "rappel multiple", la capacité de rappel et l'efficacité des résultats de la recherche peuvent être considérablement améliorées afin d'éviter de manquer des résultats pertinents.
  • Opérations de recherche de base : Outre les recherches unidirectionnelles et multivectorielles, Milvus fournit un ensemble riche d'opérations de recherche de base, notamment :
    • Recherche vectorielle par lots : L'envoi simultané de plusieurs vecteurs de requête améliore l'efficacité de la recherche et convient aux scénarios qui nécessitent un traitement par lots des requêtes.
    • Recherche de partition : Recherche dans la partition spécifiée, réduisant le champ de recherche et améliorant la vitesse de recherche, adapté aux scénarios de grands volumes de données, vous pouvez stocker les données par partition pour améliorer l'efficacité de la requête.
    • Spécifiez les champs de sortie à rechercher : Renvoie uniquement les champs spécifiés, réduit le volume de transfert de données, améliore l'efficacité de la recherche et convient aux scénarios dans lesquels seule une partie des informations sur les champs est nécessaire.
  • Filtre de recherche : Conditions de filtrage basées sur des champs scalaires pour affiner les résultats de la recherche, par exemple, filtrage basé sur des conditions telles que le prix du produit, l'âge de l'utilisateur, la catégorie du produit, etc. pour filtrer davantage les résultats sur la base d'une recherche par similarité et améliorer la précision de la recherche.
  • Recherche de gamme : Trouver les vecteurs dont la distance par rapport au vecteur d'interrogation se situe dans une fourchette spécifique, par exemple, trouver les produits ayant une similarité de 0,8 ou plus avec le produit cible, ce qui convient aux scénarios dans lesquels la fourchette de similarité doit être limitée.
  • Recherche groupée : Le regroupement des résultats de recherche sur la base de champs spécifiques garantit la diversité des résultats et évite leur concentration excessive. Il convient aux scénarios qui exigent une diversité des résultats, par exemple les systèmes de recommandation qui veulent recommander différentes catégories de produits.

6.2 Weaviate : une puissante capacité de recherche hybride intégrant plusieurs techniques de recherche

Weaviate offre une puissante capacité de recherche hybride, qui peut combiner de manière flexible la recherche par similarité vectorielle, la recherche par mot-clé, la recherche générative et d'autres méthodes de recherche pour répondre aux exigences de requêtes complexes et fournir une solution de recherche plus complète.

  • Recherche de similarité vectorielle : Weaviate offre de multiples méthodes de recherche de proximité pour trouver l'objet le plus similaire au vecteur de la requête.
  • Recherche d'images : Il prend en charge l'utilisation d'images en tant qu'entrées pour la recherche de similitudes afin de réaliser la fonction de recherche d'images, ce qui convient aux scénarios de recherche d'images.
  • Recherche par mot-clé : Les résultats sont classés à l'aide de l'algorithme BM25F, qui permet une récupération efficace des mots clés dans les scénarios de recherche traditionnels.
  • Recherche hybride : La combinaison de la recherche par mot-clé BM25 et de la recherche par similarité vectorielle pour le classement par fusion des résultats, en tenant compte de la pertinence sémantique et de la correspondance des mots-clés, convient aux scénarios de recherche hybrides dans lesquels les informations relatives aux mots-clés et à la sémantique doivent être prises en compte.
  • Recherche générative : Utiliser les résultats de recherche comme des indices pour que le LLM génère des réponses qui correspondent mieux à l'intention de l'utilisateur, en combinant la recherche avec la technologie de l'IA générative pour offrir une expérience de recherche plus intelligente.
  • Re-classement : La qualité des résultats de la recherche est encore optimisée par l'utilisation du module de reclassement (Re-rank) pour reclasser les résultats de la recherche récupérés afin d'améliorer leur précision et leur pertinence.
  • Agrégation : Agréger les données provenant de la collecte des résultats, effectuer des analyses statistiques, fournir une capacité d'analyse des données et aider les utilisateurs dans l'exploration et l'analyse des données.
  • Filtres : Appliquer un filtrage conditionnel aux recherches, par exemple en fonction des champs de métadonnées, afin d'améliorer la précision des recherches et de prendre en charge des conditions de filtrage complexes.

6.3 Qdrant : axé sur la recherche vectorielle, prenant en compte le filtrage plein texte, léger et efficace

Qdrant se concentre sur la fourniture de services de recherche vectorielle de haute performance avec un équilibre de filtrage plein texte, et est connu pour sa légèreté, sa haute performance et sa facilité d'utilisation.

Opérations de recherche de base supportées par Qdrant: :

  • Filtrage par score : Le filtrage basé sur les scores de similarité vectorielle ne renvoie que les résultats présentant une similarité plus élevée, ce qui améliore la qualité des résultats de la recherche.
  • Une demande unique charge plusieurs opérations de recherche (demandes de recherche multiples) : L'envoi simultané de plusieurs demandes de recherche améliore l'efficacité de la recherche et convient aux scénarios qui nécessitent un traitement par lots des requêtes.
  • Recommandez l'API : Fournir des API de recommandation spéciales pour construire des systèmes de recommandation et simplifier le processus de développement des systèmes de recommandation.
  • Opérations de regroupement : Le regroupement des résultats de recherche améliore la diversité des résultats pour les scénarios qui nécessitent une diversité de résultats.

Autres méthodes de recherche prises en charge par Qdrant: :

Le positionnement central de Qdrant est un moteur de recherche vectoriel, qui fournit un support limité de recherche plein texte pour répondre aux besoins de filtrage plein texte de base sans affecter les performances de la recherche vectorielle.

  • Recherche avec filtrage en texte intégral : Les données vectorielles peuvent être filtrées à l'aide de filtres plein texte, par exemple pour trouver des données vectorielles contenant des mots-clés spécifiques, ce qui permet une simple fonctionnalité de recherche plein texte.
  • Filtre plein texte avec recherche vectorielle : Effectue des recherches vectorielles dans les enregistrements avec des mots-clés spécifiques pour obtenir des recherches plus précises, en combinant le filtrage en texte intégral et les recherches vectorielles pour améliorer la précision des recherches.
  • Recherche par préfixe et recherche sémantique instantanée : Prise en charge de la recherche préfixe et de la recherche sémantique instantanée afin d'offrir une expérience plus conviviale, de la recherche floue et de la recherche en temps réel.

Fonctionnalités futures de Qdrant: :

  • Les vecteurs épars sont pris en charge : Par exemple, les vecteurs épars utilisés dans SPLADE ou dans des modèles similaires améliorent la capacité à traiter des données éparses ainsi que l'efficacité et la précision de la recherche de vecteurs.

Fonctionnalités non prévues pour être prises en charge par Qdrant: :

  • BM25 ou d'autres fonctions de recherche ou de classement non vectorielles (recherche non vectorielle) : Qdrant met l'accent sur la recherche vectorielle et n'a pas l'intention de prendre en charge les méthodes traditionnelles de recherche par mot clé, ce qui permet de conserver une architecture simple et efficace.
  • Ontologie ou graphe de connaissances intégré, analyseur de requêtes et autres outils NLP (ontologie ou graphe de connaissances intégré) : Qdrant se concentre sur l'infrastructure sous-jacente de la recherche vectorielle, en laissant de côté les applications de couche supérieure et les fonctionnalités NLP, pour se concentrer sur la fonctionnalité de base et optimiser les performances.

Quelle est la différence entre BM25 et une simple recherche par mot-clé ? Un regard approfondi sur l'évaluation de la pertinence

Dans le domaine de la recherche par mots-clés, l'algorithme BM25 (Best Matching 25) est une méthode d'évaluation de la pertinence plus avancée et plus efficace que la simple recherche par mots-clés. Comprendre la différence entre les deux vous aidera à mieux choisir la bonne stratégie de recherche, en particulier dans les scénarios où la recherche par mot-clé ou la recherche mixte est nécessaire.

1) Mécanisme de notation de la pertinence :

  • Recherche simple par mots-clés : La notation est généralement basée sur la fréquence des termes (TF - Term Frequency), c'est-à-dire que plus un mot-clé apparaît dans un document, plus le document est pertinent. Cette méthode est simple et directe, mais elle tend à ignorer la longueur du document et l'importance des mots-clés, ce qui peut entraîner une surévaluation des longs documents, ainsi que des interférences dans les résultats dues à des mots couramment utilisés et désactivés.
  • BM25 (Best Matching 25) : En utilisant un algorithme plus complexe qui prend en compte la fréquence des mots (TF), la fréquence inverse des documents (IDF - Inverse Document Frequency) et la longueur du document pour évaluer la pertinence des documents, BM25 peut mesurer plus précisément la pertinence d'un document par rapport à une requête, et répondre efficacement aux limites des simples recherches par mots-clés.

2. traitement de la longueur des documents :

  • Recherche simple par mot-clé : La longueur du document peut ne pas être prise en compte, ce qui fait que les documents longs ont plus de chances d'être considérés comme pertinents parce qu'ils ont une probabilité plus élevée de contenir des mots-clés, ce qui entraîne un biais en faveur des documents longs.
  • BM25 : En introduisant le facteur de normalisation de la longueur des documents, le problème du biais des documents longs est résolu afin de garantir l'équité de l'évaluation de la pertinence entre les documents longs et les documents courts et d'éviter que les documents longs n'obtiennent des scores trop élevés en raison de l'avantage que leur confère leur longueur.

3. l'importance des termes de la requête :

  • Recherche simple par mot-clé : Il est courant de traiter tous les mots-clés comme étant d'égale importance, en ignorant la rareté des mots-clés dans la collection de documents et en faisant en sorte que les mots communs et désactivés interfèrent avec les résultats.
  • BM25 : L'importance des mots-clés est mesurée à l'aide de la fréquence inverse des documents (IDF). Les mots-clés ayant des valeurs IDF plus élevées (c'est-à-dire les mots-clés plus rares dans la collection de documents) contribuent davantage au score de pertinence des documents, ce qui permet de différencier efficacement l'importance des mots-clés et d'améliorer la qualité des résultats de la recherche.

4. la possibilité de régler les paramètres :

  • Recherche simple par mot-clé : Il y a généralement moins de paramètres, ce qui rend le réglage fin plus difficile et moins flexible.
  • BM25 : Des paramètres ajustables (par exemple k1 et b) sont fournis pour permettre aux utilisateurs d'affiner les algorithmes en fonction de scénarios d'application spécifiques et des caractéristiques des données, d'optimiser les résultats de la recherche et d'améliorer la flexibilité et la personnalisation de la recherche.

Résumé :

Comparé à la simple recherche par mot-clé, l'algorithme BM25 est supérieur en termes d'évaluation de la pertinence, de traitement de la longueur des documents, de mesure de l'importance des termes de la requête et de réglage des paramètres, et peut fournir des résultats de recherche plus précis et plus attendus par l'utilisateur. Par conséquent, l'algorithme BM25 est un meilleur choix dans les scénarios exigeant une qualité de recherche élevée, en particulier dans les scénarios où la recherche par mot-clé ou la recherche hybride est nécessaire, et il s'agit d'une technologie clé pour améliorer les résultats de la recherche.

 

7. l'étalonnage des performances et les mesures en détail : évaluation quantitative des forces et des faiblesses des bases de données vectorielles

La performance est un élément important dans le choix d'une base de données vectorielles. L'analyse comparative est un moyen efficace d'évaluer les performances des bases de données vectorielles. Toutefois, il convient de noter que les résultats de l'analyse comparative sont influencés par une variété de facteurs, de sorte que lorsqu'on se réfère aux résultats de l'analyse comparative, il est nécessaire de les combiner avec des scénarios d'application et des exigences spécifiques pour une analyse complète.

7. appendice

7.1 ANN Benchmarks : la plateforme d'évaluation des performances qui fait autorité

Tests de performance ANN Approximate Nearest Neighbors Benchmarks (ANN-Benchmarks) est une plateforme d'évaluation des performances des algorithmes d'approximation du plus proche voisin, créée et maintenue par Erik Bernhardsson. Elle fournit un cadre de référence et un ensemble de données unifiés pour l'évaluation des performances de divers algorithmes de recherche du plus proche voisin et de bases de données vectorielles. ANN-Benchmarks constitue une référence importante pour l'évaluation des performances des bases de données vectorielles et un outil important pour comprendre les différences de performances entre différentes bases de données vectorielles.

Facteurs d'influence pour l'étalonnage des performances :

  • Type de recherche : Recherche filtrée ou recherche normale, les différents types de recherche ont un impact différent sur les performances.
  • Paramètres de configuration : Les paramètres de configuration de la base de données, tels que les types d'index, les paramètres d'index, les paramètres de cache, etc. peuvent affecter de manière significative les performances.
  • Algorithmes d'indexation : Les différents algorithmes d'indexation (par exemple IVF, HNSW, PQ) présentent des caractéristiques de performance différentes et conviennent à différents scénarios de distribution des données et d'interrogation.
  • L'intégration des données : La qualité et la dimensionnalité de l'intégration des données influent sur les performances et la précision de la base de données vectorielle.
  • Environnement matériel : L'unité centrale, la mémoire, le disque, le réseau et les autres ressources matérielles affectent directement les performances de la base de données.

Facteurs clés à prendre en compte lors de la sélection d'un modèle, en plus de l'analyse comparative :

  • Capacités distribuées : S'il prend en charge le déploiement distribué et s'il peut évoluer horizontalement pour faire face à des données massives et à une concurrence élevée.
  • Copies de données et mise en cache : Prise en charge ou non de la copie des données et du mécanisme de mise en cache pour garantir la sécurité des données et améliorer les performances du système.
  • Algorithmes d'indexation : Le type d'algorithme d'indexation utilisé, les caractéristiques de performance et les scénarios applicables de l'algorithme, et la prise en charge éventuelle de plusieurs algorithmes d'indexation.
  • Capacité de recherche de similarités vectorielles : La prise en charge de la recherche hybride, du filtrage, des mesures de similarité multiples et d'autres fonctions de recherche avancées pour répondre aux besoins des requêtes complexes.
  • Mécanisme de segmentation : la prise en charge ou non du découpage des données, la manière de procéder au découpage et à la gestion des données, et l'amélioration de l'efficacité de la gestion et de l'interrogation des données.
  • Approche par grappes : Comment construire des grappes, l'évolutivité et la stabilité des grappes, la garantie de la haute disponibilité et de l'évolutivité du système.
  • Potentiel d'extensibilité : La limite supérieure de l'évolutivité du système, à savoir s'il peut répondre aux besoins de la croissance future de l'entreprise, et prédire la capacité d'expansion du système.
  • Cohérence des données : Comment garantir la cohérence et la fiabilité des données, en particulier dans un environnement distribué.
  • Disponibilité globale du système : Stabilité et fiabilité du système, c'est-à-dire s'il peut assurer un fonctionnement stable 7 jours sur 7 et 24 heures sur 24 et répondre aux exigences de continuité de l'activité.

Métriques angulaires vs. métriques euclidiennes : métriques clés pour la recherche de texte

Dans le domaine de la recherche de texte, les bases de données vectorielles enDistance angulaire La performance sur est généralement meilleure que celle surDistance euclidienne est plus importante. En effet, les mesures angulaires sont plus sensibles à la similarité sémantique des documents textuels, alors que les mesures euclidiennes se concentrent davantage sur la longueur et la taille des documents.

  • Mesure angulaire (par exemple, distance cosinus) : L'accent est mis sur la direction du vecteur, il n'est pas sensible à la longueur du vecteur, il convient mieux à la mesure de la similarité sémantique du texte, il convient à la recherche de texte, à la classification de documents et à d'autres scénarios.
  • Métrique euclidienne (par exemple, distance euclidienne) : Elle prend également en compte la taille et la direction des vecteurs, est sensible à la longueur des vecteurs et convient mieux à la mesure de la distance absolue des vecteurs, ce qui est adapté à des scénarios tels que la reconnaissance d'images et la reconnaissance vocale.

Par conséquent, lors de la sélection du système RAG, nous devrions nous concentrer sur la base de données vectorielles dans les différentes dimensions de la base de données.Ensemble de données angulairessur, par exemple, les ensembles de données glove-100-angular et nytimes-256-angular.

向量数据库深度对比:Weaviate、Milvus 与 Qdrant

Analyse des performances (ensemble de données gant-100-angulaire) :

  • Requêtes par seconde (QPS) : Milvus affiche le débit le plus élevé lorsque le rappel est inférieur à 0,95, ce qui signifie que Milvus est capable de gérer une plus grande fréquence de requêtes avec de meilleures performances tout en garantissant un certain rappel. Lorsque le rappel dépasse 0,95, l'écart de débit entre les bases de données se réduit et l'écart de performance n'est pas évident lorsque le rappel est élevé.
  • Index Temps de construction : Vespa a le temps de construction d'index le plus long, Weaviate et Milvus ont des temps de construction similaires, mais Milvus est légèrement plus long. Le temps de construction de l'index affecte directement la vitesse de démarrage de la base de données et l'efficacité de la mise à jour des données ; plus le temps de construction est court, plus le démarrage de la base de données et la mise à jour des données sont rapides.
  • Taille de l'index : Weaviate a l'index le plus petit et Milvus l'index le plus grand. La taille de l'index influe sur le coût de stockage et l'utilisation de la mémoire ; plus l'index est petit, plus le coût de stockage et l'utilisation de la mémoire sont faibles. Bien que l'index de Milvus soit grand, pour un ensemble de données contenant 1,2 million de vecteurs à 100 dimensions, la taille de l'index est inférieure à 1,5 Go, ce qui est encore acceptable, et l'impact de la taille de l'index devrait être évalué en fonction de la taille des données dans les applications pratiques.

7.1.2 Performances de l'ensemble de données nytimes-256-angular

向量数据库深度对比:Weaviate、Milvus 与 Qdrant

Analyse des performances (ensemble de données nytimes-256-angular) :

Les performances sur cet ensemble de données sont similaires à celles de l'ensemble de données glove-100-angular, avec une tendance générale cohérente.

  • Temps de construction de l'index : Weaviate a le temps de construction d'index le plus long, Milvus et Qdrant sont relativement courts, et l'ordre des temps de construction est cohérent avec l'ensemble de données glove-100-angular.
  • Taille de l'index : L'index de Weaviate est le plus petit, celui de Milvus est le plus grand, mais il n'est que de 440 Mo (un ensemble de données contenant 290 000 vecteurs à 256 dimensions), et l'ordre des tailles d'index est cohérent avec l'ensemble de données glove-100-angular.

Résumé :

Milvus excelle en termes de débit et convient aux scénarios de requêtes hautement simultanées ; Weaviate a un avantage en termes de taille d'index et économise de l'espace de stockage ; et Vespa a un temps de construction relativement plus long et doit être pris en compte pour l'efficacité de la construction de l'index.

Lors de la sélection d'un modèle, il est nécessaire de combiner des scénarios d'application spécifiques, des caractéristiques de données et des exigences de performance pour une évaluation complète, et il ne faut pas se fier uniquement aux résultats des tests de référence.

7.2 Mesures de similarité vectorielle : choisir les bonnes mesures pour améliorer les résultats de recherche

Les métriques de similarité vectorielle sont utilisées pour mesurer le degré de similarité entre deux vecteurs, et différentes métriques de similarité sont adaptées à différents types de données et scénarios d'application. Le choix de la bonne métrique de similarité affecte directement la précision et l'effet de la recherche de vecteurs. Différentes bases de données vectorielles prennent en charge différentes mesures de similarité. Vous devez donc choisir la bonne base de données et les bonnes mesures de similarité en fonction de vos besoins réels.

normedescriptionstranchantinférieurScénarios applicablesBases de données prises en charge
Distance en cosinusMesurer le cosinus de l'angle entre deux vecteursSe concentre sur la direction du vecteur, n'est pas sensible à la longueur du vecteur ; convient aux données éparses de haute dimension.Insensible aux informations sur la longueur des vecteurs ; non applicable aux ensembles de données non convexesCalcul de la similarité des textes, classification des documents, systèmes de recommandationpgvector, Pinecone, Weaviate, Qdrant, Milvus, Vespa
Distance euclidienne (L2)Calculer la distance en ligne droite entre deux vecteurs dans un espace multidimensionnelIntuitif et facile à comprendre ; tient compte à la fois de la magnitude et de la direction du vecteurDégradation des performances dans les espaces à haute dimension en raison de la "catastrophe dimensionnelle" ; sensibilité aux valeurs aberrantesReconnaissance d'images, reconnaissance vocale, analyse de l'écriture manuscritepgvector, Pinecone, Qdrant, Milvus, Vespa
Produit en pointsCalculer la somme des produits des composantes correspondantes du vecteurCalcul rapide ; reflète à la fois la magnitude et la direction du vecteurSensible à l'échelle vectorielle ; peut nécessiter une normalisation des donnéesSystèmes de recommandation, filtrage collaboratif, décomposition de la matricepgvector, Pinecone, Weaviate, Qdrant, Milvus
L2 Distance euclidienne au carréDistance d'Euclide au carréPénalise les grandes différences entre les éléments vectoriels ; plus efficace dans certains casL'opération de quadrillage peut fausser les distances ; plus sensible aux valeurs aberrantesTraitement d'images, détection d'anomaliesWeaviate
Distance de HammingMesure du nombre de valeurs différentes correspondant à la position d'un vecteur binaireConvient aux données binaires ou catégorielles ; calculs rapidesNon applicable aux données numériques continuesDétection et correction d'erreurs, comparaison de séquences d'ADNWeaviate, Milvus, Vespa
Distance de Manhattan (L1)Mesurer la somme des distances entre deux vecteurs dans la direction des axes de coordonnéesPlus robuste aux valeurs aberrantes que la distance euclidienneLa signification géométrique est moins intuitive que la distance euclidienne.Calcul de la distance entre les panneaux, calcul de la distance entre les pâtés de maisonsWeaviate

7.2.1 Distance cosinus : le premier choix pour le calcul de la similarité des textes

La distance en cosinus mesure la similarité des vecteurs en calculant le cosinus de l'angle entre deux vecteurs. Plus la valeur du cosinus est proche de 1, plus les vecteurs sont similaires ; plus la valeur du cosinus est proche de -1, moins les vecteurs sont similaires ; et avec une valeur de cosinus de 0, les vecteurs sont orthogonaux, ce qui indique qu'ils ne sont pas liés.

  • avantage: :
    • Se concentrer sur la direction du vecteur et ignorer la longueur du vecteur : La distance cosinus se concentre sur la direction du vecteur et n'est pas sensible à la longueur du vecteur. Elle est donc bien adaptée au traitement des données textuelles, car la longueur d'un document n'est souvent pas le facteur clé dans les calculs de similarité textuelle, alors que le sujet et la direction sémantique du document sont importants.
    • Pour les données éparses à haute dimension : Dans les scénarios de données éparses à haute dimension, la distance cosinus peut encore maintenir de bonnes performances et convient au calcul de la similarité des données éparses à haute dimension telles que le texte et le comportement de l'utilisateur.
  • inconvénients: :
    • Insensible aux informations sur la longueur du vecteur : Dans certains scénarios, les informations relatives à la longueur des vecteurs peuvent également être importantes, par exemple, dans un système de recommandation, le niveau d'activité de l'utilisateur (longueur du vecteur) peut être une caractéristique importante. La distance en cosinus ne tient pas compte de ces informations et peut entraîner une perte d'informations.
    • Non applicable aux ensembles de données non convexes : Si la distribution des données n'est pas un ensemble convexe, la distance cosinus peut ne pas fournir une mesure de similarité précise, et une mesure de similarité appropriée doit être sélectionnée sur la base de la distribution des données.
  • Scénarios applicables: :
    • Calcul de la similarité des textes : Par exemple, le calcul de la similarité sémantique de deux articles, de deux phrases ou de deux paragraphes est une mesure courante pour le calcul de la similarité des textes.
    • Catégorisation des documents : Les documents sont classés en différentes catégories sur la base de la similarité des vecteurs de documents.
    • Systèmes recommandés : Les recommandations sont basées sur le comportement de l'utilisateur ou les caractéristiques de l'article, et la similarité entre les vecteurs de l'utilisateur et les vecteurs de l'article est calculée pour des recommandations personnalisées.
    • Scénarios de données éparses en haute dimension : Par exemple, le calcul de la similarité de données éparses à haute dimension telles que les données sur le comportement des utilisateurs et les données sur les caractéristiques des produits.

7.2.2 Distance euclidienne (L2) : intuitive et facile à comprendre, mais ses performances sont limitées dans les espaces de plus grande dimension.

La distance euclidienne, également connue sous le nom de norme L2, calcule la distance en ligne droite entre deux vecteurs dans un espace multidimensionnel. Plus la distance est petite, plus les vecteurs sont similaires ; plus la distance est grande, moins les vecteurs sont similaires.

  • avantage: :
    • Intuitif et facile à comprendre : Le concept de distance euclidienne est simple et intuitif, facile à comprendre et à utiliser, et c'est l'une des mesures de distance les plus courantes.
    • Tenez compte à la fois de la magnitude et de la direction du vecteur : La distance euclidienne tient compte à la fois de la magnitude et de la direction des vecteurs, ce qui donne une image plus complète des différences entre les vecteurs et convient aux scénarios dans lesquels la magnitude et la direction des vecteurs doivent être prises en compte.
  • inconvénients: :
    • La performance de l'espace de dimension supérieure est dégradée par la "catastrophe dimensionnelle" : Dans les espaces à haute dimension, les distances euclidiennes entre tous les points tendent à être égales, ce qui entraîne une diminution de la différenciation, affecte la précision de la recherche de similitudes et limite les performances dans les scénarios de données à haute dimension.
    • Sensible aux valeurs aberrantes : La distance euclidienne est sensible aux valeurs aberrantes, qui affectent considérablement les résultats du calcul de la distance et sont moins robustes.
  • Scénarios applicables: :
    • Reconnaissance d'images : Par exemple, la reconnaissance des visages, la reconnaissance des objets, etc., la comparaison de similarité basée sur la distance euclidienne des vecteurs de caractéristiques de l'image.
    • Reconnaissance de la parole : Par exemple, la mise en correspondance des caractéristiques vocales, la comparaison de similarité basée sur la distance euclidienne des vecteurs de caractéristiques vocales.
    • Analyse de l'écriture manuscrite : Par exemple, la reconnaissance de caractères manuscrits, la comparaison de similarité basée sur la distance euclidienne des vecteurs de caractéristiques des caractères manuscrits.
    • Scénarios de données à faible dimension : Dans les scénarios de données à faible dimension, la distance euclidienne reste une mesure de similarité efficace pour la recherche de similarités dans les données à faible dimension.

7.2.3 Produit de points : calcul efficace, adapté aux systèmes de recommandation

Le produit intérieur, également connu sous le nom de produit de points, calcule la somme des produits des composantes correspondantes de deux vecteurs. Plus le produit intérieur est grand, plus les vecteurs sont similaires ; plus le produit intérieur est petit, moins les vecteurs sont similaires.

  • avantage: :
    • Les calculs sont rapides : Le produit intérieur est très rapide, en particulier lorsque la dimension du vecteur est élevée, l'avantage en termes de performances est plus évident et convient aux données à grande échelle et aux scénarios à forte concurrence.
    • Reflète à la fois la magnitude et la direction du vecteur : Le produit intérieur tient compte à la fois de la magnitude et de la direction des vecteurs, ce qui reflète la similarité globale des vecteurs, et convient aux scénarios dans lesquels la magnitude et la direction des vecteurs doivent être prises en compte.
  • inconvénients: :
    • Sensible aux échelles vectorielles : La valeur du produit intérieur est affectée par l'échelle des vecteurs, et si les vecteurs ont une grande différence d'échelle, la mesure de similarité du produit intérieur peut être faussée et sensible à l'échelle des vecteurs.
    • La normalisation des données peut être nécessaire : Afin d'éliminer l'effet des différences d'échelle des vecteurs, il est souvent nécessaire de normaliser les données, par exemple en normalisant les vecteurs à l'unité de longueur, afin de garantir la précision de la mesure de similarité du produit intérieur.
  • Scénarios applicables: :
    • Systèmes recommandés : Par exemple, pour calculer la similarité entre les vecteurs d'utilisateurs et les vecteurs d'éléments en vue de recommandations personnalisées, le produit intérieur est une mesure de similarité couramment utilisée dans les systèmes de recommandation.
    • Filtrage collaboratif : Les recommandations sont formulées sur la base de la similarité entre les utilisateurs ou les éléments, en utilisant le produit intérieur pour calculer la similarité entre les utilisateurs ou les éléments.
    • Décomposition de la matrice : utilisé pour la réduction de la dimensionnalité et l'extraction de caractéristiques, et le produit intérieur peut être utilisé pour mesurer la similarité entre les vecteurs et aider à la mise en œuvre d'algorithmes de décomposition de matrices.
    • Scénarios nécessitant un calcul à haute performance : Par exemple, les systèmes de recommandation en ligne à grande échelle, les systèmes de recherche en temps réel et d'autres scénarios qui nécessitent un calcul rapide de la similarité vectorielle.

7.2.4 Distance euclidienne au carré L2 : amplifie les différences, efficace pour des scènes spécifiques

L2 La distance carrée est le carré de la distance euclidienne et est calculée comme la valeur carrée de la distance euclidienne.

  • avantage: :
    • Différences importantes entre les éléments du vecteur de pénalité : L'opération de quadrillage amplifie les différences entre les éléments du vecteur, ce qui rend les valeurs de distance plus sensibles aux différences. Dans certains cas, cette propriété peut être plus avantageuse pour distinguer les similitudes et mettre en évidence les différences.
    • Le fait d'éviter les calculs de racine carrée améliore l'efficacité des calculs : Dans certains scénarios de calcul, les calculs de racine carrée peuvent être évités pour améliorer l'efficacité et simplifier le processus de calcul.
  • inconvénients: :
    • Les opérations de quadrillage peuvent fausser les distances : L'opération de mise au carré modifie l'échelle de la distance, ce qui peut conduire à une interprétation de la distance moins intuitive que la distance euclidienne.
    • Plus sensible aux valeurs aberrantes : L'opération de quadrillage amplifie encore l'effet des valeurs aberrantes, ce qui rend la distance L2 au carré plus sensible aux valeurs aberrantes et moins robuste.
  • Scénarios applicables: :
    • Traitement des images : Par exemple, pour comparer deux images au niveau des pixels, la distance L2 au carré amplifie les différences entre les pixels et compare plus efficacement les nuances des images.
    • Détection des anomalies : L'amplification de l'impact des valeurs aberrantes facilite la détection des données anormales et convient aux scénarios de détection d'anomalies sensibles aux valeurs aberrantes.
    • Scénarios spécifiques dans lesquels les différences doivent être amplifiées : La distance carrée L2 peut être plus efficace que la distance euclidienne dans certains scénarios spécifiques où la différenciation doit être mise en évidence.

7.2.5 Distance de Hamming : une métrique exclusive pour les données binaires

La distance de Hamming mesure le nombre de valeurs différentes aux positions correspondantes de deux vecteurs binaires de même longueur et est utilisée pour mesurer le degré de différence entre des vecteurs binaires.

  • avantage: :
    • Pour les données binaires ou catégorielles : La distance de Hamming est spécifiquement utilisée pour mesurer les différences dans les données binaires ou catégorielles et convient aux calculs de similarité pour les vecteurs binaires.
    • Les calculs sont rapides : Le calcul de la distance de Hamming est très simple et efficace. Il suffit de comparer les positions correspondantes des vecteurs binaires et de compter le nombre de valeurs différentes.
  • inconvénients: :
    • Non applicable aux données numériques continues : La distance de Hamming ne peut être utilisée que pour les données binaires ou catégorielles et ne peut pas traiter les données numériques continues, ce qui limite son champ d'application.
  • Scénarios applicables: :
    • Détection et correction des erreurs : Par exemple, dans le codage des communications, la distance de Hamming est utilisée pour mesurer la différence entre les mots de code pour la détection et la correction des erreurs et constitue un concept important dans la théorie du codage.
    • Comparaison des séquences d'ADN : Les séquences d'ADN ont été converties en représentation binaire et la comparaison des séquences a été effectuée en utilisant la distance de Hamming pour l'analyse bioinformatique.
    • Calcul de la similarité des données des sous-types : Il convient au calcul de similitude des données sous-typées, par exemple au calcul de similitude des données catégorisées telles que les étiquettes des utilisateurs et les attributs des produits.

7.2.6 Distance de Manhattan (L1) : métrique de distance plus robuste, résistante aux valeurs aberrantes

La distance de Manhattan, également connue sous le nom de norme L1 ou de distance de pâté de maisons, est calculée comme la somme des différences absolues entre deux vecteurs dans toutes les dimensions.

  • avantage: :
    • Plus robuste aux valeurs aberrantes que la distance euclidienne : La distance de Manhattan est moins sensible aux valeurs aberrantes que la distance euclidienne car elle ne calcule que la différence absolue, et non la différence au carré, et elle est plus robuste et résistante aux interférences des valeurs aberrantes.
    • Les calculs sont relativement rapides : La distance de Manhattan est légèrement plus rapide que la distance euclidienne et convient aux scénarios dans lesquels la distance doit être calculée rapidement.
  • inconvénients: :
    • La signification géométrique est moins intuitive que la distance euclidienne : La signification géométrique de la distance de Manhattan est moins intuitive que la distance euclidienne, moins facile à comprendre et moins interprétable géométriquement.
  • Scénarios applicables: :
    • Calcul de la distance du conseil d'administration : Par exemple, pour calculer la distance entre deux cases sur un échiquier, la distance de Manhattan est couramment utilisée pour calculer la distance de l'échiquier.
    • Calculs de la distance entre les quartiers urbains : Par exemple, pour calculer la distance entre deux endroits d'une ville, en ignorant les distances en diagonale, la distance de Manhattan est également connue sous le nom de distance entre les pâtés de maisons.
    • Le problème du plus court chemin dans la planification logistique : La distance de Manhattan peut être utilisée pour évaluer la longueur des chemins dans la planification logistique et aider à la mise en œuvre des algorithmes du chemin le plus court.
    • Scénarios moins sensibles aux valeurs aberrantes : Dans les scénarios où l'effet des valeurs aberrantes doit être réduit, la distance de Manhattan est plus applicable et plus robuste que la distance euclidienne.

8. les références

  1. https://github.com/milvus-io/milvus
  2. Powering Al with Vector Databases : A Benchmark - Part I - Data - Blog - F-Tech
  3. Principes fondamentaux - Qdrant
  4. Documentation Milvus
  5. Home | Weaviate - Base de données vectorielles
  6. Documentation Qdrant - Qdrant
  7. Cas d'utilisation des bases de données vectorielles - Qdrant
  8. Bases de données vectorielles : Intro, cas d'utilisation, 5 meilleures bases de données vectorielles
  9. Tests de performance ANN
  10. Mesure de la distance dans la recherche vectorielle - Weaviate
  11. BM25 - L'encyclopédie Baidu
© déclaration de droits d'auteur

Articles connexes

Pas de commentaires

Vous devez être connecté pour participer aux commentaires !
S'inscrire maintenant
aucun
Pas de commentaires...