docker ps 查找容器名称) 如果在终端中手动运行 ollama serve,日志将直接显示在该终端中。 当你在 Windows 上运行 Ollama 时,日志存放在几个不同的位置。你可以通过按下 <cmd>+R 并输入以下内容在资源管理器窗口中查看它们:explorer %LOCALAPPDATA%\Ollama用于查看日志。最新的服务器日志在server.log中,旧的日志在server-#.log中explorer %LOCALAPPDATA%\Programs\Ollama用于浏览二进制文件(安装程序会将其添加到你的用户 PATH 中)explorer %HOMEPATH%\.ollama用于浏览模型和配置的存储位置explorer %TEMP%临时可执行文件存储在一个或多个ollama*目录中
LLM 库
Ollama 包含了针对不同 GPU 和 CPU 向量特性编译的多个 LLM 库。Ollama 会尝试根据你系统的能力选择最佳的一个。如果这种自动检测出现问题,或者你遇到了其他问题(例如 GPU 崩溃),你可以通过强制指定 LLM 库来解决。cpu_avx2 性能最好,其次是 cpu_avx,而最慢但兼容性最强的是 cpu。MacOS 下的 Rosetta 模拟将使用 cpu 库。 在服务器日志中,你会看到类似这样的消息(不同版本会有所不同):在 Linux 上安装旧版本或预发布版本
如果你在 Linux 上遇到问题并想安装旧版本,或者你想在官方发布前尝试预发布版本,你可以告诉安装脚本要安装哪个版本。Linux tmp noexec
如果你的系统在 Ollama 存储临时可执行文件的位置配置了“noexec”标志,你可以通过将 OLLAMA_TMPDIR 设置为运行 ollama 的用户可写的路径来指定替代位置。例如OLLAMA_TMPDIR=/usr/share/ollama/
Linux docker
如果 Ollama 最初在 docker 容器的 GPU 上运行正常,但一段时间后切换到 CPU 运行,且服务器日志报告 GPU 发现失败,可以通过在 Docker 中禁用 systemd cgroup 管理来解决。编辑宿主机上的/etc/docker/daemon.json,并在 docker 配置中添加 "exec-opts": ["native.cgroupdriver=cgroupfs"]。
NVIDIA GPU 发现
当 Ollama 启动时,它会盘点系统中存在的 GPU,以确定兼容性以及可用的显存 (VRAM) 大小。有时这种发现过程可能无法找到你的 GPU。通常,运行最新的驱动程序会获得最佳结果。Linux NVIDIA 故障排除
如果你使用容器运行 Ollama,请确保已按照 docker 中的说明配置好容器运行时。 有时 Ollama 在初始化 GPU 时可能会遇到困难。当你检查服务器日志时,可能会显示各种错误代码,例如 “3”(未初始化)、“46”(设备不可用)、“100”(无设备)、“999”(未知)等。以下故障排除技术可能会帮助解决问题:- 如果你使用的是容器,容器运行时是否正常工作?尝试
docker run --gpus all ubuntu nvidia-smi- 如果这不起作用,Ollama 将无法看到你的 NVIDIA GPU。 - uvm 驱动程序是否已加载?
sudo nvidia-modprobe -u - 尝试重新加载 nvidia_uvm 驱动程序 - 先
sudo rmmod nvidia_uvm然后sudo modprobe nvidia_uvm - 尝试重启系统
- 确保你运行的是最新的 nvidia 驱动程序
- 设置
CUDA_ERROR_LEVEL=50并重试以获取更多诊断日志 - 检查 dmesg 是否有任何错误
sudo dmesg | grep -i nvrm以及sudo dmesg | grep -i nvidia
AMD GPU 发现
在 Linux 上,访问 AMD GPU 通常需要video 和/或 render 组权限才能访问 /dev/kfd 设备。如果权限设置不正确,Ollama 会检测到并在此在服务器日志中报告错误。 在容器中运行时,在某些 Linux 发行版和容器运行时中,ollama 进程可能无法访问 GPU。在宿主机系统上使用 ls -lnd /dev/kfd /dev/dri /dev/dri/* 来确定系统上的数字组 ID,并向容器传递额外的 --group-add ... 参数以便其访问所需设备。例如,在以下输出中 crw-rw---- 1 0 44 226, 0 Sep 16 16:55 /dev/dri/card0,组 ID 列为 44。 如果你在让 Ollama 正确发现或使用 GPU 进行推理时遇到问题,以下操作可能有助于隔离故障。AMD_LOG_LEVEL=3启用 AMD HIP/ROCm 库中的信息日志级别。这可以帮助显示更详细的错误代码,从而协助排除问题。OLLAMA_DEBUG=1在 GPU 发现期间将报告额外信息- 检查 dmesg 是否有任何来自 amdgpu 或 kfd 驱动程序的错误
sudo dmesg | grep -i amdgpu以及sudo dmesg | grep -i kfd
AMD 驱动程序版本不匹配
如果你的 AMD GPU 在 Linux 上未被检测到,且服务器日志包含如下消息amdgpu-install 工具升级到 ROCm v7 驱动程序。升级后,重启系统并重启 Ollama。多 AMD GPU
如果你在 Linux 上的多个 AMD GPU 之间加载模型时遇到乱码响应,请参阅以下指南。Windows 终端错误
已知旧版本的 Windows 10(例如 21H1)存在一个错误,即标准终端程序无法正确显示控制字符。这可能导致显示一长串类似←[?25h←[?25l 的字符串,有时会报错 参数不正确。要解决此问题,请更新到 Win 10 22H1 或更高版本。
