Low-Rank Adaptation (LoRA) (IT)

From Systems analysis Wiki
Jump to navigation Jump to search

Low-Rank Adaptation (LoRA) — è un metodo di fine-tuning efficiente dal punto di vista parametrico (PEFT) che consente di adattare i grandi modelli linguistici (LLM) a nuovi compiti con un costo computazionale minimo. La tecnologia è stata presentata per la prima volta nel lavoro di Edward Hu e dei suoi colleghi nel 2021[1].

Il fine-tuning completo (full fine-tuning) di modelli di grandi dimensioni, come LLaMA o GPT, richiede enormi risorse, rendendolo inaccessibile alla maggior parte dei ricercatori e degli sviluppatori. LoRA risolve questo problema consentendo di addestrare solo una piccola parte dei parametri del modello, mantenendo al contempo un'elevata qualità e prestazioni paragonabili al fine-tuning completo[2].

Principio di funzionamento

L'idea principale di LoRA consiste nel non modificare i pesi originali del modello pre-addestrato, ma nell'aggiungere ad essi una piccola matrice «correttiva». Invece di addestrare direttamente l'enorme matrice dei pesi `W`, LoRA rappresenta la sua variazione come il prodotto di due piccole matrici a basso rango.

Formalmente, se la matrice dei pesi originale del livello `W_0` ha dimensione `d × k`, il suo aggiornamento è rappresentato come `ΔW = BA`, dove `B` è una matrice di dimensione `d × r` e `A` è una matrice di dimensione `r × k`. Il rango `r` è un iperparametro ed è significativamente inferiore (`r << d, k`). Durante il fine-tuning, i pesi originali `W_0` vengono congelati, mentre vengono addestrate solo le matrici `A` e `B`. La matrice dei pesi finale viene calcolata come `W = W_0 + BA`.

Ciò consente di ridurre il numero di parametri addestrabili di migliaia di volte. Ad esempio, nel fine-tuning di GPT-3 (175 miliardi di parametri), LoRA riduce il numero di parametri addestrabili di 10 000 volte e diminuisce i requisiti di memoria GPU di 3 volte[1].

Vantaggi principali

  • Risparmio di risorse: Il numero di parametri addestrabili si riduce drasticamente (fino al 90% e oltre), il che diminuisce significativamente il consumo di memoria video (VRAM) e accelera il processo di addestramento.
  • Assenza di latenza durante l'inferenza (inference): Dopo l'addestramento, le matrici `B` e `A` possono essere «fuse» con la matrice principale `W_0`, calcolando `W = W_0 + BA`. In questo modo, durante l'utilizzo del modello non vengono aggiunti calcoli o latenze supplementari[1].
  • Modularità e cambio rapido dei compiti: Gli adapter LoRA addestrati sono file di piccole dimensioni (pochi megabyte). Ciò consente di archiviare facilmente decine di adapter per diversi compiti e di passare rapidamente da uno all'altro senza modificare il modello di base[3].

Limitazioni e modifiche

Sebbene LoRA sia molto efficiente, la sua natura a basso rango può rappresentare una limitazione per i compiti che richiedono la memorizzazione di grandi quantità di nuove informazioni. Per risolvere questo e altri problemi sono state proposte diverse modifiche.

QLoRA

QLoRA (Quantized Low-Rank Adaptation) — è una delle modifiche più popolari, proposta nel 2023. Combina LoRA con la quantizzazione a 4 bit del modello di base[4]. Ciò consente di ridurre ulteriormente i requisiti di memoria, rendendo possibile il fine-tuning di modelli con decine di miliardi di parametri (ad esempio, modelli da 65B) su una singola GPU consumer. Sulla base di QLoRA è stato creato, in particolare, il modello Guanaco, che ha mostrato risultati paragonabili a ChatGPT.

Altre modifiche

  • MoRA (High-Rank Updating): Proposta per i compiti in cui LoRA mostra prestazioni insufficienti a causa del vincolo di rango. MoRA utilizza metodi che consentono di aggiornare i pesi con rango elevato, mantenendo al contempo l'efficienza parametrica[5].

Implementazione e applicazione

La tecnologia LoRA ha ottenuto una diffusione capillare grazie alla sua efficienza e alla semplicità di integrazione. Un ruolo chiave nella sua divulgazione è stato svolto dalla libreria PEFT (Parameter-Efficient Fine-Tuning) dell'azienda Hugging Face. PEFT fornisce un'interfaccia unificata per l'applicazione di LoRA e di altri metodi PEFT ai modelli dell'ecosistema Transformers[6].

LoRA è ampiamente utilizzata per:

  • L'adattamento di chatbot e sistemi di dialogo (ad esempio, fine-tuning di LLaMA, Mistral).
  • La creazione di modelli per la classificazione e la generazione di testo in ambiti altamente specializzati.
  • La personalizzazione dei modelli in base a uno stile specifico o a un formato di dati.

Riferimenti

  • Documentazione ufficiale della libreria PEFT di Hugging Face

Bibliografia

  • Hu, E.J. et al. (2021). LoRA: Low-Rank Adaptation of Large Language Models. arXiv:2106.09685.
  • Dettmers, T. et al. (2023). QLoRA: Efficient Finetuning of Quantized LLMs. arXiv:2305.14314.
  • Zhang, Q. et al. (2023). AdaLoRA: Adaptive Budget Allocation for Parameter-Efficient Fine-Tuning. arXiv:2303.10512.
  • Chen, Y. et al. (2023). LongLoRA: Efficient Fine-Tuning of Long-Context Large Language Models. arXiv:2309.12307.
  • Mao, K. et al. (2024). A Survey on LoRA of Large Language Models. arXiv:2407.11046.
  • Jiang, T. et al. (2024). MoRA: High-Rank Updating for Parameter-Efficient Fine-Tuning. arXiv:2405.12130.
  • Liu, Z. et al. (2024). ALoRA: Allocating Low-Rank Adaptation for Fine-Tuning Large Language Models. arXiv:2403.16187.
  • Liu, J. et al. (2025). RoRA: Efficient Fine-Tuning of LLM with Reliability Optimization for Rank Adaptation. arXiv:2501.04315.
  • Albert, P. et al. (2025). RandLoRA: Full-Rank Parameter-Efficient Fine-Tuning of Large Models. arXiv:2502.00987.
  • Tastan, N. et al. (2025). LoFT: Low-Rank Adaptation That Behaves Like Full Fine-Tuning. arXiv:2505.21289.

Note

  1. 1.0 1.1 1.2 Hu, E.J., et al. «LoRA: Low-Rank Adaptation of Large Language Models». arXiv:2106.09685. [1]
  2. Mao, K., et al. «A Survey on LoRA of Large Language Models». arXiv:2407.11046. [2]
  3. Noble, Joshua. «What is LoRA (Low-Rank Adaption)?». IBM Technology. [3]
  4. Dettmers, T., et al. «QLoRA: Efficient Finetuning of Quantized LLMs». arXiv:2305.14314. [4]
  5. Jiang, Z., et al. «MoRA: High-Rank Updating for Parameter-Efficient Fine-Tuning». arXiv:2405.12130. [5]
  6. «LoRA (Low-Rank Adaptation)». Hugging Face LLM Course. [6]