Un database vettoriale può restituire vicini diversi dopo la compattazione perché gli stessi embedding possono essere riorganizzati in una struttura di ricerca approssimata ricostruita da zero.
Per un server RAG locale, il cambiamento può sembrare sospetto: non è stato intenzionalmente ricalcolato alcun embedding, eppure una query familiare restituisce un elenco top-k leggermente diverso dopo la manutenzione. La distinzione fondamentale è tra i valori dei vettori e l’indice ANN che li ricerca. La compattazione può preservare i primi ricostruendo il secondo.
La compattazione può sostituire diversi segmenti di ricerca con un nuovo indice
Un database vettoriale spesso accumula segmenti separati man mano che i documenti vengono inseriti, aggiornati ed eliminati. La compattazione consolida questi elementi, così il sistema deve cercare in meno strutture e trasportare meno dati obsoleti.
Qdrant espone ottimizzatori che mirano al numero e alle dimensioni dei segmenti, invece di trattare la raccolta come un unico grafo permanentemente fisso. Quando la compattazione crea un segmento ottimizzato più grande, la struttura fisica di ricerca può essere ricostruita anche se i vettori logici non sono cambiati.
Questa distinzione è importante per un indice RAG privato: gli embedding possono avere valori numerici identici prima e dopo la manutenzione, mentre il grafo di ricerca approssimata che li collega può essere diverso.
La ricerca dei vicini più prossimi approssimati dipende dalla topologia del grafo
HNSW non confronta una query con ogni vettore. Naviga in un grafo stratificato e segue un insieme limitato di connessioni promettenti, quindi il percorso attraverso il grafo influenza i candidati che vengono esaminati.
Elasticsearch spiega che le unioni dei segmenti possono richiedere di ricalcolare i grafi HNSW. Un grafo ricostruito può collegare gli stessi vettori in modo diverso, perché l’ordine di costruzione, lo stato delle eliminazioni e le euristiche del grafo influenzano gli archi.
Se due candidati hanno distanze molto simili, una piccola variazione della topologia può far entrare uno nell’insieme dei candidati mentre l’altro non viene mai visitato. Il risultato è un insieme diverso di vicini approssimati senza alcun cambiamento nel modello di embedding.
I parametri di ricerca determinano quanto del nuovo grafo viene esplorato
Dopo la compattazione, il database potrebbe cercare in un unico grafo più grande invece che in diversi grafi più piccoli. La stessa richiesta top-k può quindi attraversare un insieme di candidati diverso anche quando il budget di ricerca configurato sembra invariato.
Weaviate documenta il compromesso tra ef e qualità della ricerca HNSW: un elenco di candidati più ampio generalmente migliora il richiamo, aumentando però il lavoro necessario. In prossimità di una soglia di ordinamento, uno sforzo di ricerca ridotto rende i risultati più sensibili alla costruzione del grafo.
Una diagnosi utile consiste nel confrontare i risultati approssimati con una ricerca ad alto valore di ef o esatta su un piccolo insieme di test. Se i vicini esatti rimangono stabili mentre quelli ANN cambiano, la compattazione ha modificato il percorso di recupero, non i vettori.
Le eliminazioni e gli aggiornamenti modificano i nodi che sopravvivono alla ricostruzione
Prima della compattazione, i record eliminati o sostituiti possono ancora esistere fisicamente, con tombstone o strutture di gestione a livello di segmento. Le ricerche li filtrano, ma la loro presenza storica può influenzare il grafo costruito in precedenza.
Milvus spiega che HNSW memorizza una struttura di grafo esplicita oltre ai vettori grezzi. La ricostruzione dopo la rimozione dei record obsoleti crea un grafo a partire dall’insieme dei dati sopravvissuti.
Questo può alterare la connettività locale intorno a un documento domestico anche quando quel documento non è mai stato modificato. Una nota può acquisire o perdere un nodo ponte vicino, cambiando la regione raggiunta per prima dalla navigazione ANN.
Gli ex aequo e i quasi ex aequo possono cambiare anche quando le distanze non cambiano
Molti corpus privati contengono quasi duplicati: manuali ripetuti, file con versioni diverse, didascalie di foto, note copiate o segmenti con lo stesso testo standard. I loro punteggi di coseno o prodotto interno possono essere quasi indistinguibili.
La spiegazione di Pinecone su HNSW mostra come i limiti della navigazione del grafo determinino i vettori esaminati. Quando due elementi si trovano vicino alla soglia, un percorso diverso tra i candidati o un ordine differente in caso di parità può modificare il top-k restituito senza una differenza semantica significativa.
Le applicazioni dovrebbero quindi evitare di trattare la posizione 7 rispetto alla posizione 8 tra i vicini come un’identità permanente. Memorizza ID stabili dei documenti e confronta le distanze effettive quando è importante un comportamento deterministico.
La ricerca esatta separa il cambiamento dei dati dal cambiamento dell’ANN
La separazione più chiara consiste nel mantenere un piccolo insieme riproducibile di query e registrare, prima della manutenzione, gli embedding, la metrica delle distanze, il top-k esatto, il top-k approssimato, le impostazioni dell’indice e la versione del database.
La discussione di ZimaSpace sui cambiamenti del dominio degli embedding nel recupero privato tratta una categoria diversa di problemi: cambia lo spazio vettoriale stesso. La compattazione deve essere diagnosticata separatamente, perché può modificare il recupero approssimato lasciando intatto quello spazio.
La guida di ZimaSpace ai flussi di lavoro per la ricerca documentale e il RAG fornisce il contesto applicativo: l’identità stabile dei documenti e la valutazione sono importanti anche quando il livello ANN può essere approssimato.
Se cambiano i risultati esatti, esamina i vettori, i filtri, la normalizzazione, la metrica o le versioni dei dati. Se i risultati esatti restano invariati ma quelli ANN cambiano, la causa è la ricostruzione dell’indice, lo sforzo di ricerca, la gestione degli ex aequo o la disposizione dei segmenti.
La compattazione, quindi, non dovrebbe garantire lo stesso ordine dei vicini byte per byte in un indice approssimato. Per un ordinamento deterministico sono necessarie una ricerca più rigorosa o regole applicative per la gestione degli ex aequo.
FAQ
La compattazione modifica i vettori degli embedding?
Non di per sé. Una normale compattazione o unione dei segmenti riorganizza l’archiviazione e gli indici. Gli embedding cambiano solo se l’applicazione li ricalcola, li ricodifica, li rinormalizza o riscrive in altro modo i valori dei vettori.
I vicini più prossimi esatti dovrebbero cambiare dopo la compattazione?
Dovrebbero rimanere gli stessi quando i vettori sopravvissuti, la metrica e la rappresentazione numerica non cambiano, fatta eccezione per i veri ex aequo o per i dettagli dell’implementazione in virgola mobile.
La ricostruzione di HNSW può riprodurre esattamente il vecchio ordinamento?
Non sempre. HNSW è approssimato e la costruzione del grafo può essere sensibile all’ordine di inserimento, alla casualità, alle eliminazioni e ai dettagli dell’implementazione. Per un ordinamento esatto è necessario un confronto esaustivo o comunque deterministico.
Hub Tecnologico e AI
Altro da leggere

Stato di runtime vs stato persistente in Home Assistant: cosa deve sopravvivere al riavvio?
Home Assistant non conserva ogni valore in tempo reale; la configurazione, i registri, gli stati selezionati ripristinati, la cronologia e i dati di distribuzione...

Come autentica Home Assistant le sessioni locali e remote?
Le sessioni Home Assistant locali e remote utilizzano lo stesso modello di identità lato server; l'accesso remoto modifica il percorso e il confine TLS,...

Perché le query della cronologia di Home Assistant possono rallentare man mano che crescono i dati del Recorder?
La crescita del registratore può aumentare il costo delle query della cronologia quando l’intervallo richiesto coinvolge più righe, aumentano i cache miss o le...

