Skip to content

A volte Ollama potrebbe non funzionare come previsto. Uno dei modi migliori per capire cosa è successo è dare un'occhiata ai log. Trova i log su Mac eseguendo il comando:

shell
cat ~/.ollama/logs/server.log

Su sistemi Linux con systemd, i log sono disponibili con questo comando:

shell
journalctl -u ollama --no-pager --follow --pager-end

Quando esegui Ollama in un container, i log vengono inviati a stdout/stderr all'interno del container:

shell
docker logs <container-name>

(Usa docker ps per trovare il nome del container)

Se esegui manualmente ollama serve in un terminale, i log saranno presenti in quel terminale.

Quando esegui Ollama su Windows, ci sono diverse posizioni in cui si trovano. Puoi visualizzarle nella finestra di Explorer premendo <cmd>+R e digitando:

  • explorer %LOCALAPPDATA%\Ollama per visualizzare i log. I log del server più recenti si trovano in server.log, mentre i log più vecchi sono in server-#.log
  • explorer %LOCALAPPDATA%\Programs\Ollama per sfogliare i binari (il programma di installazione aggiunge questo percorso al PATH del tuo utente)
  • explorer %HOMEPATH%\.ollama per sfogliare la cartella in cui sono archiviati modelli e configurazione
  • explorer %TEMP% dove i file eseguibili temporanei sono archiviati in una o più cartelle ollama*

Per abilitare la registrazione di debug aggiuntiva per aiutare a risolvere i problemi, prima Chiudi l'app in esecuzione dal menu della barra delle applicazioni, quindi in un terminale PowerShell

powershell
$env:OLLAMA_DEBUG="1"
& "ollama app.exe"

Unisciti al Discord per ricevere aiuto nell'interpretazione dei log.

Librerie LLM

Ollama include più librerie LLM compilate per GPU diverse e funzionalità vettoriali della CPU. Ollama cerca di selezionare la migliore in base alle capacità del tuo sistema. Se il rilevamento automatico presenta problemi, o se riscontri altri problemi (ad esempio arresti anomali della GPU), puoi aggirare il problema forzando l'utilizzo di una libreria LLM specifica. cpu_avx2 offre le prestazioni migliori, seguita da cpu_avx, mentre la più lenta ma più compatibile è cpu. L'emulazione Rosetta su macOS funziona con la libreria cpu.

Nel log del server, vedrai un messaggio simile a questo (varia a seconda della versione):

Dynamic LLM libraries [rocm_v6 cpu cpu_avx cpu_avx2 cuda_v11 rocm_v5]

Override sperimentale della libreria LLM

Puoi impostare OLLAMA_LLM_LIBRARY su una qualsiasi delle librerie LLM disponibili per bypassare il rilevamento automatico; ad esempio, se hai una scheda CUDA ma vuoi forzare la libreria LLM per CPU con supporto vettoriale AVX2, usa:

shell
OLLAMA_LLM_LIBRARY="cpu_avx2" ollama serve

Puoi vedere quali funzionalità supporta la tua CPU con il seguente comando.

shell
cat /proc/cpuinfo| grep flags | head -1

Installazione di versioni precedenti o di pre-release su Linux

Se riscontri problemi su Linux e vuoi installare una versione precedente, o se vuoi provare una pre-release prima del rilascio ufficiale, puoi indicare allo script di installazione quale versione installare.

shell
curl -fsSL https://ollama.com/install.sh | OLLAMA_VERSION=0.5.7 sh

Partizione tmp Linux con noexec

Se il tuo sistema è configurato con il flag "noexec" nella posizione in cui Ollama archivia i suoi file eseguibili temporanei, puoi specificare una posizione alternativa impostando OLLAMA_TMPDIR in un percorso scrivibile dall'utente con cui viene eseguito ollama. Ad esempio OLLAMA_TMPDIR=/usr/share/ollama/

Docker su Linux

Se Ollama funziona inizialmente sulla GPU in un container Docker, ma dopo un certo periodo passa all'esecuzione sulla CPU con errori nel log del server che segnalano fallimenti nel rilevamento della GPU, questo problema può essere risolto disabilitando la gestione dei cgroup di systemd in Docker. Modifica il file /etc/docker/daemon.json sull'host e aggiungi "exec-opts": ["native.cgroupdriver=cgroupfs"] alla configurazione di Docker.

Rilevamento GPU NVIDIA

All'avvio, Ollama rileva le GPU presenti nel sistema per determinarne la compatibilità e la quantità di VRAM disponibile. A volte questo rilevamento non riesce a trovare le tue GPU. In generale, l'utilizzo dei driver più recenti garantisce risultati migliori.

