Definizione
Il fine-tuning è il processo di adattamento di un modello pre-addestrato (tipicamente un foundation model) a un task, dominio o stile specifico tramite training aggiuntivo su un dataset mirato.
Il modello base ha già appreso rappresentazioni generali del linguaggio durante il pre-training. Il fine-tuning le specializza, permettendo performance superiori su task specifici con meno dati e compute rispetto all’addestramento da zero.
Tipi di fine-tuning
Full fine-tuning: aggiorna tutti i parametri del modello. Massima flessibilità ma richiede più compute e rischia overfitting/catastrophic forgetting.
Parameter-Efficient Fine-Tuning (PEFT): aggiorna solo un sottoinsieme di parametri.
- LoRA (Low-Rank Adaptation): aggiunge matrici a basso rango ai layer esistenti. Riduce i parametri trainabili del 99%+.
- QLoRA: LoRA su modelli quantizzati a 4-bit. Permette fine-tuning di modelli 70B su singola GPU consumer.
- Prefix tuning: aggiunge token virtuali all’inizio della sequenza.
- Adapter layers: inserisce piccoli moduli tra i layer esistenti.
Instruction tuning: fine-tuning su dataset di coppie (istruzione, risposta) per migliorare il seguire istruzioni.
Quando fare fine-tuning
Indicato per:
- Task ripetitivi con formato output specifico
- Domini con terminologia specialistica (legale, medico)
- Necessità di stile/tono consistente
- Classificazione con molte classi specifiche
- Quando il prompting non raggiunge la qualità richiesta
Alternative da considerare:
- Prompt engineering: spesso sufficiente, zero costi di training
- RAG: per knowledge retrieval senza modificare il modello
- Few-shot prompting: esempi nel prompt invece che nel training
Considerazioni pratiche
Dataset: la qualità batte la quantità. 500-1000 esempi di alta qualità spesso superano 10K esempi rumorosi. Formato tipico: coppie (input, output atteso).
Costi: variano enormemente. Fine-tuning GPT-4o via API costa ~$25/milione di token di training. Self-hosting con LoRA su modelli open richiede GPU (A100: ~$2/ora).
Valutazione: definire metriche specifiche prima del fine-tuning. Confrontare con baseline (modello base + prompting) per verificare che il fine-tuning aggiunga valore.
Rischi: catastrophic forgetting (perde capacità generali), overfitting (memorizza invece di generalizzare), data leakage nel test set.
Fraintendimenti comuni
”Il fine-tuning è sempre meglio del prompting”
No. Per molti task, few-shot prompting su modelli frontier performa comparabilmente o meglio, senza costi di training e con flessibilità maggiore.
”Serve un dataset enorme”
Con PEFT e modelli moderni, qualche centinaio di esempi di qualità può bastare. Il focus è sulla qualità e diversità degli esempi, non sulla quantità.
”Fine-tuning = il modello impara nuove informazioni”
Il fine-tuning modifica comportamenti e stile, ma non è efficiente per iniettare nuova conoscenza fattuale. Per quello, RAG è più appropriato.
Termini correlati
- LLM: modelli tipicamente soggetti a fine-tuning
- RLHF: tecnica di allineamento post-fine-tuning
- Foundation Model: punto di partenza per fine-tuning
- RAG: alternativa/complemento al fine-tuning
Fonti
- Hu, E. et al. (2021). LoRA: Low-Rank Adaptation of Large Language Models. ICLR
- Dettmers, T. et al. (2023). QLoRA: Efficient Finetuning of Quantized LLMs. NeurIPS
- OpenAI. Fine-tuning Documentation