Guida alla personalizzazione dei modelli - Quale metodo dovrei usare?¶
Hai dubbi su come personalizzare il tuo modello? Questa guida ti aiuta a scegliere l'approccio giusto.
๐ฏ Albero decisionale rapido¶
In breve: cambiare il comportamento โ System Prompt (5 min). Hai < 50 esempi di domande/risposte โ Few-Shot Learning (30 min). Hai 100+ esempi e serve una specializzazione approfondita โ Fine-Tuning (ore/giorni, GPU).
Per l'albero decisionale completo passo passo, consulta Concetti essenziali - Albero decisionale.
๐ Tabella comparativa¶
| Metodo | Tempo | Difficoltร | Quando usarlo | Costo |
|---|---|---|---|---|
| System Prompt | 5 min | โญ Facile | Cambiare comportamento, aggiungere regole | Gratuito |
| Few-Shot | 30 min | โญโญ Medio | Aggiungere 5-50 esempi | Gratuito |
| Fine-Tuning | Ore+ | โญโญโญโญ Difficile | 100+ esempi, specializzazione approfondita | Tempo GPU |
Al 90% degli utenti servono solo i Metodi 1 o 2!
๐ง Metodo 1: System Prompt (il piรน semplice)¶
Quando usarlo¶
- Cambiare la personalitร del modello (formale, informale, tecnica, ecc.)
- Aggiungere regole o vincoli specifici
- Definire un ruolo (supporto clienti, tutor, assistente)
- Impostare il formato dell'output (JSON, markdown, ecc.)
Cosa ti serve¶
- Nessun dato di addestramento richiesto
- Solo istruzioni chiare
Tempo richiesto¶
- 5-15 minuti
Esempi di casi d'uso¶
โ Rendere un chatbot piรน professionale โ Creare un assistente di codice che spiega passo passo โ Costruire un traduttore con uno stile specifico โ Progettare uno scrittore creativo che usa determinati temi
Come farlo¶
Passo 1: crea un Modelfile
mkdir -p ./models/custom/my-assistant
nano ./models/custom/my-assistant/Modelfile
Passo 2: definisci il comportamento con il prompt SYSTEM
FROM llama3.2:1b
PARAMETER temperature 0.7
PARAMETER num_ctx 4096
PARAMETER top_p 0.9
SYSTEM """
You are a helpful programming tutor.
Your role:
- Explain concepts in simple terms
- Provide code examples
- Ask clarifying questions if the request is unclear
- Break down complex topics into steps
Style:
- Use clear, beginner-friendly language
- Include emojis for readability
- Always test code before suggesting it
- Admit when you're unsure
"""
Passo 3: crea il modello
bash scripts/create-custom-model.sh my-assistant ./models/custom/my-assistant/Modelfile
Passo 4: provalo
make chat
# Seleziona "my-assistant" e inizia a chattare
Pro¶
โ Il metodo piรน veloce โ Nessun dato di addestramento necessario โ Facile da iterare e migliorare โ Funziona immediatamente
Contro¶
โ Conoscenza limitata a quella del modello base โ Non puรฒ aggiungere conoscenze specialistiche complesse โ Potrebbe non seguire le istruzioni perfettamente ogni volta
๐ Metodo 2: Few-Shot Learning (consigliato)¶
Quando usarlo¶
- Hai 5-50 interazioni di esempio
- Vuoi che il modello risponda in un modo specifico
- Serve un tono/formato coerente
- Vuoi insegnare conoscenze di un dominio specifico
Cosa ti serve¶
- Coppie domanda/risposta
- Esempi di risposte ideali
- Un file JSONL (opzionale, puoi usare il convertitore)
Tempo richiesto¶
- Da 30 minuti a 2 ore
Esempi di casi d'uso¶
โ Supporto clienti con FAQ โ Domande e risposte sulla documentazione di prodotto โ Generazione di contenuti con uno stile specifico โ Terminologia specifica di un dominio
Come farlo¶
Passo 1: prepara i tuoi esempi
Opzione A: manuale (per dataset piccoli)
FROM llama3.2:1b
PARAMETER temperature 0.3
PARAMETER num_ctx 4096
SYSTEM """
You are TechCorp's customer support assistant.
Be helpful, professional, and concise.
"""
MESSAGE user "What are your business hours?"
MESSAGE assistant "We're open Monday-Friday, 9am-6pm EST. Weekend support is available via email."
MESSAGE user "How do I reset my password?"
MESSAGE assistant "To reset your password: 1) Click 'Forgot Password' on the login page. 2) Enter your email. 3) Check your inbox for a reset link. 4) Create a new password. If you don't receive the email within 5 minutes, check your spam folder."
MESSAGE user "What's your return policy?"
MESSAGE assistant "We offer a 30-day money-back guarantee. Items must be unused and in original packaging. Simply contact support to initiate a return and we'll email you a prepaid shipping label."
Opzione B: usare un file JSONL
# Use the Web UI converter
# 1. Go to http://localhost:8080/converter
# 2. Upload your Excel/CSV with questions and answers
# 3. Download the JSONL file
# 4. Save to ./data/training/my-data.jsonl
Poi fai riferimento ad esso nel Modelfile:
FROM llama3.2:1b
PARAMETER temperature 0.3
PARAMETER num_ctx 4096
SYSTEM """
You are a customer support assistant.
"""
# Load examples from JSONL (if using external data)
# Note: Currently requires manual MESSAGE blocks
# Future: We may support direct JSONL import
Passo 2: crea il modello
bash scripts/create-custom-model.sh support-bot ./models/custom/support-bot/Modelfile
Passo 3: prova con domande reali
docker compose exec ollama ollama run support-bot "How can I track my order?"
Pro¶
โ Piรน coerente del solo System Prompt โ Insegna conoscenze specifiche โ Comunque veloce e semplice โ Non richiede GPU
Contro¶
โ Limitato a circa 50 esempi (dimensione del Modelfile) โ Non "apprende" in profonditร i pattern โ Potrebbe non generalizzare bene oltre gli esempi
Consigli¶
- Inizia con 5-10 esempi, prova, poi aggiungine altri
- Includi casi limite e variazioni comuni
- Rendi gli esempi diversificati (diversi stili di domanda)
- Prova dopo aver aggiunto ogni gruppo
๐ Metodo 3: Fine-Tuning (avanzato)¶
Quando usarlo¶
- Hai 100+ esempi di addestramento
- Serve una specializzazione approfondita in un dominio (medico, legale, tecnico)
- Vuoi che il modello apprenda pattern complessi
- Servono output strutturati e coerenti
Cosa ti serve¶
- Un dataset ampio (100-10.000+ esempi)
- Accesso a una GPU (locale o cloud)
- Competenze tecniche (Python, framework ML)
- Tempo per l'addestramento e la valutazione
Tempo richiesto¶
- Configurazione: 1-2 ore
- Addestramento: da 30 minuti a 8+ ore (dipende dalla dimensione)
- Valutazione: 1-2 ore
Esempi di casi d'uso¶
โ Assistente per diagnosi mediche โ Analizzatore di documenti legali โ Generazione di codice per un framework specifico โ Esperto di troubleshooting tecnico
Processo ad alto livello¶
Ollama di per sรฉ non esegue il fine-tuning dei modelli โ l'addestramento avviene con strumenti esterni e poi si importa il risultato:
- Prepara un dataset JSONL (100+ esempi)
- Addestra esternamente con Unsloth o Hugging Face Transformers (localmente o sulla GPU gratuita di Google Colab), tipicamente con LoRA/QLoRA
- Esporta in formato GGUF con llama.cpp
- Importa in Ollama:
bash scripts/import-model.sh my-finetuned ./data/gguf/my-model.gguf
๐ Guida completa passo passo con gli script di addestramento: Guida al Fine-Tuning (approfondimento canonico). Per un esempio concreto svolto, consulta l'Esempio di addestramento su dataset.
Pro¶
โ Apprendimento approfondito dei pattern โ Puรฒ gestire conoscenze di dominio complesse โ Migliore generalizzazione โ Output strutturati e coerenti
Contro¶
โ Richiede molto tempo โ Richiede una GPU โ Complessitร tecnica โ Rischio di overfitting โ Costoso (tempo GPU/costi cloud)
Note importanti¶
โ ๏ธ Prova prima il Metodo 2! Il few-shot learning spesso funziona sorprendentemente bene. โ ๏ธ Piรน dati โ meglio - La qualitร conta piรน della quantitร . โ ๏ธ Inizia in piccolo - Fai fine-tuning su 100 esempi, valuta, poi aumenta la scala.
๐ Percorso di apprendimento progressivo¶
Settimana 1: inizia semplice¶
- Usa i modelli esistenti dalla libreria Ollama
- Prova con la Web UI
- Comprendi i fondamenti del prompting
Settimana 2: System Prompt¶
- Crea il tuo primo Modelfile personalizzato
- Sperimenta con i prompt SYSTEM
- Regola i parametri (temperature, ecc.)
Settimana 3: Few-Shot Learning¶
- Raccogli 10-20 domande/risposte di esempio
- Aggiungi blocchi MESSAGE al Modelfile
- Prova e affina
Settimana 4+: avanzato (opzionale)¶
- Valuta il fine-tuning per esigenze specialistiche
- Esplora gli adapter LoRA
- Distribuisci in produzione
๐ Esempi reali¶
Esempio 1: assistente personale (System Prompt)¶
Obiettivo: un aiutante cordiale che mantiene le risposte concise
Metodo: System Prompt Tempo: 5 minuti
FROM llama3.2:1b
PARAMETER temperature 0.7
PARAMETER num_ctx 4096
SYSTEM """
You are a helpful personal assistant.
Keep responses under 3 sentences unless asked for details.
Be friendly and use a conversational tone.
"""
Esempio 2: bot per le FAQ (Few-Shot)¶
Obiettivo: rispondere a domande comuni su un prodotto
Metodo: Few-Shot Learning Tempo: 30 minuti Dati: 20 coppie di domande/risposte dai ticket di supporto
FROM llama3.2:1b
PARAMETER temperature 0.3
PARAMETER num_ctx 4096
SYSTEM """
You are a support bot for WidgetPro 3000.
Answer questions based on the manual.
"""
MESSAGE user "How do I charge the battery?"
MESSAGE assistant "Connect the USB-C cable to the charging port on the bottom. A red light indicates charging; green means fully charged (takes ~2 hours)."
# ... 19 more examples ...
Esempio 3: assistente per la codifica medica (Fine-Tuning)¶
Obiettivo: convertire note mediche in codici di fatturazione
Metodo: Fine-Tuning Tempo: 8 ore Dati: 5.000 esempi etichettati
Motivo del fine-tuning: - Richiede l'apprendimento di pattern complessi di codici ICD-10 - Necessita di alta precisione (conseguenze di fatturazione) - ร disponibile un ampio dataset etichettato - Formato di output strutturato
๐ค Ancora indeciso?¶
Chiediti:¶
D: Voglio solo cambiare il modo in cui parla? โ Usa il System Prompt
D: Ho esempi specifici di risposte ideali? โ Usa il Few-Shot Learning (se < 50 esempi) โ Usa il Fine-Tuning (se 100+ esempi)
D: ร mission-critical con requisiti normativi? โ Considera il Fine-Tuning (dopo test approfonditi)
D: Ho una scadenza stretta? โ Usa il System Prompt o il Few-Shot Learning
D: Ho una GPU e competenze di ML? โ Considera il Fine-Tuning (ma prova prima i metodi piรน semplici!)
๐ฆ Guida a semaforo¶
| ๐ข Inizia da qui | ๐ก Passo successivo | ๐ด Avanzato |
|---|---|---|
| System Prompt | Few-Shot Learning | Fine-Tuning |
| 5 minuti | 30 minuti | Ore/Giorni |
| Nessun dato necessario | 5-50 esempi | 100+ esempi |
| Iterazione facile | Complessitร media | Complessitร alta |
| Usalo per l'80% dei casi | Usalo per il 15% dei casi | Usalo per il 5% dei casi |
๐ Risorse aggiuntive¶
- Concetti essenziali - Impara le basi
- Guida ai parametri - Ottimizza le tue impostazioni
- Modelfile di esempio - Template pronti all'uso
- Guida al Fine-Tuning - Approfondimento completo sul fine-tuning
- Esempio di addestramento su dataset - Esempio svolto con un dataset
Ricorda: inizia semplice, prova, itera! La maggior parte degli utenti raggiunge i propri obiettivi con un semplice system prompt ben congegnato. Non complicare le cose! ๐ฏ