Skip to content

Soms presteert Ollama niet zoals verwacht. Een van de beste manieren om te ontdekken wat er is gebeurd, is om de logs te bekijken. Vind de logs op Mac door het volgende commando uit te voeren:

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

Op Linux-systemen met systemd vindt u de logs met dit commando:

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

Wanneer u Ollama in een container uitvoert, gaan de logs naar stdout/stderr in de container:

shell
docker logs <container-name>

(Gebruik docker ps om de containernaam te vinden)

Als u ollama serve handmatig in een terminal uitvoert, staan de logs in die terminal.

Wanneer u Ollama op Windows uitvoert, zijn er verschillende locaties. U kunt ze bekijken in het Verkenner-venster door op <cmd>+R te drukken en het volgende in te typen:

  • explorer %LOCALAPPDATA%\Ollama om logs te bekijken. De meest recente serverlogs staan in server.log en oudere logs in server-#.log
  • explorer %LOCALAPPDATA%\Programs\Ollama om de binaries te bekijken (De installer voegt dit toe aan het gebruikers-PATH)
  • explorer %HOMEPATH%\.ollama om te bekijken waar modellen en configuratie worden opgeslagen
  • explorer %TEMP% waar tijdelijke uitvoerbare bestanden worden opgeslagen in een of meer ollama*-mappen

Om extra debug-logging in te schakelen om problemen op te lossen, sluit u eerst de actieve app af via het systeemvakmenu en opent u vervolgens een PowerShell-terminal

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

Sluit u zich aan bij de Discord voor hulp bij het interpreteren van de logs.

LLM-bibliotheken

Ollama bevat meerdere LLM-bibliotheken die zijn gecompileerd voor verschillende GPU's en CPU-vectorfuncties. Ollama probeert de beste te kiezen op basis van de mogelijkheden van uw systeem. Als deze automatische detectie problemen geeft, of als u andere problemen tegenkomt (bijv. crashes van uw GPU), kunt u dit omzeilen door een specifieke LLM-bibliotheek af te dwingen. cpu_avx2 presteert het beste, gevolgd door cpu_avx en de langzaamste maar meest compatibele is cpu. Rosetta-emulatie onder MacOS werkt met de cpu-bibliotheek.

In de serverlog ziet u een bericht dat er ongeveer zo uitziet (verschilt per release):

Dynamic LLM libraries [rocm_v6 cpu cpu_avx cpu_avx2 cuda_v11 rocm_v5]

Experimentele overschrijving van LLM-bibliotheek

U kunt OLLAMA_LLM_LIBRARY instellen op een van de beschikbare LLM-bibliotheken om automatische detectie over te slaan. Als u bijvoorbeeld een CUDA-kaart heeft, maar de CPU-LLM-bibliotheek met AVX2-vectorondersteuning wilt afdwingen, gebruikt u:

shell
OLLAMA_LLM_LIBRARY="cpu_avx2" ollama serve

U kunt de volgende opdracht gebruiken om te zien welke functies uw CPU heeft:

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

Oudere of pre-releaseversies installeren op Linux

Als u problemen heeft op Linux en een oudere versie wilt installeren, of als u een pre-release wilt uitproberen voordat deze officieel wordt uitgebracht, kunt u het installatiescript vertellen welke versie moet worden geïnstalleerd.

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

Linux tmp noexec

Als uw systeem is geconfigureerd met de "noexec"-vlag op de locatie waar Ollama zijn tijdelijke uitvoerbare bestanden opslaat, kunt u een alternatieve locatie opgeven door OLLAMA_TMPDIR in te stellen op een locatie waar de gebruiker waaronder ollama draait schrijfrechten heeft. Bijvoorbeeld OLLAMA_TMPDIR=/usr/share/ollama/

Linux docker

Als Ollama in eerste instantie werkt op de GPU in een docker-container, maar na enige tijd overschakelt naar CPU met fouten in de serverlog die GPU-detectiefouten rapporteren, kunt u dit oplossen door systemd cgroup-beheer in Docker uit te schakelen. Bewerk /etc/docker/daemon.json op de host en voeg "exec-opts": ["native.cgroupdriver=cgroupfs"] toe aan de docker-configuratie.

NVIDIA GPU-detectie

Wanneer Ollama opstart, inventariseert het de GPU's die aanwezig zijn in het systeem om de compatibiliteit te bepalen en hoeveel VRAM beschikbaar is. Soms lukt deze detectie niet om uw GPU's te vinden. Over het algemeen levert het uitvoeren van de nieuwste driver de beste resultaten op.

