Allenamento dei modelli di linguaggio con dati sintetici di qualità da libro di testo

Training language models with high-quality synthetic data from textbooks.

Un’esplorazione del paper di ricerca di Microsoft “Textbooks Are All You Need”

Immagine di DALL·E 2 .

Microsoft Research ha appena pubblicato un documento che aggiunge nuovo combustibile ai dibattiti in corso sul ruolo dei dati nella formazione dei modelli, toccando specificamente i ruoli della qualità dei dati e dei dati sintetici. Sebbene il focus del documento sia sulla formazione di modelli per scrivere codice Python, le sue implicazioni vanno ben oltre la codifica. Le intuizioni di questo lavoro possono servire come un prezioso caso di studio per progetti di modelli linguistici in molteplici contesti.

I modelli in “Textbooks Are All You Need” non devono il loro successo a un design innovativo o a metodi di formazione rivoluzionari. Infatti, gli autori affermano che “l’architettura del nostro modello e i metodi di formazione sono abbastanza convenzionali”. L’innovazione risiede invece nei dati di formazione. Citando il documento:

“Ipotizziamo che tali dati di alta qualità migliorino in modo significativo l’efficienza di apprendimento dei modelli linguistici per il codice in quanto forniscono esempi chiari, autocontenuti, istruttivi ed equilibrati di concetti e abilità di programmazione.”

Il valore della qualità dei dati è, in qualche modo, scontato: è difficile immaginare che qualcuno propugni la formazione su dati di qualità inferiore quando c’è la stessa quantità di dati di migliore qualità a disposizione. Ma le opinioni sull’importanza relativa della qualità dei dati hanno subito un notevole cambiamento negli ultimi anni.

Nel 2020, il paper di OpenAI Scaling Laws for Neural Language Models ha posizionato la dimensione del modello come il fattore più importante: “l’addestramento ottimale in termini di efficienza di calcolo comporta l’addestramento di modelli molto grandi su una quantità relativamente modesta di dati”. Poi nel 2022, il paper di DeepMind Chinchilla, Training Compute-Optimal Large Language Models, ha sostenuto che la dimensione dei dati fosse altrettanto critica: “i modelli di linguaggio grandi attuali sono significativamente sottodimensionati”. Ma ora, nel 2023, il focus si sposta sulla qualità dei dati. Questo cambiamento è sottolineato da una sezione nel memo di Google recentemente trapelato intitolato We Have No Moat, che dichiara: “La qualità dei dati scala meglio della dimensione dei dati”.

Il paper Textbooks Are All You Need analizzato qui è solo uno dei punti salienti di questo movimento più ampio. Un altro esempio degno di nota è LIMA: Less is More for Alignment, che mostra come un dataset piccolo ma di alta qualità possa essere utilizzato per ottenere risultati impressionanti nell’allineamento del modello.

La utilità dei dati sintetici – dati generati dai modelli stessi – è stato oggetto di molto dibattito. I tentativi di addestrare modelli più piccoli sull’output di modelli più grandi, come nella creazione di Alpaca e Vicuna, sono stati accolti con scetticismo. I critici spesso fanno riferimento ad argomenti come quelli nel paper dell’Università di Berkeley The False Promise of Imitating Proprietary LLMs, che afferma che “l’imitazione del modello è una promessa falsa: esiste un divario di capacità sostanziale tra modelli linguistici aperti e chiusi che, con i metodi attuali, può essere colmato solo utilizzando una quantità ingombrante di dati di imitazione o utilizzando modelli di base più capaci”.

Tuttavia, Textbooks Are All You Need sfida questa prospettiva, dimostrando che l’output dei modelli più grandi può essere utilizzato per scopi oltre la mera imitazione. In modo sorprendente, il modello più piccolo del paper riesce addirittura a superare il modello più grande che ha generato i dati sintetici su cui è stato addestrato. Questa osservazione suscita una domanda affascinante: potrebbe le prestazioni dei modelli più grandi essere migliorate addestrandoli sul proprio output?

I risultati