Risoluzione dei problemi GPU NVIDIA su Linux

Se utilizzi un container per eseguire Ollama, assicurati di aver prima configurato il runtime del container come descritto in docker

A volte Ollama può avere difficoltà a inizializzare la GPU. Quando controlli i log del server, questo problema può manifestarsi con vari codici di errore, come "3" (non inizializzata), "46" (dispositivo non disponibile), "100" (nessun dispositivo), "999" (sconosciuto) o altri. Le seguenti tecniche di risoluzione dei problemi possono aiutare a risolvere il problema:

  • Se utilizzi un container, il runtime del container funziona correttamente? Prova docker run --gpus all ubuntu nvidia-smi: se non funziona, Ollama non sarà in grado di rilevare la tua GPU NVIDIA.
  • Il driver uvm è caricato? sudo nvidia-modprobe -u
  • Prova a ricaricare il driver nvidia_uvm: sudo rmmod nvidia_uvm seguito da sudo modprobe nvidia_uvm
  • Prova a riavviare il sistema
  • Assicurati di utilizzare i driver NVIDIA più recenti

Se nessuna di queste soluzioni risolve il problema, raccogli informazioni aggiuntive e apri una segnalazione:

  • Imposta CUDA_ERROR_LEVEL=50 e riprova per ottenere più log diagnostici
  • Controlla dmesg per eventuali errori con sudo dmesg | grep -i nvrm e sudo dmesg | grep -i nvidia

Rilevamento GPU AMD

Su Linux, l'accesso alle GPU AMD richiede in genere l'appartenenza ai gruppi video e/o render per accedere al dispositivo /dev/kfd. Se i permessi non sono configurati correttamente, Ollama lo rileverà e segnalerà un errore nel log del server.

Quando esegui in un container, in alcune distribuzioni Linux e runtime di container, il processo ollama potrebbe non essere in grado di accedere alla GPU. Utilizza ls -lnd /dev/kfd /dev/dri /dev/dri/* sul sistema host per determinare gli ID di gruppo numerici sul tuo sistema, e passa argomenti aggiuntivi --group-add ... al container in modo che possa accedere ai dispositivi richiesti. Ad esempio, nell'output seguente crw-rw---- 1 0 44 226, 0 Sep 16 16:55 /dev/dri/card0 la colonna dell'ID di gruppo è 44

Se riscontri problemi nel far sì che Ollama rilevi o utilizzi correttamente la tua GPU per l'inferenza, quanto segue può aiutare a isolare il problema.

  • AMD_LOG_LEVEL=3 Abilita i livelli di log informativi nelle librerie AMD HIP/ROCm. Questo può aiutare a visualizzare codici di errore più dettagliati utili per la risoluzione dei problemi
  • OLLAMA_DEBUG=1 Durante il rilevamento della GPU verranno riportate informazioni aggiuntive
  • Controlla dmesg per eventuali errori dei driver amdgpu o kfd con sudo dmesg | grep -i amdgpu e sudo dmesg | grep -i kfd

Mancata corrispondenza della versione del driver AMD

Se la tua GPU AMD non viene rilevata su Linux e i log del server contengono messaggi come:

msg="failure during GPU discovery" ... error="failed to finish discovery before timeout"
msg="bootstrap discovery took" duration=30s ...

Questo di solito significa che il driver della GPU AMD del sistema è troppo vecchio. Ollama include le librerie Linux ROCm 7, che richiedono un driver kernel ROCm 7 compatibile. Se il sistema esegue un driver più vecchio (ROCm 6.x o precedente), l'inizializzazione della GPU si bloccherà durante il rilevamento dei dispositivi e andrà eventualmente in timeout, causando il fallback di Ollama alla CPU.

Per risolvere il problema, aggiorna il driver ROCm v7 utilizzando l'utility amdgpu-install dalla documentazione ROCm di AMD. Dopo l'aggiornamento, riavvia il sistema e riavvia Ollama.

GPU AMD multiple

Se riscontri risposte illeggibili quando carichi modelli su più GPU AMD su Linux, consulta la seguente guida.

Errori del terminale di Windows

Le versioni precedenti di Windows 10 (ad esempio 21H1) sono note per avere un bug per cui il programma del terminale standard non visualizza correttamente i caratteri di controllo. Questo può causare la visualizzazione di una lunga stringa di caratteri come ←[?25h←[?25l, a volte con l'errore The parameter is incorrect. Per risolvere questo problema, aggiorna a Windows 10 22H1 o a una versione più recente.