Ollama 本地部署与运行大型语言模型指南
概述
Ollama 是一款专为在本地机器上便捷部署和运行大型语言模型(LLM)而设计的工具。它支持 macOS、Linux 和 Windows 多个平台,通过简单的命令行即可拉取并运行各种开源大模型。
Ollama 是一款专为本地机器设计的大型语言模型部署工具,支持多操作系统。本文涵盖安装配置、模型管理、API 调用及与 One-API、Open WebUI 的集成方案。内容包括 Linux/macOS/Windows 安装步骤、环境变量设置、GPU 加速配置、命令行操作详解以及 REST API 接口使用示例,并提供常见问题的排查方法。

Ollama 是一款专为在本地机器上便捷部署和运行大型语言模型(LLM)而设计的工具。它支持 macOS、Linux 和 Windows 多个平台,通过简单的命令行即可拉取并运行各种开源大模型。
官方网站:https://ollama.com/ Github:https://github.com/ollama/ollama
Ollama 支持 macOS、Linux 和 Windows 多个平台运行。
以 Linux 操作系统为例,使用以下命令直接安装:
root@master:~/work# curl -fsSL https://ollama.com/install.sh | sh
安装过程中会显示下载进度、创建用户、配置 systemd 服务等信息。例如:
>>> Downloading ollama...
>>> Installing ollama to /usr/local/bin...
>>> Creating ollama user...
>>> Adding ollama user to render group...
>>> NVIDIA GPU installed.
macOS 用户可以通过 Homebrew 或官方安装包进行安装:
# 使用 Homebrew
brew install ollama
# 或使用官方安装包
curl -fsSL https://ollama.com/install.sh | sh
Windows 用户可直接访问官网下载安装程序,或在 PowerShell 中执行:
irm https://ollama.com/install.ps1 | iex
Docker Hub 上提供了官方镜像,适合容器化部署环境:
docker pull ollama/ollama
docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
安装成功后,可以通过编辑 vim /etc/systemd/system/ollama.service 文件来对 Ollama 进行配置。
由于 Ollama 的默认参数配置,启动时设置了仅本地访问。若需开启远程访问,需配置 HOST 监听任何来源 IP:
[Service]
Environment="OLLAMA_HOST=0.0.0.0"
默认情况下,不同操作系统大模型存储的路径如下:
官方提供设置环境变量 OLLAMA_MODELS 来更改模型文件的存储路径:
[Service]
Environment="OLLAMA_MODELS=/data/ollama/models"
注意: 如果指定目录权限不属于 ollama 用户,服务可能无法启动。可通过授权解决:
chown ollama:ollama /data/ollama/models
查看日志调试问题:
journalctl -u ollama
配置环境变量 CUDA_VISIBLE_DEVICES 来指定运行 Ollama 的 GPU,适用于多卡环境:
Environment="CUDA_VISIBLE_DEVICES=0,1"
重载 systemd 并重启 Ollama:
systemctl daemon-reload
systemctl restart ollama
浏览器访问 http://IP:11434/,出现 Ollama is running 代表成功。
Shell 窗口输入 ollama 可打印相关命令说明。操作命令跟 Docker 非常相似。
root@master:~# ollama
Usage:
ollama [flags]
ollama [command]
Available Commands:
serve Start ollama
create Create a model from a Modelfile
show Show information for a model
run Run a model
pull Pull a model from a registry
push Push a model to a registry
list List models
ps List running models
cp Copy a model
rm Remove a model
help Help about any command
常用命令速查:
ollama serve: 启动 ollamaollama create: 从模型文件创建模型ollama show: 显示模型信息ollama run: 运行模型ollama pull: 从注册仓库中拉取模型ollama push: 将模型推送到注册仓库ollama list: 列出已下载模型ollama rm: 删除模型Ollama 拥有类似 Docker Hub 的模型库,在这里可以查找受 Ollama 支持的大模型。
以下是一些可以下载的示例模型:
注意:Ollama 支持 8 GB 的 RAM 可用于运行 7B 型号,16 GB 可用于运行 13B 型号,32 GB 可用于运行 33B 型号。当然这些模型是经过量化过的。
root@master:~# ollama pull llama3:8b
pulling manifest
pulling 00e1317cbf74... 100%
verifying sha256 digest
writing manifest
success
root@master:~# ollama list
NAME ID SIZE MODIFIED
llama3:8b a6990ed6be41 4.7 GB 3 minutes ago
root@master:~# ollama run llama3:8b
>>> hi
Hi! How's your day going so far? I'm here to chat and help with any questions or topics you'd like to discuss. What's on your mind?
Ollama 支持在 Modelfile 文件中导入 GGUF 模型。创建一个名为 Modelfile 的文件,其中包含一条 FROM 指令,包含要导入的模型的本地文件路径。
FROM ./Llama3-FP16.gguf
在 Ollama 中创建模型:
ollama create llama3 -f Modelfile
运行模型:
ollama run llama3
Ollama 库中的模型可以通过 Modelfile 进行自定义配置,包括系统提示词和参数调整。
FROM llama3
# 设置温度参数
PARAMETER temperature 1
# 设置 SYSTEM 消息
SYSTEM """
作为 AI 智能助手,你将竭尽所能为员工提供严谨和有帮助的答复。
"""
更多参数说明参考官方文档,常见参数包括 temperature, top_p, num_ctx 等。
所谓从 PyTorch 或 Safetensors 导入 Ollama,其实就是使用 llama.cpp 项目,对 PyTorch 或 Safetensors 类型的模型进行转换、量化处理成 GGUF 格式的模型,然后再用 Ollama 加载使用。
运行模型后,执行 ollama serve 命令启动 Ollama 服务,然后就可以通过 API 形式进行模型调用。
ollama serve 会自动启动一个 http 服务,默认监听 127.0.0.1:11434。首次启动会自动生成 ssh 私钥文件。
curl http://IP:11434/api/generate -d '{
"model": "llama3",
"prompt": "你好啊",
"stream": false
}'
curl http://IP:11434/api/chat -d '{
"model": "llama3",
"messages": [
{
"role": "system",
"content": "你是一个乐于助人的 AI 助手。"
},
{
"role": "user",
"content": "你好啊"
}
],
"stream": false
}'
请求参数说明:
model: 模型名称messages: 消息列表,包含 role (system/user/assistant) 和 contentstream: 是否流式输出One-API 是一个 OpenAI 接口管理 & 分发系统,支持各类大模型。这里使用 Docker 快速进行部署。
docker pull justsong/one-api
mkdir -p /usr/local/docker/oneapi
docker run --name one-api -d --restart always -p 3001:3000 -e TZ=Asia/Shanghai -v /usr/local/docker/oneapi:/data justsong/one-api
在创建渠道时选择 Ollama,然后手工填上自己要使用的模型,密钥任意,最重要的是后面在代理中写上自己 ollama 服务的地址即可。测试成功后,在各类 OpenAI 套壳软件中,通过配置类似于 OpenAI 的密钥、API 地址等参数,就可以像使用 OpenAI 一样。
Open WebUI 是一个可扩展、功能丰富且用户友好的自托管 WebUI,旨在完全离线操作。它支持各种 LLM 运行程序,包括 Ollama 和 OpenAI 兼容的 API。
根据场景不同,可分为以下几类:
默认配置安装(计算机上有 Ollama):
docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
Ollama 位于不同的服务器:
docker run -d -p 3000:8080 -e OLLAMA_BASE_URL=https://example.com -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
支持 Nvidia GPU:
docker run -d -p 3000:8080 --gpus all --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:cuda
捆绑 Ollama 支持:
docker run -d -p 3000:8080 --gpus=all -v ollama:/root/.ollama -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:ollama
访问 http://IP:3000,创建一个账号。进入 Settings 中进行相关设置,包括语言、Ollama 的访问地址以及选择模型开始聊天。
CUDA_VISIBLE_DEVICES。OLLAMA_HOST 已设置为 0.0.0.0 并允许防火墙访问。停止并禁用服务:
systemctl stop ollama
systemctl disable ollama
删除服务文件和 Ollama 二进制文件:
rm /etc/systemd/system/ollama.service
rm $(which ollama)
清理 Ollama 用户和组:
rm -r /usr/share/ollama
userdel ollama
groupdel ollama
清理模型数据目录(可选):
rm -rf /usr/share/ollama/.ollama/models

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online