In che modo la quantizzazione vettoriale riduce un indice di ricerca domestico?

Eva Wong è la Technical Writer e smanettatrice residente di ZimaSpace. Una geek da sempre con una passione per homelab e software open-source, si specializza nel tradurre concetti tecnici complessi in guide accessibili e pratiche. Eva crede che l'auto-ospitare debba essere divertente, non intimidatorio. Attraverso i suoi tutorial, dà potere alla comunità di demistificare le configurazioni hardware, dalla costruzione del loro primo NAS al dominio dei container Docker.

La quantizzazione vettoriale riduce le dimensioni di un indice di ricerca domestico sostituendo i valori degli embedding ad alta precisione con codici compatti che approssimano i vettori originali.

Un server di ricerca privato può indicizzare centinaia di migliaia o milioni di segmenti provenienti da note, testo OCR, manuali, metadati fotografici, trascrizioni e record delle applicazioni. Memorizzare ogni embedding come valore in virgola mobile a precisione completa può rendere l'insieme di lavoro vettoriale più grande del testo sorgente stesso. La quantizzazione modifica la rappresentazione utilizzata per la ricerca, così ogni vettore occupa meno byte, accettando un'approssimazione controllata in cambio di una minore pressione su memoria e spazio di archiviazione.

Gli embedding a precisione completa usano diversi byte per ogni dimensione

Un embedding è un array di coordinate numeriche. Un vettore di 1.024 dimensioni memorizzato come valori float a 32 bit richiede 4.096 byte per i valori grezzi, prima di conteggiare collegamenti del grafo, ID, payload, overhead dell'allocatore o repliche.

Le rappresentazioni vettoriali compresse riducono i byte necessari per la parte vettoriale di un indice, consentendo a un insieme di lavoro ricercabile più ampio di rimanere residente su un server domestico con memoria limitata.

Moltiplicando queste dimensioni grezze per un milione di segmenti, i soli valori vettoriali non compressi arrivano a occupare diversi gigabyte. Più raccolte, repliche e indici di ricerca residenti aumentano ulteriormente l'ingombro sul server domestico. La quantizzazione agisce su questa rappresentazione numerica. Non comprime automaticamente i PDF sorgente, i metadati dei payload, gli indici invertiti o ogni collegamento del grafo associato a quei vettori.

La quantizzazione mappa coordinate dettagliate su un insieme più piccolo di rappresentazioni

L'idea generale è sostituire molti possibili valori in virgola mobile con un numero inferiore di stati rappresentabili. La mappatura esatta dipende dal fatto che il sistema utilizzi una famiglia di quantizzazione scalare, binaria, a prodotto, rotazionale o di altro tipo.

Le diverse modalità di quantizzazione vettoriale riducono le dimensioni della rappresentazione in modi differenti; perciò gli approcci scalare, binario e a prodotto non condividono un unico compromesso universale tra accuratezza e prestazioni.

Uno schema scalare può ridurre la precisione di ogni coordinata. Gli schemi binari codificano informazioni direzionali molto più approssimative. La quantizzazione a prodotto, trattata separatamente, divide un vettore in sottospazi e memorizza identificatori di codebook.

Il risultato comune è lo stesso: il motore di ricerca può mantenere una rappresentazione compatta e approssimata nel proprio insieme di lavoro attivo, invece di trasportare l'array originale a precisione completa durante ogni confronto tra candidati.

Vettori più piccoli riducono sia la memoria residente sia il traffico per il calcolo delle distanze

La ricerca carica ripetutamente i vettori candidati e li confronta con la query. Quando queste rappresentazioni sono più piccole, un numero maggiore di candidati entra nella cache della CPU o nella memoria dell'acceleratore e una quantità inferiore di dati deve attraversare la gerarchia della memoria.

I vettori approssimati compatti riducono lo spazio di archiviazione e il traffico di memoria durante la ricerca ampia dei candidati, ma le loro distanze approssimano le relazioni codificate dagli embedding originali a precisione completa.

Su un server domestico, il vantaggio riguarda spesso più la possibilità di mantenere residente l'indice attivo che i rapporti di compressione dichiarati. Evitare la pressione sulla memoria può impedire continui page fault su disco o la competizione con l'LLM locale, il database e gli altri container.

Il miglioramento della latenza dipende dal motore di ricerca, dalle istruzioni della CPU, dalla struttura dell'indice e da eventuali fasi aggiuntive di decodifica o ricalcolo del punteggio.

I vettori approssimati possono modificare l'ordine dei vicini

La quantizzazione è generalmente con perdita. Diversi vettori a precisione completa possono essere mappati su rappresentazioni compatte vicine o identiche; di conseguenza, le distanze approssimate non preservano esattamente ogni graduatoria originale.

La ricerca con perdita nel dominio compresso scambia la rappresentazione numerica esatta con un insieme di lavoro più piccolo o più veloce per la ricerca di similarità; per questo il recall deve essere misurato dopo la compressione.

Un segmento rilevante che con la precisione completa era appena più vicino di un altro può cambiare posizione dopo la compressione. L'effetto dipende dalla distribuzione dei dati, dal modello di embedding, dal quantizzatore, dalle dimensioni del codice e dalla difficoltà della query. Per questo i test del recall sono essenziali. Un'impostazione di compressione che sembra sicura con query semantiche generiche può comportarsi diversamente con manuali di prodotto molto simili o passaggi relativi a versioni ravvicinate.

Sovracampionamento e ricalcolo del punteggio possono recuperare accuratezza da un primo passaggio compatto

Un approccio comune esegue la ricerca nell'indice compresso per un numero di candidati superiore al top-k finale, quindi utilizza i vettori originali per ricalcolare le distanze esatte o a maggiore precisione su quell'insieme ridotto.

Il sovracampionamento con ricalcolo del punteggio può eseguire un'ampia ricerca su una rappresentazione compressa e poi ricalcolare le distanze a maggiore precisione per un insieme più piccolo di candidati prima della graduatoria finale.

Questo percorso ibrido mantiene i costosi vettori completi fuori dalla scansione ampia dei candidati, consentendo comunque di correggere i risultati al limite prima che le evidenze arrivino al sistema RAG.

Il compromesso è che conservare i vettori originali consuma ulteriore spazio su disco o memoria e che il ricalcolo del punteggio richiede più lavoro per ogni query. Un server domestico dovrebbe misurare l'ingombro complessivo, invece di conteggiare solo i byte compressi.

La quantizzazione risolve le dimensioni dei vettori, non ogni collo di bottiglia dell'indice di ricerca

Un indice HNSW memorizza anche la connettività del grafo, mentre filtri sui metadati, indici testuali, payload dei documenti, cache e buffer delle query consumano risorse proprie.

L'infrastruttura per la ricerca semantica comprende embedding, indicizzazione, filtraggio e fasi di recupero; quindi ridurre le dimensioni dei vettori influisce solo su un livello di risorse dell'intera pipeline di ricerca domestica.

Un indice HNSW contiene sia vettori sia un grafo di collegamenti; ciò significa che la compressione dei vettori non può ridurre l'ingombro completo dell'indice nello stesso rapporto dei byte grezzi degli embedding.

Hub Tecnologico e AI

Altro da leggere

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.