在 M4 Mac Mini 上跑本地大模型,群里最常吵的不是「Ollama 还是 MLX」,而是16GB 到底够不够。有人刚装好 qwen2.5:14b 觉得「能跑就行」,第三轮对话开始 swap,tok/s 从 11 跌到 3;有人咬牙上了 24GB,发现 7B 反而快到 50 tok/s——内存档位选错,比框架选错更致命。
本文用 Macstripe Lab 三台 M4 Mac Mini(16GB / 24GB / 32GB)对 Ollama 0.6.2 与 MLX 做了配对实测,给出内存×用途×框架决策表、swap 断点与七步落地清单。价格与官方起价截至 2026-07-21。更细的模型选型见7B vs 14B 实测;框架层见Ollama vs MLX。
1. 先给结论:内存档位 × 用途 × 推荐组合
| 统一内存 | 典型用途 | 推荐模型 | 运行时 | 实测 tok/s(median) | 风险 |
|---|---|---|---|---|---|
| 16GB | 个人聊天、轻量脚本、本机试用 | qwen2.5:7b / llama3.1:8b | Ollama | 7B ~29 · 8B ~28.8 | 14B 易 swap;Chrome+IDE 同时开会压垮 |
| 24GB | Claude Code Agent、跨文件编程 | qwen2.5-coder:14b | Ollama | 14B ~15.1 · 7B ~51.1 | 甜点档;decode 仍慢于 7B,属正常 |
| 32GB | 大 ctx + Xcode 同机、团队轻量节点 | 14B + num_ctx 32K | Ollama serve | 14B ~16–18 | 成本高于 24GB;个人 ROI 需算清 |
| 48GB+ | 多人共享推理、32B 探索 | qwen2.5:32b(Q4) | Ollama serve 集群 | 32B ~8–12 | 见 M4 Pro 部署指南 |
2. 三类踩坑:为什么内存比框架更重要
我们在 Lab 里反复看到三种「以为选对了、其实内存不够」的情况:
| 踩坑类型 | 典型表现 | 实测数字 | 正确做法 |
|---|---|---|---|
| 只看 tok/s 榜单 | 网上 14B「能跑 15 tok/s」,自己只有 3 | 16GB 上 14B:11.2 → 8.4 → 3.4 tok/s(三轮递减) | 对照 Swapins;榜单多在 24GB 干净态测得 |
| 忽视后台占用 | 「我只跑 Ollama」,但 Chrome 30 标签 + Xcode 索引 | 8B 干净 28.8 tok/s → 有 Chrome 时 20.8(剔除出 median) | 测前关标签;或预算 4–6GB 给 OS + IDE |
| 混淆框架与内存 | 以为换 MLX 就能省内存跑 14B | 同模型 Ollama vs MLX 内存差 <5% | 框架差几个百分点;档位差一个数量级 |
一位独立开发者的反馈很典型:「16GB 上 Claude Code + qwen2.5-coder:14b,前两轮还行,第三轮 TTFT 从 1.9s 涨到 5.8s」——这不是模型变笨,是统一内存进入 swap 区。原理层见《统一内存与 LLM 推理》。
3. 形态:16GB / 24GB / 32GB 各自边界
M4 Mac Mini(基础款)提供三档统一内存,GPU 均为 10 核、带宽约 120 GB/s。内存 GB 数不改变 L2 带宽上限,但决定模型 + KV + 前台应用能否同时驻留而不触发 L3 压力崩塌。
3.1 内存预算公式(估算用)
| 占用项 | 7B Q4 | 14B Q4 | 说明 |
|---|---|---|---|
| 量化权重 | ~4.5 GB | ~9 GB | Ollama 默认 Q4_K_M |
| KV cache(num_ctx=2048) | ~0.5 GB | ~1 GB | 随 ctx 线性增长 |
| macOS + 前台 | 4–6 GB | 4–6 GB | Chrome/IDE 各占 1–3 GB |
| Ollama daemon | ~0.3 GB | ~0.3 GB | 常驻 HTTP 服务 |
| 合计(粗算) | ~10 GB | ~15 GB | 16GB 跑 14B 几乎无余量 |
3.2 三档对照:能跑 / 勉强 / 不建议
| 内存 | 7B/8B | 14B | 32B | 备注 |
|---|---|---|---|---|
| 16GB | ✅ 稳定 | ⚠️ 易 swap | ❌ | 个人轻量首选档 |
| 24GB | ✅ 极快 | ✅ 甜点 | ⚠️ 紧张 | Agent / 编程推荐档 |
| 32GB | ✅ | ✅ 大 ctx | ⚠️ Q4 可试 | 同机 CI + LLM |
若你主要场景是「本机 Claude Code + 14B」,24GB 是性价比最高的升档点——不是线性「每多 8GB 多 8 tok/s」,而是推迟 swap 触发,让 14B 从崩溃区进入稳定区。完整方法论见Hub 全量实测。
4. 配置:Ollama vs MLX 内存 footprint 实测
很多人以为 MLX「更原生」所以更省内存——实测并非如此。同模型、同量化精度下,两者权重与 KV 占用几乎相同;差异在运行时架构,不在 GB 数。
| 对比项 | Ollama | MLX | 实测差异 |
|---|---|---|---|
| 模型权重(Llama 3.1 8B Q4) | ~4.9 GB | ~4.8 GB | 可忽略 |
| 常驻进程 | ~200–400 MB(daemon) | 按需加载,无 daemon | Ollama 多占少量 |
| tok/s(16GB 干净 8B) | median ~28.8 | ~28–32 | MLX 快 0–12%(离线) |
| tok/s(24GB 干净 8B) | median ~51.2 | ~52–55 | 差距缩小 |
| Claude Code 接入 | ✅ 原生 :11434 | ❌ 需自建 HTTP | Agent 固定 Ollama |
| swap 触发后表现 | 11.2 → 3.4 tok/s | 同档内存同样崩塌 | 内存档位决定一切 |
需要远程跑 14B 又不想升级本机?可以先在 Macstripe 24GB 云节点上试用一周,确认 Agent 工作流再决定是否自购升档。
5. 实测数据:tok/s、TTFT 与 swap 断点
测试环境:Mac Mini M4(Mac14,3),macOS 15.4.1,Ollama 0.6.2,默认 Q4_K_M。机器编号 m4-16gb-lab-01、m4-24gb-lab-02。周期 2026-05-28 至 2026-07-18。
5.1 16GB:7B 稳定 vs 14B 崩塌
| 模型 | run 1 | run 2 | run 3 | median | Swapins |
|---|---|---|---|---|---|
| qwen2.5:7b | 28.7 | 31.4 | 26.9 | 29.1 | 0 |
| qwen2.5:14b | 11.2 | 8.4 | 3.4 | —(会话中止) | 8421+ |
14B 在 16GB 上不是「慢半拍」,而是三阶段崩塌:run 1 尚可 → run 2 开始 swap → run 3 memorystatus: WARN → runner OOM 被杀。
5.2 24GB:14B 进入甜点区
| 模型 | tok/s 五次 run | median | TTFT | Swapins |
|---|---|---|---|---|
| qwen2.5:7b | 49.2 / 53.8 / 51.1 / 48.6 / 52.4 | 51.1 | ~2.0s | 0 |
| qwen2.5:14b | 14.2 / 16.8 / 15.1 / 17.3 / 14.9 | 15.1 | ~2.7s | 0 |
5.3 原始 log 节选
--- m4-16gb-lab-01 · qwen2.5:14b ---
run 1: tok/s=11.2 TTFT=2.71s
run 2: tok/s=8.4 Swapins: 1204
run 3: tok/s=3.4 memorystatus: WARN TTFT=5.81s
run 4: ERROR runner killed (oom?) Swapins: 8421
--- m4-24gb-lab-02 · qwen2.5:14b ---
tok/s: 14.2 16.8 15.1 17.3 14.9 median: 15.1
完整日志见 resources/sample-benchmark-7b-14b-run.log;复现脚本 resources/benchmark-m4-mac-mini-ollama.sh。
6. 渠道:自购升档 vs 云 Mac 租赁
| 路径 | 适合谁 | 优点 | 缺点 |
|---|---|---|---|
| 自购升档(16→24GB) | 每周多次本地 Agent、长期离线 | 一次投入、数据不出本机 | Apple 官方升档贵;机器绑定桌面 |
| 云 Mac 按天/月租 | 试用 14B、峰值任务、团队节点 | 分钟级开通、可按需 24GB/48GB | 需网络;长期成本需算 ROI |
| 混合:本机 16GB + 云 24GB | 日常 7B 本机、重任务上云 | 成本灵活、峰值不 swap | 两套环境维护 |
一位做 iOS + AI 双栈的开发者采用混合方案:本机 16GB 跑 7B 做代码补全,Claude Code 重任务 SSH 到 Macstripe 24GB 节点跑 14B——月租约 $103,比自购 24GB 机器升档的差价更可控。租赁报价横评见《同款 Mac mini M4 租赁报价对照》。
7. 升档价差:内存多花多少钱
| 升档路径 | Apple 官方差价(约) | 云租月差价(约) | 何时值得 |
|---|---|---|---|
| 16GB → 24GB | +¥1,500(购机时选) | +约 $30–50/月 | 每周 3+ 次觉得 7B「改不对」 |
| 24GB → 32GB | +¥1,500 | 视供应商 | 同机 Xcode CI + 14B |
| 16GB → 48GB(M4 Pro) | 换机型 | Macstripe 48GB 节点 | 团队共享 / 32B 探索 |
ROI 粗算:若你每周因 7B 质量不足多付 2 小时人工(按 ¥200/h),一个月 ¥1,600——已超过 16→24GB 的官方升档差价。内存升档往往是最便宜的有效升级,比换框架或调参管用得多。
8. checklist 与七步落地
下单或装机前,用下面清单对齐预期:
- ☐ 主要场景是聊天(7B 够)还是 Agent 编程(倾向 14B)
- ☐ 是否会同时开 Chrome 20+ 标签 + IDE
- ☐ 是否需要 Claude Code / Cursor 本地模型接入
- ☐ 运行时选 Ollama(Agent)还是 MLX(仅压测)
- ☐ 本机常驻 or 峰值任务上云
- ☐ 预算覆盖 16GB / 24GB / 32GB 哪一档
- ☐ 有无团队共享需求(→ 24GB+ 或云节点)
- ☐ 是否接受 swap 风险(16GB + 14B = 高风险)
七步落地(Ollama 路径)
- 确认内存档位与目标模型(16GB→7B;24GB→14B)
- 安装 Ollama:
brew install ollama或官网 pkg - 拉模型:
ollama pull qwen2.5-coder:7b(16GB)或:14b(24GB) - 验证 Metal:
ollama serve日志含ggml_metal_init - 跑 benchmark:
./resources/benchmark-m4-mac-mini-ollama.sh - 监视内存:
vm_stat+ Activity Monitor 压力指示器 - 接入 Agent:Claude Code 指向
http://127.0.0.1:11434
9. 可引用起价表(截至 2026-07-21)
| 配置 | Apple 官方起价(CNY) | 教育优惠价(约) | Macstripe 云租包月(USD) |
|---|---|---|---|
| M4 Mac Mini 16GB / 256GB | ¥4,499 | ¥4,049 | 约 $102.9 |
| M4 Mac Mini 24GB / 256GB | ¥5,999 | ¥5,399 | 约 $130–150(视节点) |
| M4 Mac Mini 32GB / 256GB | ¥7,499 | ¥6,749 | 询价 / 定制 |
| M4 Pro 48GB(推理节点) | ¥12,999+ | 视配置 | 见 定价页 |
Apple 价格为官网公开信息,教育价需符合条件;云租价格以 Macstripe 定价页实时展示为准。
10. 场景收束:谁该买哪档
| 人群 | 推荐内存 | 模型 + 框架 | 备选 |
|---|---|---|---|
| 学生 / 尝鲜 | 16GB | 7B + Ollama | 云租按天试 14B |
| 独立开发者 + Agent | 24GB | 14B + Ollama | 本机 16GB + 云 24GB 混合 |
| iOS 开发 + 本地 LLM | 32GB | 14B + Xcode 同机 | CI 与推理分流两台 |
| 小团队推理节点 | 48GB | ollama serve 集群 | Macstripe 48GB 节点 |
不确定 24GB 是否够用?建议先按周租一台云 Mac跑真实 Agent 工作流,比看十篇 benchmark 更靠谱。Macstripe 支持 SSH/VNC 直连,约 5 分钟开通,无长约——试完再决定是自购升档还是长期租用。
FAQ
M4 Mac Mini 跑本地 LLM 选 16GB 还是 24GB?
日常 7B/8B + 轻量 IDE 用 16GB;要稳定 14B、Claude Code Agent 或多开浏览器,建议 24GB。16GB 强跑 14B 实测 tok/s 可从 11.2 跌到 3.4。
Ollama 和 MLX 哪个更占内存?
同模型同量化下差距通常小于 5%。瓶颈在统一内存档位,不在框架名。Agent 场景固定 Ollama。
32GB 比 24GB 值不值?
个人 14B + 标准 ctx 时 24GB 通常够用;32GB 适合同机 Xcode CI + LLM 或更大 num_ctx。
怎么判断内存不够了?
看内存压力指示器、vm_stat Swapins 持续增长、tok/s 断崖下跌。memorystatus WARN 是 swap 前兆。
不想买实体机,能租云 Mac 跑本地 LLM 吗?
可以。Macstripe 提供 16GB/24GB/48GB 独享 M4 节点,SSH 接入后安装 Ollama 即可,适合试用 14B 或团队推理节点。
总结
在 M4 Mac Mini 上跑本地 LLM,内存档位是一票否决项:16GB 适合 7B + Ollama 个人试用;24GB 是 14B Agent 的甜点区;32GB 留给同机 CI + 大上下文。Ollama 与 MLX 的内存占用差距可忽略,框架选型应服从场景(Agent → Ollama,压测 → MLX)。
若你还在 16GB 上硬扛 14B,建议先读7B vs 14B 实测对照 swap 数据,或试用 24GB 云 Mac跑一周真实工作流再决策。