程序员开发实例大全宝库

网站首页 > 编程文章 正文

Ollama终极指南:本地运行大模型+自定义AI助手+避坑攻略

zazugpt 2025-05-26 20:11:24 编程文章 12 ℃ 0 评论

一、Ollama

Ollama 是一个用于在本地运行大型语言模型的工具,下面将介绍如何在不同操作系统上安装和使用 Ollama。

1. 安装

(1). macOS和Windows 预览版

安装 Ollama,请点击以下链接进行下载:

https://ollama.com/

(2). Linux

在 Linux 上,可以通过以下命令进行安装:

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

如果需要手动安装,请参考手动安装说明

(3). Docker

Ollama 官方提供了 Docker 镜像,可以在 Docker Hub 上获取:

Ollama Docker 镜像 ollama/ollama

2. 快速开始

访问ollama仓库 https://ollama.com/search 搜索deepseek

要运行并与 deepseek-r1进行交流,可以使用以下命令:

ollama run deepseek-r1:7B

3. 自定义模型GGUF

Ollama 支持在 Modelfile 中导入 GGUF 模型:

创建一个名为 Modelfile 的文件,使用 FROM 指令指定要导入的模型的本地文件路径。

# 基础配置(必须)
FROM ./vicuna-33b.Q4_0.gguf

# 高级参数配置(可选)
PARAMETER temperature 0.7       # 控制创造性(0-1)
PARAMETER num_ctx 4096          # 上下文长度翻倍
SYSTEM "你是一名AI法律顾问,用中文回答时必须引用法律条文"

ollama create example -f Modelfile

运行模型 ollama run example

1. 格式

Modelfile的格式如下:

指令

描述

FROM(必需)

定义要使用的基础模型。

PARAMETER

设置Ollama运行模型的参数。

TEMPLATE

要发送到模型的完整提示模板。

SYSTEM

指定将设置在模板中的系统消息。

ADAPTER

定义要应用于模型的(Q)LoRA适配器。

LICENSE

指定法律许可。

MESSAGE

指定消息历史。

2.PARAMETER <参数> <参数值>

参数

描述

值类型

示例用法

mirostat

启用 Mirostat 采样以控制困惑度。(默认值: 0, 0 = 禁用, 1 = Mirostat, 2 = Mirostat 2.0)

整数

mirostat 0

mirostat_eta

影响算法对生成文本反馈的响应速度。较低的学习率会导致调整速度较慢,而较高的学习率会使算法更具响应性。(默认值: 0.1)

浮点数

mirostat_eta 0.1

mirostat_tau

控制输出的连贯性和多样性之间的平衡。较低的数值会导致更加聚焦和连贯的文本。(默认值: 5.0)

浮点数

mirostat_tau 5.0

num_ctx

设置用于生成下一个 Token 的上下文窗口大小。(默认值: 2048)

整数

num_ctx 4096

num_ gqa

Transformer 层中的 GQA 组数。某些模型需要,例如 llama2:70b 需要设置为 8

整数

num_ gqa 1

num_gpu

发送到 GPU 的层数。在 macOS 上,默认值为 1 以启用 Metal 支持,为 0 则禁用。

整数

num_gpu 50

num_thread

设置计算过程中要使用的线程数。默认情况下,Ollama 会检测以获得最佳性能。建议将此值设置为系统实际物理 CPU 核心数(而非逻辑核心数)。

整数

num_thread 8

repeat_ last_ n

设置模型回顾以避免重复的范围。(默认值: 64, 0 = 禁用, -1 = num_ctx)

整数

repeat_ last_ n 64

repeat_penalty

设置惩罚重复的强度。较高的值(例如 1.5)会更严厉地惩罚重复,而较低的值(例如 0.9)会更宽容。(默认值: 1.1)

浮点数

repeat_penalty 1.1

temperature

模型的温度。增加温度会使模型更具创造性。(默认值: 0.8)

浮点数

temperature 0.7

seed

设置用于生成的随机数种子。将其设置为特定数字将使模型对相同提示生成相同的文本。(默认值: 0)

