Parametri di correzione
I seguenti parametri di indice e flag di database vengono utilizzati insieme per trovare il giusto equilibrio tra richiamo e QPS.
Parametro di ottimizzazione | Descrizione | Tipo di opzione |
---|---|---|
max_num_levels |
Il numero massimo di livelli di centroide dell'albero di clustering K-means.
|
Creazione dell'indice (facoltativo) |
num_leaves |
Il numero di partizioni da applicare a questo indice. Il numero di partizioni a cui applichi un indice al momento della creazione influisce sulle prestazioni dell'indice. Aumentando le partizioni per un numero fisso di vettori, crei un indice più granulare, che migliora il richiamo e le prestazioni delle query. Tuttavia, questo comporta tempi di creazione dell'indice più lunghi. Poiché gli alberi a tre livelli vengono creati più velocemente di quelli a due livelli, puoi aumentare il valore di num_leaves_value durante la creazione di un indice ad albero a tre livelli per ottenere prestazioni migliori.
|
Creazione dell'indice (obbligatorio) |
quantizer |
Il tipo di quantizzatore che vuoi utilizzare per l'albero K-means. Il valore predefinito è impostato su SQ8 , che offre prestazioni migliori delle query con una perdita minima di recupero (in genere inferiore all'1-2%).Imposta questo valore su FLAT se è necessario un recupero del 99% o superiore. |
Creazione dell'indice (facoltativo) |
scann.enable_pca |
Attiva l'analisi delle componenti principali (PCA), una tecnica di riduzione delle dimensioni utilizzata per ridurre automaticamente
le dimensioni dell'incorporamento quando possibile. Questa opzione è attivata per impostazione predefinita. Imposta su false se noti un peggioramento del richiamo. |
Creazione dell'indice (facoltativo) |
scann.pct_leaves_to_search (Preview) |
Questo flag del database consente di [gestire automaticamente il numero di foglie o partizioni da cercare](/alloydb/omni/kubernetes/15.7.1/docs/ai/maintain-vector-indexes#manage-leave-to-search-split-partitions). Imposta questo valore sul numero attuale di partizioni. Ad esempio, per cercare l'1% del numero attuale di partizioni, imposta questo valore su 1 . Puoi impostare questo parametro su qualsiasi valore compreso tra 0 e 100 . Il valore predefinito è 0 , che disattiva questo parametro e utilizza `scann.num_leaves_to_search` per calcolare il numero di foglie da cercare. Il parametro è disattivato per impostazione predefinita. |
(Facoltativo) Durata di esecuzione della query |
scann.num_leaves_to_search |
Questo flag del database controlla il numero assoluto di foglie o partizioni da cercare, il che ti consente di trovare un compromesso tra richiamo e QPS. Il valore predefinito è l'1% del valore impostato in num_leaves . Un valore più alto comporterà un richiamo migliore, ma QPS inferiore. Allo stesso modo, un valore inferiore comporterà un richiamo inferiore, ma un QPS più elevato. |
(Facoltativo) Durata di esecuzione della query |
scann.pre_reordering_num_neighbors |
Il flag del database, se impostato, specifica il numero di vicini candidati da considerare durante le fasi di riordinamento dopo che la ricerca iniziale identifica un insieme di candidati. Imposta questo parametro su un valore superiore al numero di vicini che vuoi che la query restituisca. Un valore più alto genera un richiamo migliore, ma un numero inferiore di QPS. Imposta questo valore su 0 per disattivare il riordino. Il valore predefinito è 0 se PCA non è abilitato durante la creazione dell'indice. In caso contrario, il valore predefinito è 50 x K , dove K è il valore LIMIT specificato nella query. |
(Facoltativo) Durata di esecuzione della query |
scann.num_search_threads |
Il numero di thread di ricerca per la ricerca multithread. Ciò può contribuire a ridurre la latenza di una singola query utilizzando più di un thread per la ricerca ScaNN ANN nelle applicazioni sensibili alla latenza. Questa impostazione non migliora la latenza di una singola query se il database è già vincolato alla CPU. Il valore predefinito è 2 . |
(Facoltativo) Durata di esecuzione della query |