Comprensione del LLM Fine-Tuning Adattare i modelli di linguaggio di grandi dimensioni alle tue esigenze uniche

Comprenderà LLM Fine-Tuning adatta i modelli di linguaggio alle tue esigenze.

Mentre ci troviamo a settembre 2023, il panorama dei Large Language Models (LLM) sta ancora assistendo all’emergere di modelli come Alpaca, Falcon, Llama 2, GPT-4 e molti altri.

Un aspetto cruciale per sfruttare il potenziale di questi LLM risiede nel processo di fine-tuning, una strategia che consente la personalizzazione dei modelli pre-addestrati per adattarli a specifici compiti con precisione. Attraverso questo fine-tuning, questi modelli possono veramente allinearsi con requisiti individualizzati, offrendo soluzioni innovative e su misura per esigenze uniche.

Tuttavia, è essenziale notare che non tutte le possibilità di fine-tuning sono uguali. Ad esempio, l’accesso alle capacità di fine-tuning del GPT-4 comporta un costo, richiedendo una sottoscrizione a pagamento relativamente più costosa rispetto ad altre opzioni disponibili sul mercato. D’altra parte, nel dominio open-source ci sono molte alternative che offrono un percorso più accessibile per sfruttare il potere dei grandi modelli di linguaggio. Queste opzioni open-source democratizzano l’accesso alle tecnologie avanzate di intelligenza artificiale, promuovendo l’innovazione e l’inclusività nel panorama dell’IA in rapida evoluzione.

Hugging Face – Classifica aperta dei Large Language Models

Perché è importante il fine-tuning dei LLM?

Il fine-tuning dei LLM è più di un miglioramento tecnico; è un aspetto cruciale dello sviluppo dei modelli LLM che consente un’applicazione più specifica e raffinata in vari compiti. Il fine-tuning regola i modelli pre-addestrati per adattarli meglio a specifici dataset, migliorando le loro prestazioni in compiti specifici e garantendo un’applicazione più mirata. Mostra la notevole capacità dei LLM di adattarsi a nuovi dati, dimostrando una flessibilità che è fondamentale nell’interesse sempre crescente per le applicazioni di intelligenza artificiale.

Il fine-tuning dei grandi modelli di linguaggio apre molte opportunità, permettendo loro di eccellere in compiti specifici, dall’analisi del sentiment all’analisi di letteratura medica. Regolando il modello di base per un caso d’uso specifico, sblocchiamo nuove possibilità, migliorando l’efficienza e l’accuratezza del modello. Inoltre, facilita un utilizzo più economico delle risorse di sistema, poiché il fine-tuning richiede meno potenza computazionale rispetto all’addestramento di un modello da zero.

Man mano che procediamo in questa guida, discuteremo le sfumature del fine-tuning dei LLM, fornendoti una panoramica completa basata sui più recenti progressi e sulle migliori pratiche nel campo.

Fine-Tuning Basato su Istruzioni

La fase di fine-tuning nel ciclo di vita dell’IA generativa, illustrato nella figura sottostante, è caratterizzata dall’integrazione di input e output di istruzioni, uniti a esempi di ragionamento passo-passo. Questo approccio facilita il modello nella generazione di risposte non solo pertinenti, ma anche precisamente allineate alle istruzioni specifiche fornite. È durante questa fase che i modelli pre-addestrati vengono adattati per risolvere compiti e casi d’uso distinti, utilizzando dataset personalizzati per migliorarne la funzionalità.

Ciclo di Vita dell’IA Generativa – Fine Tuning

Fine-Tuning su Singolo Compito

Il fine-tuning su singolo compito si concentra nell’affinare l’esperienza del modello in un compito specifico, come la sintesi. Questo approccio è particolarmente vantaggioso nell’ottimizzare i flussi di lavoro che coinvolgono documenti o fili di conversazione consistenti, tra cui documenti legali e ticket di supporto clienti. Sorprendentemente, questo fine-tuning può ottenere miglioramenti significativi delle prestazioni con un set di esempi relativamente piccolo, che va da 500 a 1000, a differenza dei miliardi di token utilizzati nella fase di pre-addestramento.

Esempio di Illustrazione del Fine-Tuning su Singolo Compito

Fondamenti del Fine-Tuning dei LLM: Architettura LLM e Oltre

