真正限制你的那个数字
统一内存要与 macOS 以及你打开的一切共享,而且 Metal 不允许单个进程锁定全部内存 —— 默认上限约为已装内存的 75%。所以 18GB 的 M3 Pro 大约能给模型 13.5GB,36GB 的机器约 27GB。Mac 上任何“装不装得下”的问题,比的都是这个数字,而不是机身标称的那个。它可以用 iogpu.wired_limit_mb 调整,但调高之后变成 macOS 开始换页、而不是模型加载失败,那更糟。
# What Metal will currently wire down (0 = system default, ~75% of RAM)
sysctl iogpu.wired_limit_mb
# 18 GB machine → ≈ 13.5 GB usable
# 36 GB machine → ≈ 27 GB usable18GB 的 M3 Pro
比本指南早先版本所说的更多。14B 的 Q4_K_M 在 8K 上下文下约 11.0GB,确实装得下 —— 之前这里写的是“需要 36GB 以上”,那是错的。7–8B 模型约 6GB,加载着也还能继续干别的活。真正装不下的是 30B:即便是 MoE 的 Qwen3 30B-A3B,在 8K 下也约 20GB,既超过 75% 上限也超过整机内存。
Llama 3.1 8B Q4_K_M @8K ≈ 6.2 GB comfortable
Qwen3 8B Q4_K_M @8K ≈ 6.4 GB comfortable
Qwen2.5 14B Q4_K_M @8K ≈ 11.0 GB fits, watch what else is open
GPT-OSS 20B MXFP4 @8K ≈ 12.9 GB tight — 95% of the 13.5 GB ceiling
Qwen3 30B-A3B Q4_K_M @8K ≈ 20.1 GB does not fit36GB 的 M3 Pro
32B 的 Q4_K_M 在 8K 下约 22.8GB,能放进约 27GB 的上限内 —— 早先“32B 需要 Q3 或大幅缩减上下文”的说法过于保守。14B 在 8K 下则会让整机大部分内存仍然空闲。这一档真正的限制是速度而非容量:让 32B 在 M3 Pro 上显得慢的是内存带宽,不是显存,生成每个 token 都要把全部权重读一遍,所以 M3 Pro 的 150 GB/s 就是速度上限:32B 的 Q4_K_M 约 8 tok/s,14B 约 18,8B 约 32。这些是上限而不是实测 —— 实际速度会低于它们,本站也没有 M3 Pro 的实测数据。值得知道的例外是混合专家模型 Qwen3 30B-A3B:8K 下约 20.1GB(在这一档可以从容运行),但每个 token 只读取少数激活的专家,所以不受稠密模型那条上限的约束。
ollama pull qwen2.5:14b # ≈ 11 GB at 8K — plenty of room
ollama pull qwen2.5:32b # ≈ 23 GB at 8K — fits; ceiling ≈ 8 tok/s
ollama pull qwen3:30b-a3b # ≈ 20 GB at 8K — fits; MoE, not bound by that ceiling确认它实际占用了多少
ollama ps 会报告驻留大小以及模型跑在哪里;在苹果芯片上应显示 100% GPU。当模型超出 Metal 允许 GPU 使用的上限时,Ollama 并不会拒绝加载 —— 它会把放不下的层放到 CPU 上,这一列会显示类似 25%/75% CPU/GPU,生成速度也随之下降。超限的信号是这种拆分,而不是报错。一旦机器开始换页,你会先在整机体验上感觉到,而不是在任何模型指标里看到,所以请看活动监视器里的“内存压力”,而不是可用内存。
ollama ps
# NAME ID SIZE PROCESSOR UNTIL
# qwen2.5:14b <id> ... 100% GPU 4 minutes from now
#
# Over the limit, the same column reads e.g. 25%/75% CPU/GPU常见问题
模型加载后 Mac 变得极卡:说明超出了 wired 上限、macOS 正在换页 —— 关掉一些应用或换更小的模型,而不是去调高 iogpu.wired_limit_mb。是长上下文把你顶出去的:只有 KV 缓存随上下文增长,所以先把上下文减半,再考虑换模型。Ollama 拉下来的文件比预期大:裸标签给的是该标签的默认构建(通常是 Q4_K_M),不是按你的内存挑的档位。
下一步
在显存计算器里选择你的 Mac —— 统一内存机型都在列表里 —— 并按你实际使用的上下文比较。记得用整机内存的约 75% 而不是 100% 去判断结果。
常见问题
18GB 的 M3 Pro 能跑 14B 模型吗?
日常上下文长度下可以。Qwen2.5 14B 的 Q4_K_M 在 8K 下约 11.0GB,而 18GB 机器上 Metal 允许 GPU 使用的大约是 13.5GB —— 占 81%,本站算作从容运行。会让它装不下的是长上下文:32K 时同一个模型约 15.9GB,超过上限,Ollama 就会开始把一部分层放到 CPU 上。
要不要调高 iogpu.wired_limit_mb 来装下更大的模型?
通常不要。默认设置给 macOS 和你打开的应用留了大约四分之一的内存;把它划给模型,只是把紧张转嫁到系统其他部分,一旦 macOS 开始换页,所有东西都会变慢,模型也不例外。换一档更小的量化或者缩短上下文,就能让同一个模型装下,而不必做这种取舍。
32B 模型在 M3 Pro 上能跑多快?
Q4_K_M 下最多约每秒 8 个 token,实际会更低。每生成一个 token 都要把全部权重读一遍,而 M3 Pro 的内存带宽是 150 GB/s,权重约 20GB —— 这个比值就是任何运行时都突破不了的上限。本站没有在 M3 Pro 上实测过,所以给出的是上限而不是实测值。像 Qwen3 30B-A3B 这样的混合专家模型每个 token 读取的数据少得多,不受这条上限约束。
这篇指南用到了什么
接下来
看看 🍎 Mac M3 Pro 18G 还能跑哪些模型反向查询 —— 18GB、8192 上下文,按质量排序本文涉及的模型
它真的跑起来了吗?
复制命令并不等于它能用,所以站内只在这里问一次。除了你的这个回答之外,不收集任何东西。