Présentation de la recherche vectorielle
Pour envoyer des commentaires ou demander de l'aide concernant cette fonctionnalité, envoyez un e-mail à l'adresse bq-vector-search@google.com.
Ce document présente la recherche vectorielle dans BigQuery. La recherche vectorielle vous permet de rechercher des représentations vectorielles continues pour identifier des entités sémantiquement similaires.
Les représentations vectorielles continues sont des vecteurs numériques de grande dimension qui représentent une entité donnée, comme un exemple de texte ou un fichier audio. Les modèles de machine learning (ML) utilisent des représentations vectorielles continues pour encoder la sémantique concernant ces entités afin de faciliter leur raisonnement et leur comparaison. Par exemple, une opération courante dans les modèles de clustering, de classification et de recommandation consiste à mesurer la distance entre les vecteurs dans un espace de représentation vectorielle afin de trouver les éléments les plus sémantiquement similaires.
Pour effectuer une recherche vectorielle, vous devez utiliser la fonction VECTOR_SEARCH
et éventuellement un index vectoriel. Lorsqu'un index vectoriel est utilisé, VECTOR_SEARCH
utilise la technique de recherche approximative du voisin le plus proche pour améliorer les performances de la recherche vectorielle, avec le compromis consistant à réduire le rappel et ainsi renvoyer des résultats plus approximatifs. La force brute est utilisée pour renvoyer des résultats exacts lorsqu'un index vectoriel n'est pas disponible. Vous pouvez choisir d'utiliser la force brute pour obtenir des résultats exacts même lorsqu'un index vectoriel est disponible.
Cas d'utilisation
La combinaison de la génération d'embeddings et de la recherche vectorielle permet de nombreux cas d'utilisation intéressants, la génération augmentée de récupération (RAG) étant la génération canonique. Voici d'autres cas d'utilisation possibles :
- À partir d'un lot de nouvelles demandes d'assistance, trouvez plusieurs demandes résolues similaires pour chacune. Transmettez les informations sur les demandes résolues à un grand modèle de langage (LLM) à utiliser comme contexte lors de la synthèse et de la suggestion de solutions pour les nouvelles demandes d'assistance.
- À partir d'une entrée de journal d'audit, identifiez les entrées les plus pertinentes au cours des 30 derniers jours.
- Générez des embeddings à partir des données de profils de patients, puis utilisez la recherche vectorielle pour trouver des patients ayant des profils similaires afin d'explorer les plans de traitement réussis prescrits à cette cohorte de patients.
- Étant donné les embeddings représentant les moments pré-accidentels de tous les capteurs et caméras d'un parc de bus scolaires, trouvez des moments similaires sur tous les autres véhicules du parc pour une analyse plus approfondie, un réglage et un réentraînement des modèles qui régissent les engagements des fonctionnalités de sécurité.
- À partir d'une image, recherchez les images les plus étroitement liées dans une table d'objets BigQuery et transmettez ces images à un modèle pour générer des sous-titres.
Tarification
L'instruction CREATE VECTOR INDEX
et la fonction VECTOR_SEARCH
utilisent les tarifs de calcul de BigQuery.
Pour l'instruction CREATE VECTOR INDEX
, seule la colonne indexée est prise en compte dans les octets traités.
Le traitement requis pour créer et actualiser vos index vectoriels est gratuit lorsque la taille totale des données de table indexées dans votre organisation est inférieure à la limite de 20 To. Pour accepter l'indexation au-delà de cette limite, vous devez fournir votre propre réservation pour la gestion des jobs de gestion des index. Les index vectoriels entraînent des coûts de stockage lorsqu'ils sont actifs. Vous pouvez consulter la taille de stockage d'index dans la vue INFORMATION_SCHEMA.VECTOR_INDEXES
.
Si l'index vectoriel n'est pas encore à 100 % de la couverture, vous êtes toujours facturé pour tout le stockage d'index indiqué dans la vue INFORMATION_SCHEMA.VECTOR_INDEXES
.
Quotas et limites
Pour en savoir plus, consultez la section Limites des index vectoriels.
Limites
- Les requêtes contenant la fonction
VECTOR_SEARCH
ne sont pas accélérées par BigQuery BI Engine. - Les règles de sécurité et de gouvernance des données BigQuery s'appliquent à l'utilisation de
VECTOR_SEARCH
. Pour en savoir plus, consultez la section Limites de la pageVECTOR_SEARCH
. Ces règles ne s'appliquent pas à la génération d'index vectoriels.
Étapes suivantes
- Apprenez-en plus sur la création d'un index vectoriel
- Suivez le tutoriel Rechercher des représentations vectorielles continues avec la recherche vectorielle pour apprendre à créer un index vectoriel, puis effectuez une recherche vectorielle de représentations vectorielles continues avec et sans l'index.
Suivez le tutoriel Générer et utiliser des représentations vectorielles continues de texte pour apprendre à effectuer les tâches suivantes :
- Générer des représentations vectorielles continues de texte.
- Créer un index vectoriel sur les représentations vectorielles continues.
- Effectuer une recherche vectorielle avec les représentations vectorielles continues pour rechercher du texte similaire.
- Effectuer une génération augmentée de récupération (RAG) en utilisant les résultats de la recherche vectorielle pour augmenter la saisie de la requête et améliorer les résultats.