编程 本地跑 LLM 的最短路径:Ollama 的安装、命令与边界

2026-08-29 20:31:34 views 8

本地跑 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 pullollama 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 是现在上手成本最低的路径之一。

复制全文 生成海报 Ollama 大模型 本地推理 Go LLM

推荐文章

程序员茄子在线接单