T5 Trasformatori di testo-a-testo (Parte Due)

'T5 Trasformatori di testo-a-testo (Parte 2)'

Transfer Learning Ottimale per Grandi Modelli di Linguaggio

(Foto di Patrick Tomasso su Unsplash)

La proposta di BERT [5] ha portato alla popolarizzazione degli approcci di trasferimento di apprendimento per l’elaborazione del linguaggio naturale (NLP). Grazie alla diffusa disponibilità di testo non etichettato su Internet, siamo stati in grado di (i) pre-addestrare grandi modelli di trasformatori su grandi quantità di testo grezzo e (ii) affinare questi modelli per risolvere con precisione compiti successivi. Questo approccio è stato incredibilmente efficace, ma la sua nuova popolarità ha portato alla proposta di molti metodi alternativi e modifiche. Con tutti questi nuovi metodi disponibili, ci si potrebbe facilmente chiedere: Quali sono le migliori pratiche per il trasferimento di apprendimento in NLP?

A questa domanda è stata data risposta attraverso un’analisi eseguita con il modello unificato di trasformazione testo-testo (T5). T5 riformula tutti i compiti (sia durante il pre-addestramento che durante il fine-tuning) con un formato testo-testo, il che significa che il modello riceve input testuali e produce output testuali. Utilizzando questo formato unificato, T5 può analizzare diverse impostazioni di trasferimento di apprendimento diverse, consentendo di confrontare molti approcci. In una precedente newsletter, abbiamo appreso il formato, l’architettura e l’approccio generale del modello T5.

In questa newsletter, illustreremo l’analisi eseguita da T5, compresa una comparazione empirica tra diversi obiettivi di pre-addestramento, architetture, scale di modelli/dati e approcci di addestramento per il trasferimento di apprendimento in NLP. All’interno di [1], ciascuna di queste opzioni viene studiata singolarmente per determinare il loro impatto sulle prestazioni di T5. Studiando questa analisi, arriviamo a un insieme di migliori pratiche, che (quando combinate insieme) producono il framework T5 allo stato dell’arte che può risolvere compiti di comprensione del linguaggio con un’accuratezza incredibilmente elevata.

(da [1])

Preliminari

Abbiamo già trattato la motivazione e le basi dell’architettura T5. Dai un’occhiata a quel post al link qui. Possiamo coprire rapidamente queste idee anche qui. La proposta di BERT [5] ha reso popolare il paradigma del trasferimento di apprendimento (cioè pre-addestrare un modello su un dataset separato, quindi affinare su un dataset di destinazione) per NLP. Tuttavia, l’efficacia di BERT ha spinto molti ricercatori a concentrarsi su questo argomento e a proporre varie modifiche e miglioramenti. L’idea di T5 è quella di (i) convertire tutti i compiti linguistici in un formato unificato testo-testo (vedi figura sotto) e (ii) studiare una serie di diverse impostazioni per il trasferimento di apprendimento in NLP per dedurre le tecniche che funzionano meglio.

(da [1])

Language Modeling vs. Denoising

Gli approcci iniziali di trasferimento di apprendimento in NLP hanno sfruttato un obiettivo di modellazione del linguaggio causale [6] per il pre-addestramento. Tuttavia, successivamente si è dimostrato che gli obiettivi di denoising (detto anche masked language modeling o MLM) funzionano meglio [5]. Dato un insieme di token testuali da passare come input a un modello, MLM agisce nel seguente modo:

  1. Selezionare casualmente (in modo uniforme) il 15% dei token
  2. Sostituire il 90% dei token selezionati con un token [MASK]
  3. Sostituire il 10% dei token selezionati con un token casuale
  4. Addestrare il modello a prevedere/classificare ciascun token [MASK]

La percentuale di token selezionati in modo uniforme viene chiamata “corruption rate”. All’interno di T5, vedremo alcune varianti diverse di questo obiettivo di denoising, ma l’idea di base rimane la stessa.

