Skip to content

如何升级 Ollama? ​

在 macOS 和 Windows 上,Ollama 会自动下载更新。点击任务栏或菜单栏图标,然后点击“Restart to update”以应用更新。您也可以通过手动下载最新版本来安装更新。

在 Linux 上,重新运行安装脚本:

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

如何查看日志? ​

查看 Troubleshooting 文档以了解更多关于使用日志的信息。

我的 GPU 与 Ollama 兼容吗? ​

请参阅 GPU docs。

如何指定上下文窗口大小 (context window size)? ​

默认情况下,Ollama 使用 4096 token 的上下文窗口大小。

可以通过 OLLAMA_CONTEXT_LENGTH 环境变量来覆盖此设置。例如,要将默认上下文窗口设置为 8K,请使用:

shell
OLLAMA_CONTEXT_LENGTH=8192 ollama serve

在执行 ollama run 时,使用 /set parameter 来更改此设置:

shell
/set parameter num_ctx 4096

使用 API 时,指定 num_ctx 参数:

shell
curl http://localhost:11434/api/generate -d '{
  "model": "llama3.2",
  "prompt": "Why is the sky blue?",
  "options": {
    "num_ctx": 4096
  }
}'

如何查看我的模型是否加载到了 GPU 上? ​

使用 ollama ps 命令查看当前加载到内存中的模型。

shell
ollama ps

INFO

输出:

NAME        ID            SIZE    PROCESSOR   UNTIL
llama3:70b  bcfb190ca3a7  42 GB   100% GPU    4 minutes from now

Processor 列将显示模型加载到了哪种内存中:

  • 100% GPU 表示模型完全加载到 GPU 中
  • 100% CPU 表示模型完全加载到系统内存中
  • 48%/52% CPU/GPU 表示模型部分加载到 GPU 和系统内存中

如何配置 Ollama 服务器? ​

可以通过环境变量配置 Ollama 服务器。

在 Mac 上设置环境变量 ​

如果 Ollama 作为 macOS 应用程序运行,应使用 launchctl 设置环境变量:

  1. 对于每个环境变量,调用 launchctl setenv。

    bash
    launchctl setenv OLLAMA_HOST "0.0.0.0:11434"
  2. 重启 Ollama 应用程序。

在 Linux 上设置环境变量 ​

如果 Ollama 作为 systemd 服务运行,应使用 systemctl 设置环境变量:

  1. 通过调用 systemctl edit ollama.service 编辑 systemd 服务。这将打开一个编辑器。

  2. 对于每个环境变量,在 [Service] 部分下添加一行 Environment:

    ini
    [Service]
    Environment="OLLAMA_HOST=0.0.0.0:11434"
  3. 保存并退出。

  4. 重新加载 systemd 并重启 Ollama:

    shell
    systemctl daemon-reload
    systemctl restart ollama

在 Windows 上设置环境变量 ​

在 Windows 上,Ollama 会继承您的用户和系统环境变量。

  1. 首先点击任务栏中的 Ollama 图标以退出程序。

  2. 打开“设置”(Windows 11)或“控制面板”(Windows 10)应用程序并搜索“环境变量”。

  3. 点击“编辑账户的环境变量”。

  4. 为您的用户账户编辑或创建用于 OLLAMA_HOST、OLLAMA_MODELS 等的新变量。

  5. 点击“确定”/“应用”进行保存。

  6. 从 Windows 开始菜单启动 Ollama 应用程序。

如何在代理服务器后使用 Ollama? ​

Ollama 从互联网获取模型,可能需要代理服务器才能访问模型。使用 HTTPS_PROXY 将出站请求重定向到代理服务器。确保代理证书已安装为系统证书。请参阅上文了解如何在您的平台上使用环境变量。

注意

避免设置 HTTP_PROXY。Ollama 在拉取模型时仅使用 HTTPS,不使用 HTTP。设置 HTTP_PROXY 可能由于干扰客户端与服务器的连接。

如何在 Docker 中在代理服务器后使用 Ollama? ​

可以通过在启动容器时传递 -e HTTPS_PROXY=https://proxy.example.com 来配置 Ollama Docker 容器镜像以使用代理。

或者,可以配置 Docker daemon 使用代理。相关说明可在 macOS、Windows 和 Linux 的 Docker Desktop 以及 Docker daemon with systemd 中找到。

