PEFT (Parameter-Efficient Fine-Tuning) (IT)

From Systems analysis Wiki
Jump to navigation Jump to search

Fine-tuning efficiente in termini di parametri (in inglese Parameter-Efficient Fine-Tuning, PEFT) — è un insieme di metodi per adattare grandi modelli pre-addestrati, come i grandi modelli linguistici (LLM), a compiti specifici con un minimo dispendio computazionale e di risorse. A differenza del tradizionale fine-tuning completo (full fine-tuning), che richiede l'aggiornamento di tutti i parametri del modello, i metodi PEFT si concentrano sulla modifica di una piccola parte dei pesi (meno dell'1-5% del totale), lasciando invariata la parte principale del modello ("congelata")[1].

Questo approccio consente di ridurre significativamente i requisiti in termini di memoria, spazio di archiviazione e tempi di addestramento, rendendo il processo di adattamento dei potenti modelli fondazionali più accessibile e resistente al problema della dimenticanza catastrofica[2].

Problemi del fine-tuning completo

Il fine-tuning completo tradizionale, in cui vengono aggiornati tutti i parametri del modello, si scontra con una serie di problemi critici che hanno catalizzato lo sviluppo di PEFT:

  • Elevati costi computazionali: L'aggiornamento di centinaia di miliardi di parametri richiede enormi risorse computazionali (GPU/TPU ad alte prestazioni) e grandi quantità di memoria video (VRAM), rendendo il processo costoso e inaccessibile a molti ricercatori.
  • Inefficienza di archiviazione: Per ogni nuovo compito è necessario conservare una copia completa del modello da diversi gigabyte, il che comporta una crescita esponenziale dei requisiti di spazio su disco.
  • Dimenticanza catastrofica (Catastrophic Forgetting): Il modello, adattandosi ai nuovi dati, "dimentica" le conoscenze generali acquisite durante la fase di pre-addestramento, riducendo le sue prestazioni su altri compiti.
  • Rischio di overfitting: Su dataset di piccole dimensioni, i modelli con miliardi di parametri tendono a "memorizzare" gli esempi di addestramento invece di apprendere pattern generalizzabili[2].

Tassonomia dei metodi PEFT

I metodi PEFT possono essere classificati in base al modo in cui modificano i parametri del modello. Esistono tre categorie principali: additivi, selettivi e di riparametrizzazione[3].

Metodi additivi

Questi metodi congelano tutti i pesi originali del modello e aggiungono nuovi moduli addestrabili di piccole dimensioni.

  • Adapter: Il metodo additivo più antico. Piccoli moduli di rete neurale con architettura a "collo di bottiglia" vengono inseriti tra gli strati del transformer. Vengono addestrati solo i pesi di questi adapter[4].
  • Metodi basati su Soft Prompt: Invece di modificare i pesi del modello, questi metodi aggiungono ai dati di input vettori addestrabili ("token virtuali") che guidano il comportamento del modello. Varianti principali:
    • Prompt Tuning: Aggiunge vettori addestrabili solo agli embedding di input.
    • Prefix-Tuning: Aggiunge prefissi vettoriali addestrabili agli stati nascosti a ogni livello del meccanismo di attention, consentendo un controllo più fine[5].
    • P-Tuning v2: Generalizzazione dell'idea di Prefix-Tuning, che applica prompt addestrabili a tutti gli strati del modello, raggiungendo prestazioni paragonabili al fine-tuning completo[6].

Metodi selettivi

Questi metodi non aggiungono nuovi parametri, ma selezionano e affinano un piccolo sottoinsieme di quelli già esistenti.

  • BitFit: Metodo estremamente parsimonioso che affina solo i vettori di bias e i parametri degli strati di normalizzazione, aggiornando meno dello 0,1% del totale dei parametri.
  • Diff Pruning (Potatura differenziale): Utilizza una maschera addestrabile per determinare dinamicamente quali pesi aggiornare durante il processo di addestramento[3].

Metodi di riparametrizzazione

Questa categoria si basa sull'ipotesi che le variazioni dei pesi per l'adattamento del modello abbiano un "rango interno" basso. Invece di aggiornare le matrici dei pesi a piena dimensione, questi metodi ne aggiornano la rappresentazione a basso rango.

  • LoRA (Low-Rank Adaptation): Il metodo PEFT più popolare oggi. Presuppone che l'aggiornamento della matrice dei pesi `ΔW` possa essere approssimato dal prodotto di due matrici a basso rango: `ΔW = BA`. Durante il fine-tuning la matrice originale `W` viene congelata, mentre vengono addestrate solo `A` e `B`[7].
  • QLoRA: Combina LoRA con tecniche di quantizzazione per ridurre ulteriormente i requisiti di memoria, consentendo il fine-tuning di modelli con 65 miliardi di parametri su una singola GPU consumer[8].

