Modelli e piattaforme di IA

MoRA: Aggiornamento ad Alto Rango per PEFT

mm
Aggiungi Unite.AI alle tue fonti preferite su Google

Grazie alle sue prestazioni robuste e alla sua ampia applicabilità rispetto ad altri metodi, LoRA o Low-Rank Adaption è uno dei metodi di PEFT (Parameter Efficient Fine-Tuning) più popolari per il fine-tuning di un grande modello linguistico. Il framework LoRA utilizza due matrici a basso rango per decomporre e approssimare i pesi aggiornati nella FFT (Full Fine Tuning) e il framework LoRA modifica questi parametri trainabili di conseguenza regolando il rango delle matrici. Il principale vantaggio dell’implementazione di questo processo è che consente al framework LoRA di unire queste matrici senza ritardi di inferenza dopo il fine-tuning. Inoltre, sebbene i recenti grandi modelli linguistici offrano prestazioni notevoli nei compiti di apprendimento in contesto, alcune situazioni richiedono ancora il fine-tuning e possono essere classificate in tre tipi. Il primo tipo, l’addestramento alle istruzioni, mira ad allineare meglio i LLM con le attività finali e le preferenze degli utenti senza migliorare le conoscenze e le capacità dei LLM, un approccio che semplifica il processo di gestione di attività diverse e istruzioni complesse. Il secondo tipo include compiti di ragionamento complesso come la risoluzione di problemi matematici. Infine, il terzo tipo è il pre-addestramento continuo, un approccio che tenta di migliorare le capacità generali del modello linguistico.

In questo articolo, discuteremo se l’aggiornamento a basso rango influisce sulle prestazioni del framework LoRA, poiché è stato osservato che il meccanismo di aggiornamento a basso rango potrebbe ostacolare la capacità del grande modello linguistico di apprendere e memorizzare nuove conoscenze. Partendo da questo, in questo articolo parleremo di MoRA, un nuovo metodo che raggiunge un aggiornamento ad alto rango mantenendo lo stesso numero di parametri trainabili, utilizzando una matrice quadrata. Per raggiungere questo obiettivo, il framework MoRA riduce la dimensione di input e aumenta la dimensione di output per la matrice quadrata introducendo gli operatori non parametrizzati corrispondenti. Inoltre, questi operatori garantiscono che il peso possa essere riunito nuovamente nei LLM, il che rende il framework MoRA deployabile come LoRA.

Questo articolo si propone di coprire il framework MoRA in profondità e esploriamo il meccanismo, la metodologia, l’architettura del framework insieme al suo confronto con i framework di stato dell’arte. Quindi, iniziamo.

MoRA: Aggiornamento ad Alto Rango per PEFT

Mentre le dimensioni e le capacità dei modelli linguistici aumentano, il PEFT o il Fine-Tuning Efficient dei Parametri emerge come uno dei metodi più popolari ed efficienti per adattare i LLM a compiti downstream specifici. Rispetto alla FFT o al Fine-Tuning Completo, che aggiorna tutti i parametri, il PEFT modifica solo una frazione dei parametri totali, poiché su alcuni compiti può raggiungere prestazioni simili alla FFT aggiornando meno dell’1% dei parametri totali, riducendo così notevolmente i requisiti di memoria per l’ottimizzatore e facilitando l’archiviazione e la distribuzione dei modelli. Inoltre, tra tutti i metodi PEFT esistenti, LoRA è attualmente il più popolare, specialmente per i LLM. Una delle principali ragioni per cui i metodi LoRA offrono migliori prestazioni rispetto ai metodi PEFT come gli adattatori o il prompt tuning è che LoRA utilizza matrici a basso rango per aggiornare i parametri, con il framework che ha il controllo per unire queste matrici nei parametri del modello originale, senza aggiungere ai requisiti computazionali durante l’inferenza. Sebbene ci siano numerosi metodi che tentano di migliorare LoRA per i grandi modelli linguistici, la maggior parte di questi modelli si basa su GLUE per convalidare la loro efficienza, sia richiedendo pochi parametri trainabili, sia raggiungendo migliori prestazioni.

