Parameter-Efficient Fine-Tuning (PEFT)
Il fine-tuning efficiente in termini di parametri (PEFT) adatta un modello preaddestrato addestrando un piccolo insieme di pesi aggiunti o selezionati. Include adapter, LoRA e congelamento dei pesi.
Il fine-tuning efficiente in termini di parametri (PEFT) adatta un modello preaddestrato a un nuovo compito addestrando solo una piccola frazione dei suoi parametri, che siano alcuni nuovi parametri aggiunti alla rete o un sottoinsieme selezionato di quelli esistenti, mentre il resto dei pesi del modello rimane congelato. Il fine-tuning completo aggiorna ogni peso: per un modello linguistico di grandi dimensioni (LLM) con 7 miliardi di parametri, ciò significa mantenere gradienti e stato dell'ottimizzatore per tutti e 7 i miliardi di valori e salvare una copia completa del modello per ogni compito. I metodi PEFT spesso addestrano meno dell'1% dei parametri, perciò un modello fondazionale può essere adattato su una singola GPU, e per ogni nuovo compito basta un piccolo file di parametri addestrati anziché un altro checkpoint completo. La libreria PEFT di Hugging Face implementa i metodi più comuni per i modelli Transformer.
Come funziona PEFT#
PEFT si basa sull'apprendimento per trasferimento: un modello preaddestrato su dati generici codifica già caratteristiche generali, quindi adattarlo a un compito correlato richiede molti meno cambiamenti rispetto all'addestrarlo. I metodi si dividono in tre famiglie, a seconda dei parametri che addestrano.
I metodi additivi inseriscono nuovi moduli o input addestrabili nella rete congelata. Gli adapter aggiungono piccoli layer a collo di bottiglia all'interno di ogni blocco Transformer e, sul benchmark linguistico GLUE, hanno ottenuto risultati inferiori di appena lo 0,4% rispetto al fine-tuning completo, aggiungendo il 3,6% di parametri per compito. Il prompt tuning e il prefix tuning apprendono una manciata di vettori continui anteposti all'input o alle attivazioni di ciascun layer.
I metodi selettivi addestrano un sottoinsieme scelto dei pesi esistenti. Congelare il backbone e addestrare solo i layer successivi è la forma più semplice; BitFit addestra solo i termini di bias.
I metodi di riparametrizzazione apprendono un aggiornamento compatto delle matrici di pesi congelate. LoRA rappresenta ogni aggiornamento come prodotto di due matrici a basso rango e, rispetto al fine-tuning completo di GPT-3 175B, ha ridotto di 10.000 volte i parametri addestrabili e di 3 volte la memoria GPU. QLoRA addestra adapter LoRA su un modello di base a 4 bit quantizzato, mentre DoRA scompone ogni peso in modulo e direzione e adatta la direzione con LoRA.
Poiché tra i compiti differiscono solo i pochi parametri addestrati, una copia del modello di base può servire più compiti contemporaneamente. Un server mantiene in memoria il modello di base congelato e applica l'adapter corrispondente a ogni richiesta; sistemi come S-LoRA servono in questo modo migliaia di adapter LoRA:
Vantaggi e compromessi#
Gradienti e stato dell'ottimizzatore servono solo per i parametri addestrati, quindi l'uso della memoria diminuisce notevolmente, anche se i pesi congelati e le attivazioni devono comunque poter essere contenuti nella GPU. Mantenere fissi i pesi preaddestrati limita anche l'overfitting su piccoli dataset e l'oblio catastrofico delle capacità originali del modello. Il compromesso riguarda la capacità: nello studio intitolato LoRA impara meno e dimentica meno, LoRA ha ottenuto risultati inferiori al fine-tuning completo nella programmazione e nella matematica, preservando però meglio le prestazioni del modello di base nei compiti al di fuori di questi ambiti.
PEFT nella visione artificiale#
I vision transformer si adattano con gli stessi metodi. Il Visual Prompt Tuning apprende token di input aggiuntivi per un ViT congelato, addestrando meno dell'1% dei parametri, e ha superato il fine-tuning completo in molti dei test; gli adapter LoRA, invece, personalizzano Stable Diffusion per un nuovo stile o soggetto. Nei modelli convoluzionali di rilevamento degli oggetti, il congelamento è l'approccio selettivo standard. Nell'addestramento di Ultralytics YOLO26, l'argomento freeze interrompe gli aggiornamenti del gradiente per i primi N layer e blocca anche le statistiche della normalizzazione in batch; freeze=11 copre i layer da 0 a 10, ovvero l'intero backbone YOLO26, così vengono addestrati solo il neck e la head di rilevamento:
from ultralytics import YOLO
# Carica i pesi di YOLO26n preaddestrati su COCO
model = YOLO("yolo26n.pt")
# Congela i layer da 0 a 10 (il backbone) e addestra solo il neck e la head di rilevamento
results = model.train(data="coco8.yaml", epochs=5, freeze=11)Il log di addestramento elenca ogni parametro congelato su una riga Freezing layer prima dell'inizio della prima epoca.
PEFT e termini correlati#
- Fine-tuning completo: Aggiorna ogni peso, offrendo la massima capacità di adattamento, ma richiede più memoria e una copia completa del modello per ogni compito. PEFT è una forma di fine-tuning che limita i parametri modificabili.
- Sondaggio lineare: Addestra solo un classificatore lineare su caratteristiche congelate, il metodo selettivo più restrittivo, usato principalmente per misurare quanto una rappresentazione preaddestrata riesca già a cogliere.
- Prompt engineering: Modifica il comportamento di un modello tramite testo scritto a mano nell'input e non addestra nulla. Il prompt tuning apprende vettori continui per il prompt mediante discesa del gradiente.
- Distillazione della conoscenza: Addestra un modello studente più piccolo a imitare un insegnante più grande, comprimendo così un modello, mentre PEFT adatta un modello esistente a un nuovo compito.
- Fusione di modelli: Combina pesi o adapter addestrati in un unico modello. Un aggiornamento LoRA addestrato può essere aggiunto alla matrice dei pesi congelata che adatta, così il modello risultante viene eseguito senza costi aggiuntivi in inferenza.










