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.