Il percorso per comprendere il fine-tuning dei LLM inizia con una comprensione degli elementi fondamentali che costituiscono i grandi modelli di linguaggio. Al centro di questi modelli si trova l’architettura del transformer, una rete neurale che sfrutta meccanismi di auto-attenzione per dare priorità al contesto delle parole sulla loro vicinanza in una frase. Questo approccio innovativo facilita una comprensione più profonda delle relazioni distanti tra i token in input.

Mentre navighiamo tra le complessità dei transformers, ci troviamo di fronte a un processo a più fasi che inizia con l’encoder. Questa fase iniziale coinvolge la tokenizzazione dell’input e la creazione di vettori di embedding che rappresentano l’input e la sua posizione nella frase. Le fasi successive coinvolgono una serie di calcoli utilizzando matrici conosciute come Query, Value e Key, culminando in un punteggio di auto-attenzione che determina il focus su diverse parti della frase e vari token.

Architettura del Transformer

Il fine-tuning rappresenta una fase critica nello sviluppo dei LLM (Large Language Models), un processo che comporta piccoli aggiustamenti per ottenere output più desiderabili. Questa fase, sebbene essenziale, presenta una serie di sfide, tra cui le esigenze computazionali e di archiviazione per gestire un vasto numero di parametri. Il Parameter Efficient Fine-Tuning (PEFT) offre tecniche per ridurre il numero di parametri da sottoporre a fine-tuning, semplificando così il processo di addestramento.

LLM Pre-Training: Stabilire una Base Solida

Nelle prime fasi dello sviluppo dei LLM, il pre-training assume un ruolo centrale, utilizzando trasformatori sovradimensionati come architettura fondamentale. Questo processo coinvolge la modellazione del linguaggio naturale in diverse modalità, come bidirezionale, autoregressiva o sequenza-su-sequenza, su corpora non supervisionati su larga scala. L’obiettivo qui è creare una base che possa essere successivamente adattata per specifici compiti tramite l’introduzione di obiettivi specifici del compito.

Pre-training, Fine-Tuning

Una tendenza significativa in questo ambito è l’aumento inevitabile della scala dei LLM pre-addestrati, misurato dal numero di parametri. I dati empirici mostrano costantemente che modelli più grandi combinati con più dati producono quasi sempre prestazioni migliori. Ad esempio, il 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 di una vasta gamma di compiti senza la necessità di istruzioni specifiche.

Fine-Tuning: Il Percorso per l’Adattamento del Modello

Dopo il pre-training, il LLM viene sottoposto a fine-tuning per adattarsi a compiti specifici. Nonostante le prestazioni promettenti mostrate dall’apprendimento in contesto nei LLM pre-addestrati come il GPT-3, il fine-tuning rimane superiore in contesti specifici del compito. Tuttavia, l’approccio prevalente del fine-tuning completo dei parametri presenta sfide, tra cui elevate richieste computazionali e di memoria, specialmente quando si lavora con modelli su larga scala.

Per i modelli di linguaggio di grandi dimensioni con oltre un miliardo di parametri, la gestione efficiente della RAM della GPU è fondamentale. Un singolo parametro del modello a precisione completa a 32 bit richiede 4 byte di spazio, il che si traduce in una richiesta di 4 GB di RAM della GPU solo per caricare un modello con 1 miliardo di parametri. Il processo effettivo di addestramento richiede ancora più memoria per ospitare vari componenti, tra cui stati dell’ottimizzatore e gradienti, potenzialmente richiedendo fino a 80 GB di RAM della GPU per un modello di questa portata.

Per superare le limitazioni della RAM della GPU, viene utilizzata la quantizzazione, una tecnica che riduce la precisione dei parametri del modello, riducendo così i requisiti di memoria. Ad esempio, modificando la precisione da 32 bit a 16 bit è possibile dimezzare la memoria necessaria per il caricamento e l’addestramento del modello. Successivamente in questo articolo, parleremo di Qlora che utilizza il concetto di quantizzazione per l’ottimizzazione.

Requisiti di memoria della GPU per i LLM rispetto al numero di parametri e alla precisione

 

Esplorare le Categorie di Metodi PEFT

Metodi di fine-tuning efficienti in termini di parametri

Nel processo di fine-tuning completo dei Large Language Models, è importante avere una configurazione computazionale che possa gestire in modo efficiente non solo i pesi sostanziali del modello, che per i modelli più avanzati stanno raggiungendo dimensioni nell’ordine delle centinaia di gigabyte, ma anche gestire una serie di altri elementi critici. Questi includono l’allocazione di memoria per gli stati dell’ottimizzatore, la gestione dei gradienti, le attivazioni in avanti e la facilitazione della memoria temporanea durante varie fasi della procedura di addestramento.

