什么是 Ollama
Ollama 是一个开源工具,让开发者能够在本地计算机上轻松下载、运行和管理大型语言模型(LLM)。它的口号是 "Get up and running with large language models"——一条命令即可启动世界顶级开源模型,无需云账户、无需 API Key、数据完全不离本机。
Ollama 的核心设计理念是极简化。它将复杂的模型加载、量化推理、内存管理等底层细节全部封装,对外暴露一套干净的 CLI 接口和兼容 OpenAI 格式的 REST API。对于应用开发者而言,切换到本地模型的成本极低——只需修改 base_url,其余代码不变。
Ollama vs API 服务(OpenAI / Claude)
API 服务的优势在于模型质量最高、无需本地硬件;劣势是每次请求付费、数据上传至云端、网络依赖。Ollama 的优势在于零费用、完全离线、数据私密;劣势是模型质量相对主流商业模型有差距(但 Llama 3.3 70B、DeepSeek R1 已非常接近 GPT-4 水准),且需要一定的本地硬件资源。两者不是替代关系,而是互补:开发测试与隐私场景用 Ollama,生产高质量推理用 API 服务。
本地运行的三大优势:隐私、成本、离线
1. 隐私:所有数据在本地处理,不经过任何第三方服务器,医疗/法律/金融等敏感信息可安全使用。2. 成本:一次下载,无限推理,无 Token 计费,高频调用场景可节省数千美元/月。3. 离线:无网络环境照常工作,适合出行、受限网络环境(企业内网)、边缘计算设备。
GGUF 格式(GPT-Generated Unified Format)
GGUF 是 llama.cpp 项目定义的模型文件格式,是目前本地 LLM 推理的标准格式。它将模型权重、量化参数、词汇表、架构元数据全部打包到一个 .gguf 文件中,无需单独配置文件。Ollama 内部使用 llama.cpp 进行推理,因此支持所有 GGUF 格式模型。相比旧版 GGML 格式,GGUF 设计更规范、向后兼容更好。
量化(Quantization)
量化是一种模型压缩技术,将原始的 32 位或 16 位浮点权重压缩为 4 位或 8 位整数,使模型体积缩小 4-8 倍,大幅降低内存需求,同时几乎不损失模型精度。举例:Llama 3.3 70B 的 FP16 版本需要约 140GB 显存,而 Q4_K_M 量化版只需约 40GB,可在消费级 GPU 或 Apple Silicon 上运行。量化是本地 LLM 得以普及的关键技术。
上下文窗口(Context Window)
上下文窗口是模型单次能处理的最大 Token 数量,决定了模型能"记住"多长的对话历史或文档内容。Llama 3.2 支持 128K Token 上下文;默认运行时 Ollama 会设置一个较小的 num_ctx(如 2048 或 4096)以节省内存。可通过 Modelfile 中的
PARAMETER num_ctx 调整,但增大上下文会成比例增加内存占用。支持的主流模型家族
Ollama 模型库(ollama.com/library)收录了 200+ 个模型,以下是 2025 年最值得关注的模型家族:
| 模型家族 | 代表版本 | 参数规模 | 核心优势 |
|---|---|---|---|
| Llama 3.3 | llama3.3:70b | 8B / 70B | Meta 旗舰,综合能力最强,接近 GPT-4 |
| Gemma 3 | gemma3:27b | 1B / 4B / 12B / 27B | Google 出品,多模态支持,中英文均衡 |
| Qwen 2.5 | qwen2.5:72b | 0.5B–72B | 阿里开源,中文最强,代码能力出色 |
| DeepSeek R1 | deepseek-r1:32b | 7B / 14B / 32B / 70B | 推理链思维,数学/逻辑/代码专项强 |
| Mistral | mistral:7b | 7B / 22B | 欧洲顶级,英文能力出色,速度快 |
| Phi-4 | phi4:14b | 14B | 微软小模型,性能超越同等参数量模型 |
| Code Llama | codellama:34b | 7B / 13B / 34B | 代码生成专用,支持 Fill-in-Middle |
安装 Ollama
Ollama 支持 macOS、Linux、Windows 三大平台,还提供官方 Docker 镜像。选择适合你的安装方式:
macOS 安装(推荐)
下载官方 macOS 安装包(.dmg),支持 Apple Silicon(M1/M2/M3/M4)和 Intel Mac。Apple Silicon 会自动启用 Metal GPU 加速,推理速度极快。
# 方式一:官网下载安装包(推荐)
# 访问 https://ollama.com/download 下载 .dmg 并安装
# 方式二:Homebrew 安装
brew install ollama
# 安装完成后启动服务(macOS 会自动在菜单栏启动)
ollama serve # 若未自动启动,手动运行此命令
# 验证安装
ollama --version
# 输出示例:ollama version is 0.6.2
Linux 安装
# 官方一键安装脚本(推荐,自动检测系统环境)
curl -fsSL https://ollama.com/install.sh | sh
# 脚本会自动:
# 1. 检测 CPU 架构(x86_64 / arm64)
# 2. 检测 NVIDIA GPU(若有,安装 CUDA 支持版本)
# 3. 创建 systemd 服务,开机自动启动
# 4. 安装到 /usr/local/bin/ollama
# 检查 systemd 服务状态
sudo systemctl status ollama
# 若需手动启动
sudo systemctl start ollama
sudo systemctl enable ollama # 设置开机自启
# 验证
ollama --version
Windows 安装
# 下载 Windows 安装程序
# 访问 https://ollama.com/download/windows
# 下载 OllamaSetup.exe 并双击安装
# 安装完成后,Ollama 在系统托盘自动运行
# 打开 PowerShell 或命令提示符验证
ollama --version
# Windows 支持 NVIDIA GPU(需要 CUDA 12.x)和 AMD GPU(ROCm)
# CPU 模式无需额外配置,开箱即用
Docker 安装
# CPU 模式
docker run -d \
--name ollama \
-p 11434:11434 \
-v ollama_data:/root/.ollama \
ollama/ollama
# NVIDIA GPU 模式(需要 nvidia-docker2)
docker run -d \
--name ollama \
--gpus all \
-p 11434:11434 \
-v ollama_data:/root/.ollama \
ollama/ollama
# 进入容器运行模型
docker exec -it ollama ollama run llama3.2
# 或从宿主机调用容器内的 API
curl http://localhost:11434/api/tags
首次拉取与运行模型
安装完成后,一条命令即可下载并运行你的第一个本地大模型:
# 首次运行:自动下载模型并启动交互会话
ollama run llama3.2
# 下载过程输出示例:
# pulling manifest...
# pulling 966de95ca8a6... 100% ████████████ 2.0 GB
# pulling 6e340b9bed58... 100% ████████████ 182 B
# pulling 4fa551d4f938... 100% ████████████ 12 KB
# verifying sha256 digest
# writing manifest
# success
# 进入交互模式后,直接输入问题
# >>> 用 Python 写一个快速排序
# >>> /bye ← 退出会话
# 非交互模式:直接传入 prompt
ollama run llama3.2 "解释什么是递归,用简单例子"
# 拉取中文能力更强的 Qwen 2.5
ollama pull qwen2.5:7b
# 拉取代码模型
ollama pull codellama:7b
选择合适的模型大小
首次体验推荐 llama3.2(3B 或 8B),体积小、速度快,2GB 内存即可运行。追求更高质量可选 qwen2.5:14b 或 llama3.3:70b,但需要更多内存。
系统要求与 GPU 加速
Ollama 对硬件要求主要取决于所运行模型的参数量和量化等级。以下是详细的内存需求参考:
| 模型规模 | 量化版本 | 内存需求 | 推荐硬件 |
|---|---|---|---|
| 1B–3B | Q4_K_M | 1–2 GB | 任何现代笔记本 |
| 7B | Q4_K_M | ~4 GB | 8GB RAM 笔记本 |
| 13B | Q4_K_M | ~8 GB | 16GB RAM / RTX 3060 |
| 32B | Q4_K_M | ~20 GB | 32GB RAM / RTX 4090 |
| 70B | Q4_K_M | ~40 GB | M2 Max 64GB / A100 |
# Apple Silicon GPU 加速(自动启用,Metal 框架)
# M1/M2/M3/M4 芯片统一内存架构,CPU 和 GPU 共享 RAM
# 推理速度:M2 Pro 16GB 运行 llama3.2:8b 约 45 tokens/s
# NVIDIA GPU 配置检查
nvidia-smi # 查看 GPU 型号和显存
# Ollama 自动检测 NVIDIA GPU
# 要求:CUDA 12.x,驱动版本 ≥ 535
# 验证 GPU 是否被使用
ollama run llama3.2
# 运行时查看 GPU 占用
watch -n 1 nvidia-smi
# 强制使用 CPU(调试或 GPU 内存不足时)
OLLAMA_NUM_GPU=0 ollama run llama3.2
# 控制使用几层放入 GPU(部分卸载,当 VRAM 不足时)
OLLAMA_NUM_GPU=20 ollama run llama3.3:70b
# 未装入 GPU 的层会在 CPU 上运算(速度较慢)
内存不足时的处理策略
若 RAM 不够运行目标模型,优先考虑:1)选择更小参数量版本(70B → 32B);2)选择更激进的量化等级(Q8 → Q4);3)减小上下文长度(num_ctx 2048 代替 8192)。切勿强行运行超出内存的模型,系统会疯狂 Swap 导致极慢速度甚至崩溃。
Ollama 运行原理
理解 Ollama 的内部架构,有助于排查问题和性能调优:
Ollama 架构图
┌─────────────────────────────────────────────────────────┐
│ 用户层 │
│ CLI (ollama run) / REST API / Python SDK │
└───────────────────────┬─────────────────────────────────┘
│ HTTP 11434
┌───────────────────────▼─────────────────────────────────┐
│ Ollama 服务端 (Go 语言实现) │
│ 模型管理 · 请求调度 · 流式响应 · API 路由 │
└───────────────────────┬─────────────────────────────────┘
│ C/C++ FFI 绑定
┌───────────────────────▼─────────────────────────────────┐
│ llama.cpp 推理引擎 │
│ GGUF 加载 · 量化推理 · KV Cache · 采样策略 │
└───────────────────────┬─────────────────────────────────┘
│
┌─────────────────┴──────────────────┐
│ Metal (Apple) │ CUDA (NVIDIA)
│ CPU Threads │ ROCm (AMD)
└────────────────────────────────────┘
模型文件存储:
macOS/Linux:~/.ollama/models/
Windows:C:\Users\<用户名>\.ollama\models\
本章小结
Ollama 是本地 LLM 推理的最佳入口工具。核心要点:GGUF 格式 + 量化技术使大模型得以在消费级硬件上运行;三大安装平台均只需一步;
ollama run 模型名 是最核心的命令;内存是首要瓶颈,7B 模型需 4GB,70B 模型需 40GB。下一章将深入学习模型管理的完整命令集与模型选择策略。