整数

seed 42

stop

设置要使用的停止序列。当遇到此模式时,LLM 将停止生成文本并返回。可以通过在模型文件中指定多个单独的 stop 参数来设置多个停止模式。

字符串

stop "AI assistant:"

tfs_z

尾部自由采样用于减少输出中较不可能的 Token 的影响。较高的值(例如 2.0)会更大程度地减少影响,而值为 1.0 则禁用此设置。(默认值: 1)

浮点数

tfs_z 1

num_predict

生成文本时要预测的最大 Token 数。 (默认值: 128, -1 = 无限生成, -2 = 填充上下文)

整数

num_predict 42

top_k

减少生成无意义文本的概率。较高的值(例如 100)会给出更多样化的答案,而较低的值(例如 10)会更保守。(默认值: 40)

整数

top_k 40

top_p

与 top-k 一起使用。较高的值(例如 0.95)会导致更多样化的文本,而较低的值(例如 0.5)会生成更聚焦和保守的文本。(默认值: 0.9)

浮点数

top_p 0.9

3.变量

在模板中,我们使用以下变量来表示不同部分的内容:

变量

描述

{{ .System }}

用于指定自定义行为的系统消息。

{{ .Prompt }}

用户提示消息。

{{ .Response }}

模型生成的回复。在生成回复时,此变量后的文本将被省略。

TEMPLATE """{{ if .System }}<|im_start|>system
{{ .System }}<|im_end|>
{{ end }}{{ if .Prompt }}<|im_start|>user
{{ .Prompt }}<|im_end|>
{{ end }}<|im_start|>assistant
"""

4. SYSTEM

SYSTEM 指令用于指定模板中要使用的系统消息。

SYSTEM """<system message>"""

5. ADAPTER

ADAPTER 指令用于指定要应用于基础模型的 LoRA 适配器。该指令的值应为绝对路径或相对于 Modelfile 的路径,并且文件必须采用 GGML 文件格式。适配器应该是从基础模型调整过的,否则行为是不确定的。

ADAPTER ./ollama-lora.bin

6. LICENSE

LICENSE 指令允许您指定在使用此 Modelfile 的模型下共享或分发的法律许可。

LICENSE """
<许可证文本>
"""

7. MESSAGE

MESSAGE 指令允许您为模型指定消息历史记录,以便在响应时使用。使用多个 MESSAGE 命令的迭代来构建对话,这将引导模型以类似的方式回答。

MESSAGE <角色> <消息>

###

4. 命令参考

以下是 Ollama 常用命令的整理表格

命令类别

命令/指令

功能描述

模型管理

ollama list

列出本地已安装的模型列表


ollama pull <模型名称>

从仓库下载模型到本地(若未下载则自动拉取)


ollama run <模型名称>

运行指定模型,进入交互式对话(若本地无模型则先下载)


ollama rm <模型名称>

删除本地已安装的模型


ollama cp <源模型> <新模型>

复制模型并生成新副本(用于自定义修改或实验)


ollama show <模型名称>

查看模型的详细信息(如版本、参数配置等)


ollama push <模型名称>

将本地模型推送至私有仓库(需配置权限)

服务控制

ollama serve

启动本地 Ollama 服务(默认监听端口 11434


ollama ps

查看当前正在运行的模型实例

交互模式指令

/set temperature <值>

调整模型创造性(值范围 0-1,默认 0.8)


/set top_k <值>

控制生成结果的多样性(默认 40)


/clear

清空当前对话上下文


/bye

退出交互模式


/load <模型名称>

动态切换当前会话的模型


/save <模型名称>

保存当前会话状态到指定模型

自定义模型

ollama create -f <文件路径>

根据 Modelfile 创建自定义模型(支持设置系统提示、参数等)

调试与信息

ollama --version

查看 Ollama 版本信息


ollama --help

显示所有支持的指令及说明


补充说明

  1. 交互参数示例
  2. ollama run llama2 "写一篇科幻小说" --temperature 0.7 --top_p 0.9:可指定生成参数直接运行任务57。
  3. 自定义模型配置
  4. 在 Modelfile 中可通过 SYSTEM 指令定义模型角色,例如 SYSTEM "你是一个编程专家"58。
  5. 环境变量
  6. 通过 OLLAMA_HOST 可修改服务监听地址(如 0.0.0.0:11434

5. REST API

Ollama 提供了用于运行和管理模型的 REST API。

(1). 生成响应

curl http://localhost:11434/api/generate -d '{
  "model": "deepseek-r1:7B",
  "prompt":"Why is the sky blue?"
}'

(2). 与模型交流

curl http://localhost:11434/api/chat -d '{
  "model": "mistral",
  "messages": [
    { "role": "user", "content": "why is the sky blue?" }
  ]
}'

