Kadang-kadang Ollama tidak berfungsi sesuai yang diharapkan. Salah satu cara terbaik untuk mengetahui apa yang terjadi adalah dengan melihat log. Temukan log di Mac dengan menjalankan perintah:
shell
cat ~/.ollama/logs/server.logPada sistem Linux yang menggunakan systemd, log dapat ditemukan dengan perintah berikut:
shell
journalctl -u ollama --no-pager --follow --pager-endSaat Anda menjalankan Ollama di dalam container, log akan ditampilkan di stdout/stderr di dalam container:
shell
docker logs <container-name>(Gunakan docker ps untuk menemukan nama container)
Jika Anda menjalankan ollama serve secara manual di terminal, log akan muncul di terminal tersebut.
Saat Anda menjalankan Ollama di Windows, ada beberapa lokasi yang berbeda. Anda dapat melihatnya di jendela explorer dengan menekan <cmd>+R lalu mengetik:
explorer %LOCALAPPDATA%\Ollamauntuk melihat log. Log server terbaru akan ada diserver.logdan log yang lebih lama akan ada diserver-#.logexplorer %LOCALAPPDATA%\Programs\Ollamauntuk menelusuri biner (Penginstal menambahkan lokasi ini ke PATH pengguna Anda)explorer %HOMEPATH%\.ollamauntuk menelusuri lokasi penyimpanan model dan konfigurasiexplorer %TEMP%di mana file executable sementara disimpan di satu atau lebih direktoriollama*
Untuk mengaktifkan log debug tambahan guna membantu memecahkan masalah, pertama-tama Keluar dari aplikasi yang berjalan melalui menu tray lalu di terminal powershell
powershell
$env:OLLAMA_DEBUG="1"
& "ollama app.exe"Bergabunglah dengan Discord untuk mendapatkan bantuan dalam menafsirkan log.
Pustaka LLM
Ollama menyertakan beberapa pustaka LLM yang dikompilasi untuk GPU yang berbeda dan fitur vektor CPU yang berbeda. Ollama akan mencoba memilih pustaka terbaik berdasarkan kemampuan sistem Anda. Jika deteksi otomatis ini mengalami masalah, atau Anda menemui masalah lain (misalnya crash pada GPU), Anda dapat mengatasinya dengan memaksa penggunaan pustaka LLM tertentu. cpu_avx2 akan memiliki kinerja terbaik, diikuti oleh cpu_avx, dan yang paling lambat namun paling kompatibel adalah cpu. Emulasi Rosetta di bawah MacOS akan berfungsi dengan pustaka cpu.
Di log server, Anda akan melihat pesan yang terlihat seperti berikut (berbeda-beda setiap rilis):
Dynamic LLM libraries [rocm_v6 cpu cpu_avx cpu_avx2 cuda_v11 rocm_v5]Penggantian Pustaka LLM Eksperimental
Anda dapat mengatur variabel OLLAMA_LLM_LIBRARY ke salah satu pustaka LLM yang tersedia untuk melewati deteksi otomatis, jadi misalnya, jika Anda memiliki kartu CUDA, namun ingin memaksa penggunaan pustaka LLM CPU dengan dukungan vektor AVX2, gunakan:
shell
OLLAMA_LLM_LIBRARY="cpu_avx2" ollama serveAnda dapat melihat fitur apa saja yang dimiliki oleh CPU Anda dengan perintah berikut.
shell
cat /proc/cpuinfo| grep flags | head -1Menginstal versi lama atau prarilis di Linux
Jika Anda menemui masalah di Linux dan ingin menginstal versi lama, atau ingin mencoba versi prarilis sebelum resmi dirilis, Anda dapat memberitahu skrip penginstal versi mana yang akan diinstal.
shell
curl -fsSL https://ollama.com/install.sh | OLLAMA_VERSION=0.5.7 shLinux tmp noexec
Jika sistem Anda dikonfigurasi dengan flag "noexec" di tempat Ollama menyimpan file executable sementara, Anda dapat menentukan lokasi alternatif dengan mengatur variabel OLLAMA_TMPDIR ke lokasi yang dapat ditulis oleh pengguna yang menjalankan ollama. Misalnya OLLAMA_TMPDIR=/usr/share/ollama/
Linux docker
Jika Ollama awalnya berfungsi di GPU di dalam container docker, namun kemudian beralih ke menjalankan di CPU setelah beberapa waktu dengan error di log server yang melaporkan kegagalan penemuan GPU, masalah ini dapat diatasi dengan menonaktifkan manajemen cgroup systemd di Docker. Edit file /etc/docker/daemon.json di host dan tambahkan "exec-opts": ["native.cgroupdriver=cgroupfs"] ke konfigurasi docker.
Penemuan GPU NVIDIA
Saat Ollama dimulai, sistem akan mencatat daftar GPU yang ada di sistem untuk menentukan kompatibilitas dan berapa banyak VRAM yang tersedia. Kadang-kadang proses penemuan ini gagal menemukan GPU Anda. Secara umum, menjalankan driver terbaru akan memberikan hasil terbaik.
Pemecahan Masalah NVIDIA di Linux
Jika Anda menggunakan container untuk menjalankan Ollama, pastikan Anda telah menyiapkan runtime container terlebih dahulu seperti yang dijelaskan di docker
Kadang-kadang Ollama dapat mengalami kesulitan saat menginisialisasi GPU. Saat Anda memeriksa log server, ini dapat muncul sebagai berbagai kode error, seperti "3" (belum diinisialisasi), "46" (perangkat tidak tersedia), "100" (tidak ada perangkat), "999" (tidak diketahui), atau kode lainnya. Teknik pemecahan masalah berikut dapat membantu mengatasi masalah ini
- Jika Anda menggunakan container, apakah runtime container berfungsi? Coba jalankan
docker run --gpus all ubuntu nvidia-smi- jika ini tidak berfungsi, Ollama tidak akan dapat melihat GPU NVIDIA Anda. - Apakah driver uvm dimuat? Jalankan
sudo nvidia-modprobe -u - Coba muat ulang driver nvidia_uvm - jalankan
sudo rmmod nvidia_uvmkemudiansudo modprobe nvidia_uvm - Coba reboot perangkat
- Pastikan Anda menjalankan driver nvidia terbaru
Jika langkah-langkah di atas tidak mengatasi masalah, kumpulkan informasi tambahan dan buat laporan masalah:
- Atur variabel
CUDA_ERROR_LEVEL=50dan coba lagi untuk mendapatkan log diagnostik yang lebih lengkap - Periksa dmesg untuk mencari error apa pun dengan perintah
sudo dmesg | grep -i nvrmdansudo dmesg | grep -i nvidia
Penemuan GPU AMD
Di Linux, akses ke GPU AMD biasanya memerlukan keanggotaan grup video dan/atau render untuk mengakses perangkat /dev/kfd. Jika izin tidak dikonfigurasi dengan benar, Ollama akan mendeteksi hal ini dan melaporkan error di log server.
Saat menjalankan di dalam container, di beberapa distribusi Linux dan runtime container, proses ollama mungkin tidak dapat mengakses GPU. Gunakan perintah ls -lnd /dev/kfd /dev/dri /dev/dri/* di sistem host untuk menentukan ID grup numerik di sistem Anda, dan berikan argumen --group-add ... tambahan ke container agar dapat mengakses perangkat yang dibutuhkan. Misalnya, pada output berikut crw-rw---- 1 0 44 226, 0 Sep 16 16:55 /dev/dri/card0 kolom ID grup adalah 44
Jika Anda mengalami masalah saat mencoba membuat Ollama menemukan atau menggunakan GPU Anda untuk inferensi dengan benar, langkah-langkah berikut dapat membantu mengisolasi kegagalan.
AMD_LOG_LEVEL=3Mengaktifkan level log info di pustaka AMD HIP/ROCm. Ini dapat membantu menampilkan kode error yang lebih detail guna memecahkan masalahOLLAMA_DEBUG=1Selama proses penemuan GPU, informasi tambahan akan dilaporkan- Periksa dmesg untuk mencari error dari driver amdgpu atau kfd dengan perintah
sudo dmesg | grep -i amdgpudansudo dmesg | grep -i kfd
Ketidakcocokan Versi Driver AMD
Jika GPU AMD Anda tidak terdeteksi di Linux dan log server berisi pesan seperti:
msg="failure during GPU discovery" ... error="failed to finish discovery before timeout"
msg="bootstrap discovery took" duration=30s ...Ini biasanya berarti driver GPU AMD pada sistem terlalu lama. Ollama menyertakan pustaka Linux ROCm 7 yang memerlukan driver kernel ROCm 7 yang kompatibel. Jika sistem menjalankan driver yang lebih lama (ROCm 6.x atau versi sebelumnya), inisialisasi GPU akan macet selama proses penemuan perangkat dan akhirnya timeout, menyebabkan Ollama beralih ke CPU.
Untuk mengatasi masalah ini, upgrade ke driver ROCm v7 menggunakan utilitas amdgpu-install dari dokumentasi ROCm AMD. Setelah upgrade, reboot perangkat dan jalankan ulang Ollama.
Beberapa GPU AMD
Jika Anda mendapatkan respons yang tidak terbaca saat model dimuat di beberapa GPU AMD di Linux, lihat panduan berikut.
Error Terminal Windows
Versi Windows 10 yang lebih lama (misalnya 21H1) diketahui memiliki bug di mana program terminal standar tidak menampilkan karakter kontrol dengan benar. Hal ini dapat menyebabkan munculnya string panjang seperti ←[?25h←[?25l, kadang-kadang menampilkan error The parameter is incorrect. Untuk mengatasi masalah ini, silakan perbarui ke Win 10 22H1 atau versi yang lebih baru.