“Tutti i nostri obiettivi ingeriscono una sequenza di ID di token corrispondenti a un intervallo di testo tokenizzato dal nostro set di dati di testo non etichettato. La sequenza di token viene elaborata per produrre una sequenza di input (corrotta) e un target corrispondente. Quindi, il modello viene addestrato come al solito con massima verosimiglianza per prevedere la sequenza target.” – da [1]

Benchmarks e Valutazione

T5 cerca di derivare un insieme di best practice per il transfer learning in NLP. Tuttavia, per determinare quali tecniche funzionano meglio, T5 viene valutato su una varietà di diverse attività e benchmark di linguaggio naturale. Tutti questi compiti vengono risolti utilizzando il formato testo-testo di T5. Consulta la Sezione 2.3 in [1] per una descrizione completa di questi compiti. Di seguito viene fornito un breve riassunto.

  • GLUE e SuperGLUE [7, 8]: entrambi i benchmark includono molte diverse attività, come la valutazione dell’accettabilità delle frasi, l’analisi del sentiment, il parafrasaggio, la similitudine delle frasi, l’inferenza del linguaggio naturale (NLI), la risoluzione delle coreferenze, il completamento delle frasi, la disambiguazione del senso delle parole e la risposta alle domande. SuperGLUE è un benchmark migliorato e più difficile con una struttura simile a GLUE.
  • CNN + Daily Mail Abstractive Summarization [9]: associa articoli di notizie a una breve sequenza di testo riassuntivo che cattura i punti salienti principali dell’articolo.
  • SQuAD [10]: un dataset di domande e risposte sugli articoli di Wikipedia, in cui la risposta a ciascuna domanda è un segmento di testo dell’articolo correlato.
  • Diversi dataset di traduzione (ad esempio, dall’inglese al tedesco, francese e rumeno).

È importante notare che tutti i compiti nei benchmark GLUE e SuperGLUE vengono concatenati insieme da T5, e l’addestramento fine-tuning viene eseguito su tutti i compiti contemporaneamente.

Altre Idee Importanti

  • Diversi Tipi di Architetture Transformer [link]
  • Basi del Language Modeling [link]
  • Self-Attention [link]

Cosa impariamo da T5?

Come precedentemente menzionato, gli esperimenti di T5 cercano di scoprire le migliori pratiche per il transfer learning in NLP. Per fare ciò, viene prima proposto un approccio di base, quindi diversi aspetti di questo approccio di base (ad esempio, architettura/dimensione del modello, dataset e obiettivo di pre-training) vengono modificati uno alla volta per vedere cosa funziona meglio. Questo approccio imita una strategia di discesa coordinata. Descriveremo prima la tecnica di base, quindi spiegheremo le scoperte di T5 dopo aver testato una varietà di diverse impostazioni di transfer learning.

Modello di Base di T5

(da [11])

Il modello. L’architettura di base di T5 utilizza un’architettura transformer standard, encoder-decoder; vedi sopra. Sia l’encoder che il decoder sono strutturati in modo simile a BERTBase. Anche se molti approcci moderni per NLP utilizzano un’architettura transformer “a singolo stack” (ad esempio, architettura solo encoder per BERT o architettura solo decoder per la maggior parte dei modelli di linguaggio), T5 sceglie di evitare queste architetture. Interessantemente, gli autori in [1] scoprono che l’architettura encoder-decoder ottiene risultati impressionanti sia su compiti generativi che di classificazione. I modelli solo encoder non vengono considerati in [1] a causa del fatto che sono specializzati per la predizione di token/span e non risolvono bene i compiti generativi.

(da [1])

Rispetto alle architetture solo decoder, i modelli solo encoder sono limitati perché utilizzano solo self-attention causale (o mascherato); vedi sopra. La self-attention mascherata considera solo i token precedenti quando calcola la rappresentazione per un dato token in una sequenza. Tuttavia, ci sono determinati casi in cui vorremmo eseguire un’attenzione completamente visibile su una porzione o prefisso iniziale di testo, quindi generare l’output basato su questo prefisso (ad esempio, compiti di traduzione). I modelli solo decoder non possono gestire tali casi, in quanto eseguono self-attention causale sull’intero input.