(3). OpenAI Python库

from openai import OpenAI

client = OpenAI(
    base_url='http://localhost:11434/v1/',
    # 必需但被忽略
    api_key='ollama',
)

chat_completion = client.chat.completions.create(
    messages=[
        {
            'role': 'user',
            'content': 'Say this is a test',
        }
    ],
    model='llama2',
)

二、在Linux上的安装配置

1. 安装

通过运行以下一行命令来安装Ollama:

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

2. AMD Radeon GPU支持

虽然AMD已经将amdgpu驱动程序贡献给了官方Linux内核源代码,但版本较旧,可能不支持所有ROCm功能。我们建议您从
https://www.amd.com/en/support/linux-drivers下载并安装最新的驱动程序,以获得对您的Radeon GPU最佳支持。

3. 手动安装

(1). 下载ollama二进制文件

Ollama被分发为一个独立的二进制文件。将其下载到您的PATH目录中:

sudo curl -L https://ollama.com/download/ollama-linux-amd64 -o /usr/bin/ollama
sudo chmod +x /usr/bin/ollama

(2). 将Ollama添加为启动服务(参考)

为Ollama创建一个用户:

sudo useradd -r -s /bin/false -m -d /usr/share/ollama ollama

在/etc/systemd/system/目录下创建一个服务文件ollama.service:

[Unit]
Description=Ollama Service
After=network-online.target

[Service]
# 核心服务启动命令
ExecStart=/usr/bin/ollama serve

# 用户与权限配置
User=ollama
Group=ollama

# 网络与端口监听
Environment="OLLAMA_HOST=0.0.0.0:11434"        # 监听所有IP地址的11434端口o
Environment="OLLAMA_ORIGINS=*"                 # 允许所有请求来源o

# 性能与调试配置
Environment="OLLAMA_DEBUG=1"                   # 启用调试日志o
Environment="OLLAMA_FLASH_ATTENTION=1"         # 启用快速注意力机制加速推理o
Environment="OLLAMA_NUM_PARALLEL=2"            # 最大并发用户数o
Environment="OLLAMA_MAX_LOADED_MODELS=2"       # 同时加载的模型数量上限o

# 存储与内存管理
Environment="OLLAMA_MODELS=/mnt/data/.ollama/models"  # 自定义模型存储路径o
Environment="OLLAMA_KEEP_ALIVE=24h"            # 模型在内存中的存活时间o

# 资源限制
MemoryLimit=16G                                # 限制最大内存使用(根据硬件调整)o
CPUQuota=200%                                  # 限制CPU使用率(如2核全速)o

# 日志管理
StandardOutput=file:/var/log/ollama/out.log
StandardError=file:/var/log/ollama/error.log

# 安全增强
NoNewPrivileges=true                           # 禁止服务获取新权限o
ProtectSystem=strict                           # 限制文件系统写入权限o

# 服务重启策略
Restart=always
RestartSec=3

[Install]
WantedBy=default.target

然后启动服务:

sudo systemctl daemon-reload
sudo systemctl enable ollama

Ollama 提供了多种环境变量以供配置:

