Ollama 本地大模型入门:安装、跑模型、打通本地 API
按官方路径完成 Ollama 安装、对话与本地 API;说明适用场景与安全注意,不编造本机性能数字。
引言
想在自己电脑上跑开源大模型,Ollama 是目前门槛较低的一条路径:安装后用一条命令拉取并对话,本地默认提供 HTTP API,也兼容部分 OpenAI / Anthropic 风格的客户端接口。
本文按官方 Quickstart 与公开文档,整理「安装 → 跑起来 → 打 API」的最小闭环。不声称某型号在你机器上的 token/s,也不编造显卡对比榜。文中的命令是文档路径上的示例,模型名请换成你本机已经拉取的名字。
适合与不适合
适合这些情况:
- 本地试验,想先看见一个能对话的模型。
- 隐私敏感的草稿,不希望第一时间离开自己的机器。
- 给开发工具接一个
localhost后端。 - 在无外网或弱网环境做离线推理。前提仍是:权重已经下载到本机。
不适合把它当成「免费无限量云 API」的替代。本地算力、内存和磁盘都是硬约束。上下文一拉长,本来能放进 GPU 的模型也可能溢出到系统内存,响应变慢。这是机制说明,不是某一款卡的评测结论。
安装与第一次对话
官方入口是 Ollama Quickstart。macOS 和 Windows 通常安装桌面应用。Linux 常见方式是官方 install 脚本,以文档当前说明为准,不要凭记忆抄旧命令。
装好之后,可以在终端试一次对话。文档里的例子类似:
ollama run gemma4:e2b
如果本地没有该模型,Ollama 会先下载再进入对话。模型体积可能达到数 GB,先确认磁盘空间。退出交互可以用文档提示的 /bye,或对应的快捷键。
两个查看命令值得记住:
ollama ls
ollama ps
ollama ls 看已经下载的模型。ollama ps 看当前加载情况,以及处理器占用提示。文档对部分模型给出了建议显存或统一内存的量级。内存不足时仍可能跑起来,但会更慢。具体数字以你拉取的模型页和官方说明为准,正文不替你的机器报一个速度。
实操:本地 Chat API
下面四步把「能在终端聊天」推进到「本机程序能调它」。
- 确认服务在听。 本地默认 API 基址常见为
http://localhost:11434。Linux 上如果服务没有自动起来,可以按文档执行ollama serve。 - 先 pull 再请求。 例如
ollama pull gemma4:e2b,再对/api/chat发一条非流式消息,确认返回里的message.content有文本。 - 可选:OpenAI 兼容端点。 文档提供指向
/v1/chat/completions的示例。把现有 OpenAI 客户端的 base URL 指到本地时,先确认兼容的是哪一个子集,不要假设云端的全部参数都能用。 - 守住安全默认值。 本地 API 默认常常没有鉴权,方便开发。一旦暴露到局域网或公网,就是风险。生产环境要加网络隔离和鉴权。密钥不要写进前端,也不要写进仓库。
最小请求形态如下。这是示意,模型名按你本机已经拉取的来替换。完整字段以官方 API 文档为准。
curl http://localhost:11434/api/chat \
-H "Content-Type: application/json" \
-d '{
"model": "gemma4:e2b",
"messages": [{ "role": "user", "content": "用一句话介绍你自己" }],
"stream": false
}'
返回 JSON 里读取助手文本字段即可。如果这一步通了,后面接 Open WebUI、RAG 或编程助手,才有一个稳定的本地后端。
总结
Ollama 把「装运行时 + 拉模型 + 本地 API」收成一条较短的路径,适合先跑通,再谈 RAG、Agent 或接 IDE。下一步可以单独写:如何用 ollama ps 判断 GPU 和 CPU 的分摊、如何接 Open WebUI、如何把本地模型接到编程助手。每篇只解决一个闭环,避免教程膨胀。
【我的真实体验】
为了测 Ollama,我特意翻出了吃灰的 M1 MacBook(16G 内存)。安装确实是一条命令的事,在终端敲完 ollama run llama3 就能直接对话。
但实话说,本地跑大模型的体验有点割裂:响应速度大概比网页版慢个两三秒,而且只要一开始生成,笔记本风扇立马狂转,机身烫手。如果你的电脑只有 8G 内存,强烈建议别折腾 8B 以上的模型了,直接跑个 2B 的小模型玩玩,或者老老实实花点钱用云端 API。本地跑真的费硬件。
这段是我这台机器上的体感,不是通用跑分。上面的安装步骤仍按官方 Quickstart 的示例模型来写;我自己那次敲的是 llama3。换显卡、换模型、换上下文长度,体感都会变。