Vai al contenuto

Guida alla risoluzione dei problemi

Problemi comuni e soluzioni per la Ollama Model Training Guide.

Indice


Problemi del servizio

Il servizio Ollama non si avvia

Sintomi: docker compose up fallisce o il servizio termina immediatamente

Verifica che Docker sia in esecuzione:

docker ps
# If this fails, Docker daemon is not running

Soluzione:

# Ubuntu/Debian
sudo systemctl start docker
sudo systemctl enable docker

# Check status
sudo systemctl status docker

Controlla i log:

make logs
# Or:
docker compose logs ollama

Cerca messaggi di errore che indichino: - Conflitti di porta - Problemi di mount dei volumi - Problemi di permessi

Riavvia i servizi:

make restart

La Chat UI non si avvia

Controlla entrambi i servizi:

docker compose ps

Sia ollama che ollama-chat dovrebbero essere "Up".

Controlla i log della Chat:

docker compose logs chat

Ricostruisci il container della Chat:

docker compose build chat
docker compose up -d

Il container termina immediatamente

Verifica la presenza di conflitti di porta:

# Check if port 11434 is already in use
netstat -an | grep 11434

# Check if port 8080 is already in use
netstat -an | grep 8080

Soluzione: Modifica le porte host nel file .env (questi valori vengono interpolati nel file compose come ${OLLAMA_PORT:-11434}:11434 e ${CHAT_PORT:-8080}:8080):

OLLAMA_PORT=11435
CHAT_PORT=8081

Poi ricrea i container (un semplice riavvio non è sufficiente per le modifiche alle porte):

make down && make up

Errori di permesso negato

Aggiungi l'utente al gruppo docker:

sudo usermod -aG docker $USER
# Log out and back in for changes to take effect

Correggi i permessi dei volumi:

# Check volume ownership
docker volume inspect ollama_data

# If needed, fix permissions
docker compose down
docker volume rm ollama_data
make up


Problemi dei modelli

La creazione del modello fallisce

Sintomi: bash scripts/create-custom-model.sh fallisce con un errore

Verifica che il modello base esista:

docker compose exec ollama ollama list

Se il modello base manca, scaricalo:

docker compose exec ollama ollama pull llama3.2:1b

Convalida la sintassi del Modelfile:

# Check Modelfile exists
cat ./models/custom/my-model/Modelfile

# Verify FROM line uses correct model name
grep "FROM" ./models/custom/my-model/Modelfile

Errori di sintassi comuni: - Riga FROM mancante - Nome del modello base errato - Righe PARAMETER malformate - Virgolette mancanti nel prompt SYSTEM

Testa il Modelfile manualmente:

docker compose exec ollama ollama create test -f /models/examples/chatbot/Modelfile

Il download dei modelli fallisce o va in timeout

Verifica la connessione a internet:

docker compose exec ollama ping -c 3 ollama.com

Controlla la rete Docker:

docker network ls
docker network inspect ollama-model-train-guide_default

Riprova con un timeout più ampio:

# Some models are large (>10GB) and may take time
docker compose exec ollama ollama pull mistral:7b
# Wait patiently...

Controlla lo spazio su disco (vedi Problemi di spazio su disco)

Le risposte del modello sono di scarsa qualità

Regola la temperature: - Troppo alta (>1.5): Casuale, incoerente - Troppo bassa (<0.1): Ripetitiva, rigida

Aumenta la finestra di contesto:

PARAMETER num_ctx 8192
# Instead of 2048

Usa un modello base migliore: - Passa da un modello da 1B a uno da 3B o 7B - Prova famiglie di modelli diverse (Mistral, CodeLlama, ecc.)

Aggiungi esempi few-shot:

MESSAGE user "Example question?"
MESSAGE assistant "Example high-quality answer."

Il modello esaurisce la memoria

Sintomi: Il servizio va in crash, errori "out of memory"

Usa un modello più piccolo: - llama3.2:1b invece di mistral:7b - Versioni quantizzate (se disponibili)

Riduci la finestra di contesto:

PARAMETER num_ctx 2048
# Instead of 8192

Aumenta la RAM di sistema o abilita l'accelerazione GPU

Controlla i limiti delle risorse Docker:

docker stats


Problemi di rete e API

API non accessibile

Verifica che il servizio sia in esecuzione:

docker compose ps

Verifica la mappatura delle porte:

netstat -an | grep 11434

Testa direttamente l'API:

curl http://localhost:11434/api/tags

Se fallisce:

# Check firewall
sudo ufw status

# Try from within container
docker compose exec ollama curl http://localhost:11434/api/tags

