跳到主要内容

用 Ollama 在本地运行 AI 模型

进阶

前沿模型运行在云端,但有一整类**开放权重(open-weight)**模型——Llama、Mistral、Qwen、DeepSeek、Gemma——你可以下载下来,在自己的笔记本电脑或服务器上运行。Ollama 是实现这一点最简单的方式:装一次、跑一条命令,一个模型就在本地运行起来了。本页带你从零开始,到跑起一个模型、从代码中调用它,并了解其中的取舍——这样你就不会指望一个 7B 的本地模型表现得像前沿模型一样。

What you'll learn
  • 知道你为什么要在本地运行模型——以及与云端前沿模型相比诚实的取舍
  • 安装 Ollama,用两条命令跑起你的第一个模型
  • 使用核心 CLI:pull、run、list、ps、rm、stop
  • 通过 Ollama 的 OpenAI 兼容 API 从代码中调用你的本地模型
  • 理解内存需求、模型体积和量化——这样你才能挑一个你的机器真正跑得动的模型
  • 知道什么时候 LM Studio(一个图形界面)是更好的起点

为什么要在本地运行模型(以及什么时候不要)

在你自己的硬件上运行模型,能给你带来四样东西:

  • 隐私 —— 你的提示词和数据永远不会离开你的机器。这是受监管或敏感领域的团队会选择本地模型的原因。(参见选择模型中关于隐私/自托管的分岔。)
  • 离线 —— 无需联网、无需 API、不依赖任何服务是否宕机。模型就是你磁盘上的一个文件。
  • 成本 —— 没有按 token 计费的账单。一旦下载完成,运行它是"免费"的(你付出的是电费和硬件,而不是 API 花销)。如果在规模化时token 花销是你的约束,本地可能更划算。
  • 可控 —— 锁定某个确切版本、自定义行为,并且集成时不会遇到速率限制或服务条款上的意外。

诚实的取舍:

  • 能力差距。 一个你能在笔记本上运行的模型(1B–14B 参数)在困难推理、长上下文或智能体(agentic)任务上,在与云端前沿模型同一档次。对许多日常任务来说这个差距很小;对最困难的任务来说差距很大。
  • 硬件。 更大、更强的模型需要的内存/显存超过一台普通机器所拥有的。你往往是在选择你的硬件能跑得动的最大模型,而不是现存的最好模型。
  • 由你来运维。 没有托管的弹性伸缩、没有自动升级——这就是可控所要付出的代价。

一个常见且经久耐用的模式:用一个小型评测做原型并选型(方法与云端模型相同——参见选择模型),把本地用于私密/离线/大规模低成本的工作,当任务确实需要那份额外能力时再动用前沿 API。

安装 Ollama 并运行你的第一个模型

Guided walkthrough1 of 4
  1. macOS 和 Windows:从 ollama.com/download 下载安装程序并运行。Linux:使用官方安装脚本(见下)。这会安装 ollama 命令和一个本地后台服务。

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)开始,端到端确认工作流程,然后往上调整到仍能在你的硬件上流畅运行的最大模型——而不是现存的最大模型。

本地模型词汇
按 Enter 或空格键翻转卡片。使用左右方向键在卡片之间切换。已显示术语。
1 / 6

LM Studio:一个图形界面替代方案

如果命令行不合你的口味,LM Studio 是一个桌面应用(macOS、Windows、Linux),通过图形界面完成同样的工作:浏览并下载开放模型、在内置 UI 中与它们聊天,并且——和 Ollama 一样——运行一个本地 OpenAI 兼容服务器,让你的代码能与它对话。对于非开发者,或任何更喜欢点点点而非终端的人来说,它是更轻松的入门途径;而当你想要一个可脚本化的 CLI 和一个轻量的后台服务时,Ollama 往往更胜一筹。两者运行的是同一类开放权重模型,所以本页的概念可以直接迁移。

自我检测

0/4
  1. 在本地运行模型 vs 云端前沿模型,那个最大且最诚实的取舍是什么?
  2. 哪条命令既下载模型(如有需要)又开始与它聊天?
  3. 要从 OpenAI-SDK 代码中调用你的本地模型,你要设置什么?
  4. 为什么一个有着数十亿参数的模型能塞进区区几 GB 内存?
Key takeaways
  • 本地 = 隐私 + 离线 + 无每 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 兼容服务器。

来源与延伸阅读

下一步