<!-- title: 本地跑模型别裸奔：Ollama八个机关 -->

<!-- domain: tips-tricks -->

你花一整晚下了个 14B 模型，结果它聊三句就「失忆」、显存永远吃不满、换个问题还要卡顿十几秒——大部分人会怪模型太笨，然后删了卸载。真相是：**不是模型不行，是 Ollama 的默认设置根本没为你的硬件优化过**。Ollama 是目前海外本地跑大模型的事实标准（GitHub 上 MIT 协议开源，安装即用），但官方文档里埋着至少八个能显著改变体验的机关，中文圈教程几乎都停留在「ollama run 一把梭」。这八个机关全是官方文档里白纸黑字写的功能，零成本、零风险，今晚就能调完。不管你是拿本地模型写代码、跑 RAG 还是just想断网用 AI，调完之后同一台机器、同一个模型，体验至少差一个档次。

## 机关一：上下文默认只有 2048，你的模型一直在「金鱼脑」

这是 Ollama 最著名的暗坑：**默认上下文窗口长期只有 2048 token**（以官方 FAQ 说明为准），也就是大约一千多个汉字。你感觉模型「记不住开头」「总结长文乱说」，多半不是模型问题，而是它压根没看到前文——超过 2048 的部分直接被截断了。

三种改法，按场景选：

- **临时改**：`ollama run qwen3:14b` 进交互后敲 `/set parameter num_ctx 8192`，当场生效；
- **固化改**：写进 Modelfile，一行 `PARAMETER num_ctx 8192`，以后每次启动都带着（见机关八）；
- **API 改**：调接口时在 `options` 里传 `"num_ctx": 8192`，适合写脚本的场景。

注意：上下文不是白给的，开得越大显存吃得越多。16G 显存的卡，14B 模型开到 16K 上下文大概率爆显存，合理区间是 8192 起步，配合机关三再往上顶。

## 机关二：keep_alive——五分钟不动，模型就从显存里「蒸发」

Ollama 默认 **5 分钟**没请求就把模型从显存卸载（官方 FAQ 和 API 文档均写明）。后果是：你出去接杯水回来再提问，要等它把几个 GB 的权重重新从硬盘搬进显存，那段十几秒的卡顿就是这么来的。写代码时边查资料边问，几乎每次都在交这个「重载税」。

改法同样三层：

- 启动时：`ollama run qwen3:14b --keepalive 1h`，一小时不卸载；
- API 调用：请求体里加 `"keep_alive": -1`，永久常驻；
- 全局兜底：环境变量 `OLLAMA_KEEP_ALIVE` 设成 `1h` 或 `-1`。

注意 `-1` 常驻要配合你显存真的装得下这个模型，否则就用具体时长折中。

## 机关三：KV 缓存减肥——不开它，你一半显存是浪费的

这是进阶但回报巨大的一组环境变量，官方 FAQ 专门写过：**Flash Attention + KV 缓存量化**。

- `OLLAMA_FLASH_ATTENTION=1`：开启 Flash Attention 注意力优化；
- `OLLAMA_KV_CACHE_TYPE=q8_0`：把 KV 缓存从默认的 16 位压到 8 位——机制上就是砍半的显存占用；追求极限再换 `q4_0`，再砍一半，代价是轻微精度损失。

这两个开关最狠的用法是**和机关一连招**：KV 缓存省下来的显存，正好用来把 num_ctx 顶到更高。同样的卡，原来只敢开 4K 上下文，调完敢开 16K——等于免费把模型的「工作记忆」扩了四倍。设置方式是环境变量（Windows 用户 `setx` 后重启 Ollama 服务即可生效）。

## 机关四：OLLAMA_MODELS——别让几十个 GB 模型撑爆 C 盘

