Il progresso dell’AI negli ultimi anni potrebbe essere attribuito a molte cose, ma uno di questi è sicuramente il Large Language Model (LLM). Molti strumenti AI per la generazione del testo sono alimentati da LLM; ad esempio, ChatGPT utilizza il modello GPT.
Un modello linguistico è un modello NLP probabilistico
Il machine learning è un campo dell’intelligenza artificiale che si concentra sugli studi di generalizzazione dei dati con algoritmi statistici. In un certo senso, il machine learning cerca di raggiungere l’intelligenza artificiale attraverso lo studio dei dati in modo che il programma possa eseguire compiti intelligenti senza istruzioni. Storicamente, il campo che interseca tra informatica e linguistica è chiamato campo del Natural Language Processing. Il campo riguarda principalmente qualsiasi attività di elaborazione della macchina per il testo umano, come i documenti di testo.
In precedenza, questo campo era limitato solo al sistema basato su regole ma è diventato più ampio con l’introduzione di avanzati algoritmi semi-supervisionati e non supervisionati che permettono al modello di apprendere senza alcuna direzione.
Uno dei modelli avanzati per fare ciò è il modello linguistico. Il modello linguistico è un modello NLP probabilistico per eseguire molti compiti umani come la traduzione, la correzione grammaticale e la generazione del testo.
La vecchia forma del modello linguistico utilizza approcci puramente statistici come il metodo n-gram, dove l’assunzione è che la probabilità della parola successiva dipenda solo dai dati di dimensione fissa della parola precedente. Tuttavia, l’introduzione del Neural network ha detronizzato l’approccio precedente. Un rete neurale artificiale, o NN, è un programma informatico che imita la struttura dei neuroni del cervello umano. L’approccio della rete neurale è buono da usare perché può gestire il riconoscimento di pattern complessi dai dati del testo e gestire dati sequenziali come il testo.
Ecco perché il modello linguistico attuale si basa solitamente su NN.
I grandi modelli linguistici, o LLM, sono modelli di apprendimento automatico che apprendono da un enorme numero di documenti dati per eseguire la generazione del linguaggio di uso generale. Sono ancora un modello linguistico, ma l’enorme numero di parametri appresi dalla NN li rende “grandi”. In termini laici, il modello potrebbe eseguire come scrivono gli umani prevedendo molto bene le parole successive dalle parole di input date. Esempi di compiti LLM includono la traduzione del linguaggio, chatbot macchina, risposta alle domande e molti altri. Da qualsiasi sequenza di input dati, il modello potrebbe identificare le relazioni tra le parole e generare output adatti dall’istruzione. Quasi tutti i prodotti di AI generativa che vantano qualcosa utilizzando la generazione del testo sono alimentati dagli LLM. ChatGPT, Bard di Google e molti altri utilizzano LLM come base del loro prodotto.
Come funzionano le reti neurali e il deep learning
Come spiegato in precedenza, LLM è un modello neural network addestrato su enormi quantità di dati testuali. Per comprendere meglio questo concetto, sarebbe utile capire come funzionano le reti neurali e l’apprendimento profondo. Nel livello precedente, abbiamo spiegato che un neurone neurale artificiale è un modello che imita la struttura neurale del cervello umano. L’elemento principale della rete neurale sono i neuroni, spesso chiamati nodi. Per spiegare meglio il concetto, guarda l’architettura tipica della rete neurale nell’immagine sotto.
Come possiamo vedere nell’immagine, la rete neurale consiste in tre strati:
- Strato di input, dove riceve le informazioni e le trasferisce agli altri nodi nel prossimo strato.
- Strati dei nodi nascosti dove avvengono tutti i calcoli.
- Strato dei nodi di output dove si trovano gli output computazionali.
Si chiama deep learning quando addestriamo il nostro modello di rete neurale con due o più strati nascosti. Si chiama profondo perché utilizza molti strati intermedi. Il vantaggio dei modelli di apprendimento profondo è che imparano automaticamente ed estraggono caratteristiche dai dati che i modelli tradizionali di machine learning non sono in grado di fare. Nei grandi modelli linguistici, l’apprendimento profondo è importante poiché il modello si basa su architetture di reti neurali profonde.
Quindi, perché si chiama LLM? Perché miliardi di strati vengono addestrati su enormi quantità di dati testuali. Gli strati produrrebbero parametri del modello che aiutano il modello a imparare schemi complessi nel linguaggio, inclusa la grammatica, lo stile di scrittura e molto altro.
Il processo semplificato dell’addestramento del modello è mostrato nell’immagine qui sotto.
Il processo ha mostrato che i modelli potrebbero generare testo pertinente sulla base della probabilità di ogni parola o frase dei dati di input. Negli LLM, l’approccio avanzato utilizza l’apprendimento auto-supervisionato e semi-supervisionato per raggiungere la capacità generale. L’apprendimento auto-supervisionato è una tecnica in cui non abbiamo etichette e invece i dati di addestramento forniscono il feedback di addestramento stesso. È utilizzato nel processo di addestramento LLM poiché i dati di solito mancano di etichette. In LLM, si potrebbe utilizzare il contesto circostante come indizio per prevedere le parole successive.
Al contrario, l’apprendimento semi-supervisionato combina i concetti di apprendimento supervisionato e non supervisionato con una piccola quantità di dati etichettati per generare nuove etichette per una grande quantità di dati non etichettati. L’apprendimento semi-supervisionato è solitamente utilizzato per LLM con specifiche esigenze di contesto o dominio.
I transformers nei grandi modelli linguistici: cosa sono?
Abbiamo discusso che l’LLM si basa sul modello neural network con tecniche di deep learning. L’LLM è tipicamente costruito sulla base dell’architettura basata su trasformatori (transformers) negli ultimi anni. Il trasformatore si basa sul meccanismo multi-head attention introdotto da Vaswani et al. (2017) ed è stato utilizzato in molti LLM. I Transformers sono un’architettura del modello che cerca di risolvere i compiti sequenziali precedentemente riscontrati nelle RNN e LSTM. Il vecchio modo del Modello Linguistico era usare RNN e LSTM per elaborare i dati sequenzialmente, dove il modello avrebbe utilizzato ogni output di parola e li avrebbe riportati indietro in modo che il modello non dimenticasse. Tuttavia, hanno problemi con i dati di lunga sequenza una volta introdotti i trasformatori.
Prima di approfondire i transformers, introduciamo il concetto di encoder-decoder che era precedentemente utilizzato nelle RNN. La struttura encoder-decoder consente al testo di input e output di non essere della stessa lunghezza. L’uso tipico è la traduzione del linguaggio, che spesso ha una dimensione di sequenza diversa. La struttura può essere divisa in due. La prima parte si chiama encoder, che è una parte che riceve la sequenza dei dati e crea una nuova rappresentazione basata su essa. La rappresentazione sarebbe utilizzata nella seconda parte del modello, che è il decoder. Il problema con RNN è che il modello potrebbe aver bisogno di aiuto per ricordare sequenze più lunghe, anche con la struttura encoder-decoder sopra. Qui è dove il meccanismo attention potrebbe aiutare a risolvere il problema, uno strato che potrebbe risolvere problemi di input lunghi.
Il meccanismo attention è stato introdotto nel documento di Bahdanau et al. (2014) per risolvere le RNN tipo encoder-decoder concentrandosi su una parte importante dell’input del modello mentre si ha la previsione dell’output. La struttura del trasformatore è ispirata al tipo encoder-decoder e costruita con le tecniche del meccanismo attention, quindi non ha bisogno di elaborare i dati in ordine sequenziale. Il modello complessivo dei trasformatori è strutturato come l’immagine sotto.
Nella struttura, i trasformatori codificano la sequenza del vettore dati nell’incorporamento delle parole mentre utilizzano la decodifica per trasformare i dati nella forma originale. La codifica può assegnare una certa importanza all’input con il meccanismo attention.
Cos’è un vettore dati
Abbiamo parlato dei transformers che codificano il vettore dati, ma cos’è un vettore dati? Nel modello di apprendimento automatico, non possiamo inserire i dati naturali grezzi, quindi dobbiamo trasformarli in forme numeriche. Il processo di trasformazione si chiama word embedding, dove ogni parola di input viene elaborata attraverso il modello word embedding per ottenere il vettore dati. Possiamo utilizzare molti incorporamenti di parole iniziali, come Word2vec o GloVe, ma molti utenti avanzati cercano di affinarli utilizzando il loro vocabolario.
I transformers potrebbero accettare l’input e fornire un contesto più pertinente presentando le parole in forme numeriche come il vettore dati sopra. Negli LLM, gli incorporamenti di parole sono solitamente dipendenti dal contesto, generalmente raffinati in base ai casi d’uso e all’output previsto.