L'API restituisce errori

"model not found":

# List available models
docker compose exec ollama ollama list

# Pull missing model
docker compose exec ollama ollama pull <model-name>

Timeout di connessione:

# Check if Ollama is responsive
docker compose logs ollama

# Restart if needed
make restart

Rate limiting o risposte lente: - Riduci le richieste concorrenti - Abilita l'accelerazione GPU - Usa modelli più piccoli

Impossibile connettersi da un host esterno

Ollama è associato a 0.0.0.0 per impostazione predefinita in docker-compose.yml.

Controlla le regole del firewall:

sudo ufw allow 11434/tcp
sudo ufw allow 8080/tcp

Verifica la rete Docker:

docker compose exec ollama env | grep OLLAMA_HOST
# Should show: OLLAMA_HOST=0.0.0.0


Problemi di prestazioni

Risposte del modello lente

Abilita l'accelerazione GPU: Vedi Guida all'installazione - Supporto GPU

Usa modelli più piccoli: - llama3.2:1b (il più veloce) - phi3:mini (veloce e di buona qualità) - llama3.2:3b (bilanciato)

Riduci la finestra di contesto:

PARAMETER num_ctx 2048

Controlla le risorse di sistema:

docker stats
htop  # or top

Cerca: - Utilizzo elevato della CPU - Pressione sulla memoria - Colli di bottiglia dell'I/O su disco

Potenzia l'hardware: - Aggiungi più RAM (consigliati 16GB+) - Usa un SSD invece di un HDD - Aggiungi l'accelerazione GPU

Utilizzo elevato della memoria

Controlla il consumo di memoria:

docker stats ollama

Soluzioni: - Usa modelli più piccoli (1B-3B invece di 7B+) - Riduci la finestra di contesto - Limita le richieste concorrenti - Abilita la GPU per scaricare la memoria della CPU

La Chat UI è lenta

Controlla il tempo di risposta dell'API:

time curl http://localhost:11434/api/generate -d '{"model":"llama3.2:1b","prompt":"Hi","stream":false}'

Se l'API è lenta, vedi i problemi di prestazioni dei modelli sopra.

Controlla la console del browser per eventuali errori JavaScript: - Apri i DevTools (F12) - Controlla la scheda Console per gli errori - Controlla la scheda Network per le richieste lente


Problemi di spazio su disco

Spazio insufficiente per i modelli

Controlla lo spazio disponibile:

df -h
docker system df

Controlla le dimensioni dei modelli:

docker compose exec ollama ollama list

Pulisci le risorse Docker:

# Remove unused images
docker image prune -a

# Remove unused volumes (CAUTION: may delete models)
docker volume prune

# Full cleanup
docker system prune -a --volumes

Elimina i modelli inutilizzati:

docker compose exec ollama ollama rm <unused-model>

Sposta la directory dei dati di Docker:

# Stop Docker
sudo systemctl stop docker

# Edit daemon.json
sudo nano /etc/docker/daemon.json
# Add: {"data-root": "/new/path"}

# Move data
sudo mv /var/lib/docker /new/path/

# Start Docker
sudo systemctl start docker

Il volume è pieno

Controlla le dimensioni del volume:

docker volume inspect ollama_data

Ricrea il volume con più spazio:

# Backup models first!
make backup-models

# Remove old volume
docker compose down
docker volume rm ollama_data

# Start fresh
make up
make pull-base


Problemi della Chat UI

I modelli non compaiono nel menu a tendina

Verifica che l'API di Ollama sia accessibile:

curl http://localhost:11434/api/tags

Controlla i log della Chat UI:

docker compose logs chat

Riavvia la Chat UI:

docker compose restart chat

Svuota la cache del browser: - Premi Ctrl+Shift+R (Windows/Linux) - Premi Cmd+Shift+R (Mac)

Il download del modello non mostra progressi

Verifica se il modello si sta effettivamente scaricando:

docker compose logs -f ollama

Prova a scaricarlo tramite CLI:

docker compose exec ollama ollama pull llama3.2:1b

Controlla la velocità di rete:

# Test download speed
docker compose exec ollama curl -o /dev/null http://speedtest.example.com/file

Le risposte della chat vengono troncate

Aumenta la finestra di contesto nel Modelfile del modello:

PARAMETER num_ctx 8192

Verifica la presenza di timeout dell'API nei log della Chat UI:

docker compose logs chat | grep timeout


Problemi del convertitore

Il caricamento del file fallisce

Controlla la dimensione del file: File molto grandi (>50MB) possono andare in timeout. Prova a suddividerli in file più piccoli.