Windows 用户的经典惨案：C 盘红了，一查全是 `~/.ollama/models` 里的模型文件。官方 FAQ 提供了正解：设环境变量 **`OLLAMA_MODELS`** 指到其他盘，比如 `D:\ollama\models`，已有模型手动挪过去即可。顺带说一句，`ollama pull` 支持断点续传，几十 GB 的大家伙下到一半断了不用从头来。

## 机关五：OLLAMA_HOST=0.0.0.0——把吃灰旧电脑变成全家模型服务器

Ollama 默认只监听本机 11434 端口。设 `OLLAMA_HOST=0.0.0.0` 后，局域网里所有设备都能调用这台机器的模型：

- 家里 NAS/旧游戏本变身「家庭 AI 服务器」，手机装个 ChatBox、LobeChat 之类的客户端，填上内网 IP 就能用；
- 团队场景更实用：一台 4090 的工作站跑模型，全组人的开发环境都连它，谁都不用本地装。

安全提醒：只开在局域网用，千万别把这个端口映射到公网——Ollama 默认没有鉴权，裸奔上公网等于把一台无密码的 AI 服务器送给扫描器。

## 机关六：/v1 接口——把为 GPT 写的工具全部「断网化」

这是 Ollama 对开发者最实用的一招，官方专门有文档（docs/openai.md）：它内置了 **OpenAI 兼容接口**。任何支持 OpenAI API 的工具，把 `base_url` 改成 `http://localhost:11434/v1`，`api_key` 随便填一个字符串（比如 `ollama`，官方文档原话是 key 必填但内容任意），model 换成 `qwen3:14b`，整套工具立刻从云端切到本地——代码零改动。

实际用法：Dify、LobeChat、各种 IDE 插件、自己写的 Python 脚本（`openai` 库直连），全部可以无缝挂本地模型。对国内用户的额外意义：**测试和开发阶段烧本地，只有生产环境才调云端 API**，账单立减一大截。

## 机关七：hf.co 直拉——不用写 Modelfile，HuggingFace 的 GGUF 直接跑

很多人不知道，Ollama 早已打通 HuggingFace：模型名直接写 HF 仓库地址就能拉取，例如 `ollama run hf.co/{作者}/{仓库}:Q4_K_M`。冒号后面还能指定量化版本，要速度选 Q4_K_M，要质量上 Q8_0。这意味着官方库之外几千个社区微调模型（角色扮演、代码专项、小语种），不用自己写 Modelfile、不用转格式，一条命令进显存。配合机关一，拉下来第一件事就是把 num_ctx 调大。

## 机关八：Modelfile 当代码管理 + 结构化输出，本地模型才配进流水线

最后两招把 Ollama 从「聊天玩具」变成「生产零件」：

**Modelfile 固化人设**。写一个十几行的文本文件：`FROM qwen3:14b` + `SYSTEM 你是…（人设/规则）` + `PARAMETER temperature 0.6`，然后 `ollama create mycoder -f Modelfile`。你的专属模型从此有了名字、可以进 Git 版本管理、可以发给同事一键复现——提示词不再飘在聊天框里。

**JSON Schema 结构化输出**。API 请求里传 `format` 字段（直接塞一个 JSON Schema，或简单场景用 `"json"`），模型输出保证是合法 JSON，可直接进解析器。做信息抽取、批量打标、Agent 工具调用的必开，从此告别「帮我解析一下模型输出的奇怪格式」。

验收工具：`ollama ps` 会显示当前模型的显存占用和 processor 列（100% GPU 还是 CPU/GPU 混跑）。调完前面所有机关后用它体检，一目了然。

## 一张图串起八个机关

```mermaid
flowchart TD
    A["装好 Ollama"] --> B["环境变量三连"]
    B --> B1["OLLAMA_MODELS<br/>模型搬家保C盘"]
    B --> B2["OLLAMA_FLASH_ATTENTION<br/>注意力优化"]
    B --> B3["OLLAMA_KV_CACHE_TYPE<br/>KV缓存量化"]
    A --> C["拉模型"]
    C --> C1["官方库选Q4量化"]
    C --> C2["hf.co直拉社区GGUF"]
    C1 --> D["写Modelfile固化人设"]
    C2 --> D
    D --> E["num_ctx顶到8192"]
    E --> F["keep_alive常驻显存"]
    F --> G["OpenAI兼容接口接客户端"]
    G --> H["format结构化输出进流水线"]
    H --> I["ollama ps体检显存"]
```