Prima di approfondire i dati di formazione utilizzati per addestrare i modelli, diamo un’occhiata ai risultati che ottengono. I tre modelli nel paper sono phi-1-base, phi-1 e phi-1-small. Nello specifico, questi modelli non sono solo compatti in termini di parametri, ma sono anche addestrati su dati limitati. Date queste premesse, le loro prestazioni sono davvero sorprendenti.

Valutazione dei modelli selezionati sul benchmark HumanEval. Fonte: adattato da Textbooks Are All You Need.

I punteggi qui sono basati sul benchmark di valutazione umana di OpenAI, introdotto nel loro articolo Evaluating Large Language Models Trained on Code. Nei problemi di questo benchmark, al modello viene fornita una firma di funzione e una descrizione della documentazione e gli viene chiesto di scrivere il corpo della funzione. A titolo illustrativo, consideriamo il seguente esempio tratto dall’articolo HumanEval, in cui al modello viene fornita la firma e la descrizione della documentazione seguenti.

Fonte: Evaluating Large Language Models Trained on Code.

Per questo problema, ci aspettiamo che il modello generi qualcosa di simile a questo:

Fonte: Evaluating Large Language Models Trained on Code.

Tuttavia, il modello non viene valutato in base alla produzione di questa stringa esatta (che richiederebbe al modello di risolvere il problema allo stesso modo e con gli stessi nomi di variabili della soluzione), ma piuttosto il corpo della funzione che il modello produce viene valutato su diversi test unitari (in media, 7,7 test unitari per problema, ciascun test consiste in una scelta di parametri per la funzione e l’output atteso che il codice generato deve corrispondere). Il codice viene quindi considerato corretto se supera tutti i test unitari. La metrica pass@1 nella tabella sopra è semplicemente la percentuale di corpi di funzione generati che superano tutti i test unitari. Le metriche pass@k più generali consentono ai modelli di generare k campioni e considerano un successo se uno qualsiasi di quei campioni supera tutti i test unitari.

I modelli nell’articolo sono stati addestrati su dati provenienti da tre diverse fonti. La prima, The Stack+, è una versione deduplicata di The Stack di 35 miliardi di token, insieme al codice da StackOverflow e limitata a Python. Tuttavia, è importante notare che phi-1 e le sue varianti non sono addestrati su questa fonte. Invece, questi modelli sono addestrati su CodeTextbook, una selezione filtrata di 6 miliardi di token di qualità da The Stack+ insieme a un componente sintetico di 1 miliardo di token, e su CodeExercises, un insieme sintetico di 180 milioni di token di esercizi e soluzioni che riflettono lo stile di problema trovato nel dataset HumanEval. Gli effetti sono mostrati nella figura sottostante.

Risultati di HumanEval dopo l'addestramento su varie fonti. Immagine da Textbooks Are All You Need.

In questa figura vediamo 9 modelli con parametri variabili addestrati su sottoinsiemi variabili di questi dati. I modelli in verde chiaro in questo grafico sono addestrati solo su CodeTextbook e non su The Stack+, quindi è evidente che CodeTextbook è una fonte migliore. La messa a punto su CodeExercises che i modelli in verde scuro hanno ricevuto fa una differenza ancora più grande.

Tre dei modelli nel grafico hanno un nome:

  • phi-1-base è un modello a 1,3 miliardi di parametri (pre)addestrato con “circa 8 passaggi” su 7 miliardi di token di CodeTextbook. Ciò corrisponde a circa 50 miliardi di token di dati di addestramento e ha richiesto 4 giorni su 8 A100.
  • phi-1 è il risultato della messa a punto del modello phi-1-base sui 180 milioni di token di CodeExercises. Questa messa a punto ha richiesto 7 ore su 8 A100.
  • phi-1-small è realizzato utilizzando un processo simile a phi-1, ma con un modello di 350 milioni di parametri e apparentemente circa 11 passaggi su CodeTextbook. Ci vogliono circa 2 giorni per addestrarlo su 8 A100.

La parte filtrata di CodeTextbook (6 miliardi di token)

