LoRA(Low-Rank Adaptation)

[lora]

Tecnica di fine-tuning efficiente: invece di aggiornare tutti i pesi, aggiungi piccole matrici di adattamento. Veloce, economica, ottimi risultati.

LoRA (Low-Rank Adaptation) è la tecnica che ha democratizzato il fine-tuning degli LLM. Invece di aggiornare i miliardi di parametri di un modello, aggiungi piccole matrici di adattamento (poche milioni di parametri) e addestri solo quelle.

L'idea, paper Microsoft del 2021: invece di calcolare ΔW (l'aggiornamento del peso), lo scomponi come ΔW = A · B, dove A e B sono matrici molto più piccole (rank basso, da cui "Low-Rank"). Il modello base resta fermo, A e B imparano l'adattamento.

Numeri pratici per fine-tuning Llama 2 7B:

  • Full fine-tuning: aggiorni 7 miliardi di parametri. Servono 80+ GB VRAM, ore di training.
  • LoRA (rank 16): aggiorni 4 milioni di parametri. Bastano 16 GB VRAM, training molto più veloce.
  • QLoRA (LoRA + quantizzazione 4-bit del modello base): bastano 8 GB VRAM. Su GPU consumer.

Vantaggi:

  • Costo bassissimo: training su singola GPU consumer.
  • Modular: puoi avere tanti LoRA per task diversi, attivi quello che serve. Stable Diffusion ha decine di migliaia di LoRA scaricabili (stili, personaggi, oggetti).
  • Senza dimenticare: il modello base è intatto, niente "catastrophic forgetting".
  • Mergeable: a fine training, puoi mergiare A·B nel modello base, niente costo aggiuntivo all'inferenza.

Iperparametri chiave:

  • Rank (r): dimensione delle matrici. 8-64 tipico. Più alto = più capacità ma più parametri.
  • Alpha: coefficiente di scala. Tipicamente 2*r.
  • Target modules: a quali layer applicare LoRA. Tipico: query/value delle attention.

Varianti: QLoRA (con quantizzazione), LoRA+ (learning rate diversi per A e B), DoRA (decompone magnitude e direction). Tutte accessibili via libreria HuggingFace PEFT.

LoRA è la singola innovazione che ha permesso a chiunque di fine-tunare LLM senza budget enterprise. Oggi se sentiamo "ho fine-tunato un Llama sul mio dataset", quasi sempre è LoRA, non full fine-tuning.