跳到主要内容

用 Ollama 在本地运行 AI 模型

进阶

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

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

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

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

  • 隐私 — 你的提示词和数据永远不会离开你的机器。这正是受监管或敏感领域的团队转向本地模型的原因。(参见如何选择模型中关于隐私/自托管的分叉。)
  • 离线 — 不需要网络、不需要 API,也不依赖服务是否宕机。模型就是你磁盘上的一个文件。
  • 成本 — 没有按 token 计费的账单。下载完成后,运行它是“免费”的(你付出的是电费和硬件,而不是 API 开销)。如果大规模使用时的瓶颈是 token 开销,本地方案可能更划算。
  • 掌控 — 固定到某个确切版本、自定义行为,集成时没有速率限制,也不会被服务条款的变化打个措手不及。

诚实的取舍:

  • 能力差距。 你能在笔记本上运行的模型(1B–14B 参数),在高难度推理、长上下文或智能体任务上,与云端前沿模型不在同一个量级。对许多日常任务来说差距很小;对最难的任务来说差距很大。
  • 硬件。 更大、更强的模型需要比普通机器更多的内存/显存。你往往是在选硬件能跑的最大模型,而不是现存最好的模型。
  • 要自己运维。 没有托管的扩缩容,没有自动升级——这就是掌控的代价。

一个常见而经久的做法:用一个小型评测来做原型并选型(方法与云端模型相同——参见如何选择模型),在私密/离线/大规模下划算的工作上用本地模型,而当任务确实需要额外能力时,再使用前沿 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 gemma4:e2b

这一条命令既会下载 gemma4:e2b——Ollama 官方快速入门最先用的模型,一个边缘规模的 Gemma 4 变体,约 2.3B 有效参数,磁盘占用几 GB——又会启动一个交互式聊天。如果只想下载而暂不聊天,请改用 ollama pull。

核心命令行​

少数几条命令就能覆盖几乎所有需求。运行 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": "gemma4:e2b",
"messages": [
{ "role": "user", "content": "Why is the sky blue?" }
],
"stream": false
}'

在 Python 中使用官方 OpenAI SDK——只需把 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="gemma4:e2b",
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/responses、/v1/models(以及 /v1/models/{model})和 /v1/embeddings。

硬件、模型大小与量化​

模型名称后面附带的数字——1B、7B、8B、70B——是它的参数量(以十亿计)。参数越多,通常意味着能力越强,同时也更吃内存。你能运行什么,实际的上限是内存(在 GPU 上则是显存)。

量化是让这一切在普通机器上可行的关键技巧。模型的权重最初以高精度存储(例如 16 位),但可以压缩到约 4 位,质量损失很小,往往几乎察觉不到。Ollama 默认提供的大多数模型都是量化过的——这就是为什么一个有数十亿参数的模型能装进几 GB。一个粗略的经验法则(请对照具体模型的页面核实):

  • 约 1B–3B 模型:在大多数现代笔记本上都能轻松运行(几 GB 内存)。
  • 约 7B–8B 模型:能力与可运行性兼顾的最佳点;预留数 GB 的空闲内存。
  • 约 13B–14B 模型:需要配置相当不错的机器。
  • 约 70B 及以上模型:需要有大量内存的工作站/服务器或强大的 GPU——不是典型笔记本的范围。

一个实用的做法:先从小模型(gemma4:e2b)开始,把整个工作流端到端跑通,再逐步升级到你的硬件仍能流畅运行的最大模型——而不是现存最大的模型。

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

LM Studio:图形界面的替代方案​

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

自测一下

0/4
  1. 与云端前沿模型相比,在本地运行模型最大的诚实取舍是什么?
  2. 哪条命令会(在需要时)下载模型,并且开始与它聊天?
  3. 要用 OpenAI SDK 代码调用你的本地模型,需要设置什么?
  4. 为什么一个有数十亿参数的模型只需几 GB 内存就能装下?
Key takeaways
  • 本地 = 隐私 + 离线 + 没有按 token 计费的成本 + 掌控;代价是真实存在的能力差距和硬件限制。
  • 两条命令就能跑起来:安装 Ollama,然后 ollama run gemma4:e2b。
  • 核心命令行:pull(下载)、run(聊天)、list、ps、stop、rm——大部分需求就靠这些。
  • 通过兼容 OpenAI 的端点用代码调用:base_url 设为 http://localhost:11434/v1,api_key 用任意非空值。
  • 参数量 + 量化决定你的机器能否运行某个模型——从小的开始,再升级到能流畅运行的规模。
  • 更喜欢图形界面?LM Studio 用点选的方式完成同样的工作,也提供一个兼容 OpenAI 的本地服务器。

来源与延伸阅读​

接下来​