Nel mese di settembre del 2023, il panorama dei Large Language Models (LLM) continua a vedere l’emergere di modelli come Alpaca, Falcon, Llama 2, GPT-4 e molti altri.
Un aspetto cruciale per sfruttare appieno il potenziale di questi LLM è il processo di messa a punto. Questa strategia permette di personalizzare modelli pre-addestrati per adattarli in modo preciso a compiti specifici. È grazie alla messa a punto che questi modelli possono davvero adattarsi alle esigenze individuali, offrendo soluzioni innovative e su misura.
Tuttavia, è importante notare che non tutte le strade verso la perfezione sono uguali. Ad esempio, l’accesso alle funzionalità di messa a punto di GPT-4 ha un costo aggiuntivo e richiede un abbonamento a pagamento relativamente più costoso rispetto ad altre opzioni disponibili sul mercato. D’altra parte, l’ecosistema open source offre alternative che rendono l’accesso alla tecnologia avanzata dell’intelligenza artificiale più accessibile, promuovendo l’innovazione e l’inclusività nel mondo dell’IA in continua evoluzione.
Perché è così importante la messa a punto dei LLM? La messa a punto va oltre il miglioramento tecnico; è un elemento cruciale nello sviluppo dei modelli LLM, poiché consente loro di essere applicati in modo più specifico e raffinato in una varietà di compiti. La messa a punto adatta i modelli pre-addestrati per adattarsi meglio a set di dati specifici, migliorando le loro prestazioni in compiti specifici e garantendo un’applicazione più mirata. Dimostra la straordinaria capacità dei LLM di adattarsi a nuovi dati, mostrando la flessibilità fondamentale nell’era delle applicazioni dell’intelligenza artificiale.
La messa a punto di modelli linguistici di grandi dimensioni apre molte opportunità, consentendo loro di eccellere in compiti specifici, che vanno dall’analisi del sentiment alle revisioni della letteratura medica. Personalizzando il modello di base per un caso d’uso specifico, si aprono nuove possibilità, migliorando l’efficienza e la precisione complessiva. Inoltre, rende l’utilizzo delle risorse di sistema più efficiente, poiché la messa a punto richiede meno potenza di calcolo rispetto alla formazione di un modello da zero.
Mentre approfondiremo questa guida, esamineremo le complessità della messa a punto dei LLM, fornendoti una panoramica completa basata sugli ultimi progressi e le migliori pratiche del settore.
Ottimizzazione basata su istruzioni
Nel ciclo di vita dell’intelligenza artificiale generativa, la messa a punto è caratterizzata dall’integrazione di input e output di istruzioni, abbinati a esempi di ragionamento passo-passo. Questo approccio aiuta il modello a generare risposte non solo rilevanti, ma anche perfettamente allineate alle istruzioni specifiche inserite. È durante questa fase che i modelli preaddestrati vengono adattati per risolvere compiti e casi d’uso distinti, utilizzando set di dati personalizzati per migliorare le loro capacità.
Ottimizzazione di un’attività singola
La messa a punto di un singolo compito si concentra sull’affinamento delle competenze del modello in un compito specifico, come la sintesi. Questo approccio è particolarmente utile per ottimizzare i flussi di lavoro che coinvolgono documenti sostanziali o conversazioni complesse, come documenti legali o ticket di assistenza clienti. Sorprendentemente, questa messa a punto può ottenere miglioramenti significativi delle prestazioni con un insieme relativamente piccolo di esempi, che vanno da 500 a 1000, in contrasto con i miliardi di token utilizzati nella fase di pre-addestramento.
Fondamenti di LLM
Per comprendere appieno la messa a punto dei LLM, è importante comprendere gli elementi fondamentali che costituiscono questi modelli di linguaggio. Al centro di questi modelli c’è l’architettura del trasformatore, una rete neurale che utilizza meccanismi di auto-attenzione per dare priorità al contesto delle parole in una frase rispetto alla loro posizione. Questo approccio innovativo consente una comprensione più profonda delle relazioni tra i token nell’input.
Mentre esploriamo le complessità dei trasformatori, ci imbattiamo in un processo a più fasi che inizia con il codificatore. Questa fase iniziale coinvolge la tokenizzazione dell’input e la creazione di vettori di incorporamento che rappresentano l’input e la sua posizione nella frase. Le fasi successive comportano una serie di calcoli utilizzando matrici chiamate Query, Valore e Chiave, che culminano in un punteggio di auto-attenzione che determina l’attenzione su diverse parti della frase e su vari token.
La messa a punto rappresenta una fase cruciale nello sviluppo dei LLM, poiché implica sottili aggiustamenti per ottenere risultati desiderabili. Questa fase, sebbene essenziale, presenta alcune sfide, tra cui le esigenze computazionali e di archiviazione legate alla gestione di un grande numero di parametri. Il Parametro Efficient Fine-Tuning (PEFT) offre tecniche per ridurre il numero di parametri da ottimizzare, semplificando così il processo di formazione.
Pre-formazione LLM
Nelle prime fasi dello sviluppo dei LLM, la pre-formazione è fondamentale. Questo processo coinvolge l’utilizzo di trasformatori sovraparametrizzati come architettura di base. La pre-formazione implica la modellazione del linguaggio naturale in modi diversi, come bidirezionale, autoregressivo o sequenza per sequenza, su grandi corpora di dati non supervisionati. L’obiettivo qui è creare una base che possa essere successivamente messa a punto per compiti specifici attraverso l’introduzione di obiettivi di compito specifici.
Una tendenza notevole in questo campo è l’aumento inevitabile della scala dei LLM pre-formati, misurata dal numero di parametri. Dati empirici dimostrano costantemente che modelli più grandi associati a più dati producono prestazioni migliori. Ad esempio, GPT-3, con i suoi 175 miliardi di parametri, ha stabilito un punto di riferimento nella generazione di linguaggio naturale di alta qualità e nell’esecuzione competente di una vasta gamma di attività zero-shot.
Messa a punto: il percorso verso l’adattamento del modello
Dopo la fase di pre-formazione, il LLM è sottoposto a un processo di perfezionamento per adattarlo a compiti specifici. Nonostante i progressi mostrati dall’apprendimento in contesto in LLM pre-addestrati come GPT-3, la messa a punto rimane superiore nei contesti specifici delle attività. Tuttavia, l’approccio prevalente alla messa a punto completa dei parametri presenta sfide, tra cui elevate esigenze computazionali e di memoria, soprattutto quando si lavora con modelli di grandi dimensioni.
Per i modelli linguistici di grandi dimensioni con oltre un miliardo di parametri, è fondamentale gestire efficientemente la memoria GPU. Un singolo parametro del modello con precisione completa a 32 bit richiede 4 byte di spazio, il che si traduce in un requisito di 4 GB di RAM GPU solo per caricare un modello da 1 miliardo di parametri. Il processo di addestramento richiede ancora più memoria per ospitare vari componenti, tra cui stati e gradienti dell’ottimizzatore, potenzialmente fino a 80 GB di RAM GPU per un modello di questa scala.
Per superare le limitazioni della RAM GPU, viene utilizzata la quantizzazione, una tecnica che riduce la precisione dei parametri del modello, riducendo così i requisiti di memoria. Ad esempio, la modifica della precisione da 32 bit a 16 bit può dimezzare la memoria necessaria sia per il caricamento che per l’addestramento del modello. Successivamente, impareremo a conoscere QLoRA, che utilizza la quantizzazione per l’ottimizzazione.
Esplorazione delle categorie dei metodi PEFT
Nel processo di messa a punto completa dei modelli linguistici di grandi dimensioni, è importante disporre di una configurazione computazionale in grado di gestire in modo efficiente non solo il peso considerevole dei modelli, che per i modelli più avanzati stanno ora raggiungendo dimensioni di centinaia di gigabyte, ma anche di gestire una serie di altri elementi critici. Questi includono l’allocazione della memoria per gli stati dell’ottimizzatore, la gestione dei gradienti, le attivazioni successive e la facilitazione della memoria temporanea durante le diverse fasi della procedura di addestramento.
Metodo additivo
Questo tipo di ottimizzazione può aumentare il modello pre-addestrato con parametri o livelli aggiuntivi, concentrandosi sull’addestramento solo dei parametri appena aggiunti. Nonostante l’aumento del conteggio dei parametri, questi metodi migliorano i tempi di formazione e l’efficienza dello spazio. Il metodo additivo può essere ulteriormente suddiviso in sottocategorie:
- Adattatori: incorporano sottostrati post-trasformatori di piccole reti completamente connesse, con esempi notevoli come AdaMix, KronA e Compactor.
- Suggerimenti morbidi: messa a punto di un segmento degli incorporamenti di input del modello attraverso la discesa del gradiente, con IPT, ottimizzazione del prefisso e WARP come esempi importanti.
- Altri approcci additivi: includono tecniche come LeTS, AttentionFusion e Ladder-Side Tuning.
Metodo selettivo
I PEFT selettivi mettono a punto un numero limitato di strati superiori in base al tipo di strato e alla struttura interna del modello. Questa categoria include metodi come BitFit e LN tuning, che si concentrano sull’ottimizzazione di elementi specifici come le distorsioni del modello o righe particolari.
Metodo basato sulla riparametrizzazione
Questi metodi utilizzano rappresentazioni a basso rango per ridurre il numero di parametri addestrabili, il più noto dei quali è l’adattamento di basso rango o LoRA. Questo metodo sfrutta una semplice scomposizione della matrice di basso rango per parametrizzare l’aggiornamento del peso, dimostrando un’efficace messa a punto nei sottospazi di basso rango.
- LoRA (adattamento di basso rango)
LoRA è emersa come una tecnica PEFT innovativa, introdotta in un articolo di Edward J. Hu e altri nel 2021. Opera all’interno della categoria di riparametrizzazione, congelando i pesi originali del LLM e integrando nuove matrici di basso rango addestrabili in ogni strato dell’architettura Transformer. Questo approccio non solo riduce il numero di parametri addestrabili, ma diminuisce anche il tempo di addestramento e le risorse computazionali necessarie, presentando così un’alternativa più efficiente alla messa a punto completa.
Per comprendere i meccanismi di LoRA, è necessario rivisitare l’architettura del trasformatore in cui il prompt di input viene sottoposto a tokenizzazione e conversione in vettori di incorporamento. Questi vettori attraversano i segmenti codificatore e/o decodificatore del trasformatore, incontrando reti di autoattenzione e feed-forward i cui pesi sono pre-addestrati.
LoRA utilizza il concetto di decomposizione dei valori singolari (SVD). Essenzialmente, SVD seziona una matrice in tre matrici distinte, una delle quali è una matrice diagonale che ospita valori singolari. Questi valori singolari sono fondamentali in quanto misurano il significato delle diverse dimensioni nelle matrici, con valori più grandi che indicano maggiore importanza e quelli più piccoli che denotano significato minore.
Questo approccio consente a LoRA di mantenere le caratteristiche essenziali dei dati riducendone al contempo la dimensionalità, ottimizzando così il processo di messa a punto.
LoRA interviene in questo processo, congelando tutti i parametri del modello originale e introducendo una coppia di “matrici di scomposizione dei ranghi” accanto ai pesi originali. Queste matrici più piccole, denominate A e B, vengono sottoposte ad addestramento attraverso l’apprendimento supervisionato, un processo delineato nei capitoli precedenti.
- QLoRA: aumentare l’efficienza di LoRA
Basandosi sulle fondamenta gettate da LoRA, QLoRA riduce ulteriormente i requisiti di memoria. Introdotto da Tim Dettmers e altri nel 2023, combina l’adattamento di basso rango con la quantizzazione, utilizzando un formato di quantizzazione a 4 bit chiamato NormalFloat o nf4. La quantizzazione è essenzialmente un processo che trasferisce i dati da una rappresentazione più informativa a una con meno informazioni. Questo approccio mantiene l’efficacia dei metodi di regolazione fine a 16 bit, dequantizzando i pesi da 4 bit a 16 bit come richiesto durante i processi computazionali.
QLoRA sfrutta NumericFloat4 (nf4), prendendo di mira ogni livello dell’architettura del trasformatore, e introduce il concetto di doppia quantizzazione per ridurre ulteriormente l’impronta di memoria richiesta per la messa a punto. Ciò si ottiene eseguendo la quantizzazione sulle costanti già quantizzate, una strategia che evita i tipici picchi di memoria del checkpoint del gradiente attraverso l’utilizzo di ottimizzatori paginati e una gestione unificata della memoria.
Guanaco, che è un insieme sintonizzato su QLoRA, stabilisce un punto di riferimento nelle soluzioni chatbot open source. Le sue prestazioni, convalidate attraverso valutazioni sistematiche umane e automatizzate, sottolineano la sua posizione dominante ed efficienza nel settore.
Le versioni 65B e 33B di Guanaco, ottimizzate utilizzando una versione modificata del set di dati OASST1, emergono come formidabili contendenti a modelli rinomati come ChatGPT e persino GPT-4.
Ottimizzazione utilizzando l’apprendimento per rinforzo dal feedback umano
L’apprendimento per rinforzo dal feedback umano (RLHF) entra in gioco quando si perfezionano i modelli linguistici pre-addestrati per allinearli più strettamente ai valori umani. Questo concetto è stato introdotto da Open AI nel 2017 gettando le basi per un riepilogo avanzato dei documenti e lo sviluppo di InstructGPT.
Al centro di RLHF c’è il paradigma dell’apprendimento per rinforzo, un tipo di tecnica di apprendimento automatico in cui un agente impara come comportarsi in un ambiente eseguendo azioni e ricevendo ricompense. È un ciclo continuo di azione e feedback, in cui l’agente è incentivato a fare scelte che produrranno la ricompensa più alta.
Traducendo questo nel regno dei modelli linguistici, l’agente è il modello stesso, che opera nell’ambiente di una determinata finestra di contesto e prende decisioni in base allo stato, che è definito dai token correnti nella finestra di contesto. Lo “spazio d’azione” comprende tutti i potenziali token tra cui il modello può scegliere, con l’obiettivo di selezionare il token che si allinea più da vicino con le preferenze umane.
Il processo RLHF sfrutta ampiamente il feedback umano, utilizzandolo per formare un modello di ricompensa. Questo modello svolge un ruolo cruciale nel guidare il modello pre-addestrato durante il processo di messa a punto, incoraggiandolo a generare risultati più in linea con i valori umani. Si tratta di un processo dinamico e iterativo, in cui il modello apprende attraverso una serie di “lanciamenti”, un termine usato per descrivere la sequenza di stati e azioni che portano a una ricompensa nel contesto della generazione del linguaggio.
Uno dei notevoli potenziali di RLHF è la sua capacità di favorire la personalizzazione degli assistenti IA, adattandoli per rispondere alle preferenze dei singoli utenti, che si tratti del loro senso dell’umorismo o delle routine quotidiane. Apre strade per la creazione di sistemi di intelligenza artificiale che non siano solo tecnicamente competenti ma anche emotivamente intelligenti, in grado di comprendere e rispondere alle sfumature della comunicazione umana.
Tuttavia, è importante notare che l’apprendimento per rinforzo dal feedback umano può avere alcune sfide. Ad esempio, la raccolta di feedback umano può essere costosa e richiedere molto tempo. Inoltre, può sorgere la questione dell’etica, in quanto è necessario definire chi siano gli annotatori umani e come venga valutato il loro feedback.
La messa a punto dei Large Language Models è un campo in evoluzione rapida e promette applicazioni sempre più innovative in una vasta gamma di settori. La combinazione di modelli pre-addestrati con la messa a punto adatta per compiti specifici offre una versatilità e una personalizzazione senza precedenti nell’ambito dell’elaborazione del linguaggio naturale.
Tuttavia, questo progresso è accompagnato da sfide importanti, tra cui l’efficienza delle risorse, l’etica e la gestione dei dati. È essenziale continuare a investire nella ricerca e nello sviluppo per affrontare queste sfide e garantire che l’IA sia utilizzata in modo responsabile e inclusivo.