Dopo aver suddiviso i documenti in blocchi e arricchito i blocchi, il passaggio successivo consiste nel generare incorporamenti per tali blocchi e per tutti i campi di metadati su cui si prevede di eseguire ricerche vettoriali. Un incorporamento è una rappresentazione matematica di un oggetto, ad esempio testo. Quando viene eseguito il training di una rete neurale, vengono create molte rappresentazioni di un oggetto e ogni rappresentazione ha connessioni ad altri oggetti nella rete. Un incorporamento è una delle rappresentazioni dell'oggetto selezionato perché acquisisce il significato semantico dell'oggetto.
Poiché un incorporamento è una rappresentazione matematica di tale oggetto e tale rappresentazione ha connessioni a rappresentazioni di altri oggetti, è possibile confrontare gli oggetti matematicamente. Un esempio famoso per mostrare in che modo gli incorporamenti acquisiscono il significato semantico e le relazioni tra loro è:
embedding("king") - embedding("man") + embedding("woman") ≈ embedding("queen")
Gli incorporamenti vengono confrontati tra loro usando le nozioni di somiglianza e distanza. Il diagramma seguente illustra come confrontare gli incorporamenti.
Figura 1. Confronto tra incorporamenti
In una soluzione Di generazione aumentata (RAG) di recupero, spesso si incorpora la query utente usando lo stesso modello di incorporamento dei blocchi e si cercano vettori pertinenti dal database per restituire i blocchi più rilevanti in modo semantico. Il testo originale dei blocchi pertinenti viene quindi passato al modello linguistico di grandi dimensioni come dati di base.
Nota
Questa caratteristica dei vettori sottolinea l'importanza di pulire i blocchi in modo che la prossimità matematica possa essere monitorata più strettamente con la pertinenza semantica.
Questo articolo fa parte di una serie. Leggere l'introduzione.
Importanza del modello di incorporamento
Il modello di incorporamento scelto può avere un effetto significativo sulla pertinenza dei risultati della ricerca vettoriale. Uno dei fattori chiave da considerare quando si sceglie un modello di incorporamento è il vocabolario del modello. Ogni modello di incorporamento viene sottoposto a training con un vocabolario specifico. Ad esempio, la dimensione del vocabolario di BERT è di circa 30.000 parole.
Il vocabolario di un modello di incorporamento è importante a causa del modo in cui i modelli di incorporamento gestiscono le parole che non sono nel loro vocabolario. Anche se la parola non è nel suo vocabolario, il modello deve comunque calcolare un vettore per esso. A tale scopo, molti modelli suddivideno le parole in parole secondarie, che trattano come token distinti o aggregano i vettori per le parole secondarie per creare un singolo incorporamento.
Diagramma che mostra la parola istogramma suddivisa nelle parole secondarie seguenti: his, ta e mine
Figura 2. Suddivisione di una parola sconosciuta in parole secondarie
Si prenda un esempio fittizio in cui la parola "histamine" non si trova nel vocabolario del modello di incorporamento. "Istamina" ha un significato semantico come un rilascio chimico del corpo, che causa molti sintomi di allergie. Poiché il modello di incorporamento non contiene "istamina", potrebbe suddividerlo in parole secondarie nel suo vocabolario, ad esempio "his", "ta" e "mine". I significati semantici di queste parole secondarie non sono vicini al significato di "istamina". I valori vettoriali singoli o aggregati delle parole secondarie producono corrispondenze vettoriali peggiori rispetto a se "istamina" si trovassero nel vocabolario del modello.
Scelta di un modello di incorporamento
Determinare il modello di incorporamento corretto per il caso d'uso è un'attività umana. La sovrapposizione con il vocabolario del modello di incorporamento con le parole dei dati deve essere un fattore chiave da considerare quando si sceglie il modello di incorporamento.
Figura 3. Scelta di un flusso del modello di incorporamento
La prima cosa da determinare è se il contenuto è specifico del dominio. Ad esempio, i documenti sono specifici di un caso d'uso, dell'organizzazione o di un settore? Un buon modo per determinare la specificità del dominio consiste nel verificare se le entità e le parole chiave nel contenuto sono disponibili a livello generale o disponibili su Internet. In caso affermativo, è probabile che venga eseguito un modello di incorporamento generale.
Contenuto generale o non specifico del dominio
Quando si sceglie un modello di incorporamento generale, un buon punto di partenza è la classifica Hugging Face. Questo sito fornisce una classificazione aggiornata dei modelli di incorporamento. Valutare il funzionamento dei modelli con i dati, a partire dai modelli di rango superiore.
Contenuto specifico del dominio
Per il contenuto specifico del dominio, il primo passaggio consiste nel determinare se è disponibile un modello specifico del dominio che è possibile usare. Si supponga, ad esempio, che i dati si trovano nel dominio biomedico. È consigliabile prendere in considerazione l'uso del modello BioGPT, ovvero un modello linguistico pre-sottoposto a training su un ampio corpus di letteratura biomedica. Questo modello è destinato al data mining e alla generazione di testo biomedico. Se sono disponibili modelli di dominio, iniziare valutando il funzionamento di questi modelli con i dati.
Se non sono disponibili modelli specifici del dominio o i modelli specifici del dominio non offrono prestazioni appropriate, l'opzione successiva consiste nell'ottimizzare un modello di incorporamento generale con il vocabolario specifico del dominio.
Importante
Per qualsiasi modello scelto, è necessario verificare che la licenza sia adatta alle proprie esigenze e che il modello fornisca il supporto linguistico necessario.
Valutare i modelli di incorporamento
Due mezzi efficaci per valutare un modello di incorporamento visualizzano gli incorporamenti e valutano la distanza tra vettori di domanda e blocchi.
Visualizzazione degli incorporamenti
È possibile usare librerie come t-SNE per tracciare i vettori per i blocchi e la domanda in un grafico X-Y. È quindi possibile determinare quanto lontano i blocchi sono l'uno dall'altro e la domanda. La figura mostra i vettori di blocchi tracciati. Le due frecce che si avvicinano l'una all'altra rappresentano due vettori di blocchi, mentre l'altra freccia rappresenta un vettore di domanda. È possibile usare questa visualizzazione per comprendere quanto lontano la domanda proviene dai blocchi.
Figura 4. Tracciatura di incorporamenti
Calcolo delle distanze di incorporamento
Un mezzo programmatico per valutare il livello di utilizzo del modello di incorporamento con le domande e i blocchi consiste nel calcolare la distanza tra i vettori di domanda e i vettori di blocchi. È possibile utilizzare la distanza euclidea o la distanza di Manhattan.
Incorporamento dell'economia
Quando si sceglie un modello di incorporamento, esiste un compromesso tra prestazioni e costi. I modelli di incorporamento di dimensioni maggiori hanno in genere prestazioni migliori sui set di dati di benchmarking. Tuttavia, l'aumento delle prestazioni comporta un costo. I vettori più grandi richiedono più spazio per essere archiviati in un database vettoriale e richiedono più risorse di calcolo e tempo durante il confronto degli incorporamenti. I modelli di incorporamento più piccoli hanno in genere prestazioni inferiori sugli stessi benchmark. Richiedono meno spazio nel database vettoriale e richiedono meno calcolo e tempo durante il confronto degli incorporamenti.
Quando si progetta il sistema, è necessario tenere conto del costo dell'incorporamento in termini di archiviazione, calcolo e requisiti di prestazioni. La convalida delle prestazioni dei modelli tramite la sperimentazione è fondamentale. I benchmark disponibili pubblicamente sono principalmente set di dati accademici. La maggior parte dei risultati non può essere trasposta direttamente nei dati aziendali e nei casi d'uso. A seconda dei requisiti, è possibile favorire le prestazioni rispetto ai costi o accettare un compromesso di prestazioni sufficienti in cambio di costi inferiori.