使用 HTTPS 时,确保证书已安装为系统证书。如果使用自签名证书,可能需要一个新的 Docker 镜像。

dockerfile
FROM ollama/ollama
COPY my-ca.pem /usr/local/share/ca-certificates/my-ca.crt
RUN update-ca-certificates

构建并运行此镜像:

shell
docker build -t ollama-with-ca .
docker run -d -e HTTPS_PROXY=https://my.proxy.example.com -p 11434:11434 ollama-with-ca

Ollama 会将我的提示词(prompts)和回答发送回 ollama.com 吗? ​

Ollama 在本地运行。当您在本地运行时,我们无法看到您的提示词或数据。当使用云端托管模型时,我们会处理您的提示词和响应以提供服务,但不会存储或记录这些内容,也永远不会用其进行训练。我们收集基础账户信息和有限的使用元数据以提供服务,其中不包含提示词或响应内容。我们不会出售您的数据。您可以随时删除您的账户。

如何禁用 Ollama 的云端功能? ​

通过禁用 Ollama 的云端功能,Ollama 可以仅在本地模式下运行。关闭云端功能后,您将无法使用 Ollama 的云端模型和网络搜索功能。

在 ~/.ollama/server.json 中设置 disable_ollama_cloud:

json
{
  "disable_ollama_cloud": true
}

您还可以设置环境变量:

shell
OLLAMA_NO_CLOUD=1

修改配置后重启 Ollama。禁用后,Ollama 的日志将显示 Ollama cloud disabled: true。

如何在网络上公开访问 Ollama? ​

Ollama 默认绑定到 127.0.0.1 的 11434 端口。使用 OLLAMA_HOST 环境变量更改绑定地址。

请参阅上文的 如何配置 Ollama 服务器 部分,了解如何在您的平台上设置环境变量。

如何与代理服务器一起使用 Ollama? ​

Ollama 运行一个 HTTP 服务器,可以使用像 Nginx 这样的代理服务器进行公开访问。为此,配置代理以转发请求,并可选地设置所需的 Header(如果不在网络上公开访问 Ollama)。例如,使用 Nginx:

nginx
server {
    listen 80;
    server_name example.com;  # 替换为您的域名或 IP
    location / {
        proxy_pass http://localhost:11434;
        proxy_set_header Host localhost:11434;
    }
}

如何与 ngrok 一起使用 Ollama? ​

可以使用各种隧道应用来访问 Ollama。例如使用 Ngrok:

shell
ngrok http 11434 --host-header="localhost:11434"

如何与 Cloudflare Tunnel 一起使用 Ollama? ​

要将 Ollama 与 Cloudflare Tunnel 配合使用,请使用 --url 和 --http-host-header 参数:

shell
cloudflared tunnel --url http://localhost:11434 --http-host-header="localhost:11434"

如何允许额外的 Web 源访问 Ollama? ​

Ollama 默认允许来自 127.0.0.1 和 0.0.0.0 的跨源请求。可以通过 OLLAMA_ORIGINS 配置额外的来源。

对于浏览器扩展,您需要明确允许扩展的来源模式。如果您想允许所有浏览器扩展访问,请将 OLLAMA_ORIGINS 设置为包含 chrome-extension://*、moz-extension://* 和 safari-web-extension://*,或者根据需要设置特定的扩展:

bash
# 允许所有 Chrome、Firefox 和 Safari 扩展
OLLAMA_ORIGINS=chrome-extension://*,moz-extension://*,safari-web-extension://* ollama serve

请参阅上文的 如何配置 Ollama 服务器 部分,了解如何在您的平台上设置环境变量。

模型存储在哪里? ​

  • macOS: ~/.ollama/models
  • Linux: /usr/share/ollama/.ollama/models
  • Windows: C:\Users\%username%\.ollama\models

如何将它们设置为不同的位置? ​

如果需要使用不同的目录,请将环境变量 OLLAMA_MODELS 设置为选定的目录。

注意

在 Linux 上使用标准安装程序时,ollama 用户需要对指定的目录具有读取和写入权限。要将目录分配给 ollama 用户,请运行 sudo chown -R ollama:ollama <directory>。

请参阅上文的 如何配置 Ollama 服务器 部分,了解如何在您的平台上设置环境变量。

如何在 Visual Studio Code 中使用 Ollama? ​

已经有大量的插件可用于 VS Code 以及其他支持 Ollama 的编辑器。请参阅主仓库 Readme 底部的 扩展与插件 列表。