OLLAMA_DEBUG:是否开启调试模式,默认为 false。
OLLAMA_FLASH_ATTENTION:是否闪烁注意力,默认为 true。
OLLAMA_HOST:Ollama 服务器的主机地址,默认为空。
OLLAMA_KEEP_ALIVE:保持连接的时间,默认为 5m。
OLLAMA_LLM_LIBRARY:LLM 库,默认为空。
OLLAMA_MAX_LOADED_MODELS:最大加载模型数,默认为 1。
OLLAMA_MAX_QUEUE:最大队列数,默认为空。
OLLAMA_MAX_VRAM:最大虚拟内存,默认为空。
OLLAMA_MODELS:模型目录,默认为空。
OLLAMA_NOHISTORY:是否保存历史记录,默认为 false。
OLLAMA_NOPRUNE:是否启用剪枝,默认为 false。
OLLAMA_NUM_PARALLEL:并行数,默认为 1。
OLLAMA_ORIGINS:允许的来源,默认为空。
OLLAMA_RUNNERS_DIR:运行器目录,默认为空。
OLLAMA_SCHED_SPREAD:调度分布,默认为空。
OLLAMA_TMPDIR:临时文件目录,默认为空。Here is the optimized list in the desired format:
OLLAMA_DEBUG:是否开启调试模式,默认为 false。
OLLAMA_FLASH_ATTENTION:是否闪烁注意力,默认为 true。
OLLAMA_HOST:Ollama 服务器的主机地址,默认为空。
OLLAMA_KEEP_ALIVE:保持连接的时间,默认为 5m。
OLLAMA_LLM_LIBRARY:LLM 库,默认为空。
OLLAMA_MAX_LOADED_MODELS:最大加载模型数,默认为 1。
OLLAMA_MAX_QUEUE:最大队列数,默认为空。
OLLAMA_MAX_VRAM:最大虚拟内存,默认为空。
OLLAMA_MODELS:模型目录,默认为空。
OLLAMA_NOHISTORY:是否保存历史记录,默认为 false。
OLLAMA_NOPRUNE:是否启用剪枝,默认为 false。
OLLAMA_NUM_PARALLEL:并行数,默认为 1。
OLLAMA_ORIGINS:允许的来源,默认为空。
OLLAMA_RUNNERS_DIR:运行器目录,默认为空。
OLLAMA_SCHED_SPREAD:调度分布,默认为空。
OLLAMA_TMPDIR:临时文件目录,默认为空。

(3). 安装CUDA驱动程序(可选 - 适用于Nvidia GPU)

下载并安装 CUDA。

通过运行以下命令验证驱动程序是否已安装,该命令应打印有关您的GPU的详细信息:

nvidia-smi

(4). 安装ROCm(可选 - 适用于Radeon GPU)

下载并安装 ROCm。确保安装ROCm v6。

(5). 启动Ollama

使用systemd启动Ollama:

sudo systemctl start ollama

(6). 更新

通过再次运行安装脚本来更新Ollama:

curl -fsSL
https://ollama.com/install.sh | sh 或通过下载Ollama二进制文件:

sudo curl -L https://ollama.com/download/ollama-linux-amd64 -o /usr/bin/ollama
sudo chmod +x /usr/bin/ollama

(7). 查看日志

要查看作为启动服务运行的Ollama的日志,请运行:

journalctl -u ollama

(8). 卸载

删除Ollama服务:

sudo systemctl stop ollama
sudo systemctl disable ollama
sudo rm /etc/systemd/system/ollama.service

从您的bin目录(/usr/local/bin、/usr/bin或/bin)中删除Ollama二进制文件:

sudo rm $(which ollama)

删除已下载的模型以及Ollama服务用户和组:

sudo rm -r /usr/share/ollama
sudo userdel ollama
sudo groupdel ollama

三、故障排除

有时候 Ollama 可能表现不如预期。找出发生了什么的最佳方法之一是查看日志。在 Mac 上通过运行以下命令找到日志:

cat ~/.ollama/logs/server.log

在带有 systemd 的 Linux 系统上,可以通过以下命令找到日志:

journalctl -u ollama

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

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

