L'index ScaNN utilise l'indexation basée sur la quantification arborescente, dans laquelle les index apprennent une arborescence de recherche avec 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 l'attribution de scores à 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é pour 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 pour 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 d'AlloyDB AI effectue automatiquement une réduction de la dimensionnalité
à 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
scann.enable_pca.
Étant donné que la réduction de la dimensionnalité entraîne une légère perte de rappel dans l'index, l'index ScaNN d'AlloyDB AI compense cette perte en effectuant d'abord une étape de classement avec un plus grand nombre de candidats vecteurs ACP de l'index. Ensuite, ScaNN reclasse les candidats vecteurs ACP par les vecteurs d'origine.
Pour en savoir plus, consultez scann.pre_reordering_num_neighbors.
Étape suivante
- Découvrez les bonnes pratiques pour ajuster les index ScaNN.
- Faites vos premiers pas avec les embeddings vectoriels à l'aide d'AlloyDB AI.
- En savoir plus sur l'index ScaNN d'AlloyDB AI