Addestramento di T5. Il modello T5 viene pre-addestrato su un totale di 34 miliardi di token dal corpus C4. A titolo di confronto, BERT viene addestrato su 137 miliardi di token, mentre RoBERTa viene addestrato su 2,2 trilioni di token [5, 12]. Ispirato dall’obiettivo MLM di BERT, T5 viene pre-addestrato utilizzando un obiettivo di denoising leggermente modificato che:

  1. Seleziona casualmente il 15% dei token nella sequenza di input
  2. Sostituisce tutti gli span consecutivi di token selezionati con un singolo token “sentinella”
  3. Assegna a ciascun token sentinella un ID univoco per la sequenza di input corrente
  4. Costruisce un target utilizzando tutti i token selezionati, separati dai token sentinella

Anche se questa attività sembra un po’ complessa, possiamo vedere un’illustrazione di come funziona su una breve sequenza di input di seguito.

(da [1])

Sostituendo interi span di token mascherati con un unico token sentinella, riduciamo il costo computazionale del pre-training, poiché tendiamo a operare su sequenze di input e target più brevi.

fine-tuning. Dopo che il pre-training è stato eseguito, T5 viene sottoposto separatamente a un fine-tuning su ogni attività successiva prima di essere valutato. A causa del formato di testo a testo utilizzato da T5, sia il pre-training che il fine-tuning utilizzano lo stesso obiettivo di massima verosimiglianza! In altre parole, formuliamo semplicemente la risposta corretta come una sequenza di testo (sia durante il pre-training che durante il fine-tuning) e addestriamo il modello a produrre la sequenza di testo corretta.

come si comporta il modello di base? Come mostrato nella tabella di seguito, il modello di base T5 si comporta in modo simile ai modelli precedenti come BERT, anche se questi modelli non sono direttamente confrontabili (ad esempio, il modello di base T5 utilizza il 25% del calcolo utilizzato da BERTBase). Inoltre, vediamo che il pre-training fornisce un enorme vantaggio nella maggior parte delle attività. L’eccezione a questa regola sono le attività di traduzione, in cui le prestazioni sono simili sia con che senza pre-training.

(da [1])

Alla ricerca di un approccio migliore…

Dopo aver testato l’architettura di base e l’approccio di addestramento, gli autori in [1] modificano un aspetto di questo approccio alla volta, come l’architettura sottostante, l’obiettivo del pre-training o la strategia del fine-tuning. Testando queste diverse varianti di transfer learning, possiamo trovare un approccio che funziona in modo coerente al meglio su diverse attività di comprensione del linguaggio.

(da [1])

l’architettura. Per studiare l’impatto della scelta dell’architettura sui risultati del transfer learning, possiamo testare diverse varianti dell’architettura del transformer. Le architetture testate in [1] includono l’architettura normale encoder-decoder, l’architettura solo decoder e un modello di linguaggio di prefisso, che esegue un’attenzione completamente visibile su un prefisso fisso all’interno di una sequenza e genera l’output utilizzando l’auto-attenzione causale; vedere sopra. La principale differenza tra queste architetture è il tipo di mascheramento utilizzato nei loro meccanismi di auto-attenzione.

(da [1])

Quando vengono testate diverse architetture diverse (utilizzando sia il modeling del linguaggio causale che gli obiettivi di denoising per il pre-training), vediamo che l’architettura del transformer encoder-decoder (con un obiettivo di denoising) si comporta meglio, portando a utilizzare questa architettura nel resto degli esperimenti. Rispetto ad altri modelli, questa variante encoder-decoder ha in totale 2P parametri ma lo stesso costo computazionale di un modello solo decoder con P parametri. Per ridurre il numero totale di parametri a P, possiamo condividere i parametri tra l’encoder e il decoder, cosa che si è rivelata essere molto efficace.

