Ubuntu 20.04 下使用 Ollama 本地部署 AI 大模型
-
- 一、概述
- [二、Ollama 安装](#二、Ollama 安装)
-
- [2.1 一键安装(推荐)](#2.1 一键安装(推荐))
- [2.2 本地安装(离线/手动)](#2.2 本地安装(离线/手动))
- [2.3 验证安装](#2.3 验证安装)
- [2.4 启动 Ollama 服务](#2.4 启动 Ollama 服务)
- 三、环境变量配置
-
- [3.1 OLLAMA_MODELS------自定义模型存储路径](#3.1 OLLAMA_MODELS——自定义模型存储路径)
- [3.2 OLLAMA_HOST------允许远程访问](#3.2 OLLAMA_HOST——允许远程访问)
- [3.3 OLLAMA_KEEP_ALIVE------模型驻留时间](#3.3 OLLAMA_KEEP_ALIVE——模型驻留时间)
- [3.4 其他常用变量](#3.4 其他常用变量)
- 四、模型管理
-
- [4.1 拉取模型](#4.1 拉取模型)
- [4.2 查看本地模型](#4.2 查看本地模型)
- [4.3 运行模型](#4.3 运行模型)
- [4.4 查看当前加载的模型](#4.4 查看当前加载的模型)
- [4.5 模型推荐](#4.5 模型推荐)
-
- [12GB 显存推荐(代码模型)](#12GB 显存推荐(代码模型))
- [多卡配置(14 × 12GB = 168GB 显存)](#多卡配置(14 × 12GB = 168GB 显存))
- 五、模型迁移到大硬盘
-
- [5.1 定位模型实际存储位置](#5.1 定位模型实际存储位置)
- [5.2 停止服务](#5.2 停止服务)
- [5.3 创建目标目录](#5.3 创建目标目录)
- [5.4 复制模型文件](#5.4 复制模型文件)
- [5.5 验证复制完整性](#5.5 验证复制完整性)
- [5.6 配置环境变量](#5.6 配置环境变量)
- [5.7 重启服务](#5.7 重启服务)
- [5.8 验证](#5.8 验证)
- [5.9 (确认无误后)删除旧目录释放空间](#5.9 (确认无误后)删除旧目录释放空间)
- [六、Python 调用本地 Ollama(OpenAI 兼容格式)](#六、Python 调用本地 Ollama(OpenAI 兼容格式))
-
- [6.1 安装 Python 依赖](#6.1 安装 Python 依赖)
- [6.2 编写调用代码](#6.2 编写调用代码)
- [6.3 运行与测试](#6.3 运行与测试)
- [6.4 注意事项](#6.4 注意事项)
- [6.5 进阶用法](#6.5 进阶用法)
- 七、常见问题排查
-
- [7.1 连接超时(IPv6 问题)](#7.1 连接超时(IPv6 问题))
- [7.2 权限不足](#7.2 权限不足)
- [7.3 服务启动失败](#7.3 服务启动失败)
- [7.4 模型加载超时](#7.4 模型加载超时)
- [7.5 模型下载中断](#7.5 模型下载中断)
- [7.6 模型不支持工具调用](#7.6 模型不支持工具调用)
- 八、总结
- 由于本人水平有限,难免出现错漏,敬请批评改正。
- 更多精彩内容,可点击进入我的个人主页查看
一、概述
Ollama 是一个专为本地化 AI 模型设计的轻量级工具,通过轻量化架构与动态量化技术,实现了在消费级硬件上运行大模型的能力。相比云端服务,本地部署具有数据隐私可控、零延迟推理、硬件资源自主调配三大优势。
系统要求(配置越高越好):
- 操作系统:Ubuntu 20.04 LTS 及以上
- 内存:≥64GB(内存越大越好)
- 存储:≥50GB 可用空间(模型文件较大)
- GPU:NVIDIA 显卡,建议显存 ≥12GB,显存越大越好
二、Ollama 安装
2.1 一键安装(推荐)
在终端执行以下命令:
bash
curl -fsSL https://ollama.com/install.sh | sh
此命令会自动下载并安装 Ollama 到系统。
国内网络加速:若下载缓慢,可设置镜像源后执行:
bashexport OLLAMA_MIRROR="https://ghproxy.cn/https://github.com/ollama/ollama/releases/latest/download" curl -fsSL https://ollama.com/install.sh | sed "s|https://ollama.com/download|$OLLAMA_MIRROR|g" | sh
2.2 本地安装(离线/手动)
如果网络环境受限或无法直接运行安装脚本,可参照 Ollama Linux 官方文档 手动下载安装包进行部署。
-
下载安装包
从 Ollama GitHub Releases 下载适用于 Linux 的压缩包(
ollama-linux-amd64.tar.zst),或通过官方链接直接下载:bashcurl -fsSL https://ollama.com/download/ollama-linux-amd64.tar.zst -o ollama-linux-amd64.tar.zst注意:由于国内访问 GitHub 较慢,上述命令可能超时。可尝试以下替代镜像源(任选其一):
- Ollama 中文网:提供国内镜像下载地址,访问 https://github.com/ollamacn 获取最新链接。
- Newbe 镜像站 :
https://www.newbe.pro/Mirrors/Mirrors-ollama,选择ollama-linux-amd64.tgz下载。 - GitHub 加速器 :可尝试
githubfast.com等加速服务,但需注意其可用性可能随时变化。
-
解压到系统目录
如从旧版本升级,需先移除旧库文件:
bashsudo rm -rf /usr/lib/ollama将安装包解压到
/usr:bashsudo tar -C /usr -xf ollama-linux-amd64.tar.zst若下载的是
.tgz格式,使用sudo tar -C /usr -xzf ollama-linux-amd64.tgz。 -
验证安装
bashollama --version -
(可选)配置 systemd 服务
手动安装后,如需开机自启,可参照官方文档创建 systemd 服务文件。快速启用(如果未自动生成):
bashsudo systemctl daemon-reload sudo systemctl enable ollama sudo systemctl start ollama
说明 :移除了原文档中使用
ghproxy.cn的curl下载命令,因为该镜像在实际使用中经常超时,效果不稳定。建议优先使用 Ollama 中文网或 Newbe 镜像站等更可靠的国内镜像源。
2.3 验证安装
bash
ollama --version
2.4 启动 Ollama 服务
bash
sudo systemctl start ollama
sudo systemctl enable ollama # 设置开机自启
三、环境变量配置
Ollama 提供了多个环境变量用于自定义运行行为,以下是几个最常用的配置:
3.1 OLLAMA_MODELS------自定义模型存储路径
默认情况下,Ollama 将模型存储在 ~/.ollama/models(Linux)或 /usr/share/ollama/.ollama/models。系统盘空间有限时,建议将模型迁移到大容量硬盘。
方法一:通过 systemd 配置(推荐)
bash
sudo systemctl edit ollama
添加以下内容:
[Service]
Environment="OLLAMA_MODELS=/data/ollama/models"
保存后执行:
bash
sudo systemctl daemon-reload
sudo systemctl restart ollama
方法二:临时设置(仅当前终端生效)
bash
export OLLAMA_MODELS=/path/to/your/models
3.2 OLLAMA_HOST------允许远程访问
默认 Ollama 只监听本地 127.0.0.1,如需允许其他设备访问(如局域网内的 WebUI),设置为 0.0.0.0:
[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"
同时需要放行防火墙端口:
bash
sudo ufw allow 11434/tcp
3.3 OLLAMA_KEEP_ALIVE------模型驻留时间
控制模型在内存中的存活时间,默认为 5m(5 分钟):
-1:模型永久驻留内存0:处理完请求后立即卸载24h:保持 24 小时
设置方式:
bash
export OLLAMA_KEEP_ALIVE=-1 # 临时设置
或通过 systemd 永久配置:
[Service]
Environment="OLLAMA_KEEP_ALIVE=-1"
3.4 其他常用变量
| 变量 | 说明 | 默认值 |
|---|---|---|
OLLAMA_PORT |
服务端口 | 11434 |
OLLAMA_NUM_PARALLEL |
并发请求数 | 1 |
OLLAMA_MAX_LOADED_MODELS |
同时加载的最大模型数 | 1 |
OLLAMA_LOAD_TIMEOUT |
模型加载超时时间 | 5m |
四、模型管理
4.1 拉取模型
bash
ollama pull <模型名称>
例如拉取 DeepSeek-R1-7B:
bash
ollama pull deepseek-r1:7b
4.2 查看本地模型
bash
ollama list
4.3 运行模型
bash
ollama run <模型名称>
进入交互式对话后,输入 /bye 或按 Ctrl+D 退出。
4.4 查看当前加载的模型
bash
ollama ps
4.5 模型推荐
12GB 显存推荐(代码模型)
| 模型 | 量化后大小 | 特点 |
|---|---|---|
| DeepSeek-Coder-V2-Lite | ~9GB | 12GB 显存能跑的最强代码模型 |
| Qwen2.5-Coder-14B (Q4) | ~8.7GB | 性能强劲,紧随 DeepSeek |
| Qwen2.5-Coder-7B (Q4) | ~4.4GB | 轻量高效,可与 1.5B 模型组合使用 |
| DeepSeek-Coder-6.7B | ~4GB | 经典代码模型 |
| CodeGemma 7B | ~5.6GB | Google 出品,轻量级代码专家 |
多卡配置(14 × 12GB = 168GB 显存)
如果拥有多张 GPU,可配置 Ollama 使用所有显卡:
bash
sudo systemctl edit ollama
添加:
[Service]
Environment="CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7,8,9,10,11,12,13"
Environment="OLLAMA_SCHED_SPREAD=1"
保存后重启服务:
bash
sudo systemctl daemon-reload
sudo systemctl restart ollama
在此配置下,可运行更大规模的模型,如 Qwen2.5-72B (INT4 量化,约 40-50GB)或 DeepSeek-V2-Lite(MoE 架构,资源友好)。
五、模型迁移到大硬盘
当模型文件过大需要迁移时,可按以下步骤操作:
5.1 定位模型实际存储位置
默认路径为 ~/.ollama/models,但有时模型可能被存储到其他位置(如 /usr/share/ollama/.ollama/models)。可通过以下命令查找:
bash
sudo du -sh /usr/share/ollama/ # 检查该目录大小
sudo ls -la /usr/share/ollama/.ollama/models/
5.2 停止服务
bash
sudo systemctl stop ollama
5.3 创建目标目录
bash
sudo mkdir -p /data/ollama/models
sudo chown -R $(whoami):$(whoami) /data/ollama/models
5.4 复制模型文件
根据实际路径调整源目录:
bash
sudo cp -rp /usr/share/ollama/.ollama/. /data/ollama/models/
5.5 验证复制完整性
bash
sudo du -sh /data/ollama/models
应与原目录大小一致。
5.6 配置环境变量
bash
sudo systemctl edit ollama
添加:
[Service]
Environment="OLLAMA_MODELS=/data/ollama/models"
5.7 重启服务
bash
sudo systemctl daemon-reload
sudo systemctl restart ollama
5.8 验证
bash
ollama list
5.9 (确认无误后)删除旧目录释放空间
bash
sudo rm -rf /usr/share/ollama
权限说明 :Ollama 进程需要对目标路径的所有父目录具有执行(
x)权限才能正常访问。如遇permission denied,可执行sudo chmod -R 755 /data/ollama/models。
六、Python 调用本地 Ollama(OpenAI 兼容格式)
Ollama 提供了与 OpenAI API 完全兼容的接口,你可以使用 openai Python 库直接调用本地部署的模型。这种方式非常适合将模型集成到现有应用中。
6.1 安装 Python 依赖
首先确保已安装 openai 库(版本 ≥ 1.0.0):
bash
pip install openai
6.2 编写调用代码
以下是一个完整的示例,展示了如何通过 OpenAI 兼容的接口与本地 Ollama 服务交互:
python
from openai import OpenAI
client = OpenAI(
base_url="http://localhost:11434/v1", # 本地服务器IP地址
api_key="ollama" # 本地不需要真实 key,任意字符串即可
)
response = client.chat.completions.create(
model="deepseek-r1:7b", # 请替换为你实际存在的模型名称
messages=[{"role": "user", "content": "帮我写一个 Hello world 代码"}]
)
print(response.choices[0].message.content)
6.3 运行与测试
将上述代码保存为 test_ollama.py,然后在终端执行:
bash
python test_ollama.py
若一切正常,你将看到模型返回的 Python 代码段。

6.4 注意事项
- 模型名称 :
model参数必须与你本地已拉取的模型名称完全一致。可通过ollama list查看已下载的模型列表。 - base_url :如果 Ollama 服务不在本机,或者使用了非默认端口,请相应修改
base_url(例如http://192.168.2.156:11434/v1)。 - 超时处理 :若模型加载较慢,可以在客户端设置超时时间(如
timeout=60.0)。 - 流式输出 :如需流式接收回复,可使用
stream=True并迭代响应。
6.5 进阶用法
python
# 流式输出示例
response = client.chat.completions.create(
model="deepseek-r1:7b",
messages=[{"role": "user", "content": "帮我写一个 Hello world 代码"}],
stream=True
)
for chunk in response:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="")

更多用法可参考 OpenAI API 文档 和 Ollama API 文档。
七、常见问题排查
7.1 连接超时(IPv6 问题)
如果遇到 network is unreachable 或 dial tcp [2606:4700::...]:443: connect: network is unreachable 错误,可临时禁用 IPv6:
bash
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1
7.2 权限不足
如遇 permission denied,检查模型目录权限:
bash
sudo chown -R $(whoami):$(whoami) /path/to/models
sudo chmod -R 755 /path/to/models
7.3 服务启动失败
查看详细日志:
bash
sudo journalctl -u ollama -n 50 --no-pager
7.4 模型加载超时
对于超大模型,可延长加载超时时间:
[Service]
Environment="OLLAMA_LOAD_TIMEOUT=20m"
7.5 模型下载中断
Ollama 支持断点续传,重新运行 ollama pull 即可继续下载。若反复中断,可考虑手动下载 GGUF 文件并通过 Modelfile 导入。
7.6 模型不支持工具调用
部分模型(如 deepseek-coder-v2:lite)不支持工具调用(Function Calling),会导致 Continue 等插件报错 does not support tools。解决方法:
- 换用支持工具调用的模型(如
llama3.1、qwen2.5系列) - 在工具配置中禁用工具调用功能
八、总结
Ollama 极大降低了本地部署大模型的门槛。通过合理配置环境变量(特别是 OLLAMA_MODELS 自定义存储路径),可以有效管理系统盘空间;配合 Python 的 OpenAI 兼容接口,可以将模型能力无缝集成到各类应用中。
核心操作流程回顾:
- 安装:一键脚本或手动下载解压
- 配置 :通过
systemctl edit ollama设置环境变量 - 模型管理 :
ollama pull下载,ollama run运行 - 迁移 :复制模型目录并修改
OLLAMA_MODELS指向新路径 - 编程调用 :使用
openai库通过标准 API 调用本地模型 - 排查 :查看日志
journalctl -u ollama定位问题
在实际部署中,建议根据硬件配置选择合适的模型量化版本,以达到性能与资源消耗的最佳平衡。
附录:常用命令速查
| 命令 | 说明 |
|---|---|
ollama --version |
查看版本 |
ollama list |
列出本地模型 |
ollama pull <model> |
下载模型 |
ollama run <model> |
运行模型 |
ollama ps |
查看加载中的模型 |
ollama stop <model> |
卸载模型 |
ollama serve |
手动启动服务 |
ollama create <name> -f Modelfile |
从 Modelfile 创建模型 |
sudo systemctl status ollama |
查看服务状态 |
sudo journalctl -u ollama -n 50 |
查看服务日志 |