Inoltre, gli esperimenti condotti su LoRA su una vasta gamma di compiti, tra cui il pre-addestramento continuo, il ragionamento matematico e l’addestramento alle istruzioni, indicano che sebbene i framework basati su LoRA dimostrino prestazioni simili su questi compiti e offrano prestazioni sull’addestramento alle istruzioni paragonabili ai metodi basati su FFT, i modelli basati su LoRA non sono stati in grado di replicare le prestazioni sul pre-addestramento continuo e sui compiti di ragionamento matematico. Una possibile spiegazione per questa mancanza di prestazioni può essere la dipendenza di LoRA dagli aggiornamenti della matrice a basso rango, poiché la matrice di aggiornamento a basso rango potrebbe avere difficoltà a stimare gli aggiornamenti a pieno rango nella FFT, specialmente in compiti intensivi di memoria che richiedono la memorizzazione di conoscenze specifiche del dominio come il pre-addestramento continuo. Dal momento che il rango della matrice di aggiornamento a basso rango è inferiore al rango pieno, limita la capacità di memorizzare nuove informazioni utilizzando il fine-tuning. Partendo da queste osservazioni, MoRA tenta di massimizzare il rango nella matrice di aggiornamento a basso rango mantenendo lo stesso numero di parametri trainabili, utilizzando una matrice quadrata invece dell’uso di matrici a basso rango nei modelli tradizionali basati su LoRA. La figura seguente confronta il framework MoRA con LoRA con lo stesso numero di parametri trainabili.

Nell’immagine sopra, (a) rappresenta LoRA e (b) rappresenta MoRA. W è il peso congelato del modello, M è la matrice trainabile in MoRA, A e B sono matrici a basso rango trainabili in LoRA e r rappresenta il rango in LoRA e MoRA. Come si può osservare, il framework MoRA dimostra una maggiore capacità rispetto ai modelli basati su LoRA con un grande rango. Inoltre, il framework MoRA sviluppa operatori non parametrizzati corrispondenti per ridurre la dimensione di input e aumentare la dimensione di output per la matrice trainabile M. Inoltre, il framework MoRA concede la flessibilità di utilizzare una matrice di aggiornamento a basso rango per sostituire la matrice trainabile M e gli operatori, garantendo che il metodo MoRA possa essere riunito nuovamente nel grande modello linguistico come LoRA. La tabella seguente confronta le prestazioni di FFT, LoRA, varianti di LoRA e il nostro metodo sui compiti di addestramento alle istruzioni, ragionamento matematico e pre-addestramento continuo.

MoRA: Metodologia e Architettura

L’Influenza dell’Aggiornamento a Basso Rango

Il principio chiave dei modelli basati su LoRA è stimare gli aggiornamenti a pieno rango nella FFT utilizzando aggiornamenti a basso rango. Tradizionalmente, per una data matrice di parametri pre-addestrati, LoRA utilizza due matrici a basso rango per calcolare l’aggiornamento del peso. Per assicurarsi che gli aggiornamenti del peso siano 0 quando l’addestramento inizia, il framework LoRA inizializza una delle matrici a basso rango con una distribuzione gaussiana e l’altra con 0. L’aggiornamento del peso complessivo in LoRA presenta un basso rango rispetto al fine-tuning nella FFT, sebbene l’aggiornamento a basso rango in LoRA offra prestazioni paragonabili all’aggiornamento a pieno rango su specifici compiti, tra cui l’addestramento alle istruzioni e la classificazione del testo. Tuttavia, le prestazioni del framework LoRA iniziano a deteriorarsi per compiti come il pre-addestramento continuo e il ragionamento complesso. Sulla base di queste osservazioni, MoRA propone che sia più facile sfruttare le capacità e le conoscenze originali del LLM per risolvere compiti utilizzando aggiornamenti a basso rango, ma il modello fatica a eseguire compiti che richiedono il miglioramento delle capacità e delle conoscenze del modello linguistico.

