Fine-tuning e LoRA
Specializzare un modello senza riaddestrarlo da zero. E la domanda che viene prima: ti serve davvero il fine-tuning, o basta un prompt migliore o un RAG?
Il video parte solo se lo chiedi: nessuna richiesta a YouTube prima del click.
Il fine-tuning prende un modello già addestrato e lo addestra ancora un po’, su un insieme di dati piccolo e curato, per specializzarlo. Il medico generico che frequenta una scuola di specializzazione: non dimentica la medicina generale, ci aggiunge competenza.
La domanda da farsi prima
Il fine-tuning è affascinante ed è quasi sempre la risposta sbagliata come primo tentativo. Vale la pena essere brutali con questa tabella:
| Cosa vuoi ottenere | Fine-tuning? | Cosa provare prima |
|---|---|---|
| Un tono o uno stile costante | sì | — |
| Un formato di output rigido | forse | esempi nel prompt |
| Aggiungere conoscenza specifica | quasi mai | RAG |
| Dati che cambiano nel tempo | no | RAG |
| Andare meglio su un compito preciso | sì | prompt engineering |
Regola d’oro: prima il prompt, poi il RAG, e solo se non bastano il fine-tuning. Il motivo è pratico: la conoscenza infilata dentro i pesi è congelata lì, aggiornarla costa un nuovo addestramento, e c’è il rischio di peggiorare capacità che il modello aveva già. Un archivio esterno lo aggiorni cambiando un file.
LoRA: ristrutturare senza demolire
Il fine-tuning completo riaddestra tutti i pesi: per un modello da 8 miliardi di parametri significa hardware da laboratorio. LoRA — Low-Rank Adaptation — cambia il gioco.
L’analogia è la ristrutturazione di casa. Invece di demolire e ricostruire, congeli la struttura portante e aggiungi modifiche mirate: una parete qui, un impianto là.
Tecnicamente: i pesi originali restano intatti e congelati, e accanto a loro si addestrano due matrici piccole che ne modificano il comportamento. I parametri da addestrare crollano — spesso sotto l’1% del totale — e con loro la memoria necessaria.
Il risultato è un file di poche decine di megabyte, l’adattatore, che si applica al modello originale al momento dell’uso. Puoi tenerne diversi e cambiarli come si cambiano le lenti.
QLoRA aggiunge un ulteriore passo: il modello base viene quantizzato a 4 bit e l’adattatore addestrato sopra. È la combinazione che ha portato il fine-tuning su hardware consumer.
Cosa serve davvero
Il collo di bottiglia non è la quantità di dati, è la loro qualità. Cinquecento esempi scritti bene e coerenti fra loro battono cinquemila esempi raccogliticci. Gli esempi devono somigliare a quello che vuoi ottenere: se ti serve un certo tono, tutti gli esempi devono avere quel tono, senza eccezioni.
L’errore classico è l’overfitting: il modello impara a memoria gli esempi invece di generalizzare. Si riconosce perché va benissimo sui dati di addestramento e male su tutto il resto. Antidoti: tenere da parte una fetta di dati per la verifica, fermarsi presto, non esagerare con i cicli di addestramento.
Va tenuto d’occhio anche il dimenticare catastrofico: specializzando troppo, il modello può perdere capacità generali che aveva. LoRA ne soffre meno del fine-tuning completo, proprio perché i pesi originali restano dove sono.
Come si capisce se è servito
La parte che manca a quasi tutti i tutorial: finito l’addestramento, come stabilisci che il modello è migliorato e non solo diverso? Servono tre misure, e vanno fatte tutte e tre.
| Misura | Come | A cosa risponde |
|---|---|---|
| Tenuta sul compito | Su esempi mai visti in addestramento | Ha imparato o ha memorizzato? |
| Confronto col base | Stessi esempi, modello di partenza | Il fine-tuning ha aggiunto qualcosa? |
| Regressioni | Prompt generici fuori dal dominio | Ha perso capacità che aveva? |
La terza è quella che si salta e che fa male: un modello specializzato benissimo può essere diventato inutile su tutto il resto. Bastano venti prompt generali, prima e dopo, per accorgersene.
La regola operativa: tieni fuori dall’addestramento il 10-20% degli esempi e usali solo per misurare. Se il risultato è ottimo sul materiale di addestramento e mediocre su quello tenuto da parte, hai un caso da manuale di sovra-adattamento.
Un modello, tante lenti
Conseguenza pratica del meccanismo: siccome i pesi originali restano intatti e l’adattatore è un file a parte, si possono tenere più adattatori e cambiarli a caldo sopra un unico modello caricato in memoria.
┌── adattatore "tono aziendale"
modello base 8B ────┼── adattatore "estrazione dati"
(caricato una volta) └── adattatore "classificazione ticket"
Su hardware limitato il vantaggio è evidente: invece di tre modelli specializzati da diversi gigabyte l’uno, un modello solo più tre file da poche decine di megabyte. È anche il modo giusto di pensare la specializzazione — non “un modello per ogni compito” ma “un modello, tante lenti”.
Quanto costa davvero
I tutorial mostrano il notebook che gira in venti minuti e lasciano credere che sia quello il lavoro. Il tempo vero è distribuito in modo molto diverso.
preparare e ripulire i dati ████████████████████ 60-70%
addestrare ████ 10%
valutare e confrontare ██████ 20%
esportare e integrare ██ 5%
E non è un giro solo. Il primo tentativo serve quasi sempre a scoprire che i dati avevano un problema — esempi incoerenti, un formato sbagliato, casi troppo simili fra loro. Metti in conto tre giri prima di avere qualcosa di usabile.
Un modo per accorciare: parti in piccolo. Cento esempi e pochi cicli producono un modello mediocre, ma in mezz’ora ti dicono se la strada è giusta, se il formato regge e se la valutazione che hai preparato misura davvero quello che ti interessa. Meglio scoprire un errore di impostazione su cento esempi che su cinquemila.
La lista di controllo prima di partire
Cinque domande che fanno risparmiare giornate.
| Domanda | Se la risposta è no |
|---|---|
| Ho provato prompt migliori e non bastano? | Torna al prompt: costa zero e spesso basta |
| Il problema è come risponde, non cosa sa? | Se è conoscenza, serve il RAG |
| Ho almeno 300-500 esempi coerenti? | Raccoglili prima: senza dati non si parte |
| Ho tenuto da parte esempi per la verifica? | Falla ora, o non saprai se è migliorato |
| So dire in una frase cosa deve cambiare? | Se non lo sai dire, il modello non lo indovina |
L’ultima è la più sottovalutata. “Voglio che risponda meglio” non è un obiettivo addestrabile. “Voglio che risponda in massimo tre frasi, sempre citando l’articolo di riferimento, senza formule di cortesia” lo è — ed è anche il criterio con cui misurerai il risultato.
In sintesi
| Concetto | In una riga |
|---|---|
| Fine-tuning | Addestrare ancora un modello già addestrato, su dati mirati |
| LoRA | Congela i pesi originali e addestra due piccole matrici accanto |
| QLoRA | LoRA su un modello base quantizzato a 4 bit: gira su hardware normale |
| Adattatore | Il file leggero prodotto, applicabile e sostituibile a piacere |
| Ordine giusto | Prompt → RAG → fine-tuning, mai il contrario |
| Valutazione | Tre misure: esempi nuovi, confronto col base, regressioni |
| Adattatori multipli | Un modello caricato, tante specializzazioni intercambiabili |
| Il tempo vero | Due terzi sui dati, un decimo sull’addestramento |
| Prima di partire | Cinque domande: se una risposta è no, il fine-tuning non è la mossa |
- Fine-tuning
- LoRA
- Specializzazione
Lezioni collegate
- Pre-training, SFT e RLHF
Un modello moderno nasce in tre fasi: impara la lingua, impara a rispondere, impara a rispondere bene. Ogni fase cambia radicalmente il suo comportamento.
- La quantizzazione
Ridurre la precisione dei numeri per far entrare un modello da miliardi di parametri in un portatile. Quanto si perde davvero, e dove conviene fermarsi.