Per questa parte di CodeTextbook, hanno iniziato con una copia deduplicata di 35 miliardi di token di The Stack e limitata a Python insieme al codice da StackOverflow denominato Stack+ nel grafico sopra. Quindi hanno filtrato fino a ottenere un sottoinsieme di 6 miliardi di token di qualità da libro di testo.

Per fare questo filtraggio, GPT-4 viene utilizzato per determinare il valore educativo di circa lo 0,3% dell’intero dataset di 35 miliardi di token (100 milioni di token). La frase utilizzata è “determinare il suo valore educativo per uno studente il cui obiettivo è imparare i concetti di base della programmazione”.

Non è esplicitamente specificato perché è stato scelto GPT-4 invece di GPT-3.5 per questo passaggio, dato che GPT-3.5 viene utilizzato per tutte le altre fasi del processo. Tuttavia, considerando che il compito consiste nel classificare “solo” 100 milioni di token, l’uso di GPT-4 non è eccessivamente costoso e sicuramente produrrà risultati più accurati.

Successivamente, queste annotazioni vengono utilizzate per addestrare un altro modello (un classificatore random forest) per classificare il resto del dataset come alto o basso valore educativo. Successivamente, questo classificatore viene utilizzato per filtrare il dataset originale e ottenere un dataset di 6 miliardi di token di alta qualità educativa.

La parte sintetica di CodeTextbook (1 miliardo di token)

Qui le cose diventano più interessanti, poiché gli autori utilizzano GPT-3.5 per generare “libri di testo” sintetici di alta qualità in Python.

C’è un precedente nell’utilizzo di LLM per generare dati sintetici utilizzati per addestrare modelli più piccoli. In un precedente articolo di Microsoft Research, TinyStories: How Small Can Language Models Be and Still Speak Coherent English?, l’obiettivo è addestrare modelli di linguaggio più piccoli (da 1M a 33M di parametri) a scrivere storie comprensibili a livello di bambini piccoli, e il dataset consiste interamente di storie scritte da GPT-3.5 e GPT-4. Citando dal documento TinyStories:

“La sfida principale nell’utilizzo di grandi modelli di linguaggio per produrre dati di addestramento è generare un dataset sufficientemente diverso: se si chiede a quei modelli di produrre storie, anche se la temperatura di generazione è impostata su un valore alto, si otterrà comunque un dataset molto ripetitivo, la cui diversità è molto lontana da ciò che è richiesto per addestrare un modello di linguaggio che abbia una comprensione comparabile a quella dei bambini”.

Il trucco utilizzato da TinyStories per diversificare i dati sintetici è quello di scegliere tre parole casuali (un sostantivo, un verbo e un aggettivo) e un piccolo numero di “caratteristiche della storia” per ogni prompt. Ad esempio, uno dei loro prompt è il seguente.

Fonte: TinyStories: How Small Can Language Models Be and Still Speak Coherent English?

Purtroppo, Microsoft Research non fornisce molti dettagli sul loro trucco per generare una collezione diversificata di testi di qualità da manuale, e il progetto non sembra aver rilasciato codice o dati per indagare. Dicono che mirano al contenuto “argomenti che stimolano il ragionamento e le competenze algoritmiche di base” e che forniscono vincoli sugli argomenti e sul pubblico del manuale. Di seguito è riportato il loro esempio di una risposta tipica a uno dei loro prompt, citato dal documento.

Fonte: Textbooks Are All You Need .

Non è necessario dire che sarebbe interessante conoscere molto di più su questo passaggio del processo. Quali sono i prompt specifici? Come vengono scelti gli argomenti? Per quale pubblico GPT-3.5 viene istruito a scrivere? Sarebbe interessante anche ispezionare CodeTextbook, ma i dati non sono stati rilasciati.

CodeExercises (180 milioni di token)

La parte finale dei dati di addestramento per phi-1 e phi-1-small (ma non per phi-1-base) è un insieme di esercizi e soluzioni che riflettono il formato dei problemi di benchmark di HumanEval. Anche in questo caso, questi dati sono interamente sintetici e prodotti da GPT-3.5. Gli autori affermano che la diversità nelle uscite è stata ottenuta vincolando i nomi delle funzioni. Sebbene il significato esatto di ciò non sia chiaro per me, potrebbe implicare che un altro modello generi prima un elenco di nomi e firme di funzioni, e quindi si richieda a GPT-3.5 di generare la corrispondente docstring e il corpo. Gli autori forniscono un esempio di una tipica uscita, citata di seguito.

