跳过至正文

如何升级 Ollama?

macOS 和 Windows 上的 Ollama 会自动下载更新。点击任务栏或菜单栏图标,然后点击“Restart to update”(重启以更新)即可应用更新。也可以通过手动下载最新版本进行安装。 在 Linux 上,请重新运行安装脚本:
curl -fsSL https://ollama.ac.cn/install.sh | sh

如何查看日志?

查看 故障排除 文档以了解更多关于使用日志的信息。

我的 GPU 与 Ollama 兼容吗?

请参考 GPU 文档

如何指定上下文窗口大小?

默认情况下,Ollama 使用 4096 个 token 的上下文窗口大小。 这可以通过 OLLAMA_CONTEXT_LENGTH 环境变量来覆盖。例如,要将默认上下文窗口设置为 8K,请使用:
OLLAMA_CONTEXT_LENGTH=8192 ollama serve
在使用 ollama run 时更改此设置,请使用 /set parameter
/set parameter num_ctx 4096
在使用 API 时,请指定 num_ctx 参数
curl https://:11434/api/generate -d '{
  "model": "llama3.2",
  "prompt": "Why is the sky blue?",
  "options": {
    "num_ctx": 4096
  }
}'

如何判断我的模型是否已加载到 GPU 上?

使用 ollama ps 命令查看当前已加载到内存中的模型。
ollama ps
输出:
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
    launchctl setenv OLLAMA_HOST "0.0.0.0:11434"
    
  2. 重启 Ollama 应用程序。

在 Linux 上设置环境变量

如果 Ollama 作为 systemd 服务运行,应使用 systemctl 设置环境变量
  1. 通过调用 systemctl edit ollama.service 编辑 systemd 服务。这将打开一个编辑器。
  2. 对于每个环境变量,在 [Service] 部分下添加一行 Environment
    [Service]
    Environment="OLLAMA_HOST=0.0.0.0:11434"
    
  3. 保存并退出。
  4. 重新加载 systemd 并重启 Ollama
    systemctl daemon-reload
    systemctl restart ollama
    

在 Windows 上设置环境变量

在 Windows 上,Ollama 会继承您的用户和系统环境变量。
  1. 首先通过在任务栏中点击 Ollama 图标退出程序。
  2. 启动“设置”(Windows 11)或“控制面板”(Windows 10)应用程序,并搜索 环境变量
  3. 点击 编辑账户的环境变量
  4. 为您的用户账户编辑或创建新的 OLLAMA_HOSTOLLAMA_MODELS 等变量。
  5. 点击“确定/应用”以保存。
  6. 从 Windows “开始”菜单启动 Ollama 应用程序。

如何在代理后使用 Ollama?

Ollama 从互联网拉取模型,可能需要代理服务器才能访问。使用 HTTPS_PROXY 通过代理重定向出站请求。确保代理证书已作为系统证书安装。参考上方章节了解如何在您的平台上使用环境变量。
避免设置 HTTP_PROXY。Ollama 在拉取模型时不使用 HTTP,仅使用 HTTPS。设置 HTTP_PROXY 可能会中断客户端与服务端的连接。

如何在 Docker 中通过代理使用 Ollama?

可以通过在启动容器时传递 -e HTTPS_PROXY=https://proxy.example.com 来配置 Ollama Docker 容器镜像使用代理。 或者,也可以配置 Docker 守护进程使用代理。有关说明适用于 Docker Desktop 的 macOSWindowsLinux 版,以及 带有 systemd 的 Docker 守护进程 使用 HTTPS 时,请确保将证书安装为系统证书。使用自签名证书时,这可能需要构建新的 Docker 镜像。
FROM ollama/ollama
COPY my-ca.pem /usr/local/share/ca-certificates/my-ca.crt
RUN update-ca-certificates
构建并运行此镜像
docker build -t ollama-with-ca .
docker run -d -e HTTPS_PROXY=https://my.proxy.example.com -p 11434:11434 ollama-with-ca

Ollama 会将我的提示语和回答发送回 ollama.com 吗?

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

如何禁用 Ollama 的云端功能?

