Embedding
Definizione rapida
Un embedding è un elenco di numeri (un vettore) che rappresenta il significato di un testo, immagine o altro elemento, in modo che elementi simili ottengano vettori vicini. Gli embedding sono ciò che rende possibile la ricerca per significato.
In questa pagina
Come funzionano gli embedding
Un modello di embedding legge un testo e produce un vettore di lunghezza fissa, tipicamente da alcune centinaia a qualche migliaio di numeri. Il modello è addestrato in modo che i testi con significati correlati si trovino vicini tra loro in quello spazio: “politica di rimborso” e “come posso riavere i miei soldi?” condividono quasi nessuna parola ma producono vettori vicini.
L'idea risale ai vettori di parole come word2vec (Mikolov e colleghi, 2013), che hanno appreso che le parole che appaiono in contesti simili hanno significati simili. Modelli a livello di frase come Sentence-BERT (2019) l'hanno estesa a frasi e passaggi interi, che è ciò di cui la ricerca e il question answering hanno bisogno.
A cosa servono
Le embedding potenziano la ricerca semantica: confrontano il vettore di una domanda con i vettori dei passaggi memorizzati e restituiscono il più vicino. Sono il passo di recupero della generazione aumentata da recupero (RAG). Servono anche per raggruppare conversazioni simili, rilevare duplicati, raccomandare prodotti simili e instradare un messaggio al giusto argomento.
I modelli di embedding multilingue collocano una domanda in francese e un passaggio in inglese vicini quando significano la stessa cosa, permettendo a una base di conoscenza di servire clienti in molte lingue.
Punti pratici
I vettori provenienti da modelli diversi non sono comparabili: se cambi il modello di embedding, ogni passaggio memorizzato deve essere ri-embedded. Le embedding catturano il significato, non valori esatti, quindi sono poco adatte a filtri precisi come un intervallo di prezzi o un riferimento di prodotto: questi necessitano di campi strutturati o ricerca per parole chiave. E i documenti lunghi devono essere suddivisi in passaggi prima di essere embedded, perché un vettore per un intero manuale offusca il suo contenuto.
I modelli di embedding differiscono anche nella copertura linguistica, nella dimensione (e quindi nel costo di archiviazione) e nel luogo in cui sono ospitati.
Embedding in AI SmartTalk
Ogni assistente AI SmartTalk utilizza un modello di embedding per tutta la sua conoscenza. I nuovi assistenti utilizzano per impostazione predefinita un modello multilingue ospitato nell'UE, e i modelli di embedding di OpenAI sono anche disponibili. I vettori sono memorizzati in PostgreSQL con pgvector e combinati con ricerca per parole chiave e trigrammi, in modo che i riferimenti di prodotto e i termini esatti siano trovati con la stessa affidabilità delle domande riformulate.
Domande frequenti
Qual è la differenza tra un embedding e un token?
Un token è un pezzo di testo, grosso modo un frammento di parola, che un modello legge. Un embedding è un vettore di numeri che rappresenta il significato — di un token, di una frase o di un intero passaggio.
Gli embedding sono la stessa cosa di un database vettoriale?
No. Gli embedding sono i vettori; un database o indice vettoriale li memorizza e trova quelli più vicini rapidamente.
Posso cambiare i modelli di embedding in seguito?
Sì, ma ogni elemento memorizzato deve essere ri-embedded con il nuovo modello, perché i vettori provenienti da modelli diversi vivono in spazi diversi e non possono essere confrontati.