Nel febbraio 2019 OpenAI fece una cosa che i laboratori di ricerca di solito non fanno: annunciò un modello e insieme decise di non pubblicarlo per intero. Nel report c’erano l’architettura, i risultati, la ricetta; ma la versione più grande — 1,5 miliardi di parametri — restò in un cassetto, per timore che qualcuno la usasse per inondare la rete di testo falso. Al di là della polemica che ne seguì, quel gesto diceva qualcosa sul contenuto. Il paper si intitola Language Models are Unsupervised Multitask Learners, e la tesi che difende, oggi ovvia, allora era quasi provocatoria: un modello che ha imparato solo a indovinare la parola dopo, se addestrato su testo sufficientemente vario, sa già fare una quantità di compiti che nessuno gli ha mai insegnato esplicitamente.
Il pretraining su scala web, le leggi di scala, e l’arte di scegliere la parola dopo — temperatura, top-p, KV cache — stanno nel libro.
Una sola idea: i compiti sono già dentro il testo
Per capire perché fosse una tesi forte, bisogna ricordare com’era organizzato il campo. Lo schema dominante prevedeva due tempi: prima si pre-addestrava un modello su tanto testo, poi lo si fine-tunava — cioè lo si ri-addestrava — su un dataset specifico e annotato a mano per ogni compito. Un dataset per la traduzione, uno per il riassunto, uno per la classificazione del sentiment. Ogni compito, la sua scuola.
GPT-2 propone di saltare la seconda scuola. L’intuizione è che compiti come «traduci», «riassumi», «rispondi alla domanda» compaiano già, in forma naturale, dentro il testo del web. Una pagina che contiene «la frase in francese è: … che in italiano significa: …» è, di fatto, un esempio di traduzione. Un articolo che finisce con «in sintesi:» è un esempio di riassunto. Chi legge abbastanza testo assorbe questi schemi come effetto collaterale del leggere. Il modello, sostiene il paper, fa lo stesso: imparando a prevedere il seguito, impara di straforo i compiti che nel testo sono impliciti.
WebText, ovvero Reddit come filtro di qualità
Un’idea del genere sta in piedi solo se il testo di addestramento è vario e curato. Gran parte del web è ripetitivo o spazzatura, e allenarsi su quello avrebbe insegnato al modello soprattutto il rumore. Gli autori costruirono allora un dataset apposta, chiamato WebText, con un trucco semplice per selezionare pagine di qualità decente: partirono dai link condivisi su Reddit che avevano ricevuto almeno tre voti positivi. L’idea è che se un essere umano ha trovato una pagina degna di essere condivisa, e altri l’hanno approvata, probabilmente non è del tutto priva di valore. Il risultato furono circa 8 milioni di documenti, per circa 40 gigabyte di testo, con Wikipedia esclusa di proposito per non contaminare i benchmark che spesso ne derivano.
Il testo veniva spezzato in unità con un metodo a livello di byte (una variante del byte-pair encoding) e un vocabolario di 50.257 simboli, mentre la finestra di contesto — quanto testo il modello può «tenere in mano» per volta — arrivava a 1024 token. Sono dettagli tecnici, ma raccontano una scelta di fondo: nessuna conoscenza linguistica cablata a mano, solo testo grezzo dato in pasto a un Transformer e la consegna di prevedere il prossimo pezzo.
Zero-shot: chiedere senza insegnare
Il modo in cui GPT-2 affronta un compito è la parte che ancora oggi colpisce. Non c’è ri-addestramento, non si toccano i pesi. Si condiziona il modello scrivendo l’inizio giusto e gli si lascia completare la frase. Per riassumere un articolo, gli autori aggiungevano in coda al testo la sigla TL;DR: — la stessa che sul web precede i riassunti — e leggevano ciò che il modello generava dopo. Per tradurre, gli davano qualche coppia nel formato «inglese = francese» e poi una frase inglese lasciata a metà. Il compito non è programmato: è evocato dalla forma del testo. Questa modalità, in cui il modello risolve un problema che non ha mai visto in addestramento senza ricevere un solo esempio etichettato, si chiama zero-shot.
Lo stesso identico modello, senza alcuna ri-programmazione, affronta compiti diversi. Ciò che cambia non sono i pesi ma il testo che gli si mette davanti: una sigla, qualche esempio, una domanda lasciata a metà bastano a evocare il comportamento voluto.
Cosa funzionò e cosa no
L’onestà del paper sta nel non nascondere i limiti. Sui compiti più vicini al mestiere nativo del modello — prevedere testo — i risultati furono notevoli: GPT-2 stabilì il nuovo stato dell’arte su 7 degli 8 dataset di language modeling usati per il confronto, e lo fece in zero-shot, senza aver mai visto quei dataset in addestramento. Sui compiti più distanti, come la traduzione o il riassunto, i risultati erano decisamente più modesti: leggibili, a tratti sensati, ma lontani dai sistemi costruiti apposta. Gli autori non fingono il contrario. E aggiungono un dettaglio che, riletto oggi, suona come una promessa: anche il modello più grande continuava a sottodimensionare WebText, cioè non aveva ancora saturato ciò che poteva imparare da quel testo. Tradotto: più grande, avrebbe fatto meglio.
La lezione non era «abbiamo risolto la traduzione». Era «un modello che sa solo prevedere il testo ci prova comunque, e la curva non ha smesso di salire».
La release a tappe e la questione del rischio
La decisione di non pubblicare subito il modello grande divise la comunità. Chi accusò OpenAI di allarmismo, o di marketing travestito da prudenza; chi apprezzò il tentativo di prendere sul serio l’uso improprio prima che diventasse un problema. Nei mesi seguenti OpenAI rilasciò i modelli per gradi, dai più piccoli ai più grandi, studiando nel frattempo se davvero comparissero campagne di testo automatico. La versione da 1,5 miliardi arrivò pubblicamente a fine 2019. Al di là di chi avesse ragione, quel processo inaugurò una prassi — il rilascio graduale, la riflessione esplicita sui rischi — che sarebbe diventata parte del vocabolario del settore.
Perché rileggerlo oggi
GPT-2 non è il modello che usiamo, ed è tecnicamente superato da anni. Ma il paper contiene in nuce la scommessa che avrebbe definito il decennio: non serve insegnare i compiti uno a uno, basta un modello abbastanza grande su testo abbastanza vario, e i compiti emergono da soli. Un anno dopo lo stesso gruppo avrebbe portato quella scommessa alle estreme conseguenze con GPT-3, moltiplicando i parametri di oltre cento volte. Per chi oggi scrive prompt invece di addestrare modelli, questo è il documento che spiega perché è possibile: quando «chiedere bene» a un modello ha cominciato a sostituire «riaddestrarlo», è successo qui. Vale la pena leggerlo tenendo a mente che, all’epoca, quasi nessuno era convinto che avrebbe funzionato.
Il paper
Alec Radford, Jeffrey Wu, Rewon Child, David Luan, Dario Amodei, Ilya Sutskever, Language Models are Unsupervised Multitask Learners, OpenAI, 2019. È un report tecnico di OpenAI, non un articolo su arXiv; il PDF e il codice sono raggiungibili dal repository ufficiale: github.com/openai/gpt-2.

I commenti sono riservati agli iscritti.
Accedi per commentare