如果在终端中手动运行 ollama serve,日志将显示在该终端上。

在 Windows 上运行 Ollama 时,有几个不同的位置。您可以通过按 +R 键并输入以下内容在资源管理器窗口中查看它们:

explorer %LOCALAPPDATA%\Ollama 查看日志
explorer %LOCALAPPDATA%\Programs\Ollama 浏览二进制文件(安装程序会将其添加到用户 PATH)
explorer %HOMEPATH%\.ollama 浏览模型和配置存储位置
explorer %TEMP% 临时可执行文件存储在一个或多个 ollama* 目录中

要启用额外的调试日志以帮助解决问题,首先从托盘菜单中退出运行的应用程序,然后在 PowerShell 终端中执行以下命令:

$env:OLLAMA_DEBUG="1"
& "ollama app.exe"

1. LLM 库

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 库覆盖

您可以将 OLLAMA_LLM_LIBRARY 设置为任何可用的 LLM 库以绕过自动检测,例如,如果您有一个 CUDA 卡,但想要强制使用具有 AVX2 矢量支持的 CPU LLM 库,可以使用以下命令:

OLLAMA_LLM_LIBRARY="cpu_avx2" ollama serve

您可以通过以下命令查看 CPU 的功能:

cat /proc/cpuinfo| grep flags  | head -1

2. AMD Radeon GPU 支持

Ollama 利用 AMD ROCm 库,该库不支持所有 AMD GPU。在某些情况下,您可以强制系统尝试使用一个接近的 LLVM 目标。例如,Radeon RX 5400 是 gfx1034(也称为 10.3.4),但 ROCm 目前不支持此目标。最接近的支持是 gfx1030。您可以使用环境变量 HSA_OVERRIDE_GFX_VERSION 以 x.y.z 语法。例如,要强制系统在 RX 5400 上运行,您可以将 HSA_OVERRIDE_GFX_VERSION="10.3.0" 设置为服务器的环境变量。如果您有不受支持的 AMD GPU,可以尝试使用下面列出的受支持类型。

目前,已知支持的 GPU 类型如下 LLVM 目标。以下表格显示了一些映射到这些 LLVM 目标的示例 GPU:

LLVM

示例 GPU

gfx900

Radeon RX Vega 56

gfx906

Radeon Instinct MI50

gfx908

Radeon Instinct MI100

gfx90a

Radeon Instinct MI210

gfx940

Radeon Instinct MI300

gfx941


gfx942


gfx1030

Radeon PRO V620

gfx1100

Radeon PRO W7900

gfx1101

Radeon PRO W7700

gfx1102

Radeon RX 7600

AMD 正在努力增强 ROCm v6,以在将来的发布中扩大对 GPU 家族的支持,这应该会增加对更多 GPU 的支持。

在 Discord 上联系或提交 问题 获取额外帮助。

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

如果在 Linux 上遇到问题并希望安装旧版本,或者想在正式发布之前尝试预发布版本,您可以告诉安装脚本要安装哪个版本。

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

四、常见问题

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 设置环境变量:

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

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

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

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

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

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

[Service]
Environment="OLLAMA_HOST=0.0.0.0"

保存并退出。

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

systemctl daemon-reload
systemctl restart ollama

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

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

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

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

为您的用户帐户编辑或创建新变量,如 OLLAMA_HOST、OLLAMA_MODELS 等。

单击 OK/应用以保存

从新的终端窗口运行 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.1 和 0.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 是否会将我的提示和答案发送回 http://ollama.com?

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

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

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

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

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

(1). 如何在 Docker 中使用代理后面的 Ollama? 可以通过在启动容器时传递 -e HTTPS_PROXY=https://proxy.example.com 来配置 Ollama Docker 容器镜像使用代理。

另外,可以配置 Docker 守护程序使用代理。有关 Docker Desktop 在 macOS、Windows 和 Linux 上的说明,以及 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-smi 或 rocminfo)查看设备列表。您可以将其设置为无效的 GPU ID(例如,“-1”)以绕过 GPU 并回退到 CPU。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表