Embedding e ricerca vettoriale
Un embedding trasforma un pezzo di testo in una lista di numeri (un vettore) che ne cattura il significato. Testi con significato simile ottengono vettori vicini tra loro — anche se non condividono alcuna parola. È questo il trucco dietro la ricerca semantica e il RAG.
L'intuizione
Immagina ogni frase posizionata come un punto in un enorme spazio multidimensionale, disposto in modo che i significati simili stiano vicini tra loro. "Come reimposto la mia password?" finisce vicino a "Ho dimenticato il mio login", lontano da "la migliore pizza di Roma".
Ricerca semantica vs per parole chiave
- La ricerca per parole chiave corrisponde alle parole letterali ("password" trova "password").
- La ricerca semantica corrisponde al significato — "non riesco ad accedere" trova il documento sul reset della password anche senza la parola "password".
I risultati migliori spesso combinano entrambe (ricerca ibrida).
Come funziona una ricerca vettoriale
- Crea l'embedding dei tuoi documenti (di solito suddivisi in chunk) e memorizza i vettori in un database vettoriale.
- Al momento della query, crea l'embedding della query.
- Trova i vettori più vicini (per similarità/distanza del coseno).
- Restituisci quei chunk — tipicamente per darli in pasto al RAG.
Note pratiche
- Il chunking conta. Troppo grandi = corrispondenze rumorose; troppo piccoli = contesto perso. Calibralo.
- Usa un solo modello di embedding in modo coerente — i vettori di modelli diversi non sono confrontabili.
- Metadati + filtri (data, fonte, tipo) rendono il recupero molto più preciso.
- Un database vettoriale non è sempre necessario — per corpora piccoli, una semplice ricerca in memoria va bene.