Ollama 本地部署与运行大型语言模型指南
本文详细介绍了 Ollama 在本地环境下的部署流程、配置方法及核心功能。内容涵盖 Linux 与 Docker 安装步骤、系统服务配置、模型拉取与运行、自定义 Modelfile 开发以及 REST API 集成方案。同时补充了 One-API 与 Open WebUI 的生态整合实践,并提供了常见问题的排查指南与 Python 客户端示例,旨在帮助开发者快速搭建私有化大模型运行环境。

本文详细介绍了 Ollama 在本地环境下的部署流程、配置方法及核心功能。内容涵盖 Linux 与 Docker 安装步骤、系统服务配置、模型拉取与运行、自定义 Modelfile 开发以及 REST API 集成方案。同时补充了 One-API 与 Open WebUI 的生态整合实践,并提供了常见问题的排查指南与 Python 客户端示例,旨在帮助开发者快速搭建私有化大模型运行环境。

Ollama 是一个专为在本地机器上便捷部署和运行大型语言模型(LLM)而设计的工具。它简化了模型的管理、下载和执行过程,支持 macOS、Linux 和 Windows 平台。
官方网站:https://ollama.com/ Github:https://github.com/ollama/ollama
在开始部署之前,请确保您的环境满足以下基本要求:
在 Linux 服务器上,可以通过官方提供的脚本直接安装:
curl -fsSL https://ollama.com/install.sh | sh
安装过程中会自动创建 ollama 用户,配置 systemd 服务,并尝试检测 NVIDIA GPU。
安装完成后,检查服务状态:
systemctl status ollama
如果显示 active (running),则说明服务正常启动。查看版本信息:
ollama -v
输出示例:ollama version is 0.1.38
对于容器化环境,可以使用 Docker Hub 上的镜像:
docker pull ollama/ollama
docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
默认情况下,Ollama 仅监听本地回环地址。若需远程访问,需修改 systemd 配置文件。
编辑 /etc/systemd/system/ollama.service,添加或修改环境变量:
[Service]
Environment="OLLAMA_HOST=0.0.0.0"
重载配置并重启服务:
systemctl daemon-reload
systemctl restart ollama
安全提示:开放 0.0.0.0 后,建议配合防火墙限制访问 IP,防止未授权调用。
默认模型存储路径因系统而异:
~/.ollama/models/usr/share/ollama/.ollama/modelsC:\Users\.ollama\models可通过环境变量 OLLAMA_MODELS 更改存储位置:
[Service]
Environment="OLLAMA_MODELS=/data/ollama/models"
权限问题处理:
若指定目录权限不属于 ollama 用户,服务将无法启动。解决方法如下:
chown -R ollama:ollama /data/ollama/models
chmod -R 755 /data/ollama/models
在多卡环境中,可通过 CUDA_VISIBLE_DEVICES 指定使用的显卡:
Environment="CUDA_VISIBLE_DEVICES=0,1"
遇到启动问题时,可查看详细日志:
journalctl -u ollama -f
Ollama 的 CLI 命令设计类似 Docker,易于上手:
| 命令 | 描述 |
|---|---|
ollama serve | 启动 Ollama 服务 |
ollama create | 从 Modelfile 创建自定义模型 |
ollama show | 显示模型元数据 |
ollama run | 运行模型进行对话 |
ollama pull | 从仓库拉取模型 |
ollama push | 将模型推送到仓库 |
ollama list | 列出已下载模型 |
ollama rm | 删除模型 |
以 Llama3 为例:
# 拉取模型
ollama pull llama3:8b
# 查看已下载模型
ollama list
# 运行模型
ollama run llama3:8b
运行后将进入交互式命令行模式,输入指令即可与模型对话。
Ollama 支持加载经过量化处理的 GGUF 格式模型。首先准备一个名为 Modelfile 的文件:
FROM ./Llama3-FP16.gguf
PARAMETER temperature 0.7
PARAMETER top_p 0.9
SYSTEM "你是一个专业的技术助手。"
创建模型:
ollama create my-model -f Modelfile
运行:
ollama run my-model
在 Modelfile 中可调整以下关键参数以优化生成效果:
temperature: 控制随机性,范围 0-2,值越高越发散。top_p: 核采样阈值,控制词汇选择范围。num_ctx: 上下文窗口大小,影响长文本处理能力。num_gpu: 强制指定 GPU 层数。如需使用原生 HuggingFace 模型,需先通过 llama.cpp 转换为 GGUF 格式。此过程涉及量化(Quantization),可将 FP16 模型压缩至 INT4 或 INT8,显著降低显存占用。
Ollama 提供标准的 HTTP API,便于与其他应用集成。
curl http://localhost:11434/api/generate -d '{
"model": "llama3",
"prompt": "你好啊"
}'
curl http://localhost:11434/api/chat -d '{
"model": "llama3",
"messages": [
{ "role": "user", "content": "解释一下什么是大语言模型" }
]
}'
import requests
response = requests.post(
'http://localhost:11434/api/chat',
json={
'model': 'llama3',
'messages': [{'role': 'user', 'content': '你好'}],
'stream': False
}
)
print(response.json()['message']['content'])
设置 stream: true 可实现逐字输出,适合前端展示:
curl http://localhost:11434/api/chat -d '{
"model": "llama3",
"messages": [{"role": "user", "content": "写一首诗"}],
"stream": true
}'
One-API 可作为统一网关管理多个模型源。部署方式如下:
docker run --name one-api -d --restart always -p 3001:3000 \
-e TZ=Asia/Shanghai justsong/one-api
在 One-API 后台添加 Ollama 渠道,填入本地服务地址(如 http://host.docker.internal:11434),即可通过 OpenAI 兼容接口调用。
Open WebUI 提供了友好的 Web 交互界面,支持多模型切换和历史记录管理。
docker run -d -p 3000:8080 \
-v open-webui:/app/backend/data \
--name open-webui \
ghcr.io/open-webui/open-webui:main
登录 WebUI 后,在 Settings 页面配置 Ollama Base URL。若 Ollama 与 WebUI 在同一宿主机,可使用 host.docker.internal;若在独立服务器,请填写对应 IP。
netstat -tulpn | grep 11434journalctl -u ollama -xeollama 用户对模型目录有读写权限。PARAMETER num_gpu 0。OLLAMA_HOST 是否设置为 0.0.0.0。如需完全移除 Ollama:
# 停止服务
systemctl stop ollama
systemctl disable ollama
# 删除二进制文件
rm $(which ollama)
# 清理服务配置
rm /etc/systemd/system/ollama.service
# 删除用户和数据
userdel ollama
groupdel ollama
rm -r /usr/share/ollama
Ollama 极大地降低了本地运行大模型的门槛,通过标准化的 CLI 和 API 接口,开发者可以快速构建私有化 AI 应用。结合 One-API 和 Open WebUI,可进一步扩展其管理能力与用户体验。在实际生产环境中,建议关注网络安全配置与资源监控,确保服务的稳定运行。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 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