Présentation des performances des requêtes vectorielles ScaNN

Sélectionnez une version de la documentation :

Cette page présente les concepts liés à l'amélioration des performances des requêtes vectorielles à l'aide de l'index Scalable Nearest Neighbor (ScaNN) d'AlloyDB AI. Pour en savoir plus, consultez Créer des index et interroger des vecteurs.

L'index ScaNN utilise une indexation basée sur la quantification d'arbres, dans laquelle les index apprennent un arbre de recherche ainsi qu'une fonction de quantification (ou de hachage). Lorsque vous exécutez une requête, l'arborescence de recherche est utilisée pour élaguer l'espace de recherche, tandis que la quantification est utilisée pour compresser la taille de l'index. Cette opération d'élagage accélère la notation de la similarité (c'est-à-dire la distance) entre le vecteur de requête et les vecteurs de la base de données.

Pour obtenir à la fois un taux de requêtes par seconde (RPS) élevé et un rappel élevé avec vos requêtes de voisins les plus proches, vous devez partitionner l'arborescence de votre index ScaNN de la manière la plus appropriée à vos données et à vos requêtes.

Les modèles d'embedding de grande dimension peuvent conserver une grande partie des informations à une dimensionnalité beaucoup plus faible. Par exemple, vous pouvez conserver 90 % des informations avec seulement 20 % des dimensions de l'embedding. Pour accélérer le traitement de ces ensembles de données, l'index ScaNN AlloyDB/AI effectue automatiquement une réduction de dimension à l'aide de l'analyse en composantes principales (ACP) sur les vecteurs indexés, ce qui réduit encore l'utilisation du processeur et de la mémoire pour la recherche vectorielle. Pour en savoir plus, consultez la page sur la méthode scann.enable_pca.

Étant donné que la réduction de dimension entraîne une légère perte de rappel dans l'index, l'index ScaNN AlloyDB AI compense cette perte en effectuant d'abord une étape de classement avec un plus grand nombre de candidats vecteurs PCA issus de l'index. Ensuite, ScaNN réorganise les candidats vecteurs PCA par les vecteurs d'origine. Pour en savoir plus, consultez la page scann.pre_reordering_num_neighbors.

Étapes suivantes