Skip to content

Bazen Ollama beklenen şekilde çalışmayabilir. Ne olduğunu anlamanın en iyi yollarından biri loglara bakmaktır. Mac'te logları şu komutu çalıştırarak bulabilirsiniz:

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

systemd olan Linux sistemlerinde loglar şu komutla bulunabilir:

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

Ollama'yı bir konteyner içinde çalıştırdığınızda loglar konteynerin stdout/stderr çıktısına gider:

shell
docker logs <container-name>

(Konteyner adını bulmak için docker ps komutunu kullanın)

Eğer bir terminalde elle ollama serve çalıştırırsanız loglar o terminalde görünecektir.

Ollama'yı Windows'ta çalıştırdığınızda birkaç farklı konum bulunur. Bunları gezgini açıp <cmd>+R tuşlarına basıp aşağıdakileri yazarak görüntüleyebilirsiniz:

  • explorer %LOCALAPPDATA%\Ollama logları görüntülemek için. En son sunucu logları server.log dosyasında, daha eski loglar ise server-#.log dosyasında bulunur
  • explorer %LOCALAPPDATA%\Programs\Ollama ikili dosyaları göz atmak için (Yükleyici bunu kullanıcı PATH'inize ekler)
  • explorer %HOMEPATH%\.ollama modellerin ve yapılandırmanın saklandığı yeri göz atmak için
  • explorer %TEMP% geçici yürütülebilir dosyaların saklandığı, bir veya daha fazla ollama* dizini bulunan konum

Sorun gidermeye yardımcı olacak ek hata ayıklama (debug) loglarını etkinleştirmek için önce sistem çekmecesi menüsünden çalışan uygulamayı kapatın ardından bir PowerShell terminalinde:

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

Logları yorumlamak konusunda yardım almak için Discord kanalına katılın.

LLM Kütüphaneleri

Ollama, farklı GPU'lar ve CPU vektör özellikleri için derlenmiş birden fazla LLM kütüphanesi içerir. Ollama, sisteminizin yeteneklerine göre en iyi olanı seçmeye çalışır. Bu otomatik algılamada sorun olursa veya başka sorunlarla (örneğin GPU çökmeleri) karşılaşırsanız, belirli bir LLM kütüphanesini zorlayarak bu sorunu aşabilirsiniz. cpu_avx2 en iyi performansı gösterir, onu cpu_avx izler ve en yavaş ancak en uyumlu olanı cpu'dur. MacOS'taki Rosetta emülasyonu cpu kütüphanesi ile çalışır.

Sunucu logunda şuna benzer bir mesaj göreceksiniz (sürüme göre değişir):

Dynamic LLM libraries [rocm_v6 cpu cpu_avx cpu_avx2 cuda_v11 rocm_v5]

Deneysel LLM Kütüphanesi Geçersiz Kılma

Otomatik algılamayı bypass etmek için OLLAMA_LLM_LIBRARY değişkenini mevcut herhangi bir LLM kütüphanesine ayarlayabilirsiniz. Örneğin, CUDA kartınız olsa da AVX2 vektör desteği olan CPU LLM kütüphanesini zorlamak istiyorsanız şunu kullanın:

shell
OLLAMA_LLM_LIBRARY="cpu_avx2" ollama serve

CPU'nuzun hangi özelliklere sahip olduğunu şu komutla görebilirsiniz:

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

Linux'ta Eski veya Yayın Öncesi Sürümleri Yükleme

Linux'ta sorunla karşılaşırsanız ve eski bir sürüm yüklemek veya resmi olarak yayınlanmadan önce bir yayın öncesi sürümü denemek istiyorsanız, yükleme komut dosyasına hangi sürümü yükleyeceğinizi belirtebilirsiniz.

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

Linux tmp noexec

Sisteminiz, Ollama'nın geçici yürütülebilir dosyalarını sakladığı konumda "noexec" bayrağı ile yapılandırılmışsa, OLLAMA_TMPDIR değişkenini Ollama'nın çalıştığı kullanıcının yazma izni olan bir konuma ayarlayarak alternatif bir konum belirtebilirsiniz. Örneğin OLLAMA_TMPDIR=/usr/share/ollama/

Linux Docker

Ollama ilk olarak bir docker konteynerinde GPU'da çalışıyorsa ancak bir süre sonra sunucu logunda GPU algılama hataları bildiren hatalar olması nedeniyle CPU'da çalışmaya geçerse, bu sorun Docker'da systemd cgroup yönetimini devre dışı bırakarak çözülebilir. Ana makinede /etc/docker/daemon.json dosyasını düzenleyin ve docker yapılandırmasına "exec-opts": ["native.cgroupdriver=cgroupfs"] satırını ekleyin.

NVIDIA GPU Algılama

Ollama başlatıldığında, sistemdeki GPU'ları uyumluluğu ve kullanılabilir VRAM miktarını belirlemek için envanterler. Bazen bu algılama işlemi GPU'larınızı bulamayabilir. Genel olarak en son sürücüyü çalıştırmak en iyi sonuçları verecektir.

Linux NVIDIA Sorun Giderme

Ollama'yi bir konteyner ile çalıştırıyorsanız, docker bölümünde açıklandığı gibi önce konteyner çalışma zamanını yapılandırdığınızdan emin olun.

Bazen Ollama GPU'yu başlatmakta zorlanabilir. Sunucu loglarını kontrol ettiğinizde bu durum çeşitli hata kodları olarak görünebilir, örneğin "3" (başlatılmadı), "46" (aygıt kullanılamıyor), "100" (aygıt yok), "999" (bilinmiyor) veya diğerleri. Aşağıdaki sorun giderme yöntemleri sorunu çözmenize yardımcı olabilir:

  • Bir konteyner kullanıyorsanız, konteyner çalışma zamanı çalışıyor mu? docker run --gpus all ubuntu nvidia-smi komutunu deneyin - eğer bu çalışmıyorsa Ollama NVIDIA GPU'nuzu göremeyecektir.
  • uvm sürücüsü yüklü mü? sudo nvidia-modprobe -u
  • nvidia_uvm sürücüsünü yeniden yüklemeyi deneyin - sudo rmmod nvidia_uvm ardından sudo modprobe nvidia_uvm
  • Yeniden başlatmayı deneyin
  • En son nvidia sürücülerini çalıştırdığınızdan emin olun

Yukarıdakiler sorunu çözmezse, ek bilgi toplayın ve bir sorun bildirin:

  • CUDA_ERROR_LEVEL=50 değişkenini ayarlayıp daha fazla teşhis logu almak için tekrar deneyin
  • nvrm ve nvidia ile ilgili hataları kontrol etmek için dmesg'e bakın: sudo dmesg | grep -i nvrm ve sudo dmesg | grep -i nvidia

AMD GPU Algılama

Linux'ta, AMD GPU erişimi genellikle /dev/kfd aygıtına erişmek için video ve/veya render grubu üyeliği gerektirir. İzinler doğru şekilde ayarlanmamışsa Ollama bunu algılar ve sunucu logunda bir hata bildirir.

Bir konteyner içinde çalışırken, bazı Linux dağıtımlarında ve konteyner çalışma zamanlarında ollama işlemi GPU'ya erişemeyebilir. Sisteminizdeki sayısal grup kimliklerini belirlemek için ana makinede ls -lnd /dev/kfd /dev/dri /dev/dri/* komutunu kullanın ve konteynerin gerekli aygıtlara erişebilmesi için ek --group-add ... argümanlarını geçirin. Örneğin, aşağıdaki çıktıda crw-rw---- 1 0 44 226, 0 Sep 16 16:55 /dev/dri/card0 grup kimliği sütunu 44'tür.

Ollama'nın GPU'yu doğru şekilde algılamasında veya çıkarım için kullanmasında sorun yaşıyorsanız, aşağıdakiler hatayı izole etmenize yardımcı olabilir:

  • AMD_LOG_LEVEL=3 AMD HIP/ROCm kütüphanelerinde bilgi log seviyelerini etkinleştirir. Bu, sorun gidermeye yardımcı olabilecek daha detaylı hata kodlarını göstermesine yardımcı olabilir
  • OLLAMA_DEBUG=1 GPU algılama sırasında ek bilgiler raporlanacaktır
  • amdgpu veya kfd sürücülerinden gelen hataları kontrol etmek için dmesg'e bakın: sudo dmesg | grep -i amdgpu ve sudo dmesg | grep -i kfd

AMD Sürücü Sürümü Uyumsuzluğu

AMD GPU'nuz Linux'ta algılanmıyorsa ve sunucu loglarında şuna benzer mesajlar varsa:

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

Bu genellikle sistemin AMD GPU sürücüsünün çok eski olduğu anlamına gelir. Ollama, uyumlu bir ROCm 7 çekirdek sürücüsü gerektiren ROCm 7 linux kütüphanelerini paketler olarak içerir. Sistem daha eski bir sürücü (ROCm 6.x veya daha eski) çalıştırıyorsa, aygıt algılama sırasında GPU başlatma işlemi takılır ve sonunda zaman aşımına uğrar, bu da Ollama'nın CPU'ya geri dönmesine neden olur.

Bunu çözmek için AMD ROCm belgelerinden amdgpu-install aracını kullanarak ROCm v7 sürücüsüne yükseltin. Yükseltmeden sonra sistemi yeniden başlatın ve Ollama'yı tekrar çalıştırın.

Birden Fazla AMD GPU

Linux'ta birden fazla AMD GPU üzerinde modeller yüklenirken anlamsız yanıtlar alıyorsanız aşağıdaki kılavuza bakın.

Windows Terminal Hataları

Windows 10'un eski sürümleri (örneğin 21H1), standart terminal programının kontrol karakterlerini doğru şekilde göstermediği bir hataya sahip olduğu bilinmektedir. Bu durum ←[?25h←[?25l gibi uzun bir karakter dizisi görüntülenmesine, bazen de The parameter is incorrect hatası alınmasına neden olabilir. Bu sorunu çözmek için lütfen Windows 10 22H1 veya daha yeni bir sürüme güncelleyin.