Metodo Additivo

Tipo di ottimizzazione: questa tecnica può aumentare il modello pre-addestrato con parametri o strati aggiuntivi, concentrandosi sulla formazione solo dei nuovi parametri. Nonostante l’aumento del conteggio dei parametri, questi metodi migliorano l’efficienza del tempo di formazione e dello spazio. Il metodo additivo è ulteriormente diviso in sottocategorie:

  • Adapters: incorporano reti completamente connesse di piccole dimensioni dopo i sottolivelli del trasformatore, con esempi notevoli come AdaMix, KronA e Compactor.
  • Soft Prompts: ottimizzano una parte degli incorporamenti dell’input del modello tramite discesa del gradiente, con esempi prominenti come IPT, prefix-tuning e WARP.
  • Altri approcci additivi: includono tecniche come LeTS, AttentionFusion e Ladder-Side Tuning.

Metodo selettivo

I PEFT selettivi ottimizzano 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 i bias del modello o righe particolari.

Metodo basato sulla riparametrizzazione

Questi metodi utilizzano rappresentazioni a basso rango per ridurre il numero di parametri addestrabili, con il più famoso che è Low-Rank Adaptation o LoRA. Questo metodo sfrutta una semplice decomposizione di matrici a basso rango per parametrizzare l’aggiornamento dei pesi, dimostrando un’ottimizzazione efficace in sottospazi a basso rango.

1) LoRA (Low-Rank Adaptation)

LoRA è emerso 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 addestrabili a basso rango in ogni strato dell’architettura del trasformatore. Questo approccio non solo riduce il numero di parametri addestrabili, ma riduce anche il tempo di formazione e le risorse computazionali necessarie, presentando quindi un’alternativa più efficiente alla formazione completa.

Per comprendere la meccanica di LoRA, è necessario riprendere 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 di encoder e/o decoder del trasformatore, incontrando autoattenzione e reti feed-forward i cui pesi sono preaddestrati.

LoRA utilizza il concetto di decomposizione a valori singolari (SVD). Fondamentalmente, SVD scompone una matrice in tre matrici distinte, di cui una è una matrice diagonale che contiene i valori singolari. Questi valori singolari sono cruciali poiché misurano l’importanza delle diverse dimensioni nelle matrici, con valori più grandi che indicano un’importanza maggiore e valori più piccoli che indicano una minore importanza.

Decomposizione a valori singolari (SVD) di una matrice m × n

Questo approccio consente a LoRA di mantenere le caratteristiche essenziali dei dati riducendone la dimensionalità, ottimizzando quindi il processo di ottimizzazione.

LoRA interviene in questo processo, congelando tutti i parametri del modello originale e introducendo un paio di “matrici di decomposizione del rango” insieme ai pesi originali. Queste matrici più piccole, indicate come A e B, vengono addestrate tramite apprendimento supervisionato, un processo delineato nei capitoli precedenti.

Illustrazione di LORA LLM

L’elemento cruciale in questa strategia è il parametro chiamato rango (‘r’), che determina la dimensione delle matrici a basso rango. Una selezione accurata di ‘r’ può produrre risultati impressionanti, anche con un valore più piccolo, creando quindi una matrice a basso rango con meno parametri da addestrare. Questa strategia è stata implementata con successo utilizzando librerie open-source come HuggingFace Transformers, facilitando l’ottimizzazione di LoRA per varie attività con un’efficienza notevole.

2) QLoRA: Portare l’efficienza di LoRA a un livello superiore

Basandosi sul fondamento gettato da LoRA, QLoRA riduce ulteriormente i requisiti di memoria. Introdotto da Tim Dettmers e altri nel 2023, combina l’adattamento a basso rango con la quantizzazione, utilizzando un formato di quantizzazione a 4 bit chiamato NormalFloat o nf4. La quantizzazione è essenzialmente un processo che transita i dati da una rappresentazione informativa superiore a una con meno informazioni. Questo approccio mantiene l’efficacia dei metodi di ottimizzazione a 16 bit, dequantizzando i pesi a 4 bit a 16 bit come necessario durante i processi computazionali.

Confronto tra metodi di fine-tuning: QLORA migliora LoRA con quantizzazione a precisione a 4 bit e ottimizzatori suddivisi per la gestione dei picchi di memoria