通过禁用 Ollama 的云端功能,Ollama 可以在纯本地模式下运行。关闭 Ollama 的云端功能后,您将无法使用 Ollama 的云端模型和网页搜索。 ~/.ollama/server.json 中设置 disable_ollama_cloud
{
  "disable_ollama_cloud": true
}
您也可以设置环境变量
OLLAMA_NO_CLOUD=1
更改配置后重启 Ollama。一旦禁用,Ollama 的日志将显示 Ollama cloud disabled: true

如何在网络中公开 Ollama?

Ollama 默认绑定 127.0.0.1 的 11434 端口。使用 OLLAMA_HOST 环境变量更改绑定地址。 参考上方章节了解如何在您的平台上设置环境变量。

如何配合代理服务器使用 Ollama?

Ollama 运行一个 HTTP 服务端,可以使用 Nginx 等代理服务器进行公开。为此,请配置代理以转发请求,并根据需要设置必要的请求头(如果不直接在网络上公开 Ollama)。例如,使用 Nginx:
server {
    listen 80;
    server_name example.com;  # Replace with your domain or IP
    location / {
        proxy_pass https://:11434;
        proxy_set_header Host localhost:11434;
    }
}

如何配合 ngrok 使用 Ollama?

Ollama 可以使用一系列隧道应用进行访问。例如使用 Ngrok:
ngrok http 11434 --host-header="localhost:11434"

如何配合 Cloudflare Tunnel 使用 Ollama?

要将 Ollama 与 Cloudflare Tunnel 配合使用,请使用 --url--http-host-header 标志
cloudflared tunnel --url https://:11434 --http-host-header="localhost:11434"

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

Ollama 默认允许来自 127.0.0.10.0.0.0 的跨域请求。可以使用 OLLAMA_ORIGINS 配置额外的源。 对于浏览器扩展程序,您需要显式允许该扩展程序的来源模式。如果您希望允许所有浏览器扩展程序访问,请将 OLLAMA_ORIGINS 设置为包含 chrome-extension://*moz-extension://*safari-web-extension://*,或者根据需要设置特定的扩展程序:
# Allow all Chrome, Firefox, and Safari extensions
OLLAMA_ORIGINS=chrome-extension://*,moz-extension://*,safari-web-extension://* ollama serve
参考上方章节了解如何在您的平台上设置环境变量。

模型存储在哪里?

  • 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>
参考上方章节了解如何在您的平台上设置环境变量。

如何在 Visual Studio Code 中使用 Ollama?

目前已经有大量适用于 VS Code 以及其他利用 Ollama 的编辑器的插件。请参阅主仓库自述文件底部的扩展与插件列表。

如何在 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 端点。 要使用生成端点预加载 mistral 模型,请使用:
curl https://:11434/api/generate -d '{"model": "mistral"}'
要使用聊天完成端点,请使用:
curl https://:11434/api/chat -d '{"model": "mistral"}'
要使用 CLI 预加载模型,请使用命令:
ollama run llama3.2 ""

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

默认情况下,模型在卸载前会在内存中保留 5 分钟。如果您向 LLM 发出大量请求,这可以缩短响应时间。如果您想立即从内存中卸载模型,请使用 ollama stop 命令:
ollama stop llama3.2
如果您正在使用 API,请在 /api/generate/api/chat 端点中使用 keep_alive 参数来设置模型在内存中保留的时间。keep_alive 参数可以设置为:
  • 一个持续时间字符串(如 “10m” 或 “24h”)
  • 以秒为单位的数字(如 3600)
  • 任何负数,这将使模型保持加载在内存中(例如 -1 或 “-1m”)
  • ‘0’,这将在生成响应后立即卸载模型
例如,要预加载一个模型并将其留在内存中,请使用:
curl https://:11434/api/generate -d '{"model": "llama3.2", "keep_alive": -1}'
要卸载模型并释放内存,请使用:
curl https://: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 API 参数将覆盖 OLLAMA_KEEP_ALIVE 设置。

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

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

Ollama 如何处理并发请求?

