Che cos'è il LoRA (low-rank adaption)?

Autore

Joshua Noble

Data Scientist

Che cos'è il LoRA?

Il low-rank adaptation (LoRa) è una tecnica utilizzata per adattare i modelli di machine learning a nuovi contesti. Può adattare modelli di grandi dimensioni a usi specifici aggiungendo pezzi leggeri al modello originale anziché modificarlo per intero. Un data scientist può espandere rapidamente i modi in cui un modello può essere utilizzato anziché dover creare un modello completamente nuovo.

La tecnica è stata originariamente pubblicata da Edward Hu, Yelong Shen e collaboratori nel loro articolo LoRA: Low-Rank Adaptation Of Large Language Models 1. Nel documento, hanno dimostrato che i modelli ridotti e riqualificati utilizzando LoRa hanno superato i modelli base in una serie di benchmark. Le prestazioni del modello possono essere migliorate senza richiedere una messa a punto completa e utilizzando un numero significativamente inferiore di parametri del modello addestrabili.

Le ultime tendenze in materia di AI, proposte da esperti

Ricevi insight selezionati sulle notizie più importanti e interessanti sull'AI. Iscriviti alla nostra newsletter settimanale Think. Leggi l'Informativa sulla privacy IBM.

Grazie per aver effettuato l'iscrizione!

L'abbonamento sarà fornito in lingua inglese. Troverai un link per annullare l'iscrizione in tutte le newsletter. Puoi gestire i tuoi abbonamenti o annullarli qui. Per ulteriori informazioni, consulta l'Informativa sulla privacy IBM.

Cosa fa il LoRA?

I modelli di machine learning grandi e complessi, come quelli utilizzati per i modelli linguistici di grandi dimensioni (LLM) come ChatGPT, richiedono molto tempo e numerose risorse per essere configurati, perché potrebbero avere trilioni di parametri impostati su valori specifici. Una volta completato questo processo, il modello potrebbe essere potente e preciso in generale, ma non necessariamente messo a punto per svolgere attività specifiche.

Per far funzionare un modello in contesti specifici può essere necessario un abbondante lavoro di riqualificazione per modificarne tutti i parametri. Con il numero di parametri in questi modelli, la ripetizione dell'addestramento è costosa e richiede molto tempo. LoRA offre un modo rapido per adattare il modello senza ripeterne l'addestramento.

Ad esempio, una messa a punto completa del modello GPT-3 richiede l'addestramento di 175 miliardi di parametri a causa delle dimensioni del suo set di dati di addestramento. Utilizzando LoRa, i parametri addestrabili per GPT-3 possono essere ridotti a circa 18 milioni, riducendo i requisiti di memoria della GPU di circa due terzi.

LoRA non è l'unico metodo di messa a punto efficiente. Una variante di LoRA è quantizzazione LoRA (QLoRA), una tecnica di messa a punto che combina una tecnica di calcolo ad alta precisione con un metodo di storage a bassa precisione. Questo aiuta a mantenere le dimensioni del modello ridotte pur assicurando che il modello sia ancora altamente performante e preciso.

Mixture of Experts | 12 dicembre, episodio 85

Decoding AI: Weekly News Roundup

Unisciti al nostro gruppo di livello mondiale di ingegneri, ricercatori, leader di prodotto e molti altri mentre si fanno strada nell'enorme quantità di informazioni sull'AI per darti le ultime notizie e gli ultimi insight sull'argomento.

Come funziona il LoRA

Invece di ripetere l'addestramento dell'intero modello, LoRA congela i pesi e i parametri originali così come sono. Quindi, oltre a questo modello originale, applica un'aggiunta leggera chiamata matrice low-rank, che viene poi applicata ai nuovi input per ottenere risultati specifici per il contesto. La matrice low-rank si adatta ai pesi del modello originale in modo che gli output corrispondano al caso d'uso desiderato.

LoRA utilizza il concetto di matrici di rango inferiore per rendere il processo di addestramento del modello estremamente efficiente e veloce. Tradizionalmente, la messa a punto degli LLM richiede l'adeguamento dell'intero modello. LoRA si concentra sulla modifica di un sottoinsieme più piccolo di parametri (matrici di rango inferiore) per ridurre il sovraccarico computazionale e di memoria.

Il diagramma mostra come LoRA aggiorna le matrici A e B per tenere traccia delle modifiche nei pesi pre-addestrati utilizzando matrici più piccole di rango r. Una volta completato l'addestramento LoRa, i pesi più piccoli vengono uniti in una nuova matrice dei pesi, senza dover modificare i pesi originali del modello preaddestrato.

Immagine che mostra come l'adattamento low-rank riduce le dimensioni del modello

LoRA si basa sulla comprensione che i modelli di grandi dimensioni possiedono intrinsecamente una struttura a bassa dimensionalità. Sfruttando matrici più piccole, chiamate matrici low-rank, LoRA adatta questi modelli in modo efficace. Questo metodo si concentra sul concetto di base che le modifiche significative del modello possono essere rappresentate con meno parametri, rendendo così il processo di adattamento più efficiente.

Le matrici sono una parte importante del funzionamento dei modelli di machine learning e delle reti neurali. Le matrici low-rank sono più piccole e hanno molti meno valori rispetto alle matrici più grandi o di rango più elevato. Non occupano molta memoria e richiedono meno passaggi per sommarsi o moltiplicarsi, il che le rende più veloci da elaborare per i computer.