Fonte: I manuali sono tutto ciò di cui hai bisogno.

Gli autori si riferiscono a questo dataset come piccolo perché contiene solo 180M di token. Tuttavia, se l’esempio precedente è rappresentativo, allora CodeExercises contiene circa un milione di esercizi e soluzioni.

È lecito essere sospettosi che CodeExercises stia semplicemente incappando nelle stesse funzioni presenti nel benchmark HumanEval, portando a phi-1 ad essere ottimizzato per le soluzioni agli stessi esercizi su cui viene testato. Gli autori dedicano un’ampia sezione (tutta la Sezione 5) per argomentare contro questa preoccupazione. Prima sostengono che ci sia una somiglianza limitata tra CodeExercises e HumanEval. In secondo luogo, sostengono che anche quando gli esercizi in CodeExercises che presentano una leggera somiglianza con quelli in HumanEval vengono eliminati (dove la somiglianza viene misurata in termini di distanza di embedding), i modelli addestrati sui dataset ridotti rimangono impressionanti.

Costo

Il focus del paper, e di questa disamina approfondita del paper, è stato sulla qualità dei dati. Tuttavia, è illuminante considerare quanto costerebbe duplicare l’esperimento oggi, almeno per valutare i costi relativi dei suoi componenti individuali.

  • Filtraggio. Il processo di filtraggio di The Stack+ ha coinvolto l’utilizzo di GPT-4 per determinare il valore educativo di 100.000 file, pari a circa 100M di token in input. Ignorando i token in output (che sarebbero minimi) e utilizzando il prezzo odierno di $0,03 / 1K token in input, questo costerebbe circa $3.000.
  • Sintesi. CodeTextbook e CodeExercises insieme contengono circa 1280M di token di testo generato da GPT-3.5. Al prezzo odierno di $0,002 / 1K token in output, la creazione di questi dati costerebbe poco più di $2.500.
  • Addestramento. Il modello phi-1 è stato addestrato per 1090 ore. Al prezzo odierno di circa $1/ora per un A100, questo ammonta a circa $1.000. Il modello phi-1-small con 350M di parametri potrebbe essere addestrato per $400.

Circa $6.500 di calcolo sono stati impiegati nella creazione di phi-1.

Gli autori speculano che l’utilizzo di GPT-4 per la sintesi sarebbe molto migliore: “crediamo anche che si potrebbero ottenere progressi significativi utilizzando GPT-4 per generare i dati sintetici invece di GPT-3.5, poiché abbiamo notato che i dati di GPT-3.5 hanno un alto tasso di errore.” Ma questi costi mostrano perché non l’hanno fatto. A 30 volte il prezzo di GPT-3.5, costerebbe circa $75.000 generare la parte sintetica di CodeTextbook e CodeExercises con GPT-4.

Conclusione

I risultati di Textbooks Are All You Need sono molto impressionanti, soprattutto considerando la dimensione ridotta dei modelli e i dati di addestramento limitati che sono stati forniti. Questo paper è un ulteriore elemento di prova che la qualità dei dati può compensare la quantità di dati e la dimensione dei modelli.

La discussione sui dati sintetici senza dubbio persiste. Il concetto è allettante: se non abbiamo dati di alta qualità prontamente disponibili, potremmo semplicemente sintetizzarli? Textbooks Are All You Need offre alcune possibilità promettenti in questo ambito. Tuttavia, non è l’esperimento perfetto che potremmo sognare, considerando che solo circa 1B dei 7B di token in CodeTextbook sono stati creati sinteticamente. Ma vale la pena sottolineare che gli altri 6B di token sono stati filtrati sinteticamente.