l’obiettivo del pre-training. Inizialmente, T5 viene addestrato utilizzando tre diversi tipi di obiettivi di pre-training. Il primo è un obiettivo di MLM in stile BERT. Gli altri obiettivi sono una strategia di deshuffling [3] (ovvero, il modello cerca di riportare una frase mescolata nell’ordine corretto) e un obiettivo di modeling di linguaggio basato su prefisso [2]. In quest’ultimo, il testo viene separato in due span, in cui il primo span viene passato come input all’encoder e il secondo span viene predetto dal decoder (ovvero, ricordiamo che stiamo utilizzando un transformer encoder-decoder). Le prestazioni dei modelli addestrati con questi obiettivi vengono confrontate di seguito, dove vediamo che gli obiettivi di denoising superano chiaramente le altre strategie.

(da [1])

Da qui, gli autori in [1] testano diverse modifiche all’obiettivo di tipo BERT-style MLM [4], come mostrato nella tabella sottostante.

(da [1])

Ognuna di queste varianti tende a comportarsi in modo simile; vedi di seguito. Tuttavia, selezionando obiettivi di pre-training che sostituiscono interi span di token corrotti con singoli token sentinella e cercando solo di prevedere token corrotti all’interno del target, possiamo ridurre al minimo il costo computazionale del pre-training. Pertanto, la strategia di base di mascherare interi span di token consecutivi è efficiente perché produce sequenze di target più brevi.

(da [1])

Gli autori in [1] testano diverse percentuali di corruzione, scoprendo che la percentuale di corruzione non influisce in modo significativo sui risultati e che una percentuale del 15% funziona bene. Si scopre anche che un obiettivo di pre-training alternativo che seleziona esplicitamente span di token per la corruzione (cioè l’approccio di base seleziona i token in modo uniforme anziché come span, quindi combina i token consecutivi insieme) si comporta in modo simile al metodo di base. Uno schema degli obiettivi di pre-training diversi testati in [1] è fornito di seguito.

(da [1])

Sono state studiate molte strategie diverse, ma i principali punti salienti qui sono (i) gli obiettivi di denoising funzionano meglio, (ii) le varianti degli obiettivi di denoising si comportano in modo simile e (iii) le strategie che riducono la lunghezza del target sono più efficienti dal punto di vista computazionale.

dati e dimensioni del modello. Infine, viene studiato l’impatto della scala sulla qualità di T5. Innanzitutto, T5 viene pre-trainato con diversi dataset, tra cui uno non filtrato, un dataset specifico per le notizie, un dataset che imita il corpus WebText di GPT-2 e alcune varianti del corpus di Wikipedia. Di seguito è mostrata la performance di T5 dopo essere stato pre-trainato su ciascuno di questi dataset.

(da [1])

Vediamo qui che (i) non filtrare il corpus di pre-training è incredibilmente dannoso e (ii) il pre-training su corpora specifici del dominio può essere utile in alcuni casi. Ad esempio, il pre-training sul corpus basato sulle notizie produce la migliore performance su ReCoRD, un dataset di comprensione della lettura basato su articoli di notizie.

“La lezione principale dietro questi risultati è che il pre-training su dati non etichettati in-domain può migliorare le prestazioni sulle attività downstream. Questo non è sorprendente, ma è anche insoddisfacente se il nostro obiettivo è pre-trainare un modello che possa adattarsi rapidamente a compiti linguistici di domini arbitrari.” — da [1]

Andando oltre, T5 viene pre-trainato utilizzando versioni troncate del corpus C4 con dimensioni variabili. Da questi esperimenti, apprendiamo che più dati sono (come era prevedibile) migliori. Ripetere multiple volte un’edizione più piccola del dataset durante il pre-training causa overfitting e danneggia le prestazioni downstream; vedi di seguito.

