Comprendere gli LLM, dalle caratteristiche di base ai criteri di scelta
Indice dell'articolo
In questo periodo in cui l’Intelligenza Artificiale Generativa sta raccogliendo grandissimo interesse – soprattutto dopo la pubblicazione di ChatGPT – i termini che fanno parte di questo settore sono sempre più presenti in articoli, pubblicazioni e documentazione di vario genere. Uno di questi è LLM, l’acronimo di Large Language Model, un concetto fondante per il settore ma che spesso rischia di essere confuso con altro quando si parla di API, prompt o servizi di AI.
In questo articolo, pertanto, cerchiamo di fare chiarezza, evitando di entrare in aspetti tecnici e scientifici che rischierebbero di essere eccessivamente complessi, delineando però caratteri comuni dei vari LLM per illustrare una panoramica attuale sullo scenario.
Cos’è un Large Language Model (LLM)?
Gli LLM appartengono all’ambito del Deep Learning ovvero quell’area dell’Intelligenza Artificiale basata sulle reti neurali. Sono quindi parte dell’AI in generale sebbene stiano dimostrando la loro potenza soprattutto nel settore dell’analisi e generazione di contenuti testuali ma anche grafici, audio e video. Nonostante le cronache citino molto spesso i modelli più noti, si consideri che questo settore è in fortissima espansione e di modelli ve ne sono decine in continua evoluzione. Per potersi districare in questo ambito e quindi comprendere la direzione verso cui orientare formazione ed investimenti aziendali è importante capire i pilastri fondanti di questo contesto.
Gli LLM possono essere considerati i “motori” che animano progetti di interazione come ChatGPT o Google Bard e sorprendono perché, generando dati, riescono a dimostrare una creatività che si avvicina a quella umana, a differenza di quello che è successo spesso nei precedenti decenni di Informatica dove la macchina era una pura “esecutrice”.
Non dimentichiamo che la prima cosa che sono in grado di fare questi modelli è comprendere il linguaggio umano, possono infatti essere considerati un’espressione di altissimo livello della NLP (Natural Language Processing). Questo è fondamentale per poter istituire quella fase di dialogo con l’utente che è parte integrante dell’Intelligenza Artificiale odierna, l’approccio che possiamo ravvisare nei prompt ma anche in tool di elaborazione dati come PandasAI dove la “tradizionale” formulazione di comandi per l’analisi dati viene sostituita da quesiti che l’analista pone alla base dati usando il linguaggio naturale.
La “L” di Large che troviamo all’inizio dell’acronimo fornisce un’idea delle grandi dimensioni di questi modelli, dimensioni che sono ravvisabili in almeno due aspetti: dati di addestramento e parametri. Vediamo quindi cosa sono e come influiscono sulle prestazioni del modello.
La mole dei dati di addestramento degli LLM
La mole di dati su cui si basa la fase di apprendimento di questi modelli. Derivando, come detto, da un settore del Learning automatico è naturale che si inizi da una fase di training dove il modello, partendo da zero, inizia ad imparare studiando informazioni. Molti modelli si basano su dataset giganteschi, formati dai più grossi siti internet accessibili pubblicamente (come Wikipedia, Reddit, Twitter), ma anche archivi di quotidiani, libri, pubblicazioni scientifiche e altro materiale.
I parametri di un modello AI: cosa sono e come influenzano un LLM
I large language model sono spesso definiti modelli iperparametrici. La fase di training permette di alimentare le decine di milioni (o miliardi) di parametri che costituiscono la loro logica interna.
Il numero di parametri rappresenta una misura della complessità del modello. Un maggior numero di parametri metterà un LLM in condizione di riconoscere strutture più articolate nei dati che studia ed offrirà migliori risultati nelle attività in cui poi questo verrà messo al lavoro.
Considerando che oltre all’interpretazione del testo gli LLM devono occuparsi anche di generarlo, maggiore è il numero di parametri e maggiore sarà la varietà degli aspetti che potremo includere: un pò come dire che con più parametri sarà possibile dettagliare e personalizzare maggiormente il risultato.
L’impiego di tutti questi parametri nella definizione del modello è stato reso possibile da un mix di tecnologie, hardware più potente per l’elaborazione in parallelo, calcolo in cluster e avvento del Cloud.
I diversi compiti che i LLM svolgono sul testo
I lavori di cui si occupano gli LLM possono essere spesso suddivisi in categorie differenti. Concentriamoci, ad esempio, su quelli di natura “testuale” dimenticando per un momento elaborazione di immagini, video e multimedia vari, potremmo pensare ad attività:
- fortemente basate sull’input come la classificazione di testo. Pensiamo ad esempio alla cosiddetta sentiment analysis ovvero come far leggere ad un programma una recensione testuale su un e-commerce o un commento su un candidato alle elezioni e valutare se l’animo di chi l’ha scritto appartiene ad una specifica categoria (favorevole/contrario, soddisfatto/scontento, etc.);
- basate soprattutto sull’output e su questo non possiamo non pensare ai molti esperimenti che hanno fatto il giro del mondo in cui si chiede a ChatGPT cose tipo “crea una ricetta che includa questi ingredienti….”;
- caratterizzate da un certo equilibrio tra input e output come traduzioni da una lingua all’altra o riassunti dove entra una determinata quantità di codice e ne esce una inferiore che ne sintetizza il contenuto.
Parliamo di questo perché le architetture interne degli LLM sono spesso progettate pensando ad una specifica categoria di questi lavori ma derivano tutte da una stessa grande base: il Transformer. Si tratta di una tipologia di rete neurale, ideata nel 2017 e descritta nel documento intitolato “Attention is all you need” che differisce dalle precedenti RNN (Recurrent Neural Network) o CNN (Convolutional Neural Network) pubblicate decenni prima.
I token negli LLM
Proprio l’aspetto dell’attention è un elemento basilare del transformer che ha lo scopo, in sintesi, di stabilire relazioni semantiche ovvero di significato tra i vari termini. Questo aspetto risulta estremamente utile sia nella comprensione del testo, sia in fase di generazione dove vengono prodotte parole attinenti con le precedenti. Per comprendere l’importanza di questi aspetti dobbiamo pensare un pò a come noi umani leggiamo un testo. Non riconosciamo a tutte le parole la stessa importanza infatti alcune di essere potrebbero essere eliminate rendendo la frase stessa meno corretta ma comunque comprensibile (quello che succede quando sentiamo qualcuno parlare una lingua che non padroneggia perfettamente ma riuscire comunque a risultare comprensibile). Inoltre, i termini non vengono considerati singolarmente ma valutati a gruppi e nell’ambito del contesto.
I transformer acquisiscono i termini in input applicando un meccanismo di tokenization ovvero trasformano le stringhe in token che possono essere parole intere o parti di esse. Non a caso, le tariffe di utilizzo degli LLM sono basate sulla quantità di token gestiti in ingresso ed in uscita.
Tali termini però sono comunque stringhe e, come si sa, tutto nell’Informatica lavora meglio con entità matematiche. Per questo, si arriva ad una fase di embedding dove i token vengono mappati su vettori che li collocano in una sorta di spazio in cui, possiamo immaginare, più le parole sono attinenti tra loro e più vengono collocate vicine.
Encoder e decoder nei transformer
Ma gli elementi che dominano l’architettura dei Transformer sono essenzialmente due: l’encoder ed il decoder. Questi costituiscono i due blocchi principali di un Transformer ed i loro ruoli ci riportano a quella distinzione fatta a inizio paragrafo.
I loro ruoli sono descritti nel paper cui abbiamo già accennato, “Attention is all you need”, ma in sintesi possiamo dire che l’encoder si occupa dell’interpretazione dell’input mentre il decoder della generazione di output.
Gli LLM infatti hanno architetture ispirate ai Transformer ma a seconda dei casi possono essere encoder-only, decoder-only o encoder-decoder.
LLM encoder-only
La categoria encoder-only si contraddistingue per lavori basati sull’input come il question answering o la classificazione del testo ed in essa troviamo LLM come:
- BERT, prodotto da Google nel 2018, esistente nella versione BASE (110 milioni di parametri) e LARGE (340 milioni di parametri);
- RoBERTa, sviluppato da Facebook AI nel 2019, basato su 355 milioni di parametri.
LLM decoder-only
La categoria decoder-only è molto più affollata e comprende LLM molto abili nel generare testo, casistica che può includere sia il dialogo con esseri umani, la generazione di contenuti e copywriting, ma anche l’esecuzione di traduzioni. Tra questi LLM troviamo:
- le varie versioni di GPT prodotte da OpenAI, tra cui GPT 3.5, uno dei motori di ChatGPT, sviluppato nel 2022 con 175 miliardi di parametri;
- LLaMA di Meta del 2023 (pubblicato anche nella versione LLaMA2) disponibili entrambi in varie versioni che partono da 7 miliardi di parametri e arrivano, rispettivamente, a 65 e a 70 miliardi di parametri;
- PaLM e PaLM2 di Google (il secondo risponde attualmente interrogando Google Bard). Il primo esiste in tre versioni che vanno dagli 8 ai 540 miliardi di parametri mentre il secondo si basa su 340 miliardi di parametri.
LLM decoder-encoder
Esiste poi il mondo degli LLM encoder-decoder, meno affollato, nel quale troviamo però prodotti interessanti come BART (2020) di Facebook AI che arriva a 137 miliardi di parametri e T5 di Google, pubblicato nel 2022, che tra le sue varie versioni può arrivare a 1,56 trilioni di parametri.
I criteri per la scelta di un LLM
Alla luce di queste distinzioni, quando dobbiamo valutare un LLM da includere nelle nostre progettualità quali elementi dovremmo notare principalmente?
Ecco alcuni dei fattori più rilevanti, non in ordine di importanza:
- Numero di parametri: come abbiamo visto, rappresentano un elemento fondamentale per la descrittività dei risultati. Non sembrerà mai di avere un LLM con “troppo pochi” parametri, considerando che ammontano comunque a milioni o miliardi, ma valutarne la quantità potrà comunque essere un fattore di interesse per comprendere il livello tecnologico e le scelte progettuali adottate. Non sempre dovremo però scegliere semplicemente il modello con più parametri infatti, come abbiamo citato, esistono varie versioni per ogni LLM e l’ingegnerizzazione al loro interno si basa su tutta una serie di fattori;
- Patrimonio informativo di training: ricordiamo che parliamo sempre di tecnologie basate su Learning e pre-training. Uno dei fattori che da subito è stato contestato a ChatGPT era il termine temporale cui risalivano le informazioni utilizzate per la fase di apprendimento. Inoltre, a seconda delle progettualità che ci interessano consideriamo che esistono (e ne nasceranno continuamente) LLM settoriali specializzati in notizie di settore (pensiamo a BloombergGPT, specializzato in campo finanziario, per citare solo uno dei possibili esempi);
- Tipologia di lavoro che dobbiamo affrontare: abbiamo visto che una delle tecnologie fondanti per gli LLM sono i Transformer ma con un’architettura applicata in maniera variabile. Anche in base al lavoro da affrontare (generazione di dati, sintesi di testi, traduzioni, etc.) possiamo orientarci verso un modello con architettura più adatta tra encoder-only, decoder-only o mista;
- Piattaforma applicativa: oltre agli aspetti più tecnologici, un LLM che ci interessa andrà inserito materialmente nei nostri progetti. In base al linguaggio di programmazione, alla struttura del progetto o alle competenze nostre o del personale aziendale potremmo scegliere un’implementazione piuttosto che un’altra. Potrebbe, ad esempio, essere il caso di introdurre API come quelle di OpenAI o optare per una implementazione via Cloud con strumenti come AWS Bedrock o Vertex AI di Google. Anche il contesto puramente implementativo è in via di velocissima evoluzione e lo testimoniamo idee sempre nuove come quando è stato proposto LLamafile, distribuzione di LLama con modello in un unico file;
- Requisiti tecnici: l’Intelligenza Artificiale ha reso ancora più indispensabili componenti elettroniche come le GPU. La scelta di un modello può dipendere anche dalla necessità del loro impiego e gli altri eventuali requisiti hardware da soddisfare. L’hardware rappresenta da sempre un investimento sostanzioso pertanto test appropriati potrebbero rivelare modelli adatti al raggiungimento dei propri obiettivi sebbene meno onerosi;
- Open source vs proprietari: come in ogni altro ambito adottare una soluzione – un LLM in questo caso – open source o proprietario ha una certa importanza in fatto di costi, espandibilità, possibilità di utilizzo, etc.;
- Learning sui propri dati: un learning basato su tutte le informazioni disponibili al mondo offre grandissime possibilità ma molto spesso le aziende hanno bisogno che i modelli imparino a capire e generare dati in base a ciò che contengono i documenti aziendali. Poter applicare le fasi di training a questi è importantissimo ed è una scelta che si lega ad altri fattori precedentemente citati come l’eventuale natura open source degli LLM, la possibilità di installarli in locale e vari requisiti applicativi/tecnologici soprattutto considerando che i propri dati potrebbero essere conservati in archivi offline e non condivisibili, per motivi di sicurezza, in ambienti distribuiti;
- Costi: per lo più, l’utilizzo di LLM as a service viene contabilizzato in token in input ed in uscita. A seconda del LLM da utilizzare, i costi cambiano e quindi una valutazione di tale aspetto può orientare verso l’uno o verso l’altro soprattutto interagendo con hub in cui si può scegliere tra una moltitudine di modelli.