
Qu'est-ce qu'un emboîtement vectoriel ?
**L'intégration vectorielle est une représentation numérique des points de données dans un espace à haute dimension dans lequel les points de données similaires sont plus proches les uns des autres et les points dissemblables sont plus éloignés. Par exemple, la distance entre les mots peut indiquer des [similarités sémantiques] (https://zilliz.com/glossary/semantic-similarity) dans un espace vectoriel. Paris et Tokyo sont proches l'une de l'autre mais éloignées d'Apple.
Les encastrements vectoriels sont couramment utilisés dans l'apprentissage automatique et l'intelligence artificielle pour capturer le sens sémantique des données non structurées (telles que le texte, les vidéos, les images, le son, etc.), permettant une analyse, une recherche et une récupération plus efficaces et plus précises. Les encastrements vectoriels sont généralement générés par des modèles de réseaux neuronaux (ou des modèles plus modernes d'architecture de transformateur).
Parce que la représentation vectorielle d'un objet de données ne contient que des nombres, la recherche de similarité vectorielle est parfois appelée "recherche vectorielle dense " ou "recherche vectorielle d'intégration", qui diffère de la recherche traditionnelle par mot-clé, où des correspondances exactes doivent se produire entre les mots de la recherche et les données renvoyées. La "recherche lexicale" et la "recherche à vecteur peu dense" sont des termes qui font généralement référence aux recherches traditionnelles par mots-clés.
Les encastrements vectoriels sont généralement stockés dans une [base de données vectorielles] moderne (https://zilliz.com/learn/what-is-vector-database) pour l'indexation et la recherche efficace de similitudes.
Comment sont créés les encastrements vectoriels ?
Les embeddings vectoriels sont souvent créés à l'aide de modèles d'apprentissage automatique (également appelés embedding model) qui apprennent à cartographier les données brutes dans un espace vectoriel. Le modèle d'intégration convertit chaque unité d'information en un vecteur de nombres, et la distance entre deux vecteurs indique leur degré de similitude sémantique.
Voici les étapes clés de la création de vecteurs d'intégration:
- La première étape consiste à sélectionner les données et à décider quelles variables formeront des vecteurs. Il peut s'agir de mots dans un corpus de textes, d'images visuelles et de préférences d'utilisateurs.
Ensuite, les caractéristiques pertinentes des données seront extraites à l'aide de la tokenisation et du stemming, et la suppression des mots pour les données textuelles sera arrêtée. Envisagez d'utiliser des [réseaux neuronaux convolutifs] (https://zilliz.com/glossary/convolutional-neural-network) (CNN) pour reconnaître et extraire des caractéristiques d'image pour les données d'image.
Après avoir prétraité les données, les introduire dans un modèle d'apprentissage automatique tel que Word2Vec, GloVe, OpenAI ou un autre modèle de réseau neuronal profond. Au cours de la formation, le modèle apprend à créer des représentations vectorielles pour chaque élément de l'ensemble de données. Le modèle redimensionne ces vecteurs afin de minimiser les différences entre les éléments similaires tout en augmentant les différences entre les éléments différents.
Le résultat est un espace vectoriel multidimensionnel dans lequel un vecteur spécifique représente chaque élément de l'ensemble de données. Les éléments similaires sont plus proches les uns des autres dans cet espace, et les éléments dissemblables sont plus éloignés.
Encastrements de vecteurs épars, denses et binaires
Les encastrements vectoriels peuvent être classés en trois grandes catégories en fonction de leur représentation et de leurs propriétés : les encastrements denses, les encastrements épars et les encastrements binaires. Chaque type a ses propres avantages et cas d'utilisation.
Encastrements denses (vecteurs denses)
Les encastrements denses ou [vecteurs denses] (https://zilliz.com/learn/sparse-and-dense-embeddings) sont des vecteurs dont la plupart des éléments sont non nuls, fournissant une représentation numérique compacte qui capture des caractéristiques de données riches et continues. Généralement, les encastrements denses à faible dimension peuvent condenser efficacement les informations dans un espace plus petit, ce qui les rend utiles pour le stockage et le calcul. Les encastrements denses sont couramment utilisés dans des applications telles que les encastrements de mots (Word2Vec, GloVe, FastText, par exemple), les encastrements de phrases (Universal Sentence Encoder, InferSent, Sentence-BERT, par exemple) et les encastrements d'images dérivés de réseaux neuronaux convolutifs (ResNet, VGG, par exemple). Les encastrements denses sont très avantageux pour capturer les informations sémantiques. Ils sont particulièrement adaptés aux modèles basés sur les réseaux neuronaux et à l'apprentissage profond, qui s'appuient sur ces représentations détaillées pour les tâches de classification, de regroupement et de recherche de similitudes.
Emboîtements épars (vecteurs épars)
Les encastrements épars, ou vecteurs épars, sont des vecteurs dont la plupart des éléments sont nuls, ce qui permet souvent d'obtenir des représentations à haute dimension mettant en évidence la présence ou l'absence de caractéristiques spécifiques. Ces encastrements sont utilisés dans l'exploration de texte et la recherche d'informations par le biais de méthodes telles que TF-IDF (Term Frequency-Inverse Document Frequency) et les sacs de mots. Les encastrements épars sont simples à comprendre et à mettre en œuvre, ce qui les rend efficaces pour les algorithmes traditionnels d'apprentissage automatique et les modèles linéaires.
Encastrements binaires (vecteurs binaires)
Les embeddings binaires ou vecteurs binaires sont des vecteurs dont chaque élément est soit 0, soit 1. Ils créent des représentations compactes qui sont très efficaces pour le stockage et la récupération. Ces encastrements sont souvent utilisés dans des applications nécessitant une grande efficacité, telles que le hachage sensible à la localité (LSH) pour la recherche [approximative du plus proche voisin] (https://zilliz.com/glossary/anns) dans des espaces à haute dimension, les réseaux neuronaux binaires où les poids et les activations sont binaires, et le hachage de caractéristiques (l'astuce du hachage) pour convertir de grandes caractéristiques catégorielles en vecteurs binaires de taille fixe. Les encastrements de vecteurs binaires contribuent à l'efficacité du stockage et du calcul, ce qui les rend idéaux pour le traitement de données à grande échelle et les applications en temps réel. Ils sont particulièrement utiles pour les tâches de recherche et d'extraction de similarités en raison de leur nature compacte.
Un guide simple pour la création d'embeddings vectoriels
Voici un exemple d'utilisation d'un [modèle d'intégration] pré-entraîné (https://zilliz.com/learn/training-your-own-text-embedding-model) pour générer des intégrations pour nos propres mots. Pour suivre cet exemple, vous devez installer Python et configurer la base de données vectorielles Milvus pour le stockage et la récupération des vecteurs.
Tout d'abord, installez les dépendances : milvus, pymilvus, et gensim. Pymilvus est un SDK Python pour Milvus, et gensim est une bibliothèque Python pour le traitement du langage naturel (NLP).
Gensim est une bibliothèque Python à source ouverte pour la modélisation des sujets et l'analyse de la similarité des documents à l'aide de divers algorithmes non supervisés. Elle est spécialisée dans le traitement de corpus de textes à grande échelle et est largement utilisée dans les tâches de traitement du langage naturel (NLP). Gensim permet d'entraîner et d'utiliser des enchâssements de mots à travers des modèles d'apprentissage automatique tels que Word2Vec, FastText et Doc2Vec. Ces encastrements capturent les relations sémantiques entre les mots et peuvent être utilisés pour diverses tâches de traitement du langage naturel.
pip install milvus, pymilvus, gensim
Importez les bibliothèques.
import gensim.downloader as api
from pymilvus import (
connexions,
FieldSchema,
CollectionSchema,
DataType,
Collection)
Créer une connexion au serveur Milvus.
connections.connect(
alias="default",
user='nom d'utilisateur',
password='mot de passe',
host='localhost',
port='19530'
)
Créer une collection.
#Crée une collection :
fields = [
FieldSchema(name="pk", dtype=DataType.INT64, is_primary=True, auto_id=False),
FieldSchema(name="words", dtype=DataType.VARCHAR, max_length=50),
FieldSchema(name="embeddings", dtype=DataType.FLOAT_VECTOR, dim=50)
]
schema = CollectionSchema(fields, "Demo to store and retrieve embeddings")
demo_milvus = Collection("milvus_demo", schema)
Charger le modèle pré-entraîné depuis gensim.
model = api.load("glove-wiki-gigaword-50")
Générer les embeddings de texte utilisés pour les mots de l'échantillon.
glace = modèle['glace']
eau = modèle['eau']
froid = modèle['froid']
arbre = modèle['arbre']
homme = modèle['homme']
femme = modèle['femme']
enfant = modèle['enfant']
femelle = modèle['femelle']
Voici un exemple d'intégration vectorielle pour le mot "femme".
array([-0.31575 , 0.74461 , -0.11566 , -0.30607 , 1.524 , 1.9137 ,
-0.392 , -0.67556 , -0.1051 , -0.17457 , 1.0692 , -0.68617 ,
1.2178 , 1.0286 , 0.35633 , -0.40842 , -0.34413 , 0.67533 ,
-0.5443 , -0.21132 , -0.61226 , 0.95619 , 0.43981 , 0.59639 ,
0.02958 , -1.1064 , -0.48996 , -0.82416 , -0.97248 , -0.059594,
2.396 , 0.74269 , -0.16044 , -0.69316 , 0.55892 , 0.22892 ,
0.013605, -0.44858 , -0.52965 , -0.96282 , -0.54444 , 0.18284 ,
0.16551 , 0.33446 , 0.53432 , -1.4824 , -0.34574 , -0.82834 ,
0.10107 , 0.024414], dtype=float32)
Insérer les encastrements vectoriels générés dans la collection
#Insérer les données dans la collection
données = [
[1,2,3,4,5,6,7,8], # champ pk
['ice', 'water', 'cold', 'tree', 'man', 'woman', 'child', 'female'], # field words
[ice, water, cold, tree, man, woman, child, female], # champ embeddings
]
insert_result = demo_milvus.insert(data)
# Après l'insertion de l'entité finale, il est préférable d'appeler flush pour ne pas laisser de segments en croissance en mémoire
demo_milvus.flush()
Créer des index sur les entités.
index = {
"index_type" : "IVF_FLAT",
"metric_type" : "L2",
"params" : {"nlist" : 128},
}
demo_milvus.create_index("embeddings", index)
Charge la collection en mémoire pour confirmer le succès du téléchargement et effectuer une [recherche de similarité vectorielle] (https://zilliz.com/blog/similarity-metrics-for-vector-search).
demo_milvus.load()
# effectue une recherche de similarité vectorielle :
data = [cold]
search_params = {
"metric_type" : "L2",
"params" : {"nprobe" : 10},
}
result = demo_milvus.search(data, "embeddings", search_params, limit=4, output_fields=["words"])
Boucle sur les résultats et affiche les mots.
for i in range(0,4) :
hit = result[0][i]
print(hit.entity.get('words'))
Et voici la sortie attendue.
froid
glace
eau
homme
Comment fonctionne l'intégration ?
En transformant des données telles que des images, du texte et du son en représentations numériques, les embeddings permettent aux machines de comprendre le sens sémantique sous-jacent et les relations au sein des données brutes. Cela ouvre la voie à des applications innovantes dans divers domaines.
Recherche d'images, de vidéos ou de fichiers audio similaires
Imaginez que vous recherchiez des photos ou des vidéos similaires en vous basant sur leur contenu, et pas seulement sur des mots-clés. Par exemple, une recherche d'image par le son (les oiseaux sont plus facilement entendus que vus) ou une recherche de vidéo par l'image. Les encastrements vectoriels rendent ce type de recherche possible. En extrayant les encastrements d'images, de trames vidéo ou de segments audio via des techniques telles que les [réseaux neuronaux convolutifs (CNN)] (https://zilliz.com/glossary/convolutional-neural-network), nous pouvons stocker ces encastrements dans des bases de données vectorielles telles que Milvus ou Zilliz Cloud. Lorsqu'un utilisateur effectue une recherche avec une image, une vidéo ou un clip audio, le système récupère les éléments similaires en comparant les données séquentielles avec leurs représentations vectorielles intégrées.
Accélérer la découverte de médicaments
La découverte de médicaments est un processus long et complexe. Les représentations vectorielles intégrées peuvent accélérer ce processus en aidant les scientifiques à identifier les médicaments candidats prometteurs. En encodant les structures chimiques des composés médicamenteux dans les vector embeddings générés ci-dessus, nous pouvons mesurer leur similarité avec les protéines cibles. Les chercheurs peuvent ainsi se concentrer sur les pistes les plus prometteuses, ce qui accélère la découverte et le développement de médicaments.
Renforcer la pertinence de la recherche avec la recherche sémantique
Les moteurs de recherche traditionnels ont souvent du mal à comprendre la véritable intention qui se cache derrière les requêtes des utilisateurs, ce qui se traduit par des résultats non pertinents. Supposons qu'une entreprise incorpore ses documents internes dans des vecteurs et les stocke dans une base de données vectorielle. Les employés peuvent alors effectuer des recherches dans ces documents en utilisant le chat humain normal. Les données intégrées les plus proches de l'intégration de la question de l'employé pourraient être récupérées par la base de données vectorielle et envoyées à ChatGPT dans le cadre d'une invite à générer une réponse textuelle de type humain à la question de l'employé. La réponse serait la plus proche en fonction des données de l'entreprise. Ce processus global est appelé [RAG (Retrieval Augmented Generation)] (https://zilliz.com/use-cases/llm-retrieval-augmented-generation). L'ajout d'une compréhension sémantique des documents d'une entreprise peut améliorer considérablement la pertinence de la recherche interne pour cette entreprise et éviter les [hallucinations de l'IA] (https://zilliz.com/glossary/ai-hallucination).
Systèmes de recommandation
Les systèmes de recommandation sont essentiels pour les plateformes en ligne, mais les recommandations génériques peuvent être décevantes. Les encastrements vectoriels offrent une solution en nous permettant de représenter à la fois les utilisateurs et les articles sous forme d'encastrements. En mesurant la similarité entre l'utilisateur et l'article pour générer des encastrements vectoriels, nous pouvons faire des recommandations personnalisées adaptées aux préférences uniques de chaque utilisateur. Cela conduit à des systèmes de recommandation plus efficaces et, espérons-le, à un engagement accru de l'utilisateur.
Détection des anomalies
L'identification de modèles inhabituels dans les données est cruciale pour diverses applications telles que la détection des fraudes, la sécurité des réseaux et la surveillance des équipements industriels. Les encastrements vectoriels constituent un outil puissant pour la détection des anomalies. En représentant les points de données sous forme d'encastrements, nous pouvons calculer les distances ou les dissimilitudes entre les points de données. Des distances considérables peuvent signaler des anomalies potentielles qui doivent être étudiées. Cela nous permet d'identifier les problèmes de manière proactive et de contribuer à l'identification précoce des anomalies et à leur prévention.
Différents types d'encastrements vectoriels en fonction de la nature des données représentées
Les embeddings vectoriels peuvent également être divisés en embeddings de mots, embeddings d'images, embeddings de graphes, embeddings multimodaux, etc, en fonction de l'application et de la nature des données représentées. Voici quelques-uns des types d'encastrements vectoriels les plus courants.
- Les encastrements de mots représentent les mots comme des vecteurs numériques dans un espace vectoriel continu. Ils sont entraînés sur de grands corpus de textes comme Wikipédia en utilisant divers modèles comme Word2Vec, GloVe ou fastText. Ces modèles utilisent différents mécanismes pour représenter chaque mot comme un vecteur de nombres. Word2Vec génère des ancrages de mots en prévoyant un mot dans un énorme corpus textuel. Il définit des relations linguistiques entre les mots. Par exemple, il peut représenter "roi" et "reine" comme des vecteurs proches l'un de l'autre dans l'espace, montrant leur [similarité sémantique] (https://zilliz.com/glossary/semantic-similarity). GloVe, quant à lui, s'appuie sur les données de cooccurrence des mots pour construire les vecteurs. GloVe peut représenter les mots "glace" et "eau" comme des vecteurs proches les uns des autres parce qu'ils apparaissent souvent ensemble dans un texte et partagent une relation sémantique. fastText porte les enchâssements de mots à un niveau inférieur à celui du mot, ce qui permet de traiter les mots hors du vocabulaire ou les variations.
Intégrations de phrases et de documents : Les encastrements de phrases et de documents représentent des phrases ou des documents entiers sous forme de vecteurs numériques à l'aide de modèles tels que Doc2Vec et BERT. Doc2Vec s'appuie sur le paradigme Word2Vec pour générer des encodages au niveau du document, ce qui permet d'encoder des documents ou des passages entiers. BERT (Bidirectional Encoder Representations from Transformers) prend en compte le contexte de chaque terme dans une phrase, ce qui permet de générer des vecteurs d'encastrements très sensibles au contexte.
Image Embeddings : Les CNN peuvent produire des encastrements d'images grâce à l'extraction de caractéristiques à différentes couches du réseau. Ils constituent une approche précieuse pour la classification et la recherche d'images. Par exemple, une photo de chat peut avoir un vecteur d'intégration d'image avec des caractéristiques qui représentent ses oreilles, sa fourrure et sa queue. D'autres modèles, comme Inception et ResNet, comportent également des couches capables d'extraire des caractéristiques des images. Un modèle Inception peut générer une intégration qui représente les attributs visuels d'une image, tels que des objets ou des motifs.
Intégrations de séries temporelles : Vous pouvez intégrer des données de séries temporelles à l'aide de réseaux neuronaux à mémoire à long terme (LSTM) et à unité récurrente gérée (GRU), qui peuvent capturer les dépendances temporelles. Les encastrements basés sur les LSTM ou les GRU peuvent capturer les dépendances temporelles pour les données de séries temporelles telles que les cours boursiers. Par exemple, ces encastrements vectoriels peuvent représenter des schémas dans les mouvements des cours boursiers.
Intégrations audio : Dans le traitement audio, les embeddings de coefficients cepstraux de fréquence mélodique (MFCC) représentent les données audio pour les tâches de classification audio. Dans la reconnaissance vocale, les embeddings MFCC capturent les caractéristiques acoustiques des signaux audio. Par exemple, ils peuvent représenter le contenu spectral des mots parlés.
Graph Embedding : Considérons un graphe de réseau social. Node2Vec peut générer des encastrements de nœuds où des utilisateurs similaires (nœuds) ont des vecteurs proches. Par exemple, les utilisateurs ayant des intérêts similaires peuvent avoir des vecteurs d'intégration similaires. Vous pouvez également utiliser des réseaux neuronaux de graphes (GNN) pour générer des encastrements de nœuds et capturer des relations complexes dans les graphes. Les GNN peuvent représenter les utilisateurs et les articles dans un système de recommandation et prédire les interactions entre l'utilisateur et l'article.
Applications des encastrements vectoriels
Voici comment vous pouvez appliquer les encastrements vectoriels dans différents domaines.
Recherche de similarité vectorielle d'images, de vidéos et d'audio (https://zilliz.com/learn/vector-similarity-search) : Vous pouvez extraire des embeddings d'images, d'images vidéo ou de segments audio en utilisant des techniques telles que les CNN pour l'extraction d'images ou de caractéristiques. Conservez ces enregistrements dans une base de données vectorielle. Lorsqu'un utilisateur demande une image, une séquence vidéo ou un clip audio, il récupère les éléments similaires en mesurant la similarité entre leurs séquences d'intégration.
Découverte de médicaments par l'IA : En encodant les structures chimiques des composés dans des encastrements, vous pouvez utiliser ces encastrements pour mesurer la similarité entre les composés médicamenteux et prédire les protéines cibles potentielles des composés médicamenteux.
- [Moteur de recherche sémantique] (https://zilliz.com/glossary/semantic-search) : Les encastrements vectoriels améliorent la capacité des moteurs de recherche en faisant correspondre le sens des requêtes aux documents pertinents, améliorant ainsi la pertinence de la recherche.
Système de recommandation : Vous pouvez représenter les utilisateurs et les articles sous forme d'encastrements. Mesurez la similarité entre l'utilisateur et l'élément pour formuler des recommandations personnalisées. Les recommandations sur mesure améliorent l'expérience de l'utilisateur.
Détection d'anomalies : En représentant les points de données sous forme d'encastrements, vous pouvez identifier des modèles inhabituels dans les données. Pour ce faire, vous calculez la distance ou la dissimilarité entre les points de données. Les points de données présentant de grandes distances sont des anomalies potentielles. Cela peut être utile pour la détection des fraudes, la sécurité des réseaux, l'équipement industriel ou la surveillance des processus.
Pour en savoir plus sur l'intégration vectorielle et les [cas d'utilisation des bases de données vectorielles] (https://zilliz.com/use-cases).
Pourquoi utiliser les embarquements vectoriels ?
Reconnaissance des formes : Les encastrements vectoriels capturent les modèles, les similitudes et les dissemblances dans les données. Les modèles d'apprentissage automatique bénéficient d'encastrements représentant des motifs significatifs, ce qui améliore les performances dans des tâches telles que la classification et le regroupement.
Réduction de la dimensionnalité : Les embeddings réduisent la dimensionnalité des données. Ils transforment les données de grande dimension en vecteurs de dimension inférieure, ce qui simplifie les tâches de calcul et améliore souvent l'efficacité.
Compréhension sémantique : Les encastrements vectoriels codent les relations sémantiques entre les points de données, ce qui permet aux machines de comprendre et d'interpréter plus facilement des informations complexes.
Traitement efficace : Les vecteurs numériques sont efficaces d'un point de vue informatique. Les algorithmes d'apprentissage automatique peuvent traiter les données numériques plus rapidement et à moindre coût.
- Apprentissage par transfert** : Les encastrements préformés, tels que les encastrements de mots dans le [NLP] (https://zilliz.com/learn/A-Beginner-Guide-to-Natural-Language-Processing) ou les encastrements d'images dans la vision par ordinateur, peuvent être affinés pour des tâches spécifiques. Cela réduit la nécessité de disposer de grandes quantités de données étiquetées, accélère la convergence des modèles et améliore leurs performances.
FAQ sur l'intégration vectorielle
Où stockez-vous les embarquements vectoriels ?
Vous pouvez stocker les incorporations vectorielles dans une base de données vectorielles comme Milvus, une base de données en mémoire comme Redis, des bases de données comme PostgreSQL ou votre système de fichiers. Le choix de l'endroit où stocker les embeddings vectoriels dépend de facteurs tels que le volume de données, les schémas d'accès et les exigences spécifiques de l'application.
Quelle est la différence entre les bases de données vectorielles et les encodages vectoriels ?
Les bases de données vectorielles sont des bases de données spécialisées qui indexent, stockent et récupèrent des données vectorielles. En revanche, les intégrations vectorielles sont des représentations numériques de points de données (tels que des phrases, des images ou d'autres objets) dans un espace vectoriel continu. Les encastrements capturent des relations et des modèles significatifs dans les données, tandis que les bases de données stockent les vecteurs et optimisent les recherches de similarité sur la base de [métriques de similarité] vectorielles (https://docs.zilliz.com/docs/search-metrics-explained).
Qu'est-ce qu'un vecteur ?
Les vecteurs représentent des données non structurées à l'aide de tableaux de nombres multidimensionnels. Les exemples incluent les vecteurs audio, les vecteurs d'image, la vidéo ou le texte. Ils permettent des opérations telles que la recherche vectorielle. Les algorithmes de recherche tels que KNN, ANNS ou HNSW organisent les données de manière à accélérer le calcul de la distance entre les vecteurs. La distance entre les vecteurs détermine la similarité, et les vecteurs les plus proches sont renvoyés lors de la recherche. Cette méthode est utile pour le regroupement, la détection d'anomalies, la recherche inversée d'images, la réponse à des questions de chat ou l'élaboration de recommandations. La création de la structure de données pour une recherche vectorielle efficace s'appelle la création de l'[index vectoriel] (https://zilliz.com/learn/vector-index).
Les embeddings sont-ils différents des vecteurs ?
Embeddings vs. vecteurs : Techniquement, un vecteur est un objet mathématique fondamental représenté par un tableau multidimensionnel de nombres, tandis que les embeddings sont une technique permettant de transformer des données non structurées en représentations vectorielles à l'aide d'opérations mathématiques qui capturent les relations sémantiques entre les points de données. Mais dans la plupart des cas, en particulier dans le contexte de l'apprentissage automatique, les "vecteurs" et les "embeddings" peuvent être utilisés de manière interchangeable.
Qu'est-ce qu'un index vectoriel ?
Un index vectoriel, également appelé index de base de données vectorielle ou index de similarité, est une structure de données utilisée dans les bases de données vectorielles pour organiser et optimiser la recherche de données vectorielles sur la base de métriques de similarité. Les index FLAT, IVF_FLAT, IVF_PQ, IVF_SQ8, HNSW et SCANN pour les recherches ANN basées sur l'unité centrale et GPU_IVF_FLAT et GPU_IVF_PQ pour les recherches ANN basées sur le GPU sont des exemples d'index.
Quelle est la différence entre les embeddings pré-entraînés et les embeddings personnalisés ?
Les embeddings pré-entraînés proviennent de modèles d'apprentissage profond pré-entraînés appelés checkpoints. Ces points de contrôle sont généralement des [modèles de transformation] (https://zilliz.com/glossary/transformer-models) open-source qui ont été formés sur des données publiques. Les embeddings personnalisés proviennent de vos propres modèles d'apprentissage profond entraînés sur vos propres données d'entraînement personnalisées et spécifiques à votre domaine.
La base de données vectorielles de Zilliz crée-t-elle des emboîtements vectoriels ?
Oui. Zilliz Cloud est un service de base de données vectorielles entièrement géré par Milvus, capable de créer, de stocker et de récupérer des milliards d'embeddings vectoriels.
Zilliz Cloud est doté d'une puissante fonction Pipelines, qui vous permet de convertir des données non structurées en embeddings vectoriels consultables de haute qualité. Cette fonctionnalité rationalise le flux de travail de vectorisation pour les développeurs, couvrant la création, la récupération et la suppression de vecteurs pour des opérations rapides et efficaces. Elle minimise également les coûts de maintenance pour les développeurs et les entreprises en éliminant le besoin d'adopter des piles technologiques supplémentaires comme les modèles d'intégration pour construire leurs applications.
Meilleures bases de données vectorielles pour les encodages vectoriels
Il n'existe pas de "meilleure" base de données vectorielles universelle ; le choix dépend de vos besoins. Il est donc essentiel d'évaluer l'évolutivité, les fonctionnalités, les performances et la compatibilité d'une base de données vectorielles avec vos cas d'utilisation particuliers.
Les bases de données vectorielles modernes doivent être capables de rechercher efficacement des vecteurs, de filtrer à l'aide de métadonnées et d'effectuer des recherches sémantiques et des recherches par mot-clé. Elles doivent également être évolutives, configurables et performantes pour gérer les charges de travail au niveau de l'entreprise.
Un outil d'analyse comparative open-source bien connu pour faciliter l'évaluation est [ANN-Benchmark] (https://github.com/erikbern/ann-benchmarks/). ANN-Benchmark vous permet de représenter graphiquement les résultats des tests de rappel/requêtes par seconde de divers algorithmes sur la base d'un certain nombre d'ensembles de données précalculés. Il représente le taux de rappel en abscisse et le nombre de requêtes par seconde en ordonnée, illustrant ainsi les performances de chaque algorithme à différents niveaux de précision d'extraction.
Outre l'utilisation d'outils d'analyse comparative, vous pouvez également consulter ces tableaux comparatifs des principales bases de données vectorielles open-source et services de bases de données vectorielles entièrement gérés sur leur architecture, leur évolutivité, leurs performances, leurs cas d'utilisation, leurs coûts et leurs ensembles de fonctionnalités.
- Qu'est-ce qu'un emboîtement vectoriel ?
- Comment sont créés les encastrements vectoriels ?
- Encastrements de vecteurs épars, denses et binaires
- Un guide simple pour la création d'embeddings vectoriels
- Comment fonctionne l'intégration ?
- Différents types d'encastrements vectoriels en fonction de la nature des données représentées
- Applications des encastrements vectoriels
- Pourquoi utiliser les embarquements vectoriels ?
- FAQ sur l'intégration vectorielle
Contenu
Commencez gratuitement, évoluez facilement
Essayez la base de données vectorielle entièrement managée conçue pour vos applications GenAI.
Essayer Zilliz Cloud gratuitement