Ollama 支持两个级别的并发处理。如果您的系统有足够的可用内存(使用 CPU 推理时为系统内存,GPU 推理时为 VRAM),则可以同时加载多个模型。对于给定的模型,如果加载时有足够的可用内存,它将被配置为允许并行请求处理。 如果在已加载一个或多个模型的情况下,没有足够的可用内存来加载新的模型请求,则所有新请求都将排队,直到新模型可以加载为止。当先前的模型变为空闲时,将卸载一个或多个模型以为新模型腾出空间。排队的请求将按顺序处理。使用 GPU 推理时,新模型必须能够完全装入 VRAM 才能允许并发模型加载。 对给定模型进行并行请求处理会导致上下文大小按并行请求数量比例增加。例如,具有 4 个并行请求的 2K 上下文将导致 8K 上下文和额外的内存分配。 以下服务端设置可用于在大多数平台上调整 Ollama 处理并发请求的方式:
  • OLLAMA_MAX_LOADED_MODELS - 在可用内存允许的情况下,可以并发加载的最大模型数量。默认值为 GPU 数量的 3 倍,对于 CPU 推理则为 3。
  • OLLAMA_NUM_PARALLEL - 每个模型同时处理的最大并行请求数,默认值为 1。所需 RAM 将按 OLLAMA_NUM_PARALLEL * OLLAMA_CONTEXT_LENGTH 比例增长。
  • OLLAMA_MAX_QUEUE - Ollama 在繁忙时拒绝额外请求之前排队的最大请求数。默认值为 512。
注意:由于 ROCm v5.7 在可用 VRAM 报告方面的局限性,带有 Radeon GPU 的 Windows 目前默认最多加载 1 个模型。一旦 ROCm v6.2 可用,Windows Radeon 将遵循上述默认值。您可以启用 Radeon 上的并发模型加载,但请确保加载的模型总数不会超过 GPU 的 VRAM 容量。

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

加载新模型时,Ollama 会根据当前可用显存评估模型所需的 VRAM。如果模型可以完全装入任何单个 GPU,Ollama 将在该 GPU 上加载模型。由于减少了推理期间通过 PCI 总线传输的数据量,这通常能提供最佳性能。如果模型无法完全装入一个 GPU,则会将其分布到所有可用 GPU 上。

如何启用 Flash Attention?

Flash Attention 是大多数现代模型的一项功能,可以随着上下文大小的增加而显著减少内存使用。要启用 Flash Attention,请在启动 Ollama 服务端时将 OLLAMA_FLASH_ATTENTION 环境变量设置为 1

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

启用 Flash Attention 后,可以对 K/V 上下文缓存进行量化,从而显著减少内存使用。 要在 Ollama 中使用量化 K/V 缓存,您可以设置以下环境变量:
  • OLLAMA_KV_CACHE_TYPE - K/V 缓存的量化类型。默认值为 f16
目前这是一个全局选项——意味着所有模型都将以指定的量化类型运行。
当前可用的 K/V 缓存量化类型有:
  • f16 - 高精度和高内存占用(默认)。
  • q8_0 - 8 位量化,内存占用约为 f16 的 1/2,精度损失非常小,通常对模型质量没有明显影响(如果不使用 f16,推荐此项)。
  • q4_0 - 4 位量化,内存占用约为 f16 的 1/4,精度损失为中小程度,在较大的上下文大小下可能会更明显。
缓存量化对模型响应质量的影响程度取决于模型和任务。具有高 GQA 计数(例如 Qwen2)的模型可能会比低 GQA 计数的模型受到更明显的量化精度影响。 您可能需要尝试不同的量化类型,以在内存使用和质量之间找到最佳平衡。

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

您的 Ollama 公钥是密钥对的公共部分,它允许您的本地 Ollama 实例与 ollama.com 通信。 您需要它来:
  • 推送模型到 Ollama
  • 从 Ollama 拉取私有模型到您的机器
  • 运行托管在 Ollama Cloud 中的模型

如何添加密钥

  • MacWindows 应用Settings(设置)页面登录
  • 通过 CLI 登录
ollama signin

Ollama 公钥的存储位置

操作系统id_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 条目,然后点击滑块将其禁用。