Una matrice high-rank può essere decomposta in due matrici low-rank, una matrice 4 x 4 può essere decomposta in una matrice 4 x 1 e in una matrice 1 x 4.

Immagine che mostra come una matrice 4 per 4 può essere ridotta a una matrice 1 per 4 e 4 per 1

LoRA aggiunge matrici low-rank al modello di machine learning originale congelato. Le matrici low-rank vengono aggiornate attraverso la discesa del gradiente durante la messa a punto, senza modificare i pesi del modello di base. Queste contengono nuovi pesi da applicare al modello durante la generazione dei risultati. La matrice di modifica moltiplicata viene aggiunta ai pesi del modello base per ottenere il modello finale ottimizzato, in un processo che altera gli output che il modello produce con potenza di calcolo e tempi di addestramento minimi.

In sostanza, LoRA mantiene invariato il modello originale e aggiunge piccole parti modificabili a ogni livello del modello. Ciò riduce notevolmente i parametri addestrabili del modello e il fabbisogno di memoria della GPU per il processo di addestramento, un'altra sfida significativa quando si tratta di mettere a punto o addestrare modelli di grandi dimensioni.

Per implementare la messa a punto di LoRa con HuggingFace utilizzando Python e PyTorch, gli sviluppatori possono utilizzare la libreria PEFT (messa a punto efficiente dei parametri) per iniettare gli adattatori LoRa nel modello e utilizzarli come matrici di aggiornamento. Questa libreria è disponibile gratuitamente tramite HuggingFace o GitHub, e fornisce modi per configurare i parametri LoRA per il modello. Alcuni dei parametri più comunemente utilizzati sono:

r: il rango delle matrici di aggiornamento, espresso in int. La scomposizione del rango inferiore comporta risultati in matrici di aggiornamento più piccole con meno parametri addestrabili.

target_modules: i moduli (ad esempio, i blocchi di attenzione) per applicare le matrici di aggiornamento LoRA.

lora_alpha: fattore di scala LoRA.

Vantaggi del LoRA

Uno dei principali vantaggi di LoRA è che un modello di base può essere condiviso e utilizzato per costruire molti piccoli moduli LoRA per nuove attività. Il modello condiviso viene bloccato, permettendo agli utenti di cambiare attività sostituendo le matrici di peso LoRA. Invece di aver bisogno di due modelli diversi, un unico modello può essere utilizzato in attività diverse pur mantenendo le prestazioni derivanti dalla messa a punto.

LoRa rende l'addestramento più efficiente e abbassa la barriera hardware all'ingresso perché gli utenti non devono calcolare i gradienti o mantenere gli stati dell'ottimizzatore per la maggior parte dei parametri. Al contrario, il processo richiede l'ottimizzazione solo delle matrici low-rank molto più piccole.

Il design lineare di LoRa consente ai data scientist di unire le matrici addestrabili con i pesi del modello pre-addestrato congelati quando distribuito, senza introdurre alcuna latenza di inferenza rispetto a un modello completamente ottimizzato per costruzione.

LoRA può essere combinato con altre tecniche per migliorare le prestazioni del modello, come l'ottimizzazione dei prefissi, rendendolo flessibile.

Compromessi

Sebbene LoRa offra una riduzione notevole del numero di parametri addestrabili, ci sono dei compromessi da tenere a mente: il processo infatti crea una perdita di informazioni durante la decomposizione della matrice. Poiché LoRA riduce la matrice a peso pieno in componenti più piccoli, alcuni dettagli possono andare persi durante il processo, come succede nell'overfitting del modello. Nel caso degli LLM, tuttavia, la perdita è spesso minima perché i modelli di deep learning sono altamente sovraparametrizzati, il che significa che contengono più parametri del necessario per l'attività. "Sovraparametrizzato" significa che questi modelli sono spesso più grandi del necessario per i dati di addestramento, ma non tutti i parametri sono importanti: i parametri sono caratterizzati da ridondanza, robustezza e resilienza. La rimozione di questa resilienza può rendere i modelli meno accurati, quindi il rango delle matrici di aggiornamento può essere ottimizzato come parte del processo LoRA.

Soluzioni correlate
Foundation Model

Esplora la libreria IBM di foundation model nel portfolio di watsonx per scalare in sicurezza l'AI generativa per la tua azienda.

Scopri watsonx.ai
Soluzioni di intelligenza artificiale

Metti l'AI al servizio della tua azienda grazie all'esperienza leader di settore e alla gamma di soluzioni di IBM nel campo dell'AI.

Esplora le soluzioni AI
Consulenza e servizi sull'AI

Reinventa i flussi di lavoro e le operazioni critiche aggiungendo l'AI per massimizzare le esperienze, il processo decisionale in tempo reale e il valore aziendale.

Esplora i servizi AI
Fai il passo successivo

Esplora la libreria IBM dei foundation model nel portfolio di IBM watsonx per scalare in sicurezza l'AI generativa per la tua azienda.

Scopri watsonx.ai Esplora i modelli AI Granite di IBM
Note a piè di pagina

1. Hu, Edward, et al, LoRA: Low-Rank Adaptation of Large Language Models, 2021