Ollama 101 - Mastering CLI

Ollama create
Il comando più potente è quello che ci permette di creare un modello personalizzato partendo un Modelfile. Questo è l’equivalente di docker build, che prende il Dockerfile e costruisce l’immagine di riferimento.
Ollama permette infatti di creare un modello utilizzando poche semplici istruzioni con una sintassi molto simile a Dockerfile. Alcune di queste sono:
FROM: specifica il modello di base da cui partireSYSTEM: imposta un system prompt personalizzatoPARAMETER: imposta i parametri del modello (temperature, top_p, top_k, max_tokens, ecc.)TEMPLATE: definisce un template per formattare le risposte
Per leggere la documentazione completa, visita il sito ufficiale nella sezione dedicata: Ollama Modelfile Documentation.
Per comprenderne meglio il funzionamento, vediamo un esempio pratico.
Passo 1: Crea un Modelfile
Crea un file chiamato Modelfile con questo contenuto:
FROM llama3.2
SYSTEM """
Sei un assistente specializzato in programmazione Python.
Rispondi sempre con codice ben commentato e segui le best practices PEP 8.
Fornisci esempi pratici quando possibile.
"""
PARAMETER temperature 0.7
PARAMETER top_p 0.9
PARAMETER top_k 40
TEMPLATE """
{{ if .System }}<|system|>
{{ .System }}<|end|>
{{ end }}{{ if .Prompt }}<|user|>
{{ .Prompt }}<|end|>
<|assistant|>
{{ end }}{{ .Response }}<|end|>
"""
In questo esempio, stiamo creando un modello a partire da llama3.2, con un system prompt (opzionale) che lo specializza come assistente Python. Nel system prompt possiamo specificare tutto ciò che vogliamo che il modello sappia o segua anche in termini di dominio di conoscenza, linguistico e di “impersonificazione”. Abbiamo inoltre anche impostato alcuni parametri (sempre opzionali) per controllare il comportamento del modello e definito un template per formattare le risposte, tra cui la temperatura, la top_p e la top_k. Se non ricordi cosa sono questi parametri, puoi leggere il post precedente su Ollama 101 - Usare l’API.
Ultima, ma non ultima, la sezione template: questa serve a definire il formato di input/output del modello. In questo caso, stiamo usando un formato simile a quello usato da OpenAI con i messaggi di sistema, utente e assistente. Questo è utile se vogliamo mantenere una conversazione strutturata o se vogliamo che il modello risponda in un certo modo. In questo caso, nel template stiamo specificando che se c’è un messaggio di sistema, deve essere incluso all’inizio, seguito dal messaggio dell’utente e infine la risposta dell’assistente. Poi, se il prompt è presente, viene incluso dopo il messaggio di sistema. Infine, la risposta del modello viene inserita al termine dell’input.
Passo 2: Crea il modello
A questo punto, siamo pronti per creare il modello personalizzato secondo la definizione precedente. Per farlo, gli assegnamo un nome ‘python-assistant’ e indichiamo a Ollama il Moderlfile da utilizzare:
ollama create python-assistant -f ./Modelfile
Il risultato dell’esecuzione sarà simile al seguente:
Output:
transferring model data
using existing layer sha256:a1b2c3d4e5f6
...
creating new layer sha256:f7e8d9c0b1a2
writing manifest
success
Questo indica che Ollama ha utilizzato dei layer di modelli già presenti localmente, andando poi ad aggiungere il nostro, con le personalizzazioni definite nel Modelfile.
Passo 3: Usa il tuo modello personalizzato
ollama run python-assistant "Come implemento un singleton in Python?"
Il modello ora risponderà sempre seguendo le istruzioni che hai definito nel system prompt!
Conclusioni
Le possibilità offerte da Ollama tramite i Modelfile sono davvero molteplici. Puoi creare modelli specializzati per vari domini, come assistenti legali, medici, di marketing, e-commerce, e molto altro. Inoltre, puoi sperimentare con diversi parametri e template per ottenere il comportamento desiderato. Se hai qualche esperimento da proporre o raccontare, scrivici pure nei commenti o contattaci sui social!








