用 Ollama 在本地运行 AI 模型
前沿模型运行在云端,但有一整类**开放权重(open-weight)**模型——Llama、Mistral、Qwen、DeepSeek、Gemma——你可以下载下来,在自己的笔记本电脑或服务器上运行。Ollama 是实现这一点最简单的方式:装一次、跑一条命令,一个模型就在本地运行起来了。本页带你从零开始,到跑起一个模型、从代码中调用它,并了解其中的取舍——这样你就不会指望一个 7B 的本地模型表现得像前沿模型一样。
- 知道你为什么要在本地运行模型——以及与云端前沿模型相比诚实的取舍
- 安装 Ollama,用两条命令跑起你的第一个模型
- 使用核心 CLI:pull、run、list、ps、rm、stop
- 通过 Ollama 的 OpenAI 兼容 API 从代码中调用你的本地模型
- 理解内存需求、模型体积和量化——这样你才能挑一个你的机器真正跑得动的模型
- 知道什么时候 LM Studio(一个图形界面)是更好的起点
为什么要在本地运行模型(以及什么时候不要)
在你自己的硬件上运行模型,能给你带来四样东西:
- 隐私 —— 你的提示词和数据永远不会离开你的机器。这是受监管或敏感领域的团队会选择本地模型的原因。(参见选择模型中关于隐私/自托管的分岔。)
- 离线 —— 无需联网、无需 API、不依赖任何服务是否宕机。模型就是你磁盘上的一个文件。
- 成本 —— 没有按 token 计费的账单。一旦下载完成,运行它是"免费"的(你付出的是电费和硬件,而不是 API 花销)。如果在规模化时token 花销是你的约束,本地可能更划算。
- 可控 —— 锁定某个确切版本、自定义行为,并且集成时不会遇到速率限制或服务条款上的意外。
诚实的取舍:
- 能力差距。 一个你能在笔记本上运行的模型(1B–14B 参数)在困难推理、长上下文或智能体(agentic)任务上,不在与云端前沿模型同一档次。对许多日常任务来说这个差距很小;对最困难的任务来说差距很大。
- 硬件。 更大、更强的模型需要的内存/显存超过一台普通机器所拥有的。你往往是在选择你的硬件能跑得动的最大模型,而不是现存的最好模型。
- 由你来运维。 没有托管的弹性伸缩、没有自动升级——这就是可控所要付出的代价。
一个常见且经久耐用的模式:用一个小型评测做原型并选型(方法与云端模型相同——参见选择模型),把本地用于私密/离线/大规模低成本的工作,当任务确实需要那份额外能力时再动用前沿 API。
安装 Ollama 并运行你的第一个模型
- macOS 和 Windows:从 ollama.com/download 下载安装程序并运行。Linux:使用官方安装脚本(见下)。这会安装 ollama 命令和一个本地后台服务。
- ollama run <model> 会在首次使用时下载模型(可能有好几 GB),然后把你带入一个交互式聊天。首次运行较慢,因为它在拉取权重;之后的运行则是瞬时的。
- 输入一个提示词并按回车。要离开交互式会话,输入 /bye(或按 Ctrl+D)。模型会缓存在磁盘上,供下次使用。
- 用 ollama list 查看已安装的模型,用 ollama rm <model> 删除某个模型并回收磁盘空间。
Linux 安装(macOS/Windows 改用下载的安装程序):
curl -fsSL https://ollama.com/install.sh | sh
拉取并运行一个小模型(不错的首选)
ollama run llama3.2
这一条命令既下载 llama3.2(一个可在普通硬件上运行的 1B/3B 级小模型),又启动一个交互式聊天。如果你想先下载而暂不聊天,改用 ollama pull。
核心 CLI
少数几条命令几乎涵盖了一切。运行 ollama --help 查看完整列表。
# Download a model without starting a chat
ollama pull qwen3
# Start an interactive chat (downloads first if needed)
ollama run qwen3
# One-shot: pass the prompt inline, get the answer, exit
ollama run qwen3 "Summarize the CAP theorem in two sentences."
# List models you've downloaded
ollama list
# Show models currently loaded in memory
ollama ps
# Stop a running/loaded model (frees memory)
ollama stop qwen3
# Delete a downloaded model to reclaim disk
ollama rm qwen3
在交互式的 ollama run 会话内,输入 /bye 退出,输入 /? 查看会话内命令。真正对外提供模型服务的后台服务由 ollama serve 启动(桌面应用会自动帮你启动它)。
从代码中调用它(OpenAI 兼容 API)
正是这一部分让本地模型在应用中真正有用。Ollama 后台服务在 http://localhost:11434 暴露一个本地 HTTP API,默认端口为 11434。它有自己的原生端点(/api/generate、/api/chat),并且在 /v1 上提供一个 OpenAI 兼容层——所以大多数为 OpenAI SDK 编写的代码,只需改两行就能对你的本地模型工作。
用 curl 的原始 HTTP(原生端点):
curl http://localhost:11434/api/chat -d '{
"model": "llama3.2",
"messages": [
{ "role": "user", "content": "Why is the sky blue?" }
],
"stream": false
}'
用官方的 OpenAI SDK 从 Python 调用——只需把 base_url 指向 Ollama,并传入任意非空的 api_key(Ollama 要求这个字段,但会忽略它的值):
from openai import OpenAI
client = OpenAI(
base_url="http://localhost:11434/v1",
api_key="ollama", # required by the SDK, ignored by Ollama
)
response = client.chat.completions.create(
model="llama3.2",
messages=[
{"role": "system", "content": "You are a concise assistant."},
{"role": "user", "content": "Explain gradient descent in two sentences."},
],
)
print(response.choices[0].message.content)
由于它是 OpenAI 兼容的,你对托管 API 使用的那些相同模式都可以照搬过来——包括流式输出和工具使用 / 函数调用,它们在本地的工作方式和在云端一样(前提是模型本身确实擅长它)。Ollama 的 /v1 层涵盖了 /v1/chat/completions、/v1/completions、/v1/models 和 /v1/embeddings 等等。
硬件、模型体积与量化
你会在模型上看到的那个数字——1B、7B、8B、70B——是它的参数量(单位为十亿)。参数越多通常意味着能力越强同时也越吃内存。你能运行什么的实际上限是内存(在 GPU 上则是显存)。
**量化(Quantization)**是让这在普通机器上变得可行的关键技巧。模型的权重原本以高精度存储(例如 16 位),但可以被压缩到约 4 位,代价是很小、往往几乎察觉不到的质量损失。Ollama 出厂时大多数模型默认就是量化过的——这就是为什么一个有着数十亿参数的模型能塞进几 GB。一个粗略的经验法则(请对照具体模型的页面核实):
- 约 1B–3B 模型:在大多数现代笔记本上运行自如(几 GB 内存)。
- 约 7B–8B 模型:既有能力又跑得动的最佳平衡点;预留几 GB 空闲内存。
- 约 13B–14B 模型:需要一台配置相当不错的机器。
- 约 70B+ 模型:需要一台拥有大量内存或强力 GPU 的工作站/服务器——不是典型笔记本的领域。
一个实用的配方:从一个小模型(llama3.2)开始,端到端确认工作流程,然后往上调整到仍能在你的硬件上流畅运行的最大模型——而不是现存的最大模型。
LM Studio:一个图形界面替代方案
如果命令行不合你的口味,LM Studio 是一个桌面应用(macOS、Windows、Linux),通过图形界面完成同样的工作:浏览并下载开放模型、在内置 UI 中与它们聊天,并且——和 Ollama 一样——运行一个本地 OpenAI 兼容服务器,让你的代码能与它对话。对于非开发者,或任何更喜欢点点点而非终端的人来说,它是更轻松的入门途径;而当你想要一个可脚本化的 CLI 和一个轻量的后台服务时,Ollama 往往更胜一筹。两者运行的是同一类开放权重模型,所以本页的概念可以直接迁移。
自我检测
0/4- 本地 = 隐私 + 离线 + 无每 token 成本 + 可控;取舍是真实存在的能力差距和硬件限制。
- 两条命令让你跑起来:安装 Ollama,然后 ollama run llama3.2。
- 核心 CLI:pull(下载)、run(聊天)、list、ps、stop、rm——大部分就这些。
- 通过 OpenAI 兼容端点从代码中调用它:base_url 设为 http://localhost:11434/v1,api_key 设任意非空值。
- 参数量 + 量化决定你的机器能否跑动一个模型——从小开始,往上调到能流畅运行的规模。
- 更喜欢图形界面?LM Studio 用点点点完成同样的工作,也暴露一个本地 OpenAI 兼容服务器。
来源与延伸阅读
- Ollama —— 官方网站与下载。
- Ollama 模型库 —— 当前模型及其确切的拉取名称/规模。
- Ollama CLI 参考 · Ollama API 文档 —— 权威的命令与端点参考。
- Ollama OpenAI 兼容性博客文章 ——
/v1端点与 SDK 用法。 - Ollama on GitHub —— 源码、issue 和详细文档。
- LM Studio —— 运行本地模型的图形界面替代方案。