>> hiHello!更多示例,请参考examples目录。有关使用 Modelfile 的更多信息,请参考Modelfile文档。_ollama 如">
赞
踩
Ollama 是一个用于在本地运行大型语言模型的工具,下面将介绍如何在不同操作系统上安装和使用 Ollama。
官网:https://ollama.com
Github:https://github.com/ollama/ollama
在 macOS 上安装 Ollama,请点击以下链接进行下载:
在 Windows 上安装 Ollama,请点击以下链接进行下载:
在 Linux 上,可以通过以下命令进行安装:
curl -fsSL https://ollama.com/install.sh | sh
如果需要手动安装,请参考手动安装说明
Ollama 官方提供了 Docker 镜像,可以在 Docker Hub 上获取:
Ollama Docker 镜像 ollama/ollama
要运行并与 Llama 2 进行交流,可以使用以下命令:
ollama run llama2
Ollama 支持一系列模型,可以在 ollama.com/library 上找到。以下是一些示例模型及其下载方式:
模型 | 参数数量 | 大小 | 下载方式 |
---|---|---|---|
Llama 2 | 7B | 3.8GB | ollama run llama2 |
Mistral | 7B | 4.1GB | ollama run mistral |
Dolphin Phi | 2.7B | 1.6GB | ollama run dolphin-phi |
Phi-2 | 2.7B | 1.7GB | ollama run phi |
Neural Chat | 7B | 4.1GB | ollama run neural-chat |
Starling | 7B | 4.1GB | ollama run starling-lm |
Code Llama | 7B | 3.8GB | ollama run codellama |
Llama 2 Uncensored | 7B | 3.8GB | ollama run llama2-uncensored |
Llama 2 13B | 13B | 7.3GB | ollama run llama2:13b |
Llama 2 70B | 70B | 39GB | ollama run llama2:70b |
Orca Mini | 3B | 1.9GB | ollama run orca-mini |
Vicuna | 7B | 3.8GB | ollama run vicuna |
LLaVA | 7B | 4.5GB | ollama run llava |
Gemma | 2B | 1.4GB | ollama run gemma:2b |
Gemma | 7B | 4.8GB | ollama run gemma:7b |
注意:运行 7B 模型需要至少 8GB 的 RAM,运行 13B 模型需要 16GB RAM,运行 33B 模型需要 32GB RAM。
Ollama 支持在 Modelfile 中导入 GGUF 模型:
创建一个名为 Modelfile
的文件,使用 FROM
指令指定要导入的模型的本地文件路径。
FROM ./vicuna-33b.Q4_0.gguf
创建模型
ollama create example -f Modelfile
运行模型
ollama run example
查看导入模型指南获取更多信息。
可以使用提示来自定义 Ollama 模型。例如,要自定义 llama2
模型:
ollama pull llama2
创建一个 Modelfile
:
FROM llama2
# 设置温度为 1 [值越高越有创造性,值越低越连贯]
PARAMETER temperature 1
# 设置系统消息
SYSTEM """
You are Mario from Super Mario Bros. Answer as Mario, the assistant, only.
"""
接下来,创建并运行模型:
ollama create mario -f ./Modelfile
ollama run mario
>>> hi
Hello! It's your friend Mario.
更多示例,请参考examples目录。有关使用 Modelfile 的更多信息,请参考Modelfile文档。
使用 ollama create
命令从 Modelfile 创建模型。
ollama create mymodel -f ./Modelfile
ollama pull llama2
此命令也可用于更新本地模型。只会拉取差异部分。
ollama rm llama2
ollama cp llama2 my-llama2
对于多行输入,可以使用 """
包裹文本:
>>> """Hello,
... world!
... """
I'm a basic program that prints the famous "Hello, world!" message to the console.
>>> What's in this image? /Users/jmorgan/Desktop/smile.png
The image features a yellow smiley face, which is likely the central focus of the picture.
$ ollama run llama2 "Summarize this file: $(cat README.md)"
Ollama is a lightweight, extensible framework for building and running language models on the local machine. It provides a simple API for creating, running, and managing models, as well as a library of pre-built models that can be easily used in a variety of applications.
ollama list
当您想要启动 Ollama 而不运行桌面应用程序时,可以使用 ollama serve
。
安装 cmake
和 go
:
brew install cmake go
然后生成依赖项:
go generate ./...
然后构建二进制文件:
go build .
更详细的说明可以在开发者指南中找到。
接下来,启动服务器:
./ollama serve
最后,在另一个 shell 中,运行一个模型:
./ollama run llama2
Ollama 提供了用于运行和管理模型的 REST API。
curl http://localhost:11434/api/generate -d '{
"model": "llama2",
"prompt":"Why is the sky blue?"
}'
curl http://localhost:11434/api/chat -d '{
"model": "mistral",
"messages": [
{ "role": "user", "content": "why is the sky blue?" }
]
}'
查看API 文档获取所有端点信息。
注意: OpenAI 兼容性是实验性的,可能会有重大调整,包括破坏性更改。要完全访问 Ollama API,请查看 Ollama Python库、JavaScript库 和 REST API。
Ollama 提供了与 OpenAI API 部分功能的实验性兼容性,以帮助将现有应用程序连接到 Ollama。
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', )
import OpenAI from 'openai'
const openai = new OpenAI({
baseURL: 'http://localhost:11434/v1/',
// 必需但被忽略
apiKey: 'ollama',
})
const chatCompletion = await openai.chat.completions.create({
messages: [{ role: 'user', content: 'Say this is a test' }],
model: 'llama2',
})
curl
curl http://localhost:11434/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "llama2",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello!"
}
]
}'
/v1/chat/completions
model
messages
content
content
部分的数组frequency_penalty
presence_penalty
response_format
seed
stop
stream
temperature
top_p
max_tokens
logit_bias
tools
tool_choice
user
n
seed
将始终将 temperature
设置为 0
finish_reason
将始终为 stop
usage.prompt_tokens
将为 0在使用模型之前,先在本地拉取它:ollama pull
:
ollama pull llama2
对于依赖于默认 OpenAI 模型名称(如 gpt-3.5-turbo
)的工具,可以使用 ollama cp
将现有模型名称复制到临时名称:
ollama cp llama2 gpt-3.5-turbo
然后,可以在 model
字段中指定这个新模型名称:
curl http://localhost:11434/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-3.5-turbo",
"messages": [
{
"role": "user",
"content": "Hello!"
}
]
}'
本教程将指导您如何导入 GGUF、PyTorch 或 Safetensors 模型。
Modelfile
首先创建一个 Modelfile
文件。这个文件是您模型的蓝图,指定了权重、参数、提示模板等信息。
FROM ./mistral-7b-v0.1.Q4_0.gguf
(可选)许多聊天模型需要一个提示模板才能正确回答问题。您可以在 Modelfile
中使用 TEMPLATE
指令指定默认的提示模板:
FROM ./mistral-7b-v0.1.Q4_0.gguf
TEMPLATE "[INST] {{ .Prompt }} [/INST]"
最后,从您的 Modelfile
创建一个模型:
ollama create example -f Modelfile
接下来,使用 ollama run
测试模型:
ollama run example "你最喜欢的调味品是什么?"
从 PyTorch 和 Safetensors 导入比从 GGUF 导入更复杂。正在进行使其更容易的改进工作。
首先,克隆 ollama/ollama
仓库:
git clone git@github.com:ollama/ollama.git ollama
cd ollama
然后获取其 llama.cpp
子模块:
git submodule init
git submodule update llm/llama.cpp
接下来,安装 Python 依赖项:
python3 -m venv llm/llama.cpp/.venv
source llm/llama.cpp/.venv/bin/activate
pip install -r llm/llama.cpp/requirements.txt
然后构建 quantize
工具:
make -C llm/llama.cpp quantize
如果模型当前托管在 HuggingFace 仓库中,首先克隆该仓库以下载原始模型。
安装 Git LFS,验证安装后,然后克隆模型仓库:
git lfs install
git clone https://huggingface.co/mistralai/Mistral-7B-Instruct-v0.1 model
注意:某些模型架构需要使用特定的转换脚本。例如,Qwen 模型需要运行
convert-hf-to-gguf.py
而不是convert.py
python llm/llama.cpp/convert.py ./model --outtype f16 --outfile converted.bin
llm/llama.cpp/quantize converted.bin quantized.bin q4_0
Modelfile
接下来,为您的模型创建一个 Modelfile
:
FROM quantized.bin
TEMPLATE "[INST] {{ .Prompt }} [/INST]"
最后,从您的 Modelfile
创建一个模型:
ollama create example -f Modelfile
接下来,使用 ollama run
测试模型:
ollama run example "你最喜欢的调味品是什么?"
模型发布处于早期阿尔法版。如果您想发布模型以与他人共享,请按照以下步骤操作:
cat ~/.ollama/id_ed25519.pub
type %USERPROFILE%\.ollama\id_ed25519.pub
cat /usr/share/ollama/.ollama/id_ed25519.pub
接下来,将您的模型复制到您的用户名空间:
ollama cp example <your username>/example
然后推送模型:
ollama push <your username>/example
发布后,您的模型将在 https://ollama.com/<your username>/example
上可用。
量化选项如下(从最高到最低的量化级别)。注意:某些架构如 Falcon 不支持 K quants。
q2_K
q3_K
q3_K_S
q3_K_M
q3_K_L
q4_0
(推荐)q4_1
q4_K
q4_K_S
q4_K_M
q5_0
q5_1
q5_K
q5_K_S
q5_K_M
q6_K
q8_0
f16
注意:
Modelfile
语法正在开发中
模型文件是使用Ollama创建和共享模型的蓝图。
Modelfile
的格式如下:
# 注释
INSTRUCTION 参数
指令 | 描述 |
---|---|
FROM (必需) | 定义要使用的基础模型。 |
PARAMETER | 设置Ollama运行模型的参数。 |
TEMPLATE | 要发送到模型的完整提示模板。 |
SYSTEM | 指定将设置在模板中的系统消息。 |
ADAPTER | 定义要应用于模型的(Q)LoRA适配器。 |
LICENSE | 指定法律许可。 |
MESSAGE | 指定消息历史。 |
Modelfile
创建一个马里奥蓝图的Modelfile
示例:
FROM llama2
# 将温度设置为1 [温度越高,创造性越强,温度越低,连贯性越强]
PARAMETER temperature 1
# 将上下文窗口大小设置为4096,这控制了LLM可以使用多少标记作为上下文来生成下一个标记
PARAMETER num_ctx 4096
# 设置自定义系统消息以指定聊天助手的行为
SYSTEM 你是超级马里奥兄弟中的马里奥,充当助手。
使用方法:
Modelfile
)ollama create choose-a-model-name -f <文件位置,例如./Modelfile>
ollama run choose-a-model-name
更多示例可在示例目录中找到。
Modelfile
查看ollama.com/library中模型底层的Modelfile
有两种方法:
选项1:从模型的标签页面查看详细信息:
转到特定模型的标签页(例如https://ollama.com/library/llama2/tags)
单击标签(例如https://ollama.com/library/llama2:13b)
向下滚动至“Layers”
FROM
指令不存在,则表示该模型是从本地文件创建的选项2:使用ollama show
打印任何本地模型的Modelfile
,如下所示:
> ollama show --modelfile llama2:13b # 由“ollama show”生成的Modelfile # 要基于此构建新的Modelfile,请将FROM行替换为: # FROM llama2:13b FROM /root/.ollama/models/blobs/sha256:123abc TEMPLATE """[INST] {{ if .System }}<<SYS>>{{ .System }}<</SYS>> {{ end }}{{ .Prompt }} [/INST] """ SYSTEM """""" PARAMETER stop [INST] PARAMETER stop [/INST] PARAMETER stop <<SYS>> PARAMETER stop <</SYS>>
FROM
指令定义创建模型时要使用的基础模型。
FROM <模型名称>:<标签>
FROM llama2
可用基础模型列表:
https://github.com/jmorganca/ollama#model-library
bin
文件构建FROM ./ollama-model.bin
应将此bin文件位置指定为绝对路径或相对于Modelfile
位置的路径。
PARAMETER
指令定义在运行模型时可以设置的参数。
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 |
该模板将传递到模型中。它可以包括(可选)系统消息、用户消息和模型的响应。注意:语法可能是特定于模型的。模板使用Go 模板语法。
在模板中,我们使用以下变量来表示不同部分的内容:
变量 | 描述 |
---|---|
{{ .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
"""
SYSTEM
指令用于指定模板中要使用的系统消息。
SYSTEM """<system message>"""
ADAPTER
指令用于指定要应用于基础模型的 LoRA 适配器。该指令的值应为绝对路径或相对于 Modelfile 的路径,并且文件必须采用 GGML 文件格式。适配器应该是从基础模型调整过的,否则行为是不确定的。
ADAPTER ./ollama-lora.bin
LICENSE
指令允许您指定在使用此 Modelfile 的模型下共享或分发的法律许可。
LICENSE """
<许可证文本>
"""
MESSAGE
指令允许您为模型指定消息历史记录,以便在响应时使用。使用多个 MESSAGE
命令的迭代来构建对话,这将引导模型以类似的方式回答。
MESSAGE <角色> <消息>
MESSAGE user 多伦多在加拿大吗?
MESSAGE assistant 是的
MESSAGE user 萨克拉门托在加拿大吗?
MESSAGE assistant 不是
MESSAGE user 安大略在加拿大吗?
MESSAGE assistant 是的
Modelfile
不区分大小写。在示例中,使用大写指令是为了更容易区分它与参数。FROM
指令首先出现是为了使其易于阅读。通过本教程,您可以更好地了解如何使用模板化模型的完整提示模板。希望这篇博客能帮助您更好地应用模板化模型。
通过运行以下一行命令来安装Ollama:
curl -fsSL https://ollama.com/install.sh | sh
虽然AMD已经将amdgpu
驱动程序贡献给了官方Linux内核源代码,但版本较旧,可能不支持所有ROCm功能。我们建议您从https://www.amd.com/en/support/linux-drivers下载并安装最新的驱动程序,以获得对您的Radeon GPU最佳支持。
ollama
二进制文件Ollama被分发为一个独立的二进制文件。将其下载到您的PATH目录中:
sudo curl -L https://ollama.com/download/ollama-linux-amd64 -o /usr/bin/ollama
sudo chmod +x /usr/bin/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
Restart=always
RestartSec=3
[Install]
WantedBy=default.target
然后启动服务:
sudo systemctl daemon-reload
sudo systemctl enable ollama
下载并安装 CUDA。
通过运行以下命令验证驱动程序是否已安装,该命令应打印有关您的GPU的详细信息:
nvidia-smi
下载并安装 ROCm。
确保安装ROCm v6。
使用systemd
启动Ollama:
sudo systemctl start ollama
通过再次运行安装脚本来更新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
要查看作为启动服务运行的Ollama的日志,请运行:
journalctl -u ollama
删除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 <container-name>
(使用 docker ps
查找容器名称)
如果在终端中手动运行 ollama serve
,日志将显示在该终端上。
在 Windows 上运行 Ollama 时,有几个不同的位置。您可以通过按 <cmd>+R
键并输入以下内容在资源管理器窗口中查看它们:
explorer %LOCALAPPDATA%\Ollama
查看日志explorer %LOCALAPPDATA%\Programs\Ollama
浏览二进制文件(安装程序会将其添加到用户 PATH)explorer %HOMEPATH%\.ollama
浏览模型和配置存储位置explorer %TEMP%
临时可执行文件存储在一个或多个 ollama*
目录中要启用额外的调试日志以帮助解决问题,首先从托盘菜单中退出运行的应用程序,然后在 PowerShell 终端中执行以下命令:
$env:OLLAMA_DEBUG="1"
& "ollama app.exe"
加入 Discord 获取帮助解释日志。
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
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 的支持。
如果在 Linux 上遇到问题并希望安装旧版本,或者想在正式发布之前尝试预发布版本,您可以告诉安装脚本要安装哪个版本。
curl -fsSL https://ollama.com/install.sh | OLLAMA_VERSION="0.1.29" sh
在 macOS 和 Windows 上,Ollama 会自动下载更新。点击任务栏或菜单栏项目,然后点击“重新启动以更新”来应用更新。也可以通过手动下载最新版本来安装更新。
在 Linux 上,重新运行安装脚本:
curl -fsSL https://ollama.com/install.sh | sh
查看有关使用日志的更多信息,请参阅故障排除文档。
默认情况下,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
}
}'
Ollama 服务器可以通过环境变量进行配置。
如果 Ollama 作为 macOS 应用程序运行,应使用 launchctl
设置环境变量:
对于每个环境变量,调用 launchctl setenv
。
launchctl setenv OLLAMA_HOST "0.0.0.0"
重新启动 Ollama 应用程序。
如果 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
在 Windows 上,Ollama 继承您的用户和系统环境变量。
首先通过单击任务栏中的 Ollama 退出它
从控制面板中编辑系统环境变量
为您的用户帐户编辑或创建新变量,如 OLLAMA_HOST
、OLLAMA_MODELS
等。
单击 OK/应用以保存
从新的终端窗口运行 ollama
默认情况下,Ollama 绑定到 127.0.0.1 端口 11434。使用 OLLAMA_HOST
环境变量更改绑定地址。
有关如何在您的平台上设置环境变量,请参考上面的部分[如何配置 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;
}
}
可以使用各种隧道工具访问 Ollama。例如,使用 Ngrok:
ngrok http 11434 --host-header="localhost:11434"
Ollama 默认允许来自 127.0.0.1
和 0.0.0.0
的跨源请求。可以使用 OLLAMA_ORIGINS
配置额外的来源。
有关如何在您的平台上设置环境变量,请参考上面的部分[如何配置 Ollama 服务器]。
~/.ollama/models
/usr/share/ollama/.ollama/models
C:\Users\<username>\.ollama\models
如果需要使用不同的目录,将环境变量 OLLAMA_MODELS
设置为所选目录。
有关如何在您的平台上设置环境变量,请参考上面的部分[如何配置 Ollama 服务器]。
不会。Ollama 在本地运行,对话数据不会离开您的计算机。
已经有大量针对 VSCode 以及其他编辑器的插件可供使用,这些插件利用了 Ollama。请查看主存储库自述文件底部的扩展和插件列表。
如果配置了 HTTP_PROXY
或 HTTPS_PROXY
,Ollama 与代理服务器兼容。在使用这些变量时,请确保在 ollama serve
可以访问这些值的地方设置它们。在使用 HTTPS_PROXY
时,请确保代理证书已安装为系统证书。有关如何在您的平台上使用环境变量,请参考上面的部分。
可以通过在启动容器时传递 -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
可以在 Linux 或 Windows(使用 WSL2)中配置 Ollama Docker 容器以使用 GPU 加速。这需要 nvidia-container-toolkit。有关更多详细信息,请参阅 ollama/ollama。
由于缺乏 GPU 透传和仿真,Docker Desktop 在 macOS 上不支持 GPU 加速。
这可能会影响安装 Ollama,以及下载模型。
打开 控制面板 > 网络和 Internet > 查看网络状态和任务
,然后在左侧面板点击 更改适配器设置
。找到 vEthernel (WSL)
适配器,右键单击并选择 属性
。
点击 配置
,打开 高级
选项卡。搜索每个属性,直到找到 大型发送卸载版本 2(IPv4)
和 大型发送卸载版本 2(IPv6)
。禁用 这两个属性。
如果使用 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"}'
默认情况下,模型在内存中保留 5 分钟,然后被卸载。这允许在向 LLM 发送大量请求时获得更快的响应时间。但是,您可能希望在 5 分钟之前释放内存,或者永久保留模型加载。使用 /api/generate
和 /api/chat
API 端点的 keep_alive
参数来控制模型在内存中保留的时间。
keep_alive
参数可以设置为:
例如,要预加载模型并保留在内存中,请使用:
curl http://localhost:11434/api/generate -d '{"model": "llama2", "keep_alive": -1}'
要卸载模型并释放内存,请使用:
curl http://localhost:11434/api/generate -d '{"model": "llama2", "keep_alive": 0}'
默认情况下,在 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。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。