Présentation des performances des requêtes vectorielles ScaNN
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Cette page présente une présentation conceptuelle de l'amélioration des performances des requêtes vectorielles avec l'index ScaNN.
L'index ScaNN utilise une indexation basée sur la quantification arborescente. Dans les techniques de quantification arborescente, les index apprennent un arbre de recherche avec une fonction de quantification (ou 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 permet de compresser la taille de l'index. Cette élagage accélère l'évaluation de la similarité (c'est-à-dire de 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 voisin le plus proche, vous devez partitionner l'arborescence de votre index ScaNN de la manière la plus adaptée à vos données et à vos requêtes.
Une caractéristique commune de la génération actuelle de modèles d'encapsulation haute dimensionnelle est qu'ils peuvent encore conserver une grande partie des informations avec une dimensionnalité beaucoup plus faible. Par exemple, 90% des informations peuvent être conservées avec seulement 20% des dimensions de l'encapsulation. Pour accélérer ces ensembles de données, AlloyDB SCANN effectue automatiquement une réduction des dimensions à l'aide de l'analyse des composants principaux (voir scann.enable_pca ci-dessous) sur les vecteurs indexés, ce qui réduit encore l'utilisation du processeur et de la mémoire pour la recherche vectorielle. Étant donné que la réduction des dimensions entraîne toujours une perte de rappel mineure dans l'index, AlloyDB SCANN compense cette perte par une étape de classement initiale avec un plus grand nombre de candidats de vecteurs PCA de l'index, puis les classe à nouveau en fonction des vecteurs d'origine (voir scann.pre_reordering_num_neighbors).
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/09/04 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Difficile à comprendre","hardToUnderstand","thumb-down"],["Informations ou exemple de code incorrects","incorrectInformationOrSampleCode","thumb-down"],["Il n'y a pas l'information/les exemples dont j'ai besoin","missingTheInformationSamplesINeed","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/09/04 (UTC)."],[[["\u003cp\u003eScaNN index employs tree-quantization to accelerate vector similarity scoring by pruning the search space and compressing index size.\u003c/p\u003e\n"],["\u003cp\u003eOptimal tree partitioning in ScaNN is crucial for achieving high query-per-second rates and recall in nearest-neighbor queries.\u003c/p\u003e\n"],["\u003cp\u003eAlloyDB ScaNN automatically reduces dimensionality using Principal Component Analysis (PCA) to enhance speed and minimize resource consumption for high-dimensional embedding datasets.\u003c/p\u003e\n"],["\u003cp\u003eAlloyDB ScaNN compensates for recall loss from PCA by initially ranking a larger pool of PCA'ed vector candidates and subsequently re-ranking them using the original vectors.\u003c/p\u003e\n"]]],[],null,["# ScaNN vector query performance overview\n\nThis page gives a conceptual overview of improving vector query performance with the ScaNN Index.\n\nScaNN index uses tree-quantization based indexing. In Tree-quantization\ntechniques, indexes learn a search tree together with a quantization (or\nhashing) function. When you run a query, the search tree is used to prune the\nsearch space while quantization is used to compress the index size. This pruning\nspeeds up the scoring of the similarity (i.e., distance) between the query vector\nand the database vectors.\n\nTo achieve both a high query-per-second rate (QPS)\nand a high recall with your nearest-neighbor queries, you must partition\nthe tree of your `ScaNN` index in a way that is most appropriate to your data\nand your queries.\n\nA common characteristic of the current generation of high-dimensional embedding models is they can still retain much of the information at much lower dimensionality, for example 90% of the information can be retained with only 20% of the embedding's dimensions. To help speed up such datasets, AlloyDB ScaNN will automatically perform dimension reduction using Principal Component Analysis (see `scann.enable_pca` below) on the indexed vectors which further reduces cpu \\& memory usage for the vector search. Because dimension reduction still causes minor recall loss in the index, AlloyDB ScaNN compensates through an initial ranking step with a larger number of PCA'ed vector candidates from the index then re-ranking them by the original vectors (see `scann.pre_reordering_num_neighbors`).\n\nWhat's next\n-----------\n\n- [Get started with vector embeddings using AlloyDB AI](https://codelabs.developers.google.com/alloydb-ai-embedding#0)."]]