Cos'è Ollama
Ollama è un runtime per eseguire LLM open-weight (Qwen, Llama, Mistral, Gemma…) in locale. Scarica e gestisce i modelli, li carica in memoria e li espone via HTTP. Nessun dato esce dalla macchina.
Componenti
Sezione intitolata “Componenti”| Componente | Cosa fa |
|---|---|
ollama serve |
daemon HTTP su 127.0.0.1:11434 |
| Runner | processo che esegue il modello, basato su llama.cpp; usa Metal su Apple Silicon, CUDA/ROCm su Linux, altrimenti CPU |
| Store modelli | ~/.ollama/models: manifests/ + blobs/sha256-*, struttura simile a un registry OCI |
CLI ollama |
client del daemon: pull, run, ps, stop, create… |
Formato dei modelli
Sezione intitolata “Formato dei modelli”I modelli sono in formato GGUF, quasi sempre quantizzati: i pesi a 16 bit vengono compressi a 4–8 bit. Un 7B passa da ~15 GB a ~4.7 GB con una perdita di qualità contenuta. Dettagli in Modelli e quantizzazione.
Due API
Sezione intitolata “Due API”| API | Endpoint | Chi la usa |
|---|---|---|
| Nativa | /api/chat, /api/generate, /api/tags, /api/ps |
CLI, script |
| OpenAI-compatible | /v1/chat/completions, /v1/models, /v1/embeddings |
k8sgpt, HolmesGPT (via LiteLLM), kubectl-ai, qualsiasi SDK OpenAI |
È l’API OpenAI-compatible che rende Ollama intercambiabile con vLLM o un provider cloud: i tool cambiano solo baseUrl e nome del modello.
Ciclo di vita di un modello
Sezione intitolata “Ciclo di vita di un modello”ollama pullscarica i blob nello store.- Alla prima richiesta il modello viene caricato in RAM/VRAM (qualche secondo).
- Resta caricato per
OLLAMA_KEEP_ALIVE(default 5 minuti) dopo l’ultima richiesta. - Poi viene scaricato dalla memoria; resta su disco finché non fai
ollama rm.
Alternative
Sezione intitolata “Alternative”| Runtime | Quando |
|---|---|
| Ollama | lab, workstation, piccoli deployment CPU/GPU |
| vLLM | produzione con GPU: batching, throughput, concorrenza |
| llama.cpp server | massimo controllo, footprint minimo |
| LocalAI | compatibilità ampia con API OpenAI (audio, immagini) |