先说结论:16G 的 Mac,最该跑的模型恰恰是它"装不下"的那个。
我把一台 128G 的 Mac 用一行命令硬卡成 16G 显存,从头实测了一遍主流尺寸的本地大模型。方法先诚实说明:CPU 和内存带宽还是大机器的,速度数字对真 16G 偏乐观;但装不装得下、上下文剩多少,是显存说了算,这两条结论可以直接搬。
装得下的三档
- 4B(约 3G):每秒 55 个字,飞快
- 8B(约 5.5G):每秒 32 个字,日常够用
- 14B(约 9.4G):每秒 17 个字。16G 机器满打满算能给 10.9G,只剩 1.5G 余量——能跑,但顶到天花板了
到这儿都符合直觉:越大越慢,装不下就别想。
反转:装不下的 30B,反而快一倍
30B 的混合专家模型(MoE)要 17.8G,16G 根本装不下。但 Ollama 没报错——它把一半塞进显存,另一半甩给 CPU 内存。
结果:每秒 34 个字,比塞得进显存的 14B 快了整整一倍。
我第一反应不是高兴,是怀疑:会不会掉到 CPU 上本来就没什么损失?于是把显存卡得更低,逼两个模型都往 CPU 上掉再比一次——14B 六成掉出去,从 17 掉到 11.7;30B 被逼到只剩两成还在显存里,仍然跑出 28.7。
而且 MoE 掉得其实更狠(只保留五成速度,稠密模型还能保留六成六)。所以差别根本不在掉不掉 CPU,而在名字后面那个小尾巴:a3b。它揣着 300 亿参数,每次只叫醒 30 亿干活,底子就比 14B 快三倍。折扣再狠,也盖不过倍数。
比速度更容易被忽略的一刀:上下文
同一个 4B 小模型,在 128G 机器上 Ollama 给 26 万上下文,在 16G 机器上直接砍到 4000——砍掉九成八,不报错,不提示。
好消息:4000 不是硬上限,只是保守默认值。我在 16G 档手动把上下文开到 32k,占用从 5.5G 涨到 9.5G,全部还在显存里,速度几乎无损(31.5 → 30.7)。
16G 的 Mac 拿到手,第一件该做的事就是自己把 num_ctx 调上去。你不动它,就只有 4000。
那 32G 买到了什么?
8B 没差别,14B 也没差别。唯一变了的是 30B MoE:从每秒 34 个字涨到 55 个字,快了六成——因为 32G 是唯一能让它全量进显存的档位。就这一条。你要是不打算跑它,多出来的 16G 一分都用不上。
行动清单
- 16G Mac 日常问答:直接用 8B,别纠结
- 想要更聪明:上 30B MoE(如 qwen3-30b-a3b),别管它装不装得下
- 装好第一件事:手动把上下文从默认 4000 调到 32k
- 选型只盯两个数:激活参数(决定速度)和你需要的上下文长度(决定显存),不是总参数
完整实测过程做成了 4 分钟视频(含对照实验和翻车过程):https://youtu.be/uDGG-rAlLuM
相关文章
更多真机实测视频,见 YouTube 频道「富爸爸大妙招」。


评论