Confronto tra prestazioni e risorse

I metodi PEFT consentono di raggiungere prestazioni paragonabili al fine-tuning completo con una riduzione radicale dei costi.

Confronto tra prestazioni ed efficienza dei metodi PEFT
Modello Metodo Parametri addestrabili (%) Risultato sul benchmark (Avg. Accuracy) Fonte
BERT-Large Fine-tuning completo 100% 80.4 (GLUE) [4]
BERT-Large Adapters 3.6% 80.0 (GLUE) [4]
LLaMA-7B LoRA 0.83% 74.7% [9]
LLaMA-7B DoRA (variante di LoRA) 0.84% 78.1% [9]

Principali vantaggi di PEFT in termini di risparmio di risorse:

  • Memoria GPU (VRAM): Per il modello LLaMA 65B il fine-tuning completo richiede teoricamente >780 GB di VRAM, mentre QLoRA consente di affinarlo su una GPU con <48 GB di VRAM[8].
  • Spazio di archiviazione: I checkpoint salvati dopo PEFT occupano megabyte, non gigabyte. Ciò consente di archiviare centinaia di "adapter" per compiti diversi in uno spazio che sarebbe occupato da un singolo modello completamente affinato.

Ambiti di applicazione

Originariamente sviluppati per il NLP, i metodi PEFT sono stati adattati con successo a un'ampia gamma di compiti:

  • Computer Vision (CV) e modelli multimodali (VLM): Adattamento di modelli come Vision Transformer (ViT) e Segment Anything Model (SAM) per compiti di segmentazione delle immagini, anche in ambito biomedico.
  • Generazione e analisi del codice: Configurazione di LLM in base alle specifiche di determinati progetti software, API interne o codebase.
  • Modelli generativi: "Stilizzazione" di modelli di generazione di immagini, come Stable Diffusion, mediante adapter LoRA (tecnica Dreambooth).
  • Sintesi vocale: Adattamento di modelli per la generazione di parlato con una determinata voce, intonazione o connotazione emotiva.

Collegamenti esterni

  • Repository della libreria PEFT su GitHub
  • 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.
  • Houlsby, N. et al. (2019). Parameter-Efficient Transfer Learning for NLP. ICML 2019.
  • Li, X.L.; Liang, P. (2021). Prefix-Tuning: Optimizing Continuous Prompts for Generation. arXiv:2101.00190.
  • Liu, X. et al. (2022). P-Tuning v2: Prompt Tuning Can Be Comparable to Fine-tuning Universally Across Scales and Tasks. arXiv:2110.07602.
  • Ben Zaken, E.; Ravfogel, S.; Goldberg, Y. (2021). BitFit: Simple Parameter-Efficient Fine-Tuning for Transformer-Based Masked Language Models. arXiv:2106.10199.
  • Guo, D.; Rush, A.M.; Kim, Y. (2020). Parameter-Efficient Transfer Learning with Diff Pruning. arXiv:2012.07463.
  • Jiang, Z. et al. (2024). MoRA: High-Rank Updating for Parameter-Efficient Fine-Tuning. arXiv:2405.12130.
  • Mao, K. et al. (2024). A Survey on LoRA of Large Language Models. arXiv:2407.11046.
  • Chen, S. et al. (2024). Parameter-Efficient Fine Tuning: A Comprehensive Analysis Across Applications. arXiv:2404.13506.
  • Zhang, J. et al. (2025). Parameter-Efficient Fine-Tuning for Foundation Models. arXiv:2501.13787.

Note

  1. «Parameter-Efficient Fine-Tuning for Foundation Models». arXiv:2501.13787. [1]
  2. 2.0 2.1 «5 Problems Encountered Fine-Tuning LLMs with Solutions». Machine Learning Mastery. [2]
  3. 3.0 3.1 «PEFT: Parameter-Efficient Fine-Tuning Methods for LLMs». Hugging Face Blog. [3]
  4. 4.0 4.1 4.2 Houlsby, N., et al. «Parameter-Efficient Transfer Learning for NLP». Proceedings of the 36th International Conference on Machine Learning. [4]
  5. Li, X.L., Liang, P. «Prefix-Tuning: Optimizing Continuous Prompts for Generation». arXiv:2101.00190. [5]
  6. Liu, X., et al. «P-Tuning v2: Prompt Tuning Can Be Comparable to Fine-tuning Universally Across Scales and Tasks». arXiv:2110.07602. [6]
  7. Hu, E.J., et al. «LoRA: Low-Rank Adaptation of Large Language Models». arXiv:2106.09685. [7]
  8. 8.0 8.1 Dettmers, T., et al. «QLoRA: Efficient Finetuning of Quantized LLMs». arXiv:2305.14314. [8]
  9. 9.0 9.1 «Parameter Efficient Fine Tuning: A Comprehensive Analysis Across Applications». arXiv:2404.13506. [9]