Introduzione ai modelli Transformer: cosa sono e come funzionano
Pubblicato: 2024-08-07I trasformatori rappresentano una svolta nell’intelligenza artificiale, in particolare nell’elaborazione del linguaggio naturale (PNL). Rinomati per le loro prestazioni e scalabilità, sono vitali in applicazioni come la traduzione linguistica e l'intelligenza artificiale conversazionale. Questo articolo esplora la loro struttura, i confronti con altre reti neurali e i loro pro e contro.
Sommario
- Cos'è un modello di trasformatore?
- Trasformatori contro CNN e RNN
- Come funzionano i modelli di trasformatori
- Esempi di modelli di trasformatori
- Vantaggi
- Svantaggi
Cos'è un modello di trasformatore?
Un trasformatore è un tipo di modello di deep learning ampiamente utilizzato nella PNL. Grazie alle prestazioni e alla scalabilità delle sue attività, è il nucleo di modelli come la serie GPT (realizzata da OpenAI), Claude (realizzata da Anthropic) e Gemini (realizzata da Google) ed è ampiamente utilizzata in tutto il settore.
I modelli di deep learning sono costituiti da tre componenti principali: architettura del modello, dati di training e metodi di training. In questo contesto, un trasformatore rappresenta un tipo di architettura modello. Definisce la struttura delle reti neurali e le loro interazioni. L'innovazione chiave che distingue i trasformatori dagli altri modelli di machine learning (ML) è l'uso dell'"attenzione".
L'attenzione è un meccanismo nei trasformatori che consente loro di elaborare gli input in modo efficiente e di conservare le informazioni per lunghe sequenze (ad esempio, un intero saggio).
Ecco un esempio per illustrare. “Il gatto era seduto sulla riva vicino al fiume. Poi si spostò sul ramo dell’albero vicino”. Puoi riconoscere che la "banca" qui non è la banca presso la quale depositi denaro. Probabilmente utilizzeresti l'indizio contestuale di "fiume" per capirlo. L'attenzione funziona in modo simile; usa le altre parole per definire il significato di ciascuna parola. A cosa si riferisce "it" nell'esempio? Il modello considererebbe le parole “spostato” e “albero” come indizi per realizzare che la risposta è “gatto”.
L’importante domanda senza risposta è come il modello sappia quali parole guardare. Ci arriveremo un po' più tardi. Ma ora che abbiamo definito il modello del trasformatore, spieghiamo ulteriormente perché viene utilizzato così pesantemente.
Trasformatori contro CNN e RNN
Le reti neurali ricorrenti (RNN) e le reti neurali convoluzionali (CNN) sono altri due modelli comuni di deep learning. Sebbene le RNN e le CNN abbiano i loro vantaggi, i trasformatori sono più ampiamente utilizzati perché gestiscono molto meglio gli input lunghi.
Trasformatori contro RNN
Le reti neurali ricorrenti sono modelli sequenziali. Un'analogia appropriata è un essere umano che legge un libro. Mentre leggono, parola dopo parola, la loro memoria e la comprensione del libro si evolvono. I lettori più astuti potrebbero persino prevedere cosa accadrà dopo in base a ciò che è accaduto prima. Una RNN funziona allo stesso modo. Legge parola per parola, aggiorna la sua memoria (chiamato stato nascosto) e può quindi fare una previsione (ad esempio, la parola successiva nella frase o il sentimento di un testo). Lo svantaggio è che lo stato nascosto non può contenere molte informazioni. Se inserisci un intero libro in una RNN, non ricorderà molti dettagli sui capitoli introduttivi perché c'è solo così tanto spazio nel suo stato nascosto. I capitoli successivi, poiché sono stati aggiunti più recentemente allo stato nascosto, hanno la precedenza.
I trasformatori non soffrono dello stesso problema di memoria. Confrontano ogni parola con ogni altra parola nell'input (come parte del meccanismo di attenzione) in modo da non aver bisogno di usare uno stato nascosto o di “ricordare” cosa è successo prima. Usando la stessa analogia del libro, un trasformatore è come un essere umano che legge la parola successiva in un libro e poi guarda ogni parola precedente del libro per comprendere correttamente la nuova parola. Se la prima frase di un libro contenesse la frase “È nato in Francia” e l’ultima frase di un libro contenesse la frase “la sua lingua madre”, il trasformatore sarebbe in grado di dedurre che la sua lingua madre è il francese. Una RNN potrebbe non essere in grado di farlo, poiché non è garantito che lo stato nascosto conservi tali informazioni. Inoltre, un RNN deve leggere ogni parola una alla volta e quindi aggiornare il suo stato nascosto. Un trasformatore può applicare la sua attenzione in parallelo.
Trasformatori contro CNN
Le reti neurali convoluzionali utilizzano il contesto circostante di ciascun elemento in una sequenza per assegnare significato. Per una parola su una pagina, le CNN guardavano le parole immediatamente circostanti per capirne il significato. Non sarebbe in grado di collegare l'ultima e la prima pagina di un libro. Le CNN vengono utilizzate prevalentemente con le immagini perché i pixel spesso si riferiscono ai loro vicini molto più delle parole. Detto questo, le CNN possono essere utilizzate anche per la PNL.
I trasformatori differiscono dalle CNN in quanto guardano più che semplicemente gli immediati vicini di un oggetto. Usano un meccanismo di attenzione per confrontare ogni parola con ogni altra parola nell'input, fornendo una comprensione più ampia e completa del contesto.
Come funzionano i modelli di trasformatore?
I trasformatori hanno strati di blocchi di attenzione, reti neurali feedforward e incorporamenti. Il modello accetta un input basato su testo e restituisce il testo di output. Per fare ciò, segue questi passaggi:
- Tokenizzazione:trasforma il testo in token (simile alla scomposizione di una frase in singole parole).
- Incorporamento:converte i token in vettori, incorporando incorporamenti posizionali in modo che il modello comprenda la posizione del token nell'input.
- Meccanismo di attenzione:elabora i token utilizzando l'autoattenzione (per i token di input) o l'attenzione incrociata (tra token di input e token generati). Questo meccanismo consente al modello di valutare l’importanza dei diversi token durante la generazione dell’output.
- Rete neurale feedforward:passa il risultato attraverso una rete neurale feedforward, che consente al modello di acquisire modelli complessi introducendo la non linearità.
- Ripetizione:i passaggi 3-4 vengono ripetuti più volte su più livelli per perfezionare l'output.
- Distribuzione dell'output:produce una distribuzione di probabilità su tutti i token possibili.
- Selezione token:sceglie il token con la probabilità più alta.
Questo processo costituisce un passaggio in avanti attraverso il modello del trasformatore. Il modello esegue questa operazione ripetutamente finché non ha completato il testo di output. All'interno di ogni passaggio, il processo di inclusione può essere eseguito in parallelo, così come il meccanismo di attenzione e la fase di feedforward. In sostanza, il trasformatore non ha bisogno di eseguire ciascun token uno alla volta. Può attirare l'attenzione su tutti i token contemporaneamente.
Possiamo ora rivolgerci alla domanda di prima: come fa il modello a sapere a quali token prestare attenzione? La risposta è semplicemente osservando molti dati di allenamento. Inizialmente, il modello si occuperà dei token sbagliati e quindi genererà output errati. Utilizzando l'output corretto fornito con i dati di addestramento, il meccanismo di attenzione può essere modificato per fornire la risposta corretta la prossima volta. Nel corso di miliardi (e perfino trilioni) di esempi, il meccanismo dell’attenzione è in grado di scegliere quasi sempre i token corretti.
Esempi di modelli di trasformatori
I trasformatori sono ovunque. Sebbene inizialmente progettati per la traduzione, i trasformatori si sono adattati bene a quasi tutte le attività linguistiche, visive e persino audio.
Grandi modelli linguistici
L'architettura del trasformatore alimenta quasi tutti i modelli linguistici di grandi dimensioni (LLM): GPT, Claude, Gemini, Llama e molti modelli open source più piccoli. Gli LLM possono gestire varie attività di testo (e, sempre più, immagini e audio), come la risposta alle domande, la classificazione e la generazione di formati liberi.
Ciò si ottiene addestrando il modello del trasformatore su miliardi di esempi di testo (solitamente recuperati da Internet). Successivamente, le aziende perfezionano il modello su esempi di classificazione per insegnare al modello come eseguire correttamente la classificazione. In breve, il modello apprende un’ampia base di conoscenze e poi le competenze vengono “insegnate” tramite il perfezionamento.
Trasformatori di visione
I trasformatori di visione sono trasformatori standard adattati per lavorare sulle immagini. La differenza principale è che il processo di tokenizzazione deve funzionare con immagini anziché con testo. Una volta che l'input viene trasformato in token, avviene il normale calcolo del trasformatore e, infine, i token di output vengono utilizzati per classificare l'immagine (ad esempio, l'immagine di un gatto). I trasformatori di visione vengono spesso fusi con LLM di testo per formare LLM multimodali. Questi modelli multimodali possono acquisire un'immagine e ragionare su di essa, ad esempio accettando uno schizzo dell'interfaccia utente e ottenendo il codice necessario per crearla.
Le CNN sono popolari anche per le attività relative alle immagini, ma i trasformatori consentono al modello di utilizzare tutti i pixel dell'immagine anziché solo quelli vicini. Ad esempio, se un'immagine contenesse un segnale di stop all'estrema sinistra e un'auto all'estrema destra, il modello potrebbe determinare che l'auto deve fermarsi. Una CNN potrebbe non essere in grado di collegare questi due punti dati perché sono lontani l’uno dall’altro nell’immagine.
Trasformatori audio
I trasformatori audio, come i trasformatori visivi, sono trasformatori standard con uno schema di tokenizzazione unico su misura per i dati audio. Questi modelli possono elaborare sia testo che audio non elaborato come input, producendo testo o audio. Un esempio di ciò è Whisper, un modello di sintesi vocale che converte l'audio grezzo in una trascrizione. Ciò avviene segmentando l'audio in blocchi, trasformando questi blocchi in spettrogrammi e codificando gli spettrogrammi in incorporamenti. Questi incorporamenti vengono poi elaborati dal trasformatore, che genera i token di trascrizione finali.
Oltre alle applicazioni di sintesi vocale, i trasformatori audio hanno vari altri casi d'uso, tra cui la generazione di musica, i sottotitoli automatici e la conversione vocale. Inoltre, le aziende stanno integrando trasformatori audio con LLM per consentire interazioni basate sulla voce, consentendo agli utenti di porre domande e ricevere risposte tramite comandi vocali.
Vantaggi dei modelli di trasformatore
I trasformatori sono diventati onnipresenti nel campo dell'apprendimento automatico grazie alla loro scalabilità e alle prestazioni eccezionali in un'ampia gamma di attività. Il loro successo è attribuito a diversi fattori chiave:
Contesto lungo
Il meccanismo di attenzione può confrontare tra loro tutti i token nella sequenza di input. Pertanto, le informazioni nell'intero input verranno ricordate e utilizzate per generare l'output. Al contrario, le RNN dimenticano le informazioni più vecchie e le CNN possono utilizzare solo le informazioni vicine a ciascun token. Questo è il motivo per cui puoi caricare centinaia di pagine su un chatbot LLM, porre una domanda su una qualsiasi delle pagine e ottenere una risposta accurata. La mancanza di un lungo contesto nelle RNN e nelle CNN è il motivoprincipaleper cui i trasformatori li battono nei compiti.
Parallelizzabilità
Il meccanismo di attenzione nei trasformatori può essere eseguito in parallelo su tutti i token nella sequenza di input. Ciò contrasta con gli RNN, che elaborano i token in sequenza. Di conseguenza, i trasformatori possono essere addestrati e implementati più rapidamente, fornendo risposte più rapide agli utenti. Questa capacità di elaborazione parallela migliora significativamente l'efficienza dei trasformatori rispetto alle RNN.
Scalabilità
I ricercatori hanno continuamente aumentato le dimensioni dei trasformatori e la quantità di dati utilizzati per addestrarli. Non hanno ancora visto un limite a quanto i trasformatori possono imparare. Più grande è il modello del trasformatore, più complesso e sfumato è il testo che può comprendere e generare (GPT-3 ha 175 miliardi di parametri mentre GPT-4 ne ha più di 1 trilione). Sorprendentemente, l’ampliamento dei modelli dei trasformatori, come la creazione di un modello da 10 miliardi di parametri rispetto a un modello da 1 miliardo di parametri, non richiede molto più tempo. Questa scalabilità rende i trasformatori strumenti potenti per varie applicazioni avanzate.
Svantaggi dei modelli di trasformatori
Lo svantaggio dei modelli di trasformatori è che richiedono molte risorse computazionali. Il meccanismo dell'attenzione è quadratico: ogni token nell'input viene confrontato con ogni altro token. Due token avrebbero 4 confronti, tre token avrebbero 9, quattro token avrebbero 16 e così via: in sostanza, il costo computazionale è il quadrato del conteggio dei token. Questo costo quadratico ha alcune implicazioni:
Hardware specializzato
I LLM non possono essere facilmente eseguiti su un computer medio. A causa delle loro dimensioni, spesso richiedono decine di gigabyte di RAM per caricare i parametri del modello. Inoltre, le CPU tradizionali non sono ottimizzate per il calcolo parallelo; è invece necessaria una GPU. Un LLM in esecuzione su una CPU potrebbe richiedere minuti per generare un singolo token. Sfortunatamente, le GPU non sono esattamente l’hardware più economico o accessibile.
Lunghezza di input limitata
I trasformatori hanno una quantità limitata di testo che possono elaborare (nota come lunghezza del contesto). GPT-3 originariamente poteva elaborare solo 2.048 token. I progressi nelle implementazioni dell'attenzione hanno prodotto modelli con lunghezze di contesto fino a 1 milione di token. Anche così, è necessaria una ricerca approfondita per trovare ogni ulteriore indicatore della lunghezza del contesto. Al contrario, gli RNN non hanno una lunghezza massima del contesto. La loro precisione diminuisce notevolmente all'aumentare dell'input, ma potresti inserire un input lungo 2 milioni di token in uno proprio adesso.
Costo energetico
I data center che alimentano il calcolo dei trasformatori richiedono energia per funzionare e acqua per raffreddarli. Secondo una stima, GPT-3 ha richiesto 1.300 megawattora di elettricità per allenarsi: l’equivalente di alimentare 130 case negli Stati Uniti per un anno intero. Man mano che i modelli diventano più grandi, la quantità di energia necessaria aumenta. Entro il 2027, l’industria dell’intelligenza artificiale potrebbe richiedere ogni anno la stessa quantità di elettricità dei Paesi Bassi. Si stanno compiendo sforzi significativi per ridurre il fabbisogno di trasformatori energetici, ma questo problema non è stato ancora risolto.