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 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 la page sur la méthode 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 AlloyDB/AI ScaNN compense cette perte en effectuant d'abord une étape de classement avec un plus grand nombre de candidats vecteurs PCA de l'index. Ensuite, ScaNN reclasse les candidats vecteurs PCA par les vecteurs d'origine.
Pour en savoir plus, consultez la page scann.pre_reordering_num_neighbors.
Étapes suivantes
- 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 AlloyDB/AI