Metodologia

Sebbene i LLM con apprendimento in contesto rappresentino un miglioramento significativo delle prestazioni rispetto agli approcci precedenti, ci sono ancora contesti che si basano sul fine-tuning, che possono essere classificati in tre categorie. Ci sono LLM addestrati per istruzioni, allineando meglio i LLM con le attività finali e le preferenze degli utenti senza aumentare notevolmente le conoscenze e le capacità dei LLM, un approccio che semplifica il processo di gestione di attività diverse e istruzioni complesse. Un altro tipo è relativo ai compiti di ragionamento complesso, come la risoluzione di problemi matematici, per i quali l’addestramento alle istruzioni generale non è sufficiente per gestire il ragionamento simbolico multi-step complesso. La maggior parte della ricerca correlata è finalizzata a migliorare le capacità di ragionamento dei LLM e richiede la progettazione di set di dati di addestramento corrispondenti basati su modelli insegnanti più grandi, come GPT-4, o la riformulazione di domande corrispondenti alla ragione lungo un percorso di ragionamento. Il terzo tipo, il pre-addestramento continuo, è progettato per migliorare le capacità specifiche del dominio dei LLM. A differenza dell’addestramento alle istruzioni, il fine-tuning è necessario per arricchire le conoscenze e le competenze specifiche del dominio.

Tuttavia, la maggior parte delle varianti di LoRA utilizza quasi esclusivamente l’addestramento alle istruzioni o la classificazione del testo per valutare la loro efficacia nel contesto dei LLM. Poiché il fine-tuning per l’addestramento alle istruzioni richiede le risorse minime rispetto ad altri tipi, potrebbe non rappresentare un confronto appropriato tra le varianti di LoRA. L’aggiunta di compiti di ragionamento per valutare meglio i loro metodi è diventata una pratica comune in lavori più recenti. Tuttavia, utilizziamo generalmente piccoli set di addestramento (anche con 1 milione di esempi, che è abbastanza grande). I LLM faticano a imparare un ragionamento appropriato da esempi di questa dimensione. Ad esempio, alcuni approcci utilizzano il GSM8K con solo 7.500 episodi di addestramento. Tuttavia, questi numeri sono inferiori al metodo SOTA addestrato su 395.000 campioni e rendono difficile valutare la capacità di questi metodi di apprendere il potere di ragionamento del NLP.

Sulla base delle osservazioni sull’influenza dell’aggiornamento a basso rango, il framework MoRA propone un nuovo metodo per mitigare gli effetti negativi dell’aggiornamento a basso rango. Il principio fondamentale del framework MoRA è utilizzare gli stessi parametri trainabili nella misura più grande possibile per raggiungere un rango più alto nella matrice di aggiornamento a basso rango. Dopo aver considerato i pesi pre-addestrati, il framework LoRA utilizza due matrici a basso rango A e B con parametri trainabili totali per il rango r. Tuttavia, per lo stesso numero di parametri trainabili, una matrice quadrata può raggiungere il rango più alto e il framework MoRA raggiunge questo obiettivo riducendo la dimensione di input e aumentando la dimensione di output per la matrice quadrata trainabile. Inoltre, queste due funzioni dovrebbero essere operatori non parametrizzati e sono previsti per essere eseguiti in tempo lineare corrispondente alla dimensione.

MoRA: Esperimenti e Risultati

Per valutare le sue prestazioni, il framework MoRA è stato valutato su una vasta gamma di compiti per comprendere l’influenza dell’aggiornamento ad alto rango su tre compiti: memorizzazione di coppie di UUID, compiti di fine-tuning e pre-addestramento.

Memorizzazione di Coppie di UUID

