LoRA e QLoRA a confronto
LoRA (Low-Rank Adaptation) e QLoRA (Quantized Low-Rank Adaptation) sono due tecniche di addestramento dei modelli di IA. Entrambe rientrano fra le strategie per il fine tuning efficiente dal punto di vista dei parametri (PEFT), un approccio al fine tuning sempre più diffuso perché permette di addestrare i modelli linguistici di grandi dimensioni (LLM) con un notevole risparmio di risorse.
Sia LoRA che QLoRA sono tecniche per l'ottimizzazione efficiente degli LLM, ma si differenziano fra loro per il modo in cui operano sui modelli e utilizzano lo storage per raggiungere tale risultato.
Quali sono le differenze tra il fine tuning tradizionale e le tecniche LoRA e QLoRA?
Gli LLM sono modelli complessi costituiti da miliardi di parametri. I parametri sono l'elemento del modello che ne permette l'addestramento su una certa quantità di informazioni. Più parametri ci sono, più aumenta l'efficacia del modello, ma anche lo spazio necessario per lo storage dei dati.
Il fine tuning tradizionale prevede che si intervenga ad aggiornare o ottimizzare tutti i parametri del modello. Nel caso di LLM con miliardi di parametri questo processo può richiedere non solo tempi molto lunghi ma anche importanti risorse di elaborazione.
Inoltre, l'aggiornamento di tutti i parametri può portare al cosiddetto "overfitting", ovvero la situazione in cui il modello di IA apprende non solo dai dati per l'addestramento ma anche dal "rumore" o dalle informazioni irrilevanti all'interno del set di dati.
Immaginiamo un insegnante e i suoi studenti che hanno fatto lezione di matematica tutto l'anno. Subito prima della verifica finale l'insegnate richiama l'attenzione sull'importanza delle divisioni in colonna. Durante la prova molti studenti finiscono per preoccuparsi eccessivamente delle divisioni in colonna dimenticandosi tutte le altre nozioni chiave che permetterebbero loro di rispondere a domande altrettanto importanti per la buona riuscita del compito. Questo è ciò che succede a un LLM quando si verifica l'overfitting.
Oltre ai problemi di overfitting, il fine tuning tradizionale è comunque un processo molto oneroso in termini di risorse.
Al contrario, LoRA e QLoRA sono tecniche di ottimizzazione economiche ed efficienti. Invece di addestrare tutti i parametri, si scompone il modello in matrici e si addestrano solo i parametri necessari per l'apprendimento di nuove informazioni.
Per tornare alla nostra metafora: queste tecniche di ottimizzazione sono in grado di insegnare nuovi argomenti in maniera efficace senza distrarre il modello dagli altri argomenti della verifica.
Red Hat AI
Come funziona LoRA?
LoRA è una tecnica di ottimizzazione che prevede di utilizzare nuovi parametri per addestrare il modello di IA su dati nuovi.
Invece di addestrare l'intero modello e tutti i pesi pre-addestrati, questi vengono accantonati o "congelati" e al loro posto viene addestrato un campione di parametri più piccolo. Questi set di parametri sono detti matrici di basso rango, in inglese "low-rank", da cui deriva il nome della tecnica.
L'espressione "di basso rango" si riferisce al numero ridotto di parametri e pesi contenuti nelle matrici. Una volta concluso l'addestramento, tali matrici di basso rango vengono unite ai parametri originari per dare vita a un'unica matrice. Con questa tecnica l'intero processo di ottimizzazione del modello è molto più efficiente.
Può essere utile immaginare una matrice LoRA come una riga o una colonna che viene aggiunta alla matrice originaria.
Immaginiamo che questo quadrato sia l'intero parametro da addestrare:

Addestrare tutti i pesi del parametro richiede molto tempo, soldi e memoria. Tra l'altro, non è detto che al termine del processo non occorrano ulteriori ottimizzazioni e questo comporterebbe un incredibile spreco di risorse.
Optiamo quindi per la tecnica LoRA e svolgiamo l'addestramento solo su pesi di basso rango, rappresentati dalla colonna qui di seguito:

Una volta concluso l'addestramento di tali parametri, la riga o la colonna viene aggiunta alla matrice originaria e in questo modo le nuove informazioni sono applicate all'intero parametro.

