📑 本页目录(点开跳转)
07 · 本地部署:把模型跑在自己机器上
⏱ 22 分钟 | ⭐ 装个软件、下个文件,半小时就能跑起来
⭐ 要不要长期自建、开源模型和许可证怎么选,在下一页 07b · 开源生态怎么选。
🎯 一句话
现在在自己电脑上跑一个能用的大模型,门槛已经低到「装个软件、下个文件」。 这一页只解决「怎么跑起来」:用哪一档工具、要多大显存、代码怎么连上去。至于「什么时候值得跑」,那是下一页要算的账。
🧰 三档工具(按易用度排)
操作步骤
- Ollama —— 最简单,一行命令
- ollama run qwen3
- ✅ 自动下载、自动量化、自带 OpenAI 兼容 API
- ✅ Mac/Windows/Linux 通吃
- 👉 个人使用、开发调试、第一次尝试,选它
- llama.cpp / LM Studio —— 更可控
- ✅ GGUF 格式,CPU+GPU 混合推理(显存不够可以卸载到内存)
- ✅ LM Studio 有图形界面,适合不想碰命令行的人
- 👉 硬件受限、要精细控制量化档位时
- vLLM / SGLang —— 生产级
- ✅ 连续批处理、PagedAttention(第 6 章)、高并发
- ❌ 要 Linux + NVIDIA 卡,配置复杂
- 👉 真正对外提供服务时
💾 硬件对照表(量级参考)
| 模型规模 | 4bit 量化后显存 | 能跑的设备 |
|---|---|---|
| 1–4B | 1–3 GB | 几乎任何设备,手机也行 |
| 7–8B | 4–6 GB | 主流游戏显卡、M 系列 Mac ⭐ 甜点区 |
| 14B | 8–10 GB | 12GB+ 显卡 |
| 32B | 18–22 GB | 24GB 显卡(4090 等) |
| 70B | 35–45 GB | 双卡 / A100 / 大内存 Mac |
| 200B+ MoE | 100GB+ | 多卡服务器 |
⚠️ 最后一行最容易让人算错账,值得单独说一句。 MoE 的宣传口径是「激活参数只有 37B」,于是很多人以为它能塞进 70B 那一档的机器——不能。
⭐ 权重要全部驻留显存,路由才有得选:这一步激活哪几个专家是运行时才知道的, 而且同一个 batch 里不同 token 会路由到不同专家,你没法预先只加载一部分。
所以显存按总参数算,算力按激活参数算——这就是这一行「100GB+」的由来。
🔗 专题 D · MoE:怎样扩容 讲清了为什么只替换 FFN、路由器怎么挑专家(负载不均衡才是它真正的难点)、 以及「便宜」到底便宜在哪一项(省的是 FLOPs 和推理延迟,不是显存和采购成本)。
💡 Mac 的特殊优势:统一内存架构,M 系列大内存机型可以跑很大的模型(虽然速度不如独显)。 甜点区是 7–14B:能力够用日常任务,硬件门槛低。
🔌 关键实践:OpenAI 兼容接口
几乎所有本地推理框架都提供 OpenAI 兼容的 API。这意味着:
# 🧩 骨架:`OpenAI` 来自你自己的代码,这一段只看写法
# 你写的代码几乎不用改,只改 base_url
client = OpenAI(
base_url="http://localhost:11434/v1", # 本地 Ollama
api_key="ollama" # 随便填
)
🔑 实用建议:写代码时把模型接口抽象一层(智能体教程第 1 章那个
MockModel就是这个思路), 就能在「本地模型 / 云 API / 不同厂商」之间随意切换,避免被锁死。
⚠️ 但"兼容"不等于"等价"——四个会咬你的差异:
| 差异 | 表现 |
|---|---|
| 工具调用格式 ⭐ | 开源模型的 function calling 支持参差不齐,有的要靠提示词模拟 |
| 系统提示词的遵循度 | 小模型经常"忘了"系统提示词里的约束 |
| 上下文窗口和实际可用长度 | 标称 128K,实际超过 32K 就明显退化 |
| 输出格式稳定性 | 让它输出 JSON,闭源模型基本不会崩,小模型经常多个逗号 |
💡 所以切换模型后必须重跑评测(第 11 章)—— "接口兼容"只保证代码能跑,不保证效果一样。
🚀 30 分钟上手路线(真的建议做一次)
操作步骤
- 装 Ollama(5 分钟)
- ollama run qwen3:8b ← 聊两句,感受一下速度
- 换个小的:ollama run qwen3:1.7b ← 对比质量和速度差距 ⭐
- 用 Python 连上去(OpenAI 兼容),跑一个你熟悉的提示词
- 打开任务管理器看显存占用 ← 把第 6 章的抽象概念变成具体数字 ⭐
💡 第 ③ 和 ⑤ 步是重点: 亲眼看到"8B 和 1.7B 差多少"、"4bit 量化到底占多少显存", 比读十篇文章都管用。这就是本章说的"体验价值"。
🔗 和站内其他章的关系
左列有的来自日常用 LLM 的经验,有的在站内别的板块讲过——碰上过哪几条就从哪几条接进来,一条没碰过也不影响读这一页。
| 你可能已经知道的 | 这一页的对应 |
|---|---|
| MockModel 可替换的设计(智能体第 1 章) | 抽象一层就能切换本地/云 |
| 量化、连续批处理、PagedAttention(第 6 章) | 这一页是它们的落地工具 |
想接着深挖,去这几处:
| 去哪 | 为什么 |
|---|---|
| AI基础设施 03 · 显存与带宽墙 | ⭐ 硬件对照表背后的那笔账:显存到底被什么占满了,那一章第四节还带你自己估一遍 |
| AI基础设施 20 · 推理服务化 | 从「能跑」到「对外提供服务」真正要做的事:服务化、限流、降级路径。⭐ 顺带一条反直觉的顺序——引擎之间通常只差 20–50%,配置调没调对差的是几倍,先调配置再换引擎 |
| AI全栈 04 · 调用层 | 「把接口抽象一层」在工程上具体长什么样——包一层的回报正是换上游几乎不用改业务代码 |
| 智能体工程教程 01 · 10分钟造个Agent | 那里的 MockModel 就是这层抽象的最小实现,能看清接口该切在哪一刀 |
✅ 检查点
- 三档工具分别在什么时候用?个人第一次跑本地模型该选哪个?
- 7B 模型 4bit 量化后大概要多少显存?甜点区是哪个尺寸段、为什么?
- 为什么 200B+ 的 MoE 不能按「激活参数只有 37B」去估显存?
- 为什么建议把模型接口抽象一层?「OpenAI 兼容」有哪四个不等价的地方?
- 30 分钟上手路线里,哪两步最有价值?为什么?
👀 答案
- Ollama 最简单(一行命令,自动下载、自动量化、自带 OpenAI 兼容 API,三大系统通吃),个人使用和开发调试选它;llama.cpp / LM Studio 用 GGUF、能 CPU+GPU 混合推理,硬件受限或要精细控制量化档位时用;vLLM / SGLang 是生产级(连续批处理、PagedAttention、高并发),但要 Linux + NVIDIA 卡、配置复杂,真正对外提供服务时才上。
- 约 4–6 GB,主流游戏显卡或 M 系列 Mac 都能跑。甜点区是 7–14B——能力够用日常任务,硬件门槛低。
- 因为权重要全部驻留显存,路由才有得选:激活哪几个专家是运行时才知道的,而且同一个 batch 里不同 token 会路由到不同专家,没法预先只加载一部分。⭐ 显存按总参数算,算力按激活参数算——所以那一行写的是 100GB+。
- 能在本地模型 / 不同云厂商之间自由切换,避免被单一供应商锁死。四个不等价:①工具调用格式(开源支持参差,有的靠提示词模拟)②系统提示词遵循度(小模型经常「忘了」)③标称窗口 ≠ 实际可用长度(标 128K,超 32K 就明显退化)④输出格式稳定性(小模型 JSON 经常崩)。所以换模型后必须重跑评测。
- 第 ③ 步(8B 对比 1.7B)和第 ⑤ 步(打开任务管理器看显存占用)——亲眼看到质量-速度的差距和 4bit 量化到底占多少显存,比读十篇文章管用,这就是本地跑一次的「体验价值」。
🛑 可以停在这里
跑通一次之后,量化、显存、速度这些抽象概念就都有了具体数字——这一页的目的就达到了。
⚠️ 什么时候看下一页:你开始认真考虑「以后长期就这么自建下去」,或者要在一堆开源模型里挑一个进生产。那是算账和选型的问题,这一页不回答。
⚡ 走神救援
先记住这几件事
- 本地运行先核对模型、量化格式、硬件与工具链是否匹配。
- 显存预算不能只看激活参数,还要看需要存储的权重和上下文缓存。
- 兼容接口不代表行为完全一致,换模型后重跑工具调用与输出格式测试。
下一节 👉 07b-开源生态怎么选.md