Ollama 概述
Ollama 是一个专为在本地机器上便捷部署和运行大型语言模型(LLM)而设计的工具。它简化了模型的管理、下载和执行过程,支持 macOS、Linux 和 Windows 平台。
官方网站:https://ollama.com/ Github:https://github.com/ollama/ollama
系统要求与前置条件
在开始部署之前,请确保您的环境满足以下基本要求:
- 操作系统:macOS (12.3+), Linux (Ubuntu 20.04+, CentOS 7+), Windows (10/11)
- 内存:至少 8GB RAM(推荐 16GB 以上以运行 7B 及以上参数量的模型)
- 存储:根据模型大小预留空间,通常 4B-7B 模型需要 4-8GB 磁盘空间
- GPU:可选,但推荐使用 NVIDIA GPU 以获得更好的推理速度。需安装 CUDA 驱动
安装指南
Linux 系统安装
在 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 部署
对于容器化环境,可以使用 Docker Hub 上的镜像:
docker pull ollama/ollama
docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
配置详解
1. 网络访问配置
默认情况下,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,防止未授权调用。
2. 模型存储路径配置
默认模型存储路径因系统而异:
- macOS:
~/.ollama/models - Linux:
/usr/share/ollama/.ollama/models - Windows:
C:\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
3. GPU 加速配置
在多卡环境中,可通过 CUDA_VISIBLE_DEVICES 指定使用的显卡:
Environment="CUDA_VISIBLE_DEVICES=0,1"
4. 调试日志
遇到启动问题时,可查看详细日志:
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
运行后将进入交互式命令行模式,输入指令即可与模型对话。
自定义模型开发
基于 GGUF 导入
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 层数。
从 PyTorch/Safetensors 转换
如需使用原生 HuggingFace 模型,需先通过 llama.cpp 转换为 GGUF 格式。此过程涉及量化(Quantization),可将 FP16 模型压缩至 INT4 或 INT8,显著降低显存占用。
REST API 集成
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": "解释一下什么是大语言模型" }
]
}'
Python 客户端示例
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 管理
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 界面
Open WebUI 提供了友好的 Web 交互界面,支持多模型切换和历史记录管理。
Docker 部署
docker run -d -p 3000:8080 \
-v open-webui:/app/backend/data \
--name open-webui \
ghcr.io/open-webui/open-webui:main
连接 Ollama
登录 WebUI 后,在 Settings 页面配置 Ollama Base URL。若 Ollama 与 WebUI 在同一宿主机,可使用 host.docker.internal;若在独立服务器,请填写对应 IP。
常见问题排查
1. 服务无法启动
- 检查端口 11434 是否被占用:
netstat -tulpn | grep 11434 - 检查日志:
journalctl -u ollama -xe - 确认
ollama用户对模型目录有读写权限。
2. 显存不足
- 尝试减小模型参数量(如使用 3B 或 7B 版本)。
- 启用 CPU 卸载:在 Modelfile 中添加
PARAMETER num_gpu 0。 - 增加 Swap 分区作为临时内存补充。
3. 远程连接失败
- 确认防火墙规则允许 11434 端口入站。
- 检查
OLLAMA_HOST是否设置为0.0.0.0。 - 若使用 HTTPS,需配置反向代理证书。
卸载步骤
如需完全移除 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,可进一步扩展其管理能力与用户体验。在实际生产环境中,建议关注网络安全配置与资源监控,确保服务的稳定运行。