L’addestramento su dati interamente sintetici ha mostrato risultati interessanti nel campo dell’elaborazione delle immagini. Lo studio di Google Research, StableRep: Synthetic Images from Text-to-Image Models Make Strong Visual Representation Learners, prende un modello di testo-immagine e lo addestra interamente su dati sintetici prodotti da Stable Diffusion. I risultati riportati eguagliano o superano le prestazioni di Stable Diffusion stesso.

Un approccio simile è stato adottato dal paper TinyStories, che si è basato solo su dati sintetici per l’addestramento. Tuttavia, i modelli utilizzati erano molto piccoli. Cosa succederebbe se modelli di linguaggio più grandi venissero addestrati allo stesso modo? Il potenziale che ciò presenta è entusiasmante e sarà senza dubbio oggetto di numerosi studi futuri.

Riferimenti

Chen, M., Tworek, J., Jun, H., Yuan, Q., de Oliveira Pinto, H. P., Kaplan, J., Edwards, H., Burda, Y., Joseph, N., Brockman, G., Ray, A., Puri, R., Krueger, G., Petrov, M., Khlaaf, H., Sastry, G., Mishkin, P., Chan, B., Gray, S., Ryder, N., Pavlov, M., Power, A., Kaiser, L., Bavarian, M., Winter, C., Tillet, P., Such, F. P., Cummings, D., Plappert, M., Chantzis, F., Barnes, E., Herbert-Voss, A., Guss, W. H., Nichol, A., Paino, A., Tezak, N., Tang, J., Babuschkin, I., Balaji, S., Jain, S., Saunders, W., Hesse, C., Carr, A. N., Leike, J., Achiam, J., Misra, V., Morikawa, E., Radford, A., Knight, M., Brundage, M., Murati, M., Mayer, K., Welinder, P., McGrew, B., Amodei, D., McCandlish, S., Sutskever, I., e Zaremba, W. (2021). Valutazione di grandi modelli di linguaggio addestrati sul codice . arXiv:2107.03374.

Eldan, R. e Li, Y. (2023). TinyStories: Quanto piccoli possono essere i modelli di linguaggio e comunque parlare inglese coerente? arXiv:2305.07759.

Gudibande, A., Wallace, E., Snell, C., Geng, X., Liu, H., Abbeel, P., Levine, S., e Song, D. (2023). La falsa promessa di imitare LLM proprietari . arXiv:2305.15717.

Gunasekar, S., Zhang, Y., Aneja, J., Mendes, C. C. T., Giorno, A. D., Gopi, S., Javaheripi, M., Kau￿ mann, P., de Rosa, G., Saarikivi, O., Salim, A., Shah, S., Behl, H. S., Wang, X., Bubeck, S., Eldan, R., Kalai, A. T., Lee, Y. T., e Li, Y. (2023). I libri di testo sono tutto ciò di cui hai bisogno . arXiv:2306.11644.

Hoffmann, J., Borgeaud, S., Mensch, A., Buchatskaya, E., Cai, T., Rutherford, E., de Las Casas, D., Hendricks, L. A., Welbl, J., Clark, A., Hennigan, T., Noland, E., Millican, K., van den Driessche, G., Damoc, B., Guy, A., Osin- dero, S., Simonyan, K., Elsen, E., Rae, J. W., Vinyals, O., e Sifre, L. (2022). Addestramento di grandi modelli di linguaggio ottimali dal punto di vista del calcolo . arXiv:2203.15556.

Kaplan, J., McCandlish, S., Henighan, T., Brown, T. B., Chess, B., Child, R., Gray, S., Radford, A., Wu, J., e Amodei, D. (2020). Leggi di scala per modelli di linguaggio neurali. arXiv:2001.08361. Tian, Y., Fan, L., Isola, P., Chang, H., e Krishnan, D. (2023). StableRep: Immagini sintetiche da modelli di testo-immagine per apprendimento di rappresentazioni visive robuste. arXiv:2306.00984. Zhou, C., Liu, P., Xu, P., Iyer, S., Sun, J., Mao, Y., Ma, X., Efrat, A., Yu, P., Yu, L., Zhang, S., Ghosh, G., Lewis, M., Zettlemoyer, L., e Levy, O. (2023). LIMA: Meno è di più per l’allineamento . arXiv:2305.11206.