跳到主要内容

七、FAQ

1. 如何升级 Ollama?

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

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

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

2. 如何查看日志?

查看有关使用日志的更多信息,请参阅故障排除文档。

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

默认情况下,Ollama 使用 2048 个标记的上下文窗口大小。

在使用 ollama run 时更改这个值,使用 /set parameter

/set parameter num_ctx 4096

在使用 API 时,指定 num_ctx 参数:

curl http://localhost:11434/api/generate -d '{
"model": "llama2",
"prompt": "为什么天空是蓝色的?",
"options": {
"num_ctx": 4096
}
}'

4. 如何配置 Ollama 服务器?

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

(1). 在 Mac 上设置环境变量

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

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

    launchctl setenv OLLAMA_HOST "0.0.0.0"
  2. 重新启动 Ollama 应用程序。

(2). 在 Linux 上设置环境变量

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

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

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

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

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

    systemctl daemon-reload
    systemctl restart ollama

(3). 在 Windows 上设置环境变量

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

  1. 首先通过单击任务栏中的 Ollama 退出它

  2. 从控制面板中编辑系统环境变量

  3. 为您的用户帐户编辑或创建新变量,如 OLLAMA_HOSTOLLAMA_MODELS 等。

  4. 单击 OK/应用以保存

  5. 从新的终端窗口运行 ollama

5. 如何在我的网络上公开 Ollama?

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

有关如何在您的平台上设置环境变量,请参考上面的部分[如何配置 Ollama 服务器]。

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

Ollama 运行一个 HTTP 服务器,可以使用诸如 Nginx 之类的代理服务器公开。为此,配置代理以转发请求,并可选择设置所需的标头(如果不在网络上公开 Ollama)。例如,使用 Nginx:

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

7. 如何使用 ngrok 与 Ollama?

可以使用各种隧道工具访问 Ollama。例如,使用 Ngrok:

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

8. 如何允许其他网络来源访问 Ollama?

Ollama 默认允许来自 127.0.0.10.0.0.0 的跨源请求。可以使用 OLLAMA_ORIGINS 配置额外的来源。

有关如何在您的平台上设置环境变量,请参考上面的部分[如何配置 Ollama 服务器]。

9. 模型存储在哪里?

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

(1). 如何将它们设置为不同的位置?

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

有关如何在您的平台上设置环境变量,请参考上面的部分[如何配置 Ollama 服务器]。

10. Ollama 是否会将我的提示和答案发送回 ollama.com?

不会。Ollama 在本地运行,对话数据不会离开您的计算机。

11. 如何在 Visual Studio Code 中使用 Ollama?

已经有大量针对 VSCode 以及其他编辑器的插件可供使用,这些插件利用了 Ollama。请查看主存储库自述文件底部的扩展和插件列表

12. 如何在代理后面使用 Ollama?

如果配置了 HTTP_PROXYHTTPS_PROXY,Ollama 与代理服务器兼容。在使用这些变量时,请确保在 ollama serve 可以访问这些值的地方设置它们。在使用 HTTPS_PROXY 时,请确保代理证书已安装为系统证书。有关如何在您的平台上使用环境变量,请参考上面的部分。

(1). 如何在 Docker 中使用代理后面的 Ollama?

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

另外,可以配置 Docker 守护程序使用代理。有关 Docker Desktop 在 macOSWindowsLinux 上的说明,以及 Docker 带 systemd 的守护程序

在使用 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

13. 如何在 Docker 中使用 GPU 加速?

可以在 Linux 或 Windows(使用 WSL2)中配置 Ollama Docker 容器以使用 GPU 加速。这需要 nvidia-container-toolkit。有关更多详细信息,请参阅 ollama/ollama

由于缺乏 GPU 透传和仿真,Docker Desktop 在 macOS 上不支持 GPU 加速。

14. 为什么在 Windows 10 的 WSL2 中网络速度慢?

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

打开 控制面板 > 网络和 Internet > 查看网络状态和任务,然后在左侧面板点击 更改适配器设置。找到 vEthernel (WSL) 适配器,右键单击并选择 属性。 点击 配置,打开 高级 选项卡。搜索每个属性,直到找到 大型发送卸载版本 2(IPv4)大型发送卸载版本 2(IPv6)禁用 这两个属性。

15. 如何预加载模型以获得更快的响应时间?

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

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

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

要使用 chat 完成端点,请使用:

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

16. 如何保持模型在内存中加载或立即卸载它?

默认情况下,模型在内存中保留 5 分钟,然后被卸载。这允许在向 LLM 发送大量请求时获得更快的响应时间。但是,您可能希望在 5 分钟之前释放内存,或者永久保留模型加载。使用 /api/generate/api/chat API 端点的 keep_alive 参数来控制模型在内存中保留的时间。

keep_alive 参数可以设置为:

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

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

curl http://localhost:11434/api/generate -d '{"model": "llama2", "keep_alive": -1}'

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

curl http://localhost:11434/api/generate -d '{"model": "llama2", "keep_alive": 0}'

17. 控制使用哪些 GPU

默认情况下,在 Linux 和 Windows 上,Ollama 将尝试使用 Nvidia GPU 或 Radeon GPU,并将使用找到的所有 GPU。您可以通过将环境变量 CUDA_VISIBLE_DEVICES 设置为 NVIDIA 卡的 GPU ID 的逗号分隔列表,或将 HIP_VISIBLE_DEVICES 设置为 Radeon GPU 的 GPU ID 来限制将要使用的 GPU。您可以使用 GPU 工具(如 nvidia-smirocminfo)查看设备列表。您可以将其设置为无效的 GPU ID(例如,“-1”)以绕过 GPU 并回退到 CPU。