Panoramica del rendimento delle query vettoriali di ScaNN
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
Questa pagina fornisce una panoramica concettuale del miglioramento delle prestazioni delle query sui vettori con l'indice ScaNN.
L'indice ScaNN utilizza l'indicizzazione basata sulla quantizzazione ad albero. Nelle tecniche di quantizzazione ad albero, gli indici apprendono un albero di ricerca insieme a una funzione di quantizzazione (o hashing). Quando esegui una query, l'albero di ricerca viene utilizzato per potare lo spazio di ricerca, mentre la quantizzazione viene utilizzata per comprimere le dimensioni dell'indice. Questa potatura
accelera il calcolo del punteggio della somiglianza (ovvero della distanza) tra il vettore della query
e i vettori del database.
Per ottenere sia un numero elevato di query al secondo (QPS)
che un'elevata percentuale di recall con le query del vicino più vicino, devi suddividere
la struttura ad albero dell'indice ScaNN nel modo più appropriato per i tuoi dati
e le tue query.
Una caratteristica comune dell'attuale generazione di modelli di embedding ad alta dimensione è che possono comunque conservare gran parte delle informazioni a una dimensione molto inferiore, ad esempio il 90% delle informazioni può essere conservato con solo il 20% delle dimensioni dell'embedding. Per velocizzare questi set di dati, AlloyDB ScaNN eseguirà automaticamente la riduzione delle dimensioni utilizzando l'analisi dei componenti principali (vedi scann.enable_pca di seguito) sui vettori indicizzati, il che riduce ulteriormente l'utilizzo di CPU e memoria per la ricerca di vettori. Poiché la riduzione delle dimensioni causa ancora una lieve perdita di richiamo nell'indice, AlloyDB ScaNN compensa tramite un passaggio di ranking iniziale con un numero maggiore di candidati vettori PCA dall'indice, quindi li rielegge in base ai vettori originali (vedi scann.pre_reordering_num_neighbors).
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Difficile da capire","hardToUnderstand","thumb-down"],["Informazioni o codice di esempio errati","incorrectInformationOrSampleCode","thumb-down"],["Mancano le informazioni o gli esempi di cui ho bisogno","missingTheInformationSamplesINeed","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 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)."]]