Per dimostrare i miglioramenti delle prestazioni, il framework MoRA è stato confrontato con i framework FFT e LoRA sulla memorizzazione di coppie di UUID. La perdita di addestramento dell’esperimento è riflessa nell’immagine seguente.

È degno di nota che, per lo stesso numero di parametri trainabili, il framework MoRA è in grado di superare i modelli LoRA esistenti, indicando che ha beneficiato della strategia di aggiornamento ad alto rango. Il rapporto di accuratezza dell’addestramento a livello di carattere a diversi passaggi di addestramento è riassunto nella tabella seguente.

Come si può osservare, rispetto a LoRA, il framework MoRA richiede meno passaggi di addestramento per memorizzare le coppie di UUID.

Compiti di Fine-Tuning

Per valutare le sue prestazioni sui compiti di fine-tuning, il framework MoRA è stato valutato su tre compiti di fine-tuning: addestramento alle istruzioni, ragionamento matematico e pre-addestramento continuo, progettati per grandi modelli linguistici, insieme a un dataset di alta qualità corrispondente per entrambi i modelli MoRA e LoRA. I risultati dei compiti di fine-tuning sono presentati nella tabella seguente.

Come si può osservare, sui compiti di ragionamento matematico e addestramento alle istruzioni, entrambi i modelli LoRA e MoRA offrono prestazioni simili. Tuttavia, il modello MoRA emerge come il migliore rispetto al framework LoRA sui compiti di pre-addestramento continuo per entrambi i domini biomedici e finanziari, beneficiando dell’approccio di aggiornamento ad alto rango per memorizzare nuove conoscenze. Inoltre, è fondamentale capire che i tre compiti sono diversi l’uno dall’altro, con requisiti diversi e capacità di fine-tuning diverse.

Pre-Addestramento

Per valutare l’influenza dell’aggiornamento ad alto rango sulle prestazioni complessive, il trasformatore all’interno del framework MoRA è stato addestrato da zero sul set di dati C4 e le prestazioni sono state confrontate con i modelli LoRA e ReLoRA. La perdita di pre-addestramento e la complessità corrispondente sul set di dati C4 sono dimostrate nelle figure seguenti.

Come si può osservare, il modello MoRA offre migliori prestazioni sui compiti di pre-addestramento rispetto ai modelli LoRA e ReLoRA con lo stesso numero di parametri trainabili.

Inoltre, per dimostrare l’impatto dell’aggiornamento ad alto rango sul rango della matrice di aggiornamento a basso rango, il framework MoRA analizza lo spettro dei valori singolari per la matrice di aggiornamento a basso rango appresa pre-addestrando il modello da 250M e i risultati sono contenuti nell’immagine seguente.

Pensieri Finali

In questo articolo, abbiamo discusso se l’aggiornamento a basso rango influisce sulle prestazioni del framework LoRA, poiché è stato osservato che il meccanismo di aggiornamento a basso rango potrebbe ostacolare la capacità del grande modello linguistico di apprendere e memorizzare nuove conoscenze. Partendo da questo, in questo articolo parleremo di MoRA, un nuovo metodo che raggiunge un aggiornamento ad alto rango mantenendo lo stesso numero di parametri trainabili, utilizzando una matrice quadrata. Per raggiungere questo obiettivo, il framework MoRA riduce la dimensione di input e aumenta la dimensione di output per la matrice quadrata introducendo gli operatori non parametrizzati corrispondenti. Inoltre, questi operatori garantiscono che il peso possa essere riunito nuovamente nei LLM, il che rende il framework MoRA deployabile come LoRA.

Kunal Kejriwal è un ingegnere backend specializzato in Python, PostgreSQL, Redis e infrastrutture cloud su GCP e AWS. Con tre anni di esperienza nella costruzione e nella scalabilità di sistemi di produzione, scrive di infrastruttura AI, sistemi distribuiti e dell'architettura alla base del deployment di workload di machine learning.