LLM: che cos'è un modello linguistico di grandi dimensioni (LLM)?

Una tecnologia più recente, i modelli linguistici di grandi dimensioni (LLM) prevedono un token o una sequenza di token, a volte anche molti paragrafi di token previsti. Ricorda che un token può essere una parola, una sottoparola (un sottoinsieme di una parola) o anche un singolo carattere. Gli LLM fanno previsioni molto migliori rispetto ai modelli linguistici N-gram o alle reti neurali ricorrenti perché:

  • Gli LLM contengono molti più parametri rispetto ai modelli ricorrenti.
  • Gli LLM raccolgono molto più contesto.

Questa sezione introduce l'architettura più efficace e ampiamente utilizzata per la creazione di LLM: Transformer.

Che cos'è un Transformer?

I Transformer sono l'architettura all'avanguardia per una vasta gamma di applicazioni di modelli linguistici, come la traduzione:

Figura 1. L'input è: Sono un bravo cane. Un traduttore basato su Transformer trasforma questo input nell'output: Je suis un bon chien, ovvero la stessa frase tradotta in francese.
Figura 1. Un'applicazione basata su Transformer che traduce dall'inglese al francese.

 

I trasformatori completi sono costituiti da un encoder e un decoder:

  • Un codificatore converte il testo di input in una rappresentazione intermedia. Un encoder è un'enorme rete neurale.
  • Un decodificatore converte questa rappresentazione intermedia in testo utile. Un decodificatore è anche un'enorme rete neurale.

Ad esempio, in un traduttore:

  • Il codificatore elabora il testo di input (ad esempio una frase in inglese) in qualche rappresentazione intermedia.
  • Il decodificatore converte questa rappresentazione intermedia in testo di output (ad esempio la frase francese equivalente).
Figura 2. Il traduttore basato su Transformer inizia con un codificatore,
            che genera una rappresentazione intermedia di una frase in inglese. Un decodificatore converte questa rappresentazione intermedia in
            una frase di output in francese.
Figura 2. Un Transformer completo contiene sia un encoder che un decoder.

 

Questo modulo si concentra sui Transformer completi, che contengono sia un encoder sia un decoder. Esistono tuttavia anche architetture solo con encoder e solo con decoder:

  • Le architetture solo di codifica mappano il testo di input in una rappresentazione intermedia (spesso un livello di embedding). I casi d'uso per le architetture solo encoder includono:
    • Prevedere qualsiasi token nella sequenza di input (che è il ruolo convenzionale dei modelli linguistici).
    • Creazione di un embedding sofisticato, che potrebbe essere utilizzato come input per un altro sistema, ad esempio un classificatore.
  • Le architetture solo decodificatore generano nuovi token dal testo già generato. I modelli solo decodificatori di solito eccellono nella generazione di sequenze. I modelli solo decodificatori moderni possono utilizzare la loro potenza di generazione per creare continuazioni di cronologie di dialogo e altri prompt.

Che cos'è l'auto-attenzione?

Per migliorare il contesto, i Transformer si basano molto su un concetto chiamato auto-attenzione. In pratica, per conto di ogni token di input, l'autoattenzione pone la seguente domanda:

"In che misura ogni altro token di input influisce sull'interpretazione di questo token?"

Il termine "auto" in "auto-attenzione" si riferisce alla sequenza di input. Alcuni meccanismi di attenzione ponderano le relazioni tra i token di input e i token in una sequenza di output, ad esempio una traduzione, o con i token di un'altra sequenza. Tuttavia, l'auto-attenzione tiene conto solo dell'importanza delle relazioni tra i token nella sequenza di input.

Per semplificare, supponiamo che ogni token sia una parola e che il contesto completo sia costituito da una sola frase. Prendi in considerazione la seguente frase:

The animal didn't cross the street because it was too tired.

La frase precedente contiene undici parole. Ognuna delle undici parole presta attenzione alle altre dieci, chiedendosi quanto ciascuna di queste dieci parole sia importante per se stessa. Ad esempio, tieni presente che la frase contiene il pronome it. I pronomi sono spesso ambigui. Il pronome esso si riferisce in genere a un nome o a una frase nominale recente, ma nella frase di esempio a quale nome recente si riferisce esso: all'animale o alla strada?

Il meccanismo di self-attention determina la pertinenza di ogni parola vicina al pronome esso. La Figura 3 mostra i risultati: più blu è la linea, più importante è la parola per il pronome it. In altre parole, animale è più importante di strada per il pronome esso.