(da [1])

Per scalare il modello T5, gli autori testano le seguenti modifiche:

  1. 4X più iterazioni di training (o batch size 4 X più grande)
  2. 2X più iterazioni di training e modello 2 X più grande
  3. Modello 4 X più grande
  4. Allenare un insieme di 4 encoder-decoder transformers

Qui, sia le fasi di pre-training che di fine-tuning sono aumentate per semplicità. I risultati di questi esperimenti sono mostrati di seguito.

(da [1])

Questi risultati corrispondono approssimativamente a ciò che ci aspetteremmo. Aumentare il tempo di allenamento (o la dimensione del batch) migliora le prestazioni. Combinare ciò con un modello più grande porta ulteriori vantaggi rispetto all’aumento delle iterazioni di allenamento o della dimensione del batch da solo. In altre parole, aumentare la quantità di dati di pre-training e la dimensione del modello è complementare per migliorare le prestazioni.

“L’amara lezione della ricerca sull’apprendimento automatico sostiene che i metodi generali che possono sfruttare ulteriori calcoli alla fine prevalgono rispetto ai metodi che si basano sull’esperienza umana” – da [1]

altre cose. T5 è anche sintonizzato finemente utilizzando diverse strategie di addestramento multi-task. Nel complesso, si è constatato che questi modelli hanno prestazioni leggermente inferiori rispetto a quelli sintonizzati finemente separatamente per ogni compito. Tuttavia, esistono strategie per ridurre al minimo la differenza di prestazioni tra la sintonizzazione finemente specifica del compito e l’apprendimento multi-task. Per ulteriori informazioni, consulta la panoramica qui.

Molte approcci di sintonizzazione finemente per reti neurali profonde addestrano solo un sottoinsieme dei parametri del modello (ad esempio, “congelano” i primi livelli e sintonizzano finemente solo gli ultimi livelli nel modello). Gli autori in [1] provano diverse tecniche per la sintonizzazione finemente di T5 in questo modo (ad esempio, tramite strati adattatori o scongelamento graduale [6]), ma questi metodi sono superati dalla sintonizzazione finemente del modello completo end-to-end; vedi sotto.

(da [1])

T5: Mettere tutto insieme!

Ora che abbiamo esaminato l’intera analisi sperimentale da [1], abbiamo una visione più chiara delle diverse opzioni per il transfer learning in NLP e di ciò che funziona meglio! Di seguito, esamineremo i principali punti salienti di questa analisi che compongono il framework di transfer learning ufficiale utilizzato da T5. Questo approccio si è rivelato molto efficace rispetto a varie alternative.

impostazioni di base. Innanzitutto, ricordiamo l’architettura di base di T5. È un trasformatore codificatore-decodificatore che viene addestrato utilizzando il formato di testo-unificato . Dopo il pre-training con un obiettivo di denoising, il modello viene sintonizzato finemente separatamente per ciascun compito di downstream prima della valutazione. In particolare, il modello finale di T5 viene sintonizzato finemente separatamente per ciascun compito nei benchmark GLUE e SuperGLUE, poiché l’addestramento su tutti i compiti insieme produce prestazioni leggermente inferiori (purché si prendano le misure necessarie per evitare l’overfitting).

pre-training. Invece di selezionare uniformemente i token, la metodologia finale di T5 esegue la corruzione di span (ovvero selezionando interi span di token per la corruzione in una volta sola) con una lunghezza media di tre. Tuttavia, il 15% dei token viene selezionato per la corruzione. Questo obiettivo produce risultati leggermente migliori rispetto alla configurazione di base e produce lunghezze delle sequenze target più brevi. Inoltre, T5 combina gli aggiornamenti di pre-training non supervisionati con gli aggiornamenti supervisionati multi-task. Il rapporto tra il numero di aggiornamenti non supervisionati e supervisionati dipende dalla dimensione del modello utilizzato (ovvero i modelli più grandi hanno bisogno di più aggiornamenti non supervisionati per evitare l’overfitting).

