Skip to content

如何解决故障问题

有时候,Ollama 可能无法按预期工作。找出发生了什么的最好方法之一是查看日志。在 Mac 上,通过运行以下命令来查找日志:

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

在使用 systemd 的 Linux 系统上,可以使用以下命令找到日志:

shell
journalctl -u ollama

当你在 ** 容器 ** 中运行 Ollama 时,日志会输出到容器的 stdout/stderr:

shell
docker logs <container-name>

(使用 docker ps 查找容器名称)

如果在终端中手动运行 ollama serve,日志会显示在那个终端上。

  • 打开 %LOCALAPPDATA%\Ollama 查看日志
  • 打开 %LOCALAPPDATA%\Programs\Ollama 浏览二进制文件(安装程序会将其添加到您的用户 PATH 中)
  • 运行 explorer %HOMEPATH%\.ollama 浏览模型和配置文件的存储位置
  • 打开 %TEMP%,其中包含存储在多个 ollama* 目录中的临时可执行文件。 当你在 Windows 上运行 Ollama 时,有几个不同的位置。你可以在资源管理器窗口中查看它们,方法是按 <cmd>+R,然后输入:
powershell
$env:OLLAMA_DEBUG="1"
& "ollama app.exe"

要启用额外的调试日志以帮助解决问题,请先从托盘菜单中 ** 退出正在运行的应用程序 ** ,然后在 PowerShell 命令行窗口中:

加入 Discord 以获取日志解读的帮助。

LLM libraries

Ollama 包含了为不同 GPU 和 CPU 向量特性编译的多个 LLM 库。Ollama 会根据您的系统能力选择最佳的一个。如果自动检测有问题,或者您遇到其他问题(例如:GPU 崩溃),您可以强制使用特定的 LLM 库来解决此问题。cpu_avx2 性能最优,其次是 cpu_avx,最慢但兼容性最好的是 cpu。在 MacOS 上的 Rosetta 模拟器可以与 cpu 库配合使用。

在服务器日志中,你会看到一条类似以下信息的消息(随版本不同而不同):

Dynamic LLM libraries [rocm_v6 cpu cpu_avx cpu_avx2 cuda_v11 rocm_v5]

实验性 LLM libraries 覆盖

你可以设置 OLLAMA_LLM_ 库为可用的任何 LLM 库以绕过自动检测,例如,如果你有一张 CUDA 卡,但希望强制使用带有 AVX2 向量支持的 CPU LLM 库,可以使用:

OLLAMA_LLM_LIBRARY="cpu_avx2" ollama serve
cat /proc/cpuinfo| grep flags  | head -1

你可以使用以下方法查看你的 CPU 具有哪些功能。

在 Linux 上安装旧版或预发布版本

如果你在 Linux 上遇到问题并想要安装一个旧版本,或者你想要在官方发布之前试用一个预发行版,你可以告诉安装脚本要安装哪个版本。

sh
curl -fsSL https://ollama.com/install.sh | OLLAMA_VERSION="0.1.29" sh

Linux 临时目录 noexec

如果你的系统在 Ollama 存储临时可执行文件的地方被配置为使用"noexec" 标志,你可以通过设置 OLLAMA_TMPDIR 为 Ollama 运行用户具有写入权限的位置来指定一个替代位置。例如 OLLAMA_TMPDIR=/usr/share/ollama/

容器无法在 NVIDIA GPU 上运行

请确保按照 docker 教程 中的描述先配置了容器运行时。

有时,容器运行时在初始化 GPU 时可能会遇到困难。当您检查服务器日志时,这可能表现为各种错误代码,例如:"3"(未初始化),"46" (设备不可用),"100"(无设备),"999"(未知)或其他。以下故障排除技术可能有助于解决问题。

  • UVM 驱动程序是否未加载?运行 sudo nvidia-modprobe -u 命令。
  • 尝试重新加载 nvidia_uvm 驱动程序 - sudo rmmod nvidia_uvm 然后 sudo modprobe nvidia_uvm
  • 尝试重启 Docker 容器
  • 确保你正在运行最新的 nvidia 驱动程序

如果以上方法都不能解决问题,请收集更多信息并在 这里 提交问题:

  • 设置 CUDA_ERROR_LEVEL=50 并再次尝试以获取更详细的诊断日志。
  • 检查 dmesg 中的任何错误,运行命令 sudo dmesg | grep -i nvrmsudo dmesg | grep -i nvidia

笔记本电脑休眠恢复

在 Linux 系统中,休眠 / 唤醒循环后,有时 Ollama 可能无法发现您的 NVIDIA GPU,并退回到使用 CPU 运行。您可以通过重新加载 NVIDIA UVM 驱动程序来解决这个驱动问题,命令为 sudo rmmod nvidia_uvm && sudo modprobe nvidia_uvm

热爱生活,热爱 Ollama