Incontra QLORA un approccio di fine-tuning efficiente che riduce l’utilizzo della memoria abbastanza da permettere il fine-tuning di un modello a 65 miliardi di parametri su una singola GPU da 48 GB, preservando al contempo le prestazioni complete di fine-tuning a 16 bit.

QLORA è un approccio di fine-tuning efficiente che consente di ridurre l'utilizzo della memoria, consentendo il fine-tuning di un modello a 65 miliardi di parametri su una GPU da 48 GB, mantenendo le prestazioni complete di fine-tuning a 16 bit.

I modelli di linguaggio estesi (LLM) possono essere migliorati tramite il raffinamento, che consente anche di aggiungere o rimuovere comportamenti desiderati. Tuttavia, il raffinamento di modelli grandi è proibitivamente costoso; ad esempio, un modello a 65B parametri LLaMA consuma più di 780 GB di RAM GPU quando viene raffinato in modalità a 16 bit standard. Sebbene gli approcci di quantizzazione più recenti possano ridurre l’occupazione di memoria dei LLM, questi metodi funzionano solo per l’elaborazione e falliscono durante l’addestramento. I ricercatori dell’Università di Washington hanno sviluppato QLORA, che quantizza un modello preaddestrato utilizzando un algoritmo di alta precisione all’avanguardia con una risoluzione di 4 bit prima di aggiungere un insieme sparso di pesi adattatori a basso rango apprendibili modificati propagando i gradienti attraverso le conseguenze quantizzate. Mostrano per la prima volta che un modello quantizzato a 4 bit può essere regolato senza influire sulle prestazioni. 

Rispetto a un riferimento di base completamente raffinato a 16 bit, QLORA riduce le esigenze medie di memoria per il raffinamento di un modello a 65B parametri da >780 GB di RAM GPU a 48 GB senza compromettere il tempo di esecuzione o le prestazioni predittive. I modelli pubblicamente accessibili più grandi fino ad oggi possono essere raffinati su una singola GPU, rappresentando un enorme cambiamento nell’accessibilità del raffinamento dei LLM. Addestrano la famiglia di modelli Guanaco utilizzando QLORA e il loro modello più grande raggiunge il 99,3% utilizzando una singola GPU professionale in oltre 24 ore, chiudendo efficacemente il divario con ChatGPT sul benchmark Vicuna. Il secondo miglior modello raggiunge il 97,8% del livello di prestazioni di ChatGPT sul benchmark Vicuna pur potendo essere addestrato in meno di 12 ore su una singola GPU consumer. 

Le seguenti tecnologie di QLORA sono destinate a ridurre l’uso di memoria senza compromettere le prestazioni: (1) NormalFloat a 4 bit, un tipo di dati di quantizzazione per dati distribuiti normalmente che è ottimo dal punto di vista teorico dell’informazione e produce risultati empirici superiori rispetto a Integers a 4 bit e Floats a 4 bit. (2) Quantizzazione doppia, che salva in media 0,37 bit per parametro (o circa 3 GB per un modello a 65B), quantizza le costanti di quantizzazione. (3) Gli optimizer a pagine utilizzano la memoria unificata NVIDIA per evitare picchi di memoria causati dalla checkpointing dei gradienti durante l’elaborazione di un mini-batch con una sequenza lunga. Quando utilizzati, il loro modello Guanaco più piccolo (7B parametri) utilizza meno di 5 GB di memoria pur superando di oltre 20 punti percentuali un modello Alpaca da 26 GB sul test Vicuna. 

Incorporano questi contributi in una strategia LoRA più raffinata che include adattatori ad ogni livello di rete e quindi elimina quasi completamente i compromessi di accuratezza identificati nei lavori precedenti. Grazie all’efficienza di QLORA, possiamo analizzare il raffinamento dell’istruzione e le prestazioni dei chatbot su dimensioni di modelli in maggior dettaglio di quanto avremmo potuto fare con il raffinamento convenzionale a causa dei costi di memoria. Di conseguenza, addestrano oltre mille modelli utilizzando una varietà di set di dati di raffinamento dell’istruzione, topologie di modelli e valori dei parametri che vanno da 80M a 65B. Dimostrano che QLORA ripristina le prestazioni a 16 bit, addestra Guanaco, un chatbot avanzato, ed esamina i modelli appresi. 

Prima di tutto, anche se entrambi sono destinati a fornire istruzioni dopo la generalizzazione, scoprono che la qualità dei dati è molto più importante della dimensione del set di dati, con un set di dati di 9k campioni (OASST1) che supera un set di dati di 450k campioni (FLAN v2, sottocampionato) nelle prestazioni dei chatbot. In secondo luogo, dimostrano che una buona performance sul benchmark di comprensione del linguaggio multitask (MMLU) si traduce solo talvolta in una grande performance sul benchmark del chatbot Vicuna, e viceversa. In altre parole, l’appropriatezza del set di dati è più importante della scala per un dato compito. Offrono anche una valutazione approfondita delle prestazioni del chatbot utilizzando valutatori umani e GPT-4. 

I modelli competono tra loro in partite utilizzando benchmark di tipo torneo per determinare la migliore risposta a uno stimolo dato. GPT-4 o annotatori umani decidono quale giocatore vince una partita. I punteggi Elo, che vengono creati combinando i risultati del torneo, vengono utilizzati per classificare le prestazioni dei chatbot. Sulla classifica delle prestazioni dei modelli nei tornei, scoprono che GPT-4 e i giudizi umani concordano per lo più, ma ci sono anche alcune aree di netta divergenza. Di conseguenza, attirano l’attenzione sul fatto che la valutazione basata sui modelli ha incertezze pur essendo un’opzione meno costosa rispetto all’annotazione umana. 

Aggiungono l’analisi qualitativa dei modelli Guanaco ai risultati del loro benchmark dei chatbot. Il loro studio identifica casi di successo e fallimento che gli standard quantitativi non hanno considerato. Pubblicano tutte le generazioni dei modelli con GPT-4 e commenti umani per aiutare la ricerca futura. Incorporano le loro tecniche nello stack di transformers di Hugging Face, rilasciano il loro software e i kernel CUDA come open-source e li rendono ampiamente disponibili. Per 32 modelli migliorati open-source distinti, forniscono una collezione di adattatori per modelli di dimensioni 7/13/33/65B allenati su 8 diversi dataset di istruzioni. Il repository del codice è reso pubblico, insieme a una demo che può essere ospitata su Colab.