本地跑 LLM 的最短路径:Ollama 的安装、命令与边界
调试一个新模型时,最讨厌的不是模型本身,而是环境:Python 版本、CUDA 驱动、transformers 依赖、显存占满后还要手动清进程。后来我改用 Ollama,从零开始到跑起对话,五分钟内就能完成。
这篇文章只讲三件事:怎么把模型拉下来跑起来、常用接口长什么样、什么情况下不该用它。
安装:一条命令
Ollama 是一个 Go 编写的开源本地大模型运行器(GitHub 179k stars,MIT 协议),支持 Kimi-K2.6、GLM-5.2、MiniMax、DeepSeek、gpt-oss、Qwen、Gemma 等开放模型。
Linux / macOS 下安装:
curl -fsSL https://ollama.com/install.sh | sh
模型库在 ollama.com/library,不需要去 HuggingFace 翻权重文件,也不需要手动配置模型路径。
跑起来:核心命令只有四个
# 拉取模型(未指定 tag 时默认 latest)
ollama pull qwen3
# 直接运行,首次运行会自动拉取
ollama run gemma3
# 列出本地已有的模型
ollama list
# 启动服务(默认监听 localhost:11434)
ollama serve
实际使用中,ollama run 会把“下载模型 + 加载进内存 + 启动对话”合并成一步。如果只是需要后台 API 服务,先 ollama pull 再 ollama serve,之后用 HTTP 请求调用。
HTTP API 与 OpenAI 兼容端点
Ollama 默认在本地跑一个 HTTP 服务:
- 本地 API:
http://localhost:11434 - OpenAI 兼容端点:
http://localhost:11434/v1
OpenAI 兼容意味着现有调用 OpenAI API 的代码,只需要把 base_url 换成上面的 /v1 地址即可:
curl http://localhost:11434/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3",
"messages": [{"role": "user", "content": "用一句话解释什么是闭包"}]
}'
也可以用 Python 的 openai SDK 直接连:
from openai import OpenAI
client = OpenAI(base_url="http://localhost:11434/v1", api_key="ollama")
resp = client.chat.completions.create(
model="qwen3",
messages=[{"role": "user", "content": "你好"}],
)
print(resp.choices[0].message.content)
注意:Ollama 的 /v1 是 OpenAI 接口的一个实用子集,不是逐字段的对等实现。常规的 chat、embeddings 调用没问题,但如果用到 OpenAI 的 Assistants、Structured Outputs 等深度功能,行为可能不一样。
Modelfile:自定义运行参数
Ollama 提供类似 Dockerfile 的 Modelfile 机制,用来定义模型的后缀、系统提示词或运行参数:
FROM qwen3
PARAMETER temperature 0.7
SYSTEM "你是一个负责的中文技术编辑,回答要简洁、准确。"
构建并运行:
ollama create my-editor -f Modelfile
ollama run my-editor
`Modelfile 的完整字段参考官方文档。我习惯把温度、上下文长度这类参数写进去,避免每次在 API 请求里重复指定。
容易踩的几个坑
1. 模型名写错,pull 直接失败
ollama run 的模型名必须与 library 中的名字保持一致,多一个 - 或少一个 - 都会拉取失败。不确定时先去 ollama.com/library 查准确名称,或者在本地跑 ollama list 看已经拉下来的模型。
2. 首次运行需要拉取,看起来像卡住
ollama run 遇到本地没有的模型时,会先下载再加载。大模型权重动辄几个 GB,网络慢时容易误以为进程挂掉了。建议先用 ollama pull 单独拉取,确认下载完成后再 run。
3. serve 默认只监听本机
ollama serve 绑定的是 127.0.0.1:11434。如果要从另一台机器访问,需要对监听地址做修改,具体配置方式原文未提供。日常本地调试不用管这个,但如果你想在局域网内用手机或另一台电脑访问,需要额外处理。
4. GPU 加速依赖本机驱动
原文提到 Ollama 支持 NVIDIA / AMD / Apple Silicon GPU 加速,这是指 Ollama 能利用这些硬件,但不代表装完就能自动满血。系统需要装好对应的 GPU 驱动(NVIDIA 还需要 CUDA 运行环境),才实际生效。排查手段原文未提供,我通常用 ollama list 查看模型信息里的处理器字段,确认是否走的是 GPU。
什么情况下别用 Ollama
Ollama 的最大价值是“快”,但它的边界也很清晰:
需要完整 OpenAI 生态时别用。 如果项目重度依赖 OpenAI 的函数调用、Assistants API、细粒度的结构化输出、插件系统,Ollama 的兼容层覆盖不到,容易做到一半发现某个接口语义不一致。
需要多模型编排时别用。 Ollama 定位是单机模型运行器,不是编排框架。多个模型之间的路由、failover、混合调用(比如 embedding + chat + rerank)建议用专门的推理网关或框架来做,那超出了 Ollama 的服务范围。
需要服务化高并发时别用。 ollama serve 本质上是面向本机或小范围使用而设计的进程,没有内建的多租户隔离、限流、鉴权机制。生产环境的高并发推理,建议直接上 vLLM 或云上托管推理服务。Ollama 更适合做开发阶段的验证工具。
如果你要的场景是“本地快速跑一个开放模型、调试一段代码、确认 prompt 效果”,Ollama 是现在上手成本最低的路径之一。