Choisir un index vectoriel

Sélectionnez une version de la documentation :

Cette page décrit les stratégies de recherche vectorielle AlloyDB/AI et explique quand utiliser chacune d'elles. Par défaut, AlloyDB utilise la recherche des k plus proches voisins (KNN) pour trouver les vecteurs similaires à une requête. Les index vectoriels implémentent une stratégie de recherche appelée "Approximate Nearest Neighbor" (ANN). Lorsque vous créez un index vectoriel, AlloyDB AI utilise ANN, qui offre de meilleures performances que KNN. N'oubliez pas que lorsque vous sélectionnez un index vectoriel, vous devez trouver un équilibre entre la latence des requêtes et le rappel.

Le rappel mesure l'efficacité d'une recherche pour récupérer tous les éléments pertinents pour une requête donnée. Par exemple, imaginez que vous ayez 100 embeddings, chacun représentant une entité de votre base de données. Vous interrogez vos embeddings avec un vecteur cible et les limitez à 10 résultats. Une recherche vectorielle KNN trouve les 10 vecteurs les plus proches exacts à l'aide d'une méthode de calcul par force brute, ce qui donne un rappel de 100 %. AlloyDB/AI utilise cette méthode par défaut si aucun index de recherche vectorielle n'est créé ni choisi. Lorsque vous créez un index vectoriel dans AlloyDB pour PostgreSQL, il utilise généralement ANN, qui peut partitionner les vecteurs en fonction de leur similarité pour faciliter une récupération plus rapide. Par conséquent, en utilisant ANN, les 10 vecteurs renvoyés dans l'exemple précédent ne sont peut-être pas exactement les 10 vecteurs les plus proches en termes de distance. Si seulement 8 des 10 vecteurs récupérés sont les plus proches dans l'espace de votre vecteur de requête, votre rappel est de 80 %.

La latence des requêtes définit la vitesse à laquelle les résultats de recherche sont générés. Par exemple, la latence est calculée en fonction du temps passé sur une recherche pour renvoyer les vecteurs après l'envoi d'une requête.

Choisir votre stratégie de recherche

Lorsque vous effectuez une recherche vectorielle dans AlloyDB, choisissez l'une des stratégies de recherche suivantes :

Stratégie de recherche Description Cas d'utilisation
K plus proches voisins (KNN) Algorithme qui trouve les points de données des k voisins les plus proches d'un point de données de requête donné. Lorsque vous effectuez une recherche vectorielle sans créer d'index, une recherche KNN est effectuée par défaut.
  • Votre application est très sensible à l'exactitude et vous avez besoin des correspondances les plus proches.
  • Vous avez moins de 100 000 vecteurs.
Voisins les plus proches approximatifs (ANN) Algorithme qui trouve approximativement les points de données les plus proches. Les réseaux neuronaux artificiels divisent les points de données client existants en petits groupes en fonction de leurs similitudes.
  • Votre application nécessite une faible latence.
  • Vous avez plus de 100 000 vecteurs.

Google vous recommande de créer un index vectoriel pour optimiser les performances de vos requêtes de recherche vectorielle. Pour en savoir plus sur l'utilisation de l'index ANN pour les recherches de similarité, consultez Créer des index et interroger des vecteurs à l'aide de ScaNN.

Étapes suivantes