## 国内用户的组合拳

对国内技术从业者，我的推荐组合是：**Qwen 系列开源模型 + Ollama + 机关六的 OpenAI 兼容接口**。日常开发调试全走本地（Qwen 的 7B/14B 档位在消费级显卡上已经很能打），敏感数据不出门，只在真需要顶级智力时切云端。对比直接裸跑默认配置：上下文大一倍、无重载卡顿、显存利用率翻倍——同一台机器，不用花一分钱。

## 信息差总结

| 你以为的 | 实际上 |
|---------|--------|
| 模型记不住前文 = 模型笨 | 默认 num_ctx 只有 2048，超了直接截断 |
| 每次提问卡十几秒 = 推理慢 | 5 分钟无请求模型被卸载，卡的是重载 |
| 显存不够只能换小模型 | KV 缓存量化 + Flash Attention 能省近一半 |
| 想用社区微调模型要自己转格式 | hf.co 地址直拉，量化版本跟在冒号后 |
| 为 GPT 写的代码只能连 OpenAI | base_url 改 /v1，密钥随便填，全家本地化 |
| 提示词存在聊天记录里 | Modelfile 进 Git，模型本身可版本管理 |

## 行动指南（今晚 10 分钟）

1. 设三个环境变量：`OLLAMA_MODELS`（换盘）、`OLLAMA_FLASH_ATTENTION=1`、`OLLAMA_KV_CACHE_TYPE=q8_0`，重启 Ollama；
2. `ollama run` 进交互，`/set parameter num_ctx 8192` 立刻感受区别；
3. 写个最小 Modelfile 固化你常用的人设，`ollama create` 一个自己的模型；
4. 拿任意 OpenAI SDK 项目把 base_url 指到 `localhost:11434/v1` 试跑一次；
5. `ollama ps` 检查显存占用，截图对比调参前——这一张图就是你发朋友圈的素材。

## 参考来源

1. Ollama 官方 FAQ（num_ctx / keep_alive / KV 缓存量化 / OLLAMA_MODELS 均出自此文档）：https://github.com/ollama/ollama/blob/main/docs/faq.md
2. Ollama Modelfile 官方文档：https://github.com/ollama/ollama/blob/main/docs/modelfile.md
3. Ollama OpenAI 兼容接口文档：https://github.com/ollama/ollama/blob/main/docs/openai.md
4. Ollama 官方博客·结构化输出公告：https://ollama.com/blog/structured-outputs
5. Ollama 官方博客·OpenAI 兼容公告：https://ollama.com/blog/openai-compatibility

（注：以上均为官方文档入口，具体默认值可能随版本调整，以官方 FAQ 最新说明为准。）

---
> 本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵**爱卫生**（微信ID: gprshome201101）维护。
> 聚焦5G/6G核心网、3GPP标准、AI工具实战。知识星球「51学通信」提供深度技术答疑和行业洞察。

> [!tip] 51学通信知识星球
> **星主：爱卫生**（微信：gprshome201101）——公众号「51学通信」创办者，19 年通信行业运维与讲师经验，著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书（各大电商平台有售）。
> **星球定位**：深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域，主打运维岗位与信令分析。
> **当前规模**：5200 篇主题 / 990 个回答，198 元/年。
> **加入福利**：加入星球后请加爱卫生微信，拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题，另有群内分享。
> **AI 加持**：51学通信知识星球已作为 skill 接入 WorkBuddy，使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例，做总结、找文档和 PPT 等场景全覆盖。

![51学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