Controlla il formato del file: - Assicurati che sia .xlsx, .xls o .csv - Assicurati che il file non sia corrotto

Controlla i permessi:

ls -la ./data/training/

La directory deve essere scrivibile.

Controlla i log:

docker compose logs chat | grep converter

La conversione produce un file vuoto

Controlla la mappatura delle colonne: - Assicurati che siano selezionate le colonne corrette - Visualizza l'anteprima dei dati prima di convertire - Verifica che i dati di origine abbiano contenuto

Controlla il file di output:

cat ./data/training/output.jsonl

Conversione manuale: Prova direttamente l'API del convertitore:

curl -X POST http://localhost:8080/api/converter/convert \
  -F "file=@input.csv" \
  -F "instruction_col=question" \
  -F "output_col=answer" \
  -o output.jsonl

Il rilevamento automatico fallisce

Specifica manualmente le colonne nell'interfaccia: - Seleziona la colonna "Question" dal menu a tendina - Seleziona la colonna "Answer" dal menu a tendina - Visualizza l'anteprima per verificare

Controlla i nomi delle colonne nel file di origine: - Usa nomi chiari come "question", "answer" - Evita caratteri speciali - Usa la prima riga come intestazioni


Problemi con la GPU

GPU non rilevata

Controlla il driver NVIDIA:

nvidia-smi

Se fallisce, installa o aggiorna i driver NVIDIA.

Controlla l'NVIDIA Container Toolkit:

docker run --rm --gpus all nvidia/cuda:12.0-base nvidia-smi

Assicurati di aver avviato con l'override per la GPU: Il supporto GPU proviene dall'override docker-compose.gpu.yml, non da docker-compose.yml:

make up-gpu
# Equivalent to:
docker compose -f docker-compose.yml -f docker-compose.gpu.yml up -d

Riavvia Docker:

sudo systemctl restart docker
make up-gpu

La GPU non viene utilizzata

Verifica che Ollama stia rilevando la GPU:

docker compose exec ollama nvidia-smi

Controlla durante l'inferenza:

# In one terminal
watch -n 1 nvidia-smi

# In another terminal
docker compose exec ollama ollama run llama3.2:1b "Long prompt here..."

L'utilizzo della GPU dovrebbe aumentare durante la generazione.

Assicurati che il modello entri nella VRAM: - Controlla la memoria della GPU con nvidia-smi - Usa modelli più piccoli se necessario - Monitora l'utilizzo della VRAM

Memoria GPU esaurita

Usa modelli più piccoli: - Prova le versioni quantizzate - Usa modelli da 1B-3B invece di 7B+

Riduci la dimensione del batch (per l'uso via API): Abbassa le richieste concorrenti per ridurre l'utilizzo della VRAM.

Controlla altri processi che usano la GPU:

nvidia-smi
# Look for other processes using GPU


Ottenere ulteriore aiuto

Controlla i log

Tutti i servizi:

make logs

Un servizio specifico:

docker compose logs ollama
docker compose logs chat

Segui i log in tempo reale:

docker compose logs -f

Esegui i test

Test rapido:

make quick-test

Test di validazione:

make test

Esempio del dataset TechCorp:

bash scripts/test-techcorp-example.sh

Raccogli informazioni di debug

# System info
uname -a
docker --version
docker compose version

# Service status
docker compose ps
docker compose logs --tail=50

# Resource usage
docker stats --no-stream
df -h

# Network
netstat -an | grep -E "11434|8080"

# Models
docker compose exec ollama ollama list

Risorse della community

Ancora bloccato?

  1. Cerca tra le issue esistenti su GitHub
  2. Crea una nuova issue con:
  3. Descrizione del problema
  4. Messaggi di errore
  5. Output dei log
  6. Informazioni di sistema
  7. Passaggi per riprodurre il problema

Manutenzione preventiva

Pulizia regolare

# Weekly: Clean up Docker resources
docker system prune

# Monthly: Review and delete unused models
docker compose exec ollama ollama list
docker compose exec ollama ollama rm <unused-model>

# Quarterly: Backup custom models
make backup-models

Monitora lo spazio su disco

# Check before pulling large models
df -h
docker system df

Mantieni i servizi aggiornati

# Pull latest Ollama image
docker compose pull

# Rebuild Chat UI with updates
docker compose build chat

# Restart services
make restart

Strategia di backup

# Backup custom Modelfiles
make backup-models

# Export important models
bash scripts/export-model.sh my-important-model ./backups/my-model.Modelfile

# Backup training data
cp -r ./data/training ./backups/training-$(date +%Y%m%d)