Capitolo 9 di 1560%
Capitolo 9

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 RAG sullo 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:mini tramite Ollama (offline).
  • Livello 3: fine-tuning LoRA su GroNLP/gpt2-small-italian.
  • Retrieval con TfidfVectorizer su docs/knowledge_base.txt in 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

Step 1

Livello 1 — Configura API

Configura .env e prepara l'esecuzione con Groq (LLaMA 3) o Anthropic Claude.

Livello 1 — Configura API — Codice

bash

Loading...

🎯 Prova: Prova: esegui python main_api.py e confronta la stessa query in zero-shot e in modalità RAG.

Step 2

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

Loading...

🎯 Prova: Prova: modifica i contenuti in docs/knowledge_base.txt e riesegui per vedere l'impatto immediato.

Step 3

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

Loading...

🎯 Prova: Prova: confronta latenza e qualità tra esecuzione API e locale sullo stesso prompt.

Step 4

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

Loading...

🎯 Prova: Prova: salva i completamenti prima del training per il confronto finale.

Step 5

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

Loading...

🎯 Prova: Prova: modifica docs/finetune_data.txt con esempi coerenti e valuta come cambia il comportamento del modello.

Step 6

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

Loading...

🎯 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 pronti

Gli slot con media reale non sono più placeholder; gli altri restano placeholder finché non carichiamo i file.

🎙️ Podcast

In arrivo

Podcast 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

Domanda 1 / 100/10 risposte

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?

Seleziona una risposta per continuare