Linux NVIDIA-problemen oplossen

Als u een container gebruikt om Ollama uit te voeren, zorg er dan voor dat u eerst de containerruntime hebt ingesteld zoals beschreven in docker

Soms heeft Ollama moeite met het initialiseren van de GPU. Wanneer u de serverlogs controleert, kan dit zich voordoen als verschillende foutcodes, zoals "3" (niet geïnitialiseerd), "46" (apparaat niet beschikbaar), "100" (geen apparaat), "999" (onbekend) of andere. De volgende probleemoplossingstechnieken kunnen helpen om het probleem op te lossen

  • Als u een container gebruikt, werkt de containerruntime dan? Probeer docker run --gpus all ubuntu nvidia-smi - als dit niet werkt, kan Ollama uw NVIDIA GPU niet zien.
  • Is de uvm-driver geladen? sudo nvidia-modprobe -u
  • Probeer de nvidia_uvm-driver opnieuw te laden: sudo rmmod nvidia_uvm en daarna sudo modprobe nvidia_uvm
  • Probeer opnieuw op te starten
  • Zorg ervoor dat u de nieuwste nvidia-drivers gebruikt

Als geen van deze oplossingen het probleem oplost, verzamel dan aanvullende informatie en dien een issue in:

  • Stel CUDA_ERROR_LEVEL=50 in en probeer opnieuw om meer diagnostische logs te krijgen
  • Controleer dmesg op fouten met sudo dmesg | grep -i nvrm en sudo dmesg | grep -i nvidia

AMD GPU-detectie

Op Linux heeft toegang tot AMD GPU's meestal video- en/of render-groepslidmaatschap nodig om toegang te krijgen tot het /dev/kfd-apparaat. Als rechten niet correct zijn ingesteld, detecteert Ollama dit en rapporteert het een fout in de serverlog.

Wanneer u in een container draait, kan het ollama-proces in sommige Linux-distributies en containerruntimes geen toegang krijgen tot de GPU. Gebruik ls -lnd /dev/kfd /dev/dri /dev/dri/* op het hostsysteem om de numerieke groeps-ID's op uw systeem te bepalen, en geef extra --group-add ...-argumenten door aan de container zodat deze toegang heeft tot de vereiste apparaten. Bijvoorbeeld, in de volgende output crw-rw---- 1 0 44 226, 0 Sep 16 16:55 /dev/dri/card0 is de kolom met de groeps-ID 44

Als u problemen heeft om Ollama uw GPU correct te laten detecteren of gebruiken voor inference, kan het volgende helpen om de storing te isoleren.

  • AMD_LOG_LEVEL=3 Schakel info-logniveaus in de AMD HIP/ROCm-bibliotheken in. Dit kan helpen om meer gedetailleerde foutcodes weer te geven die kunnen helpen bij het oplossen van problemen
  • OLLAMA_DEBUG=1 Tijdens GPU-detectie wordt aanvullende informatie gerapporteerd
  • Controleer dmesg op fouten van amdgpu- of kfd-drivers met sudo dmesg | grep -i amdgpu en sudo dmesg | grep -i kfd

AMD-driverversie komt niet overeen

Als uw AMD GPU niet wordt gedetecteerd op Linux en de serverlogs berichten bevatten zoals:

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

Dit betekent meestal dat de AMD GPU-driver van het systeem te oud is. Ollama bevat ROCm 7 Linux-bibliotheken die een compatibele ROCm 7-kerneldriver vereisen. Als het systeem een oudere driver (ROCm 6.x of eerder) gebruikt, zal de GPU-initialisatie hangen tijdens de apparaatdetectie en uiteindelijk een time-out opleveren, waardoor Ollama terugvalt op CPU.

Om dit op te lossen, werkt u de ROCm v7-driver bij met het amdgpu-install-hulpprogramma uit de AMD ROCm-documentatie. Na het bijwerken start u het systeem opnieuw op en start u Ollama opnieuw.

Meerdere AMD GPU's

Als u onzinnige antwoorden krijgt wanneer modellen worden geladen over meerdere AMD GPU's op Linux, raadpleegt u de volgende handleiding.

Windows Terminal-fouten

Oudere versies van Windows 10 (bijv. 21H1) hebben een bekende bug waarbij het standaard terminalprogramma besturingstekens niet correct weergeeft. Dit kan resulteren in een lange reeks tekens zoals ←[?25h←[?25l die wordt weergegeven, soms met de foutmelding The parameter is incorrect. Om dit probleem op te lossen, werkt u alstublieft bij naar Win 10 22H1 of nieuwer.