L'indice ScaNN utilizza l'indicizzazione basata sulla quantizzazione ad albero, in cui 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 ridurre lo spazio di ricerca, mentre la quantizzazione viene utilizzata per comprimere le dimensioni dell'indice. Questa eliminazione velocizza il calcolo del punteggio di somiglianza, ovvero della distanza, tra il vettore della query e i vettori del database.
Per ottenere sia una frequenza di query al secondo (QPS) elevata sia un richiamo elevato con le query dei vicini più prossimi, devi partizionare l'albero dell'indice ScaNN nel modo più appropriato per i tuoi dati e le tue query.
I modelli di incorporamento ad alta dimensionalità possono conservare gran parte delle informazioni con una dimensionalità molto
inferiore. Ad esempio, puoi conservare il 90% delle informazioni con
solo il 20% delle dimensioni dell'incorporamento. Per velocizzare questi set di dati,
l'indice ScaNN di AlloyDB AI esegue automaticamente la riduzione delle dimensioni
utilizzando l'analisi delle componenti principali
(PCA) sui vettori indicizzati, il che riduce ulteriormente l'utilizzo di CPU e memoria per
la ricerca vettoriale. Per ulteriori informazioni, vedi
scann.enable_pca
.
Poiché la riduzione delle dimensioni causa una leggera perdita di richiamo nell'indice, l'indice
ScaNN di AlloyDB AI compensa la perdita di richiamo
eseguendo prima un passaggio di ranking
con un numero maggiore di candidati vettoriali PCAed dall'indice. Poi,
ScaNN riordina i candidati vettoriali PCA in base ai vettori originali.
Per ulteriori informazioni, vedi scann.pre_reordering_num_neighbors
.
Passaggi successivi
- Scopri le best practice per l'ottimizzazione degli indici ScaNN.
- Inizia a utilizzare gli incorporamenti vettoriali con AlloyDB AI.
- Scopri di più sull'indice ScaNN di AlloyDB AI.