Per quanto possa sembrare controintuitivo, alla base dei modelli linguistici c’è la matematica. È un discorso affascinante ed accademico, e anche stavolta useremo alcune analogie per semplificare.
Come spiegare i modelli LLM in maniera semplice?
Immaginate lo spazio logico in cui opera un LLM come un'enorme carta geografica in cui le parole sono vicine in base al loro significato, precisamente in base alle relazioni semantiche apprese durante l'addestramento. Gatto sarà vicinissimo a micio, abbastanza vicino a cane, molto lontano da ciclamino e lontanissimo da automobile. Al tempo stesso la regina, intesa come l’ape nel proprio alveare, sarà alquanto distante dalla Regina, intesa ad esempio come Elisabetta.
Questa è una delle basi di un LLM: capire la vicinanza delle parole e posizionarle su una mappa logica così da interpretare delle domande e generare delle risposte. Altro aspetto fondamentale sono i transformer, ma li vedremo in un'altra lezione.
Tuttavia una mappa di questo tipo non può contenere direttamente le parole. Le stringhe di testo non si prestano a funzioni matematiche avanzate che calcolano rapidamente concetti di vicinanza, come accade con i vettori, le matrici, le derivate. I modelli neurali operano su tensori numerici, non su stringhe.
Cosa si intende per embeding?
Il processo che trasforma parole in entità matematiche, vettori, è chiamato embedding, vale a dire la trasformazione di oggetti complessi in forme numeriche così da elaborarne significati e relazioni. Si parla di oggetti complessi perché si può realizzare un embedding anche di formati diversi, come quello di immagini, ma è sufficiente aver capito il significato e il meccanismo.
Quali sono le fasi di sviluppo di un progetto AI dei nostri giorni?
1. suddividere i documenti in blocchi (chunk) così da renderli “digeribili” al processo di embedding
2. processare i documenti (embedding) così da averli in una rappresentazione semantica e salvarli in un database vettoriale
3. quando l’utente esegue una richiesta, eseguire l’embedding della richiesta stessa
4. confrontare l’embedding dell’utente con il database (i db vettoriali mettono a disposizione appositi strumenti di confronto come la distanza coseno, il prodotto scalare, la “nearest neighbors search”)
5. attivare il modello LLM che riceve i documenti recuperati come contesto aggiuntivo e li usa per generare una risposta.
È sempre necessario utilizzare gli LLM e gli embedding?
Questo è un punto critico su cui insisto spesso con i clienti: non è sempre necessario utilizzare un LLM o un sistema AI. Svariate operazioni possono essere svolte ancora oggi “alla vecchia maniera”, con un database relazionale e dei processi schedulati oppure con un approccio misto, in cui ci si occupa dei primi 4 punti ma non è necessario utilizzare un LLM perché all’utente servono solo i documenti e non una sintesi testuale. Come spesso accade con le tecnologie emergenti (ricordate le applet Java?), una novità viene rapidamente percepita come un must-have, ma non è così, specie quando c’è un costo da sostenere.