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 correzione | Descrizione | Tipo di opzione |
|---|---|---|
max_num_levels |
Il numero massimo di livelli di centroidi 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 applicate durante la creazione di un indice 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 degli alberi a due livelli, puoi aumentare il num_leaves_value quando crei 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 delle query migliori con una perdita di richiamo minima (in genere inferiore all'1-2%).Imposta su FLAT se è richiesto un richiamo del 99% o superiore. |
Creazione dell'indice (facoltativo) |
scann.enable_inline_filtering |
Attiva il supporto per il filtro in linea che esegue query sui dati e applica i filtri direttamente all'interno di un'operazione di ricerca di similarità vettoriale. Queste query di similarità vettoriale utilizzano filtri sulle stesse tabelle di database e completano la valutazione dei filtri durante il calcolo della distanza per l'identificazione del vicino più prossimo. Questa opzione è disattivata per impostazione predefinita. Per attivare il filtro in linea, imposta questo parametro su true. Se noti un deterioramento delle prestazioni, imposta su false.Questa opzione è disponibile in anteprima. |
Runtime della query (facoltativo) |
scann.enable_pca |
Attiva l'analisi delle componenti principali (PCA), una tecnica di riduzione della dimensionalità utilizzata per ridurre automaticamente
le dimensioni dell'embedding, quando possibile. Questa opzione è attivata per impostazione predefinita. Imposta su false se noti un deterioramento del richiamo. |
Creazione dell'indice (facoltativo) |
scann.num_leaves_to_search |
Questo flag di database controlla il numero assoluto di foglie o partizioni da cercare, consentendoti di trovare un compromesso tra richiamo e QPS. Il valore predefinito è l'1% del valore impostato in num_leaves. Un valore più alto comporta un richiamo migliore, ma un QPS inferiore. Allo stesso modo, un valore più basso comporta un richiamo inferiore, ma un QPS più alto. |
Runtime della query (facoltativo) |
scann.pre_reordering_num_neighbors |
Quando impostato, il flag di database 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 comporta un richiamo migliore, ma un QPS inferiore. Imposta questo valore su 0 per disattivare il riordinamento. Il valore predefinito è 0 se PCA non è attivato durante la creazione dell'indice. In caso contrario, il valore predefinito è 50 x K, dove K è il limite specificato nella query. |
Runtime della query (facoltativo) |
scann.num_search_threads |
Il numero di thread di ricerca per la ricerca multithread. Questo può contribuire a ridurre la latenza delle singole query utilizzando più di un thread per la ricerca ANN ScaNN nelle applicazioni sensibili alla latenza. Questa impostazione non migliora la latenza delle singole query se il database è già vincolato dalla CPU. Il valore predefinito è 2. |
Runtime della query (facoltativo) |