Fine-Tuning e Transfer Learning
Come personalizzare modelli esistenti
📌Transfer Learning
Il parte da un modello pre-addestrato e lo adatta al dominio target. Riduce tempi e costi rispetto al training da zero.
Nota pratica: funziona meglio quando i domini sono abbastanza vicini. In questo scenario conta integrare , fase di , scelta di e controllo di . <<Takeaway: riuso intelligente > ricostruzione da zero>>.
📌Fine-tuning vs Zero-shot
è rapido da avviare; richiede investimento ma può migliorare consistenza su task specifici.
Nota pratica: valuta sempre costo, aggiornabilità e qualità richiesta.
Takeaway: la scelta tecnica deve avere ROI chiaro.
🚀Startup Lens
Spesso conviene partire con + prompt robusti e passare al solo con evidenza di gap persistenti.
⚠️Errore comune + Check rapido
Errore comune: fare tuning troppo presto senza baseline.
Check rapido (2 min): indica 2 segnali che mostrano che prompt+ non bastano più.
CH9 Extra — Small LLM + Mini RAG (6 Step)
📋 Setup
Cosa imparerai in questo lab extra:
- Confrontare risposte zero-shot e
RAGsullo stesso modello/query - Scegliere l'approccio giusto: API, locale con Ollama, oppure fine-tuning
- Implementare retrieval TF-IDF su knowledge base locale
- Eseguire un fine-tuning leggero LoRA e confrontare prima/dopo training
🛠️ Scelte Tecniche
- Livello 1: modelli via API (Groq con LLaMA 3 o Anthropic Claude).
- Livello 2: modello locale
phi3:minitramite Ollama (offline). - Livello 3: fine-tuning LoRA su
GroNLP/gpt2-small-italian. - Retrieval con
TfidfVectorizersudocs/knowledge_base.txtin tutti i livelli.
🧪 Scelte di Laboratorio
- Lab in 3 livelli progressivi: API → locale → fine-tuning.
- Stessa knowledge base, stesso obiettivo pedagogico, confronto diretto risultati.
- Esperimenti liberi modificando i file in
docs/.
Prerequisiti:
- ✅ Python 3.9+
- ✅ pip installato
- ✅ Livello 1: chiave API Groq o Anthropic
- ✅ Livello 2: Ollama installato (model pull
phi3:mini) - ✅ Livello 3: GPU o Apple Silicon per fine-tuning LoRA
Comandi di avvio:
$ cd ml-lab-05-small-llm-rag/
$ cp .env.example .env
# Scegli un solo livello da eseguire (dettaglio comandi negli step)
$ python main_api.py
$ python main_local.py
$ python main_finetune.py
Livello 1 — Configura API
Configura .env e prepara l'esecuzione con Groq (LLaMA 3) o Anthropic Claude.
Livello 1 — Configura API — Codice
bash
🎯 Prova: Prova: esegui python main_api.py e confronta la stessa query in zero-shot e in modalità RAG.
Livello 1 — Confronto zero-shot vs RAG (API)
Osserva differenze di qualità tra risposta senza contesto e risposta con retrieval TF-IDF.
Livello 1 — Confronto zero-shot vs RAG (API) — Codice
bash
🎯 Prova: Prova: modifica i contenuti in docs/knowledge_base.txt e riesegui per vedere l'impatto immediato.
Livello 2 — Esecuzione locale con Ollama
Fai girare il lab completamente offline con phi3:mini (nessun dato esce dalla macchina).
Livello 2 — Esecuzione locale con Ollama — Codice
bash
🎯 Prova: Prova: confronta latenza e qualità tra esecuzione API e locale sullo stesso prompt.
Livello 3 — Setup fine-tuning LoRA
Prepara ambiente e dipendenze per il fine-tuning leggero su GroNLP/gpt2-small-italian.
Livello 3 — Setup fine-tuning LoRA — Codice
bash
🎯 Prova: Prova: salva i completamenti prima del training per il confronto finale.
Livello 3 — Osserva training e loss
Durante il training controlla la discesa della loss e la stabilità dei completamenti su prompt fissi.
Livello 3 — Osserva training e loss — Codice
python
🎯 Prova: Prova: modifica docs/finetune_data.txt con esempi coerenti e valuta come cambia il comportamento del modello.
Confronto finale multi-livello
Confronta API, locale e fine-tuning sullo stesso set di query e documenta qualità/tempo/controllo.
Confronto finale multi-livello — Codice
python
🎯 Prova: Prova: esegui 3 query (generica, specifica, ambigua) e compila una mini tabella decisionale per scegliere il livello corretto.
🎯 Punti Chiave
- •Transfer learning accelera go-to-market
- •Fine-tuning migliora task specifici se motivato
- •RAG è forte su contenuti aggiornabili
- •Non esiste una scelta universale
- •Learning outcome: scegliere tra zero-shot, RAG e fine-tuning su un caso reale
💬 Discussione in Aula
- •Quando il costo del fine-tuning è giustificato?
- •Quale rischio vedi nel tuning con dati poco curati?
- •In quali scenari RAG resta preferibile?
Media del Capitolo
2/3 prontiGli slot con media reale non sono più placeholder; gli altri restano placeholder finché non carichiamo i file.
🎙️ Podcast
In arrivoPodcast di approfondimento sulle strategie di adattamento AI e trade-off costo/beneficio.
Durata target: 18 min
Path previsto: media/ch09-fine-tuning/podcast.mp3
🧠 Quiz del Capitolo
1. Hai un chatbot di supporto clienti con 90% accuracy su domande standard, ma fallisce su edge case tecnici complessi (~10%). Il product manager vuole fine-tuning immediato. Cosa fai prima?