QLoRA sfrutta NumericFloat4 (nf4), mirando a ogni livello dell’architettura del trasformatore, e introduce il concetto di doppia quantizzazione per ridurre ulteriormente l’occupazione di memoria richiesta per il fine-tuning. Questo viene ottenuto 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 suddivisi e la gestione unificata della memoria.

Guanaco, che è un insieme sintonizzato con QLORA, rappresenta un punto di riferimento nelle soluzioni di chatbot open-source. Le sue prestazioni, validate attraverso valutazioni umane e automatiche sistematiche, sottolineano la sua supremazia ed efficienza nel campo.

Le versioni 65B e 33B di Guanaco, sintonizzate con una versione modificata dell’insieme di dati OASST1, emergono come contendenti formidabili ai modelli rinomati come ChatGPT e persino GPT-4.

Fine-tuning utilizzando Reinforcement Learning from Human Feedback

Reinforcement Learning from Human Feedback (RLHF) entra in gioco quando si esegue il fine-tuning di modelli di linguaggio pre-addestrati per allinearsi più strettamente con i valori umani. Questo concetto è stato introdotto da Open AI nel 2017, gettando le basi per il miglioramento della sintesi dei documenti e lo sviluppo di InstructGPT.

Alla base di RLHF c’è il paradigma del reinforcement learning, un tipo di tecnica di machine learning 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 generino la ricompensa più alta.

Tradotto nel contesto dei modelli di linguaggio, l’agente è il modello stesso, che opera all’interno dell’ambiente di una finestra di contesto data e prende decisioni basate sullo stato, definito dai token correnti nella finestra di contesto. Lo “spazio delle azioni” comprende tutti i token potenziali che il modello può scegliere, con l’obiettivo di selezionare il token che si allinea più strettamente alle preferenze umane.

Il processo RLHF fa ampio uso del feedback umano, utilizzandolo per addestrare un modello di ricompensa. Questo modello svolge un ruolo cruciale nel guidare il modello pre-addestrato durante il processo di fine-tuning, incoraggiandolo a generare output più allineati con i valori umani. È un processo dinamico e iterativo, in cui il modello impara attraverso una serie di “rollout”, termine utilizzato per descrivere la sequenza di stati e azioni che portano a una ricompensa nel contesto della generazione del linguaggio.

Instruct-GPT

Una delle notevoli potenzialità di RLHF è la sua capacità di favorire la personalizzazione negli assistenti AI, adattandoli alle preferenze individuali degli utenti, che si tratti del loro senso dell’umorismo o delle routine quotidiane. Apre vie per la creazione di sistemi AI che non sono solo tecnicamente competenti, ma anche emotivamente intelligenti, capaci di comprendere e rispondere alle sfumature della comunicazione umana.

Tuttavia, è importante notare che RLHF non è una soluzione infallibile. I modelli sono ancora suscettibili di generare output indesiderabili, riflesso dei dati vasti e spesso non regolamentati e tendenziosi su cui sono addestrati.

Conclusioni

Il processo di fine-tuning, un passaggio critico per sfruttare appieno il potenziale di LLM come Alpaca, Falcon e GPT-4, è diventato più raffinato e focalizzato, offrendo soluzioni personalizzate per una vasta gamma di compiti.

Abbiamo visto il fine-tuning per singole attività, che si specializza in modelli con ruoli specifici, e metodi di fine-tuning efficienti in termini di parametri (PEFT) tra cui LoRA e QLoRA, che mirano a rendere il processo di addestramento più efficiente ed economico. Questi sviluppi stanno aprendo le porte a funzionalità AI di alto livello per un pubblico più ampio.

Inoltre, l’introduzione di Reinforcement Learning from Human Feedback (RLHF) da parte di Open AI è un passo verso la creazione di sistemi AI che comprendono e si allineano più strettamente con i valori e le preferenze umane, aprendo la strada ad assistenti AI che non solo sono intelligenti ma anche sensibili alle esigenze individuali dell’utente. Sia RLHF che PEFT lavorano in sinergia per migliorare la funzionalità e l’efficienza dei Large Language Models.

Come aziende, imprese e individui cercano di integrare questi LLM ottimizzati nelle loro operazioni, stanno essenzialmente accogliendo un futuro in cui l’IA è più di uno strumento; è un partner che comprende e si adatta ai contesti umani, offrendo soluzioni innovative e personalizzate.