Czasami Ollama może nie działać zgodnie z oczekiwaniami. Jednym z najlepszych sposobów na sprawdzenie, co się stało, jest sprawdzenie logów. Logi można znaleźć na systemie Mac uruchamiając poniższe polecenie:
shell
cat ~/.ollama/logs/server.logNa systemach Linux z systemd logi można uzyskać za pomocą tego polecenia:
shell
journalctl -u ollama --no-pager --follow --pager-endGdy uruchamiasz Ollama w kontenerze, logi są przekazywane na stdout/stderr wewnątrz kontenera:
shell
docker logs <container-name>(Użyj docker ps, aby znaleźć nazwę kontenera)
Jeśli ręcznie uruchamiasz ollama serve w terminalu, logi będą wyświetlane w tym terminalu.
Gdy uruchamiasz Ollama na systemie Windows, logi znajdują się w kilku różnych lokalizacjach. Możesz je wyświetlić w oknie Eksploratora, naciskając <cmd>+R i wpisując:
explorer %LOCALAPPDATA%\Ollama– aby wyświetlić logi. Najnowsze logi serwera znajdują się w plikuserver.log, a starsze w plikachserver-#.logexplorer %LOCALAPPDATA%\Programs\Ollama– aby przeglądać pliki binarne (Instalator dodaje tę lokalizację do zmiennej PATH użytkownika)explorer %HOMEPATH%\.ollama– aby przeglądać lokalizację, w której przechowywane są modele i konfiguracjaexplorer %TEMP%– gdzie przechowywane są tymczasowe pliki wykonywalne w jednym lub kilku katalogach o nazwie zaczynającej się odollama*
Aby włączyć dodatkowe logowanie debugowania, które pomoże w rozwiązywaniu problemów, najpierw zamknij uruchomioną aplikację z menu zasobnika systemowego, a następnie w terminalu PowerShell
powershell
$env:OLLAMA_DEBUG="1"
& "ollama app.exe"Dołącz do serwera Discord, aby uzyskać pomoc w interpretacji logów.
Biblioteki LLM
Ollama zawiera wiele bibliotek LLM skompilowanych dla różnych GPU i funkcji wektorowych procesora. Ollama próbuje wybrać najlepszą z nich na podstawie możliwości Twojego systemu. Jeśli autodetekcja nie działa poprawnie lub napotykasz inne problemy (np. awarie GPU), możesz obejść ten problem, wymuszając użycie konkretnej biblioteki LLM. Najlepsze wyniki osiągnie cpu_avx2, po niej następuje cpu_avx, a najwolniejsza, ale najbardziej kompatybilna to cpu. Emulacja Rosetta na macOS będzie działać z biblioteką cpu.
W logu serwera zobaczysz wiadomość podobną do poniższej (różni się w zależności od wersji):
Dynamic LLM libraries [rocm_v6 cpu cpu_avx cpu_avx2 cuda_v11 rocm_v5]Eksperymentalne nadpisanie biblioteki LLM
Możesz ustawić zmienną OLLAMA_LLM_LIBRARY na dowolną z dostępnych bibliotek LLM, aby pominąć autodetekcję. Na przykład, jeśli masz kartę CUDA, ale chcesz wymusić użycie biblioteki LLM dla procesora z obsługą wektorów AVX2, użyj:
shell
OLLAMA_LLM_LIBRARY="cpu_avx2" ollama serveMożesz sprawdzić, jakie funkcje obsługuje Twój procesor, za pomocą poniższego polecenia.
shell
cat /proc/cpuinfo| grep flags | head -1Instalowanie starszych lub wersji przedpremierowych na Linuxie
Jeśli napotykasz problemy na Linuxie i chcesz zainstalować starszą wersję, lub chcesz wypróbować wersję przedpremierową przed jej oficjalnym wydaniem, możesz podać skryptowi instalacyjnemu, którą wersję ma zainstalować.
shell
curl -fsSL https://ollama.com/install.sh | OLLAMA_VERSION=0.5.7 shLinux tmp z flagą noexec
Jeśli Twój system jest skonfigurowany z flagą "noexec" w lokalizacji, w której Ollama przechowuje tymczasowe pliki wykonywalne, możesz podać alternatywną lokalizację, ustawiając zmienną OLLAMA_TMPDIR na ścieżkę, do której użytkownik, pod którym działa Ollama, ma uprawnienia zapisu. Na przykład OLLAMA_TMPDIR=/usr/share/ollama/
Docker na Linuxie
Jeśli Ollama początkowo działa na GPU w kontenerze Docker, ale po jakimś czasie przełącza się na działanie na CPU, a w logu serwera pojawiają się błędy dotyczące nieudanego wykrywania GPU, ten problem można rozwiązać, wyłączając zarządzanie cgroup przez systemd w Dockerze. Edytuj plik /etc/docker/daemon.json na hoście i dodaj "exec-opts": ["native.cgroupdriver=cgroupfs"] do konfiguracji Dockera.
Wykrywanie GPU NVIDIA
Podczas uruchamiania Ollama tworzy inwentaryzację GPU obecnych w systemie, aby określić ich kompatybilność i ilość dostępnej pamięci VRAM. Czasami wykrywanie nie uda się znaleźć Twoich GPU. Ogólnie rzecz biorąc, użycie najnowszego sterownika da najlepsze rezultaty.
Rozwiązywanie problemów z GPU NVIDIA na Linuxie
Jeśli używasz kontenera do uruchomienia Ollama, upewnij się, że najpierw skonfigurowałeś środowisko uruchomieniowe kontenera zgodnie z opisem w sekcji docker
Czasami Ollama może mieć problemy z inicjalizacją GPU. Sprawdzenie logów serwera może ujawnić różne kody błędów, takie jak "3" (nie zainicjalizowane), "46" (urządzenie niedostępne), "100" (brak urządzenia), "999" (nieznany) lub inne. Poniższe techniki rozwiązywania problemów mogą pomóc w rozwiązaniu problemu:
- Jeśli używasz kontenera, czy środowisko uruchomieniowe kontenera działa poprawnie? Spróbuj uruchomić
docker run --gpus all ubuntu nvidia-smi– jeśli to nie zadziała, Ollama nie będzie w stanie zobaczyć Twojego GPU NVIDIA. - Czy sterownik uvm jest załadowany?
sudo nvidia-modprobe -u - Spróbuj przeładować sterownik nvidia_uvm – najpierw uruchom
sudo rmmod nvidia_uvm, a następniesudo modprobe nvidia_uvm - Spróbuj zrestartować system
- Upewnij się, że używasz najnowszych sterowników NVIDIA
Jeśli żadne z powyższych rozwiązań nie rozwiąże problemu, zbierz dodatkowe informacje i zgłosz problem:
- Ustaw zmienną
CUDA_ERROR_LEVEL=50i spróbuj ponownie, aby uzyskać więcej logów diagnostycznych - Sprawdź dmesg pod kątem błędów za pomocą poleceń
sudo dmesg | grep -i nvrmorazsudo dmesg | grep -i nvidia
Wykrywanie GPU AMD
Na Linuksie dostęp do GPU AMD zwykle wymaga członkostwa w grupie video i/lub render, aby uzyskać dostęp do urządzenia /dev/kfd. Jeśli uprawnienia nie są skonfigurowane poprawnie, Ollama wykryje to i zgłosi błąd w logu serwera.
Podczas uruchamiania w kontenerze, w niektórych dystrybucjach Linuksa i środowiskach uruchomieniowych kontenerów proces ollama może nie mieć dostępu do GPU. Użyj polecenia ls -lnd /dev/kfd /dev/dri /dev/dri/* na systemie hoście, aby określić numeryczne identyfikatory grup w Twoim systemie, i przekaż dodatkowe argumenty --group-add ... do kontenera, aby mógł uzyskać dostęp do wymaganych urządzeń. Na przykład w poniższym wyjściu crw-rw---- 1 0 44 226, 0 Sep 16 16:55 /dev/dri/card0 kolumna z identyfikatorem grupy to 44
Jeśli masz problemy z poprawnym wykrywaniem lub użyciem GPU przez Ollama do wnioskowania, poniższe wskazówki mogą pomóc w zlokalizowaniu przyczyny awarii.
AMD_LOG_LEVEL=3– włącz poziom logowania informacyjnego w bibliotekach AMD HIP/ROCm. Może to pomóc w wyświetleniu bardziej szczegółowych kodów błędów, które ułatwią rozwiązywanie problemówOLLAMA_DEBUG=1– podczas wykrywania GPU zostaną wyświetlone dodatkowe informacje- Sprawdź dmesg pod kątem błędów z sterowników amdgpu lub kfd za pomocą poleceń
sudo dmesg | grep -i amdgpuorazsudo dmesg | grep -i kfd
Niespójność wersji sterowników AMD
Jeśli Twoje GPU AMD nie jest wykrywane na Linuksie, a w logach serwera pojawiają się wiadomości podobne do poniższych:
msg="failure during GPU discovery" ... error="failed to finish discovery before timeout"
msg="bootstrap discovery took" duration=30s ...Zwykle oznacza to, że sterownik GPU AMD w systemie jest za stary. Ollama zawiera biblioteki ROCm 7 dla Linuksa, które wymagają zgodnego sterownika jądra ROCm 7. Jeśli system używa starszego sterownika (ROCm 6.x lub wcześniejszego), inicjalizacja GPU zablokuje się podczas wykrywania urządzeń, a następnie przekroczy limit czasu, co spowoduje, że Ollama przełączy się na użycie procesora.
Aby rozwiązać ten problem, zaktualizuj sterownik do wersji ROCm v7 za pomocą narzędzia amdgpu-install z dokumentacji ROCm firmy AMD. Po aktualizacji zrestartuj system i uruchom ponownie Ollama.
Wiele GPU AMD
Jeśli otrzymujesz niezrozumiałe odpowiedzi podczas ładowania modeli na wielu GPU AMD na Linuksie, zapoznaj się z poniższym przewodnikiem.
Błędy terminala Windows
W starszych wersjach Windows 10 (np. 21H1) występuje błąd, w ramach którego standardowy program terminala nie wyświetla poprawnie znaków kontrolnych. Może to skutkować wyświetlaniem długiego ciągu znaków takiego jak ←[?25h←[?25l, a czasem również pojawieniem się błędu The parameter is incorrect. Aby rozwiązać ten problem, zaktualizuj system do Windows 10 22H1 lub nowszego.