Stessi dati, stessa query — ma una strategia di ricerca diversa. Trascinare il punto di query, regolare nprobee premi “Esegui ricerca ” per vedere come “ IVF ” salti la maggior parte dei dati.
nprobe: questi si illuminano. Tutti gli altri cluster vengono saltati completamente.Il compromesso: più nprobe → più cluster analizzati → recall più elevato ma maggiore lentezza. Più piccolo nprobe → più veloce, ma si potrebbero tralasciare i veri vicini che si trovano in cluster non analizzati. Provare a impostare nprobe = 1 e trascinare la query vicino al confine di un cluster per osservare il calo del recall.
IVF (Inverted File) è un indice approssimativo del vicino più prossimo basato sul clustering. In fase di costruzione, l’algoritmo k-means suddivide tutti i vettori in nlist cluster, ciascuno rappresentato dal proprio centroide. Al momento della query, la ricerca confronta innanzitutto la query solo con i centroidi, seleziona i nprobe e scansiona solo i vettori al loro interno, tralasciando tutto il resto.)
Milvus fornisce diverse varianti di " IVF " che sacrificano la memoria a favore della precisione: IVF_FLAT memorizza i vettori grezzi (massima precisione), IVF_SQ8 comprime ogni dimensione in un byte (~4 volte meno memoria, con un piccolo costo in termini di recall), e IVF_PQ applica la quantizzazione del prodotto per una compressione molto più elevata con un costo di recall maggiore.
nlist (tempo di costruzione): il numero di cluster k-means. Un punto di partenza comune è 4 × sqrt(N) per N vettori. Un numero maggiore di cluster implica che ciascuno sia più piccolo — scansioni più veloci, ma la scansione dei centriidi costa di più e gli effetti di confine aumentano.nprobe (tempo di query): quanti cluster scansionare per ogni query. Questa è la principale leva di regolazione tra recall e latenza — esattamente ciò che controlla il cursore sopra. Inizia da circa nlist / 16 e aumentare fino a quando il recall non raggiunge l’obiettivo desiderato.IVF si costruisce rapidamente, ha un overhead di memoria ridotto rispetto ai vettori ed è facile da comprendere — ma a parità di obiettivo di recall, HNSW di solito risponde alle query più velocemente in memoria. Scegli IVF quando ricostruisci spesso gli indici (la velocità di costruzione è importante), quando la memoria è limitata (IVF_SQ8/IVF_PQ), o quando desideri un comportamento di scansione prevedibile e ottimizzabile. Scegliere HNSW per la minima latenza delle query in memoria e DiskANN quando i vettori non rientrano più affatto in RAM.
Tutti e tre raggruppano i vettori allo stesso modo; differiscono nel modo in cui i vettori vengono memorizzati all’interno dei cluster. « IVF_FLAT » conserva i vettori float grezzi (miglior recall). « IVF_SQ8 » quantizza ogni dimensione a 8 bit, riducendo la memoria di circa 4 volte con una piccola perdita di recall. « IVF_PQ » sostituisce i vettori con brevi codici di quantizzazione del prodotto per ottenere la massima compressione e la maggiore perdita di recall.
Una regola empirica comune è che nlist = 4 × sqrt(N) per N vettori; quindi ottimizzare nprobe al momento della query. Un valore maggiore di nprobe scansiona più cluster: maggiore recall, maggiore latenza. Iniziare con circa nlist/16 e aumentare fino a quando il recall su un insieme di query tenuto da parte non soddisfa l’obiettivo.
A causa dei confini dei cluster. Se la query si trova vicino al bordo di un cluster, alcuni dei suoi veri vicini potrebbero trovarsi in un cluster adiacente che non era tra i cluster nprobe scansionati. È possibile osservarlo nella visualizzazione trascinando il punto di query vicino a un confine con nprobe = 1.
A parità di recall, l’algoritmo « HNSW » è solitamente più veloce per la ricerca in memoria, ma utilizza più memoria e richiede più tempo per essere compilato. L’algoritmo « IVF » si compila rapidamente e si abbina bene alla quantizzazione (SQ8/PQ) quando la memoria è limitata. Per i set di dati che superano completamente i limiti di RAM, considerare invece DiskANN.
Approfondisci: leggi la documentazione "IVF_FLAT " per i parametri di indicizzazione, oppure consulta " Index Explained " per la guida completa alle decisioni.
Osserva passo dopo passo la ricerca sul grafo multistrato — dai salti su autostrada alle passeggiate locali.
Scopri come PQ-in-RAM + full-vectors-on-SSD ti permette di effettuare ricerche su set di dati dell’ordine dei miliardi su un laptop.
Trascinare un punto di query e passare tra « L2 », «Cosine» e « IP » per osservare come cambia il «più vicino».