如何在 Docker 中使用带 GPU 加速的 Ollama? ​

可以配置 Ollama Docker 容器在 Linux 或 Windows(配合 WSL2)中使用 GPU 加速。这需要 nvidia-container-toolkit。详情请参阅 ollama/ollama。

由于缺乏 GPU 透传和模拟功能,Docker Desktop 在 macOS 上不支持 GPU 加速。

为什么 Windows 10 的 WSL2 网络速度很慢? ​

这可能影响安装 Ollama 以及下载模型。

打开“控制面板 > 网络和 Internet > 查看网络状态和任务”,然后点击左侧面板的“更改适配器设置”。找到 vEthernet (WSL) 适配器,右键单击并选择“属性”。点击“配置”并打开“高级”选项卡。浏览各项属性直到找到 Large Send Offload Version 2 (IPv4) 和 Large Send Offload Version 2 (IPv6)。禁用 这两个属性。

如何预加载模型到 Ollama 以获得更快的响应时间? ​

如果您正在使用 API,可以通过向 Ollama 服务器发送一个空请求来预加载模型。这适用于 /api/generate 和 /api/chat API 端点。

要使用 generate 端点预加载 mistral 模型,请使用:

shell
curl http://localhost:11434/api/generate -d '{"model": "mistral"}'

要使用 chat completions 端点,请使用:

shell
curl http://localhost:11434/api/chat -d '{"model": "mistral"}'

要使用 CLI 预加载模型,请使用命令:

shell
ollama run llama3.2 ""

如何在内存中保留模型或使其立即卸载? ​

默认情况下,模型会在内存中保留 5 分钟后被卸载。如果您向 LLM 发送大量请求,这可以加快响应时间。如果您想立即从内存中卸载模型,请使用 ollama stop 命令:

shell
ollama stop llama3.2

如果您正在使用 API,请在 /api/generate 和 /api/chat 端点中使用 keep_alive 参数来设置模型保留在内存中的时间。keep_alive 参数可以设置为:

  • 一个持续时间字符串(例如 "10m" 或 "24h")
  • 秒数(例如 3600)
  • 任何负数,将使模型保持在内存中加载(例如 -1 或 "-1m")
  • '0' 将在生成响应后立即卸载模型

例如,要预加载模型并将其保留在内存中,请使用:

shell
curl http://localhost:11434/api/generate -d '{"model": "llama3.2", "keep_alive": -1}'

要卸载模型并释放内存,请使用:

shell
curl http://localhost:11434/api/generate -d '{"model": "llama3.2", "keep_alive": 0}'

或者,您可以通过在启动 Ollama 服务器时设置 OLLAMA_KEEP_ALIVE 环境变量来更改所有模型加载到内存的时间。OLLAMA_KEEP_ALIVE 变量使用的参数类型与上述提到的 keep_alive 参数类型相同。请参阅解释 如何配置 Ollama 服务器 的部分来正确设置环境变量。

/api/generate 和 /api/chat API 端点的 keep_alive 参数将覆盖 OLLAMA_KEEP_ALIVE 设置。

如何管理 Ollama 服务器可以排队的最大请求数量? ​

如果发送到服务器的请求过多,它将返回 503 错误,表示服务器过载。您可以通过设置 OLLAMA_MAX_QUEUE 来调整可以排队的请求数量。

Ollama 如何处理并发请求? ​

Ollama 支持两个层级的并发处理。如果您的系统有足够的可用内存(使用 CPU 推理时的系统内存,或 GPU 推理时的显存),则可以同时加载多个模型。对于给定的模型,如果加载时有足够的可用内存,它将配置为允许并行请求处理。

如果由于一个或多个模型已加载而导致内存不足以加载新的模型请求,所有新请求都将被排队,直到新模型可以加载为止。随着之前的模型变为空闲,其中一个或多个模型将被卸载以为新模型腾出空间。排队的请求将按顺序处理。在使用 GPU 推理时,新模型必须能够完全放入显存中才能允许并发模型加载。

对于给定的模型,并行请求处理会导致上下文大小增加到并行请求的数量。例如,带有 4 个并行请求的 2K 上下文将产生 8K 上下文并分配额外的内存。