quantità di addestramento. L’ulteriore pre-training è utile per le prestazioni di T5. In particolare, sia l’aumento della dimensione del batch che del numero di iterazioni di addestramento beneficiano delle prestazioni di T5. Pertanto, il modello finale di T5 viene pre-trainato su un totale di 1T di token. Questo è molto più grande dei 34B token della configurazione di base durante il pre-training, ma ancora molto inferiore a RoBERTa [12], che viene pre-trainato su oltre 2,2T di token. Il pre-training viene eseguito sul dataset C4 generico e filtrato, poiché il pre-training specifico del compito non produce un beneficio coerente tra diversi compiti.

scala del modello. L’utilizzo di modelli più grandi è utile, ma a volte può avere più senso utilizzare un modello più piccolo (ad esempio, quando si dispone di risorse di calcolo limitate per l’inferring). Per questo motivo, vengono rilasciati cinque diverse dimensioni di modelli T5 con un numero variabile di parametri, da 220M a 11B. Quindi, T5 è effettivamente una suite di diversi modelli! Possiamo accedere a uno qualsiasi di questi modelli al link qui.

Osservazioni finali

Grazie mille per aver letto questo articolo. Sono Cameron R. Wolfe, Direttore di AI presso Rebuy. Studio le basi empiriche e teoriche del deep learning. Puoi anche controllare i miei altri scritti su VoAGI! Se ti è piaciuto, seguimi su Twitter o iscriviti alla mia newsletter Deep (Learning) Focus, dove aiuto i lettori a sviluppare una comprensione più approfondita degli argomenti nella ricerca sull’IA tramite panorami comprensibili di articoli popolari.

Bibliografia

[1] Raffel, Colin, et al. “Esplorare i limiti del trasferimento di apprendimento con un trasformatore unificato di testo-testo.” The Journal of Machine Learning Research 21.1 (2020): 5485–5551.

[2] Liu, Peter J., et al. “Generare Wikipedia riassumendo lunghe sequenze.” arXiv preprint arXiv:1801.10198 (2018).

[3] Liu, Peter J., Yu-An Chung e Jie Ren. “Summae: Riassunto di testo astrattivo senza supervisione utilizzando autoencoder agnostici della lunghezza.” arXiv preprint arXiv:1910.00998 (2019).

[4] Song, Kaitao, et al. “Mass: Pre-training delle sequenze mascherate per la generazione di linguaggio.” arXiv preprint arXiv:1905.02450 (2019).

[5] Devlin, Jacob, et al. “Bert: Pre-training di trasformatori bidirezionali profondi per la comprensione del linguaggio.” arXiv preprint arXiv:1810.04805 (2018).

[6] Howard, Jeremy, e Sebastian Ruder. “Universal language model fine-tuning per la classificazione del testo.” arXiv preprint arXiv:1801.06146 (2018).

[7] Wang, Alex, et al. “GLUE: Una piattaforma di benchmarking e analisi multi-task per la comprensione del linguaggio naturale.” arXiv preprint arXiv:1804.07461 (2018).

[8] Wang, Alex, et al. “Superglue: Un benchmark più efficace per i sistemi di comprensione del linguaggio di uso generale.” Advances in neural information processing systems 32 (2019).

[9] Hermann, Karl Moritz, et al. “Insegnare alle macchine a leggere e comprendere.” Advances in neural information processing systems 28 (2015).

[10] Rajpurkar, Pranav, et al. “Squad: Oltre 100.000 domande per la comprensione automatica del testo.” arXiv preprint arXiv:1606.05250 (2016).

[11] Vaswani, Ashish, et al. “L’attenzione è tutto ciò di cui hai bisogno.” Advances in neural information processing systems 30 (2017).

[12] Liu, Yinhan, et al. “Roberta: Un approccio all’addestramento preottimizzato di Bert robusto.” arXiv preprint arXiv:1907.11692 (2019).