Figura 3. La pertinenza di ciascuna delle undici parole nella frase:
            'L'animale non ha attraversato la strada perché era troppo stanco'
            al pronome "esso". La parola "animale" è la più pertinente per il pronome "esso".
Figura 3. Auto-attenzione per il pronome esso. Da Transformer: A Novel Neural Network Architecture for Language Understanding.

 

Al contrario, supponiamo che la parola finale della frase cambi come segue:

The animal didn't cross the street because it was too wide.

In questa frase rivista, l'auto-attenzione dovrebbe valutare strada come più pertinente di animale per il pronome esso.

Alcuni meccanismi di auto-attenzione sono bidirezionali, il che significa che calcolano i punteggi di pertinenza per i token precedenti e successivi alla parola oggetto di attenzione. Ad esempio, nella Figura 3, noterai che le parole su entrambi i lati di it vengono esaminate. Pertanto, un meccanismo di self-attention bidirezionale può raccogliere il contesto dalle parole ai lati della parola a cui viene prestata attenzione. Al contrario, un meccanismo di self-attention unidirezionale può raccogliere il contesto solo dalle parole su un lato della parola a cui viene prestata attenzione. L'autoattenzione bidirezionale è particolarmente utile per generare rappresentazioni di intere sequenze, mentre le applicazioni che generano sequenze token per token richiedono l'autoattenzione unidirezionale. Per questo motivo, gli encoder utilizzano l'autoattenzione bidirezionale, mentre i decodificatori utilizzano quella unidirezionale.

Che cos'è l'autoattenzione multi-head?

Ogni livello di auto-attenzione è in genere composto da più funzioni di auto-attenzione. L'output di un livello è un'operazione matematica (ad esempio, media ponderata o prodotto scalare) dell'output dei diversi head.

Poiché ogni livello di auto-attenzione viene inizializzato con valori casuali, diversi head possono apprendere relazioni diverse tra ogni parola a cui viene applicata l'attenzione e le parole vicine. Ad esempio, il livello di auto-attenzione descritto nella sezione precedente si concentrava su come determinare a quale sostantivo si riferiva il pronome esso. Tuttavia, altri livelli di auto-attenzione potrebbero apprendere la pertinenza grammaticale di ogni parola rispetto a tutte le altre o altre interazioni.

La self-attention costringe ogni parola nel contesto a imparare la pertinenza di tutte le altre parole nel contesto. Pertanto, è molto facile dichiarare che si tratta di un problema di tipo O(N2), dove:

  • N è il numero di token nel contesto.

Come se la complessità di Big O precedente non fosse sufficientemente sconvolgente, i Transformers contengono più livelli di auto-attenzione e più head di auto-attenzione per livello di auto-attenzione, quindi la complessità di Big O è in realtà:

O(N2 · S · D)

dove:

  • S è il numero di livelli di auto-attenzione.
  • D è il numero di head per livello.

Probabilmente non addestrerai mai un LLM da zero. L'addestramento di un LLM di livello industriale richiede enormi quantità di competenza in materia di ML, risorse di calcolo e tempo. Tuttavia, hai fatto clic sull'icona per approfondire, quindi ti dobbiamo una spiegazione.

L'ingrediente principale per creare un LLM è una quantità fenomenale di dati di addestramento (testo), in genere filtrati in qualche modo. La prima fase di addestramento è in genere una forma di apprendimento supervisionato su questi dati di addestramento. Nello specifico, il modello viene addestrato su previsioni mascherate, il che significa che alcuni token nei dati di addestramento sono intenzionalmente nascosti. Il modello viene addestrato tentando di prevedere i token mancanti. Ad esempio, supponiamo che la seguente frase faccia parte dei dati di addestramento:

The residents of the sleepy town weren't prepared for what came next.

I token casuali vengono rimossi, ad esempio:

The ___ of the sleepy town weren't prepared for ___ came next.

Un LLM è solo una rete neurale, quindi la perdita (il numero di token mascherati considerati correttamente dal modello) indica il grado in cui la retropropagazione aggiorna i valori dei parametri.

Un modello basato su Transformer addestrato a prevedere i dati mancanti impara gradualmente a rilevare pattern e strutture di ordine superiore nei dati per ottenere indizi sul token mancante. Considera l'esempio seguente di istanza mascherata:

Oranges are traditionally ___ by hand. Once clipped from a tree, __ don't ripen.

Un'ampia formazione su un numero enorme di esempi mascherati consente a un LLM di imparare che "raccolto" o "coltivato" sono corrispondenze con elevata probabilità per il primo token e "arance" o "loro" sono buone scelte per il secondo token.

Un ulteriore passaggio di addestramento facoltativo chiamato ottimizzazione delle istruzioni può migliorare la capacità di un LLM di seguire le istruzioni.

Perché i Transformers sono così grandi?

I trasformatori contengono centinaia di miliardi o addirittura migliaia di miliardi di parametri. In questo corso è stato generalmente consigliato di creare modelli con un numero inferiore di parametri rispetto a quelli con un numero maggiore di parametri. Dopotutto, un modello con un numero inferiore di parametri utilizza meno risorse per fare previsioni rispetto a un modello con un numero maggiore di parametri. Tuttavia, la ricerca mostra che i transformer con più parametri superano costantemente quelli con meno parametri.

Ma come fa un LLM a generare testo?

Hai visto come i ricercatori addestrano gli LLM a prevedere una o due parole mancanti e potresti non essere impressionato. Dopotutto, la previsione di una o due parole è essenzialmente la funzionalità di completamento automatico integrata in vari software di testo, email e di authoring. Forse ti starai chiedendo in che modo gli LLM possono generare frasi, paragrafi o persino haiku sull'arbitraggio.

In effetti, gli LLM sono essenzialmente meccanismi di completamento automatico che possono predire (completare) automaticamente migliaia di token. Ad esempio, considera una frase followed by a masked sentence:

My dog, Max, knows how to perform many traditional dog tricks.
___ (masked sentence)

Un LLM può generare probabilità per la frase mascherata, tra cui:

Probabilità Parola o parole
3,1% Ad esempio, può sedersi, restare fermo e girarsi.
2,9% Ad esempio, sa sedersi, stare fermo e girarsi.

Un LLM sufficientemente grande può generare probabilità per paragrafi e interi temi. Puoi considerare le domande di un utente a un LLM come la frase "data" followed da una maschera immaginaria. Ad esempio:

User's question: What is the easiest trick to teach a dog?
LLM's response:  ___

L'LLM genera probabilità per varie risposte possibili.

Un altro esempio è un LLM addestrato su un numero enorme di "problemi con enunciato" matematici che può dare l'impressione di svolgere ragionamenti matematici sofisticati. Tuttavia, questi LLM si limitano a completare automaticamente un problema di parole.

Vantaggi degli LLM

Gli LLM possono generare testo chiaro e facile da comprendere per un'ampia gamma di segmenti di pubblico di destinazione. Gli LLM possono fare previsioni sulle attività su cui sono addestrati esplicitamente. Alcuni ricercatori affermano che gli LLM possono anche fare previsioni per gli input su cui non sono stati addestrati esplicitamente, ma altri ricercatori hanno confutato questa affermazione.

Problemi con gli LLM

L'addestramento di un LLM comporta molti problemi, tra cui:

  • Raccogliere un enorme set di addestramento.
  • Richiede diversi mesi, enormi risorse di calcolo e energia elettrica.
  • Risolvere le sfide del parallelismo.

L'utilizzo di LLM per dedurre le previsioni causa i seguenti problemi:

  • Gli LLM allucinano, in quanto le loro previsioni spesso contengono errori.
  • Gli LLM consumano enormi quantità di risorse di calcolo ed elettricità. L'addestramento degli LLM su set di dati più grandi in genere riduce la quantità di risorse necessarie per l'inferenza, anche se i set di addestramento più grandi richiedono più risorse di addestramento.
  • Come tutti i modelli di ML, gli LLM possono presentare tutti i tipi di bias.

Esercizio: verifica di aver compreso

Supponiamo che un Transformer venga addestrato su un miliardo di documenti, tra cui migliaia di documenti contenenti almeno un'istanza della parola elefante. Quali delle seguenti affermazioni sono probabilmente vere?
Il Transformer assocerà la parola elefante a vari idiomi che contengono la parola elefante.
Gli alberi di acacia, una parte importante della dieta di un elefante, acquisiranno gradualmente un punteggio di attenzione autonomo elevato con la parola elefante.
Il Transformer imparerà gradualmente a ignorare eventuali usi sarcastici o ironici della parola elefante nei dati di addestramento.