PEFT(Parameter-Efficient Fine-Tuning)

[peft]

Famiglia di tecniche per fine-tunare LLM aggiornando solo una piccola frazione dei parametri. LoRA, prefix tuning, adapter, prompt tuning.

Il PEFT (Parameter-Efficient Fine-Tuning) è la categoria che racchiude tutte le tecniche per fine-tunare un LLM aggiornando solo una piccola frazione dei parametri totali. Standard moderno, sostituisce il full fine-tuning per quasi tutti i casi pratici.

Tecniche principali sotto l'ombrello PEFT:

  • LoRA: la più popolare. Aggiunge matrici di adattamento low-rank.
  • QLoRA: LoRA + quantizzazione 4-bit del modello base. Fine-tuning su GPU consumer.
  • Adapter: aggiunge piccoli layer "adapter" tra i layer esistenti. Storicamente popolare, ora meno.
  • Prefix tuning: aggiunge token "prefix" addestrabili davanti all'input. Solo i prefix vengono aggiornati.
  • Prompt tuning: simile al prefix, ma più semplice. Solo gli embedding di un prompt virtuale vengono addestrati.
  • P-Tuning v2: variante più potente del prompt tuning.
  • IA³: scala alcune attivazioni con vettori imparati. Pochissimi parametri.
  • BitFit: aggiorna solo i bias. Estremamente economico.
  • DoRA: scompone i pesi in magnitude e direction, applica LoRA solo alla direction.

Vantaggi del PEFT in generale:

  • Costo training: 10x-100x meno parametri da aggiornare.
  • Memoria: gestibile su singola GPU.
  • Multi-task: tieni un modello base, tanti adattamenti specializzati.
  • Storage: gli adattamenti sono piccoli (50-500 MB) vs il modello base (decine di GB).
  • Conservazione: il modello base resta intatto, niente catastrophic forgetting.

Libreria di riferimento: HuggingFace PEFT. Implementa tutto, è lo standard Python.

Quando NON usare PEFT:

  • Quando hai dataset enormi e budget illimitato (allora full fine-tuning resta marginalmente migliore).
  • Quando il task è radicalmente diverso da quello del pretraining (es. modello inglese su lingua mai vista).

Per il 95% dei casi pratici di adattamento di un LLM open-source, PEFT (in particolare LoRA o QLoRA) è la risposta. Lo trovi nei tutorial di ogni framework, sui modelli su HuggingFace, nei prodotti di azienda.