在大多数平台上,可以使用以下服务器设置来调整 Ollama 处理并发请求的方式:

  • OLLAMA_MAX_LOADED_MODELS - 可以同时加载的最大模型数量(前提是在可用内存内)。默认值为 3 * GPU 的数量或 CPU 推理时的 3。
  • OLLAMA_NUM_PARALLEL - 每个模型同时处理的最大并行请求数量,默认为 1。所需的内存将按 OLLAMA_NUM_PARALLEL * OLLAMA_CONTEXT_LENGTH 进行缩放。
  • OLLAMA_MAX_QUEUE - Ollama 在繁忙时排队的最大请求数量,在超过此数量后将拒绝额外的请求。默认值为 512。

注意:由于 ROCm v5.7 在报告可用显存方面的限制,配备 Radeon GPU 的 Windows 系统目前默认最大为 1 个模型。一旦 ROCm v6.2 发布,Windows Radeon 将遵循上述默认值。您可以在 Windows 上启用 Radeon 的并发模型加载,但请确保不要加载超过 GPU 显存容量的模型。

Ollama 如何在多 GPU 上加载模型? ​

在加载新模型时,Ollama 会将模型所需的显存与当前可用的显存进行对比。如果模型可以完全放入任何单个 GPU 中,OLLama 将在那个 GPU 上加载模型。这通常能提供最佳性能,因为它减少了推理过程中跨 PCI 总线传输的数据量。如果模型无法完全放入一个 GPU 中,它将分布在所有可用的 GPU 上。

如何启用 Flash Attention? ​

Flash Attention 是大多数现代模型的一项功能,可以显著降低随着上下文大小增长而增加的内存占用。当选定的后端和设备支持时,Ollama 会自动使用 Flash Attention。要强制开启 Flash Attention,请在启动 Ollama 服务器时设置 OLLAMA_FLASH_ATTENTION=1。要禁用它,请设置 OLLAMA_FLASH_ATTENTION=0。

如何设置 K/V 缓存的量化类型? ​

当启用 Flash Attention 时,K/V 上下文缓存可以被量化以显著减少内存占用。

若要在 Ollama 中使用量化的 K/V 缓存,您可以设置以下环境变量:

  • OLLAMA_KV_CACHE_TYPE - K/V 缓存的量化类型。默认为 f16。

注意

目前这是一个全局选项——这意味着所有模型都将以指定的 量化类型运行。

当前可用的 K/V 缓存量化类型包括:

  • f16 - 高精度和高内存占用(默认)。
  • q8_0 - 8 位量化,使用大约 1/2 的 f16 内存,且精度损失非常小,这通常对模型的质量没有明显影响(如果不用 f16,建议使用此项)。
  • q4_0 - 4 位量化,使用大约 1/4 的 f16 内存,并伴有中等程度的精度损失,在较高的上下文大小下可能更明显。

缓存量化对模型响应质量的影响将取决于模型和任务。具有高 GQA 计数(例如 Qwen2)的模型可能比低 GQA 计数的模型受到更大的量化精度影响。

您可能需要尝试不同的量化类型以找到内存占用和质量之间的最佳平衡。

我在哪里可以找到我的 Ollama 公钥? ​

您的 Ollama 公钥 是密钥对的公有部分,它允许您的本地 Ollama 实例与 ollama.com 进行通信。

您需要它来:

  • 向 Ollama 推送模型
  • 从 Ollama 拉取私有模型到您的机器
  • 运行托管在 Ollama Cloud 中的模型

如何添加密钥 ​

  • 通过设置页面登录(在 Mac 和 Windows 应用中)

  • 通过 CLI 登录

shell
ollama signin

Ollama 公钥的存储位置 ​

OSid_ed25519.pub 的路径
macOS~/.ollama/id_ed25519.pub
Linux/usr/share/ollama/.ollama/id_ed25519.pub
WindowsC:\Users\<username>\.ollama\id_ed25519.pub

注意

将 <username> 替换为您的实际 Windows 用户名。

如何阻止 Ollama 在我登录电脑时启动? ​

Windows 和 macOS 的 Ollama 在安装期间会注册为登录项。如果您不希望 Ollama 自动启动,可以禁用此项。Ollama 将在升级过程中保留此设置,除非您卸载应用程序。

Windows

  • 在 任务管理器 中前往 启动应用 选项卡,搜索 ollama 然后点击 禁用

MacOS

  • 打开 系统设置 并搜索 "登录项",在 允许在后台运行 下找到 Ollama 条目,然后点击开关进行禁用。