I pesi appena addestrati diventano parte integrante del modello di IA.
L'addestramento dei pesi di basso rango richiede meno tempo, soldi e memoria e al termine del processo quanto appreso tramite l'addestramento viene applicato alla matrice più ampia, senza occupare memoria extra.
I vantaggi di LoRA
LoRA è una tecnica che semplifica l'ottimizzazione dei modelli di IA e consente di risparmiare tempo e risorse. I vantaggi includono:
- Un numero ridotto di parametri da addestrare.
- Minore rischio di incorrere nell'overfitting.
- Addestramento più rapido.
- Meno memoria richiesta.
- Processo di modifica flessibile (possibilità di scegliere su quali parti del modello applicare l'addestramento).
Come funziona QLoRA?
QLoRA è un'estensione di LoRA. Il funzionamento delle due tecniche è simile, ma QLoRA richiede ancora meno memoria.
La "Q" di "QLoRA" sta per "quantized" (in italiano "quantizzato"). La quantizzazione dei modelli è una tecnica di compressione dei parametri che permette di passare da parametri molto complessi e precisi (che presentano molti numeri decimali e occupano molta memoria) a parametri più piccoli e concisi (che presentano meno decimali e occupano meno memoria).
QLoRA prevede di ottimizzare una parte del modello utilizzando lo storage e la memoria di una sola unità di elaborazione grafica (GPU). Questo è possibile grazie al NormalFloat a 4 bit (NF4), un nuovo tipo di dati che permette di quantizzare le matrici occupando ancora meno memoria di LoRA. Comprimendo i parametri in dati più piccoli e facili da gestire, si può ridurre di 4 volte l'ingombro di memoria richiesto.
Una volta eseguita la quantizzazione, svolgere il fine tuning sul nuovo modello compresso è decisamente più agevole.
Immaginiamo che la figura di seguito rappresenti un modello e tutti i suoi parametri:

Il nostro modello contiene quindi 12 parametri in totale: 3 verdi, 6 blu, 2 gialli e 1 rosa. Con la quantizzazione si può ottenere un modello compresso che è una rappresentazione del modello originale.

Ad esempio, se sottoponiamo il nostro modello a quantizzazione, otteniamo 1 parametro verde, 2 blu e 1 giallo.
Come possiamo ben vedere, uno dei rischi della quantizzazione è la perdita dei dati più piccoli. Pensiamo al parametro rosa nel nostro modello che viene perso nel processo di compressione perché rappresenta una quantità di dati troppo piccola.
Nel nostro caso siamo passati da 12 parametri a 4, ma nella realtà la quantizzazione permette di ridurre miliardi di parametri a un numero di parametri nettamente inferiore e ottimizzabile da una singola GPU.
In teoria, tutti i dati persi si possono recuperare dal parametro originale quando la matrice appena addestrata viene aggiunta alle matrici originali, senza perdere precisione o accuratezza. In pratica, non è detto che questo sia effettivamente possibile.
QLoRA unisce i vantaggi dell'High Performance Computing a quelli dello storage della memoria efficiente. In questo modo anche le organizzazioni con risorse limitate possono ottenere modelli accurati.
I vantaggi di QLoRA
Analogamente a LoRA, anche QLoRA permette di semplificare e velocizzare il fine tuning dei modelli, oltre al fatto che riduce in maniera significativa i requisiti di memoria. I vantaggi includono:
- Richiede meno memoria di LoRA
- Riduce il rischio di incorrere nell'overfitting
- Garantisce elevati livelli di accuratezza
- Assicura l'ottimizzazione dei modelli rapida e leggera
Quanta accuratezza si perde con la quantizzazione degli LLM? Scopri cosa succede quando si valuta mezzo milione di LLM quantizzati.
Quali sono le differenze tra LoRA e QLoRA?
LoRA è una tecnica di fine tuning efficiente che utilizzata anche da sola offre notevoli vantaggi. QLoRA è una sua estensione che assicura maggiore efficienza e richiede meno spazio per lo storage dei dati rispetto a LoRA.
Per scegliere la tecnica che meglio si adatta ai tuoi obiettivi e le tue necessità, valuta lo spazio di storage e le risorse di cui disponi. Se hai uno spazio di storage limitato, QLoRA è la tecnica giusta.
Scopri come Red Hat può aiutarti
Red Hat® AI è un ampio portafoglio di prodotti e servizi che facilitano ogni fase del percorso di adozione e utilizzo dell'IA, tanto nelle fasi iniziali quanto al momento di passare al cloud ibrido.
Grazie a modelli più piccoli e creati ad hoc e a tecniche di personalizzazione flessibili, permette di sviluppare e distribuire l'IA in qualunque ambiente.