ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Mac Mini 跑本地 AI:内存带宽与稀疏模型支持的真实瓶颈

Mac Mini 跑本地 AI:内存带宽与稀疏模型支持的真实瓶颈

1. 为什么“Mac Mini 跑本地 AI”这件事值得单独拎出来聊

最近半年,后台被问得最多的一类问题就是:想在家里或者小团队里搞一套本地 AI 推理环境,预算有限,看到 Mac Mini 体积小、功耗低、静音、还带统一内存,是不是买一台就能当推理服务器用?尤其是 M 系列芯片把内存带宽一路往上堆之后,“Mac Mini 跑本地大模型”几乎成了入门玩家的默认答案。

但我自己实际折腾下来,结论跟这个默认答案有不小偏差。Mac Mini 确实能跑本地模型,甚至跑得还挺安静挺省电,可它离“推理服务器”这四个字之间,隔着一道由内存带宽和稀疏模型支持共同筑成的墙。这道墙不是靠加内存就能翻过去的,也不是靠换个量化格式就能绕开的。很多人买回来才发现,能跑和跑得舒服、跑得划算,完全是两码事。

这篇东西我想把这件事讲透。核心围绕三个词:Mac Mini、本地 AI、内存带宽与稀疏模型。我会说清楚它到底适合谁、不适合谁,为什么统一内存的账面数字会骗人,稀疏模型这条路线在 Mac 上为什么走不通,以及如果你真的想搭一套本地推理环境,钱应该花在什么地方。不管你是刚入门想买第一台设备的小白,还是已经踩过坑想搞清楚原理的老玩家,应该都能从里面找到对自己有用的部分。

先说清楚我的立场:我不是来黑 Mac Mini 的。它是一台非常优秀的桌面电脑,我自己也在用。我只是反对把它当成“本地 AI 推理服务器”来买——这两个定位对硬件的要求根本不是一个方向。

2. 先搞懂本地 AI 推理到底在吃什么资源

2.1 算力、显存、内存带宽,三者谁才是瓶颈

很多人第一次接触本地部署,脑子里只有一个概念:算力。觉得芯片越强、TOPS 越高,模型就跑得越快。这个理解在训练场景下勉强成立,但在推理场景下,尤其是大语言模型这种自回归生成的任务里,算力往往不是第一瓶颈。

大模型推理分两个阶段:预填充(prefill)和解码(decode)。预填充阶段是把你的整段输入一次性喂进去,这一步是计算密集型的,算力吃得多,矩阵乘法规模大,GPU 利用率能拉满。而解码阶段是一个 token 一个 token 往外吐,每生成一个 token,都要把整个模型的权重从内存里读一遍。注意,是整个模型的权重,每一个 token 都要读一遍。

这就引出了真正的瓶颈:内存带宽。解码阶段本质上是“内存带宽受限”的,算力单元大部分时间在等数据从内存搬过来。模型有多大,每个 token 就要搬多少数据。你带宽有多宽,决定了你每秒能吐多少个 token。

打个生活化的比方:算力像是厨房里厨师的手速,内存带宽像是传菜口有多宽。厨师手速再快,传菜口只有一个巴掌宽,菜也端不出来。解码阶段就是传菜口决定出菜速度的阶段。

2.2 一个能自己算的公式:每秒能出多少 token

这个公式我建议每个想搞本地部署的人都记下来,因为它能直接帮你判断一台设备到底行不行:

理论解码速度(token/s)≈ 内存带宽(GB/s)÷ 模型权重体积(GB)

注意这是理论上限,实际还要打七折到八折,因为有 KV Cache、有调度开销、有各种损耗。但用它做横向对比非常准。

举几个实际数字。一个 7B 参数的模型,用 4bit 量化,权重大概 3.5GB 到 4GB。一台内存带宽 100GB/s 的机器,理论解码速度就是 100 ÷ 4 = 25 token/s,实际大概 18 到 20 token/s,这个速度日常对话是够用的。但如果换成 70B 模型,4bit 量化后权重约 35GB 到 40GB,同样 100GB/s 带宽,理论速度就掉到 2.5 token/s,实际可能 1.5 到 2 token/s,这个速度基本没法用,比人打字还慢。

所以你看,决定你能不能跑、跑得爽不爽的,第一是模型多大,第二是带宽多宽。算力反而排在后面。

2.3 为什么“统一内存”听起来很美

Mac 的统一内存架构(Unified Memory)确实是个好东西。CPU 和 GPU 共享同一块物理内存,不需要在两者之间来回拷贝数据,省掉了 PCIe 传输的开销,也省掉了独立显卡那点显存容量的限制。理论上,你有 64GB 统一内存,就能加载一个 64GB 以内的模型,这在消费级独显上是想都不敢想的——一张 24GB 显存的卡,超过 24GB 的模型就得靠 CPU 卸载,速度断崖式下跌。

这就是 Mac Mini 最大的卖点:用相对便宜的价格,买到很大的可用显存容量。一台 32GB 内存的 Mac Mini,价格可能比一张 24GB 显存的显卡还便宜,而且整机功耗只有几十瓦,静音无风扇噪音(低配)或者很轻微的风扇声。

但问题恰恰出在这里:容量和带宽是两回事。统一内存给了你大容量,却没有给你匹配大容量的带宽。这就像给你一个巨大的仓库,但仓库门口只有一条单车道,货再多也运不快。

3. Mac Mini 的内存带宽到底处在什么水平

3.1 各代芯片带宽横向对比

我把目前常见的几档 Mac 芯片内存带宽整理了一下,方便你对照:

芯片内存带宽典型内存配置定位
M1约 68 GB/s8/16GB入门
M2约 100 GB/s8/16/24GB入门
M2 Pro约 200 GB/s16/32GB中端
M3约 100 GB/s8/16/24GB入门
M3 Pro约 150 GB/s18/36GB中端
M4约 120 GB/s16/24/32GB入门
M4 Pro约 273 GB/s24/48/64GB中高端
M4 Max约 410 GB/s 起36GB 起高端

看这张表你会发现一个关键规律:带宽和芯片定位强绑定,和内存容量不绑定。你可以给 M4 配 32GB 内存,但带宽还是 120GB/s;你也可以给 M4 Pro 配 24GB 内存,带宽却有 273GB/s。买 Mac Mini 的时候,很多人只盯着内存容量选,忽略了芯片型号决定的带宽上限,这是第一个大坑。

Mac Mini 这个产品线,能选到的最高也就是 M4 Pro 这一档(截至我写这篇时的产品线),带宽 273GB/s。这个数字放在苹果自家产品里算不错,但放到整个推理硬件市场里,只能算中游偏下。

3.2 和主流推理硬件放一起看

我们拿几个参照物对比一下:

  • 一张 RTX 4090,显存带宽约 1008 GB/s,24GB 显存。
  • 一张 RTX 3090,显存带宽约 936 GB/s,24GB 显存。
  • 一张 RTX 4060 Ti 16GB,带宽约 288 GB/s。
  • 苹果 M4 Pro,273 GB/s,但可以配到 64GB 统一内存。

看出来了吗?M4 Pro 的带宽,大概只相当于一张中端独显的水平,比如 4060 Ti 这个档次。但它的优势是能配到 64GB 内存,能装下 4060 Ti 装不下的模型。

所以 Mac Mini 的真实定位是:用中端显卡的带宽,跑大显存才能跑的模型。它的甜点区是那些“24GB 显存装不下、但带宽需求不算极端”的模型,比如 30B 到 40B 级别的 4bit 量化模型。一旦模型大到 70B 以上,带宽就成了硬伤,速度会难看到你不想用。

3.3 带宽不够时会发生什么

带宽不足最直接的表现就是解码速度慢。但还有几个连带问题容易被忽略:

第一,首 token 延迟高。预填充阶段虽然算力密集,但也要把权重读一遍,带宽低意味着预填充也快不到哪去。你输入一段长文本,等第一个字出来可能要好几秒。

第二,并发能力差。本地推理服务器如果只服务你一个人,慢点还能忍。但如果想给团队几个人同时用,每个请求都要读一遍权重,带宽被瓜分,速度会成倍下降。这就是为什么我说 Mac Mini 不适合当“推理服务器”——服务器是要服务多人的,而它的带宽连服务一个人跑大模型都吃力。

第三,长上下文更吃力。上下文越长,KV Cache 越大,内存占用越高,带宽压力也越大。Mac 的统一内存虽然能装下长上下文,但读取 KV Cache 同样消耗带宽,速度会进一步下滑。

4. 稀疏模型:Mac 上那条走不通的路

4.1 什么是稀疏模型,为什么它重要

要理解稀疏模型,先理解稠密模型。稠密模型就是每次推理,所有参数都参与计算,一个不落。稀疏模型(MoE,混合专家)则不一样,它把模型拆成很多个“专家”,每次推理只激活其中一小部分。比如一个总参数 100B 的 MoE 模型,可能每次只激活 10B 到 20B 的参数。

这带来一个巨大的好处:用大模型的知识容量,换小模型的推理成本。你有一个 100B 模型的知识面,但每次只按 15B 模型的速度跑。这对带宽受限的设备来说简直是救命稻草——因为解码阶段只需要读取被激活的那部分专家权重,带宽压力大幅下降。

现在很多开源大模型都走 MoE 路线,比如各种 Mixtral 风格的模型、Qwen 的 MoE 版本、DeepSeek 的 MoE 系列。它们的共同特点是:总参数很大,激活参数很小,推理速度快,效果好。

4.2 Mac 的软件栈对稀疏支持有多差

问题来了:苹果的推理框架对 MoE 的支持非常有限。

苹果主推的推理框架是 MLX,以及底层的 Metal Performance Shaders。MLX 这两年进步很快,稠密模型的推理效率做得不错,社区也在积极适配各种模型。但 MoE 这块,支持一直跟不上。原因有几个:

第一,MoE 需要动态路由,每次推理根据输入决定激活哪些专家。这种动态性对静态图编译和算子融合不友好,而苹果的框架在动态调度上不如 CUDA 生态成熟。

第二,MoE 的专家权重是分散存储的,需要高效的内存索引和 gather 操作。CUDA 生态里有大量针对这类操作的优化,苹果这边基本是从零开始。

第三,社区适配滞后。主流的 MoE 模型发布时,第一优先级是 CUDA,然后是 ROCm,苹果 MLX 的适配往往要等几周甚至几个月,而且经常是“能跑但没优化”的状态。

结果就是:同样一个 MoE 模型,在 N 卡上能跑出接近稠密小模型的速度,在 Mac 上可能慢得跟稠密大模型差不多。稀疏模型最大的红利,Mac 用户基本吃不到。

4.3 实测感受:MoE 在 Mac 上的尴尬

我自己试过在 Mac 上跑几个 MoE 模型,感受很直接。一个总参数 47B、激活参数 13B 左右的 MoE 模型,理论上应该跑出接近 13B 稠密模型的速度。但在 Mac 上,实际速度大概只有同量化 13B 稠密模型的一半到三分之二,而且内存占用是按 47B 算的,等于你付出了大模型的内存代价,却没换来大模型的效果,也没享受到小模型的速度。

这就很尴尬了。你本来指望 MoE 帮你绕开带宽瓶颈,结果发现绕不开,反而多占内存。所以在 Mac 上,稠密模型反而是更务实的选择,至少行为可预测,速度也符合带宽公式的估算。

提示:如果你在 Mac 上看到某个 MoE 模型宣传“激活参数只有 X B,速度飞快”,先别急着下载。去社区搜一下实际速度,大概率会失望。苹果生态对 MoE 的优化还处在早期。

5. 那 Mac Mini 到底适合跑什么

5.1 甜点区:中小尺寸稠密模型

说了这么多限制,Mac Mini 也不是一无是处。它的甜点区非常明确:中小尺寸的稠密模型,4bit 或 8bit 量化,单人使用。

具体来说,7B 到 14B 的模型,在 M4 Pro 上跑起来体验相当不错。速度能到 20 到 40 token/s,日常对话、写代码补全、文档总结这些任务完全够用。32B 左右的模型,速度会掉到 10 token/s 上下,还能接受,但已经能感觉到延迟。再往上,体验就开始明显下降。

这个定位其实对应了很多人的真实需求:本地跑一个能用的助手,处理一些不想上传到云端的敏感文本,或者在没有网络的时候也能用。这种场景下,Mac Mini 的静音、低功耗、小体积优势就体现出来了,放在桌面上完全不打扰。

5.2 边缘场景:批处理、离线任务

除了交互式对话,Mac Mini 还适合一些非实时的任务。比如批量处理一批文档做摘要、批量翻译、批量生成内容。这些任务对延迟不敏感,慢一点无所谓,跑一晚上也能出结果。这种场景下,Mac Mini 的低功耗优势就非常明显——一晚上几度电,比开着一台带独显的机器划算多了。

还有一些离线场景,比如在没网的会议室、出差路上、或者对数据隐私要求极高的环境里,Mac Mini 能提供一个完全本地的推理能力,这个价值是云端 API 替代不了的。

5.3 不适合的场景:多人并发、大模型、MoE

反过来,下面这些场景我强烈建议不要用 Mac Mini:

  • 多人并发推理服务:带宽不够分,人一多就卡。
  • 70B 以上的大模型:速度慢到没法用。
  • 依赖 MoE 的模型:软件栈支持差,吃不到稀疏红利。
  • 需要低延迟首 token 的交互:预填充阶段也受带宽拖累。

如果你属于这几类,钱应该花在别的地方,后面我会讲。

6. 如果不用 Mac Mini,钱该花在哪

6.1 消费级独显方案:带宽优先

如果你追求的是推理速度,那核心指标就是显存带宽。同样预算下,优先选带宽高的卡。一张带宽 900GB/s 以上的卡,跑 7B 到 14B 模型能轻松上百 token/s,体验跟 Mac 完全不是一个量级。

代价是显存容量有限,24GB 是消费级的常见上限,装不下太大的模型。但如果你主要跑中小模型,这个容量完全够用,而且速度快得多。对于单人使用、追求响应速度的场景,这是更理性的选择。

6.2 大显存方案:容量优先

如果你追求的是能装下大模型,那就要在容量上投入。专业卡有大显存版本,但价格昂贵。另一个思路是用多张消费卡做张量并行,把模型切开放到多张卡上,但这对主板、电源、散热都有要求,折腾成本高。

还有一条路是用系统内存 + CPU 推理,容量可以做得很大,但速度极慢,只适合批处理,不适合交互。

6.3 云 API:被低估的选项

很多人一上来就想本地部署,其实忽略了一个事实:大部分人的使用频率和并发量,根本撑不起本地部署的成本。一台能跑大模型的本地机器,硬件投入可能够你买好几年的云 API 额度。而且云 API 的模型更新更快、维护成本为零、速度还快。

本地部署真正的价值在于隐私、离线、可控这三个点。如果你的需求不涉及这三点,云 API 是更划算的选择。我一般建议:先用云 API 跑一段时间,确认自己真的有高频、隐私敏感、或者离线的需求,再考虑本地部署。

7. 实操:在 Mac 上把本地推理调到最优

7.1 模型选择与量化策略

如果你已经有一台 Mac,想把它调到最优状态,第一步是选对模型和量化。

模型尺寸上,M4 Pro 建议控制在 32B 以内,M4 建议控制在 14B 以内,M1/M2 基础款建议 7B 以内。超过这个范围,速度会难看到影响使用。

量化上,4bit 是性价比最高的选择。8bit 速度慢一倍、内存多一倍,效果提升有限。2bit 虽然省内存,但质量损失明显,除非实在装不下,否则不推荐。现在主流的 4bit 量化格式(比如各种 GGUF 的 Q4 系列、MLX 的 4bit)质量已经相当不错,日常使用基本感觉不到和原版的差距。

7.2 推理框架选择

Mac 上主流的推理框架有几个:

  • MLX:苹果官方,对苹果芯片优化最好,稠密模型速度快,社区活跃。
  • llama.cpp:跨平台,GGUF 格式生态最全,MoE 支持相对好一些,但苹果芯片上的绝对速度不如 MLX。
  • Ollama:基于 llama.cpp 的封装,开箱即用,适合新手,但可调参数少。

我的建议是:新手用 Ollama 快速上手,想压榨性能用 MLX,需要跑特殊模型或者 MoE 用 llama.cpp。三个都装也不冲突,按需切换。

7.3 关键参数调优

几个在 Mac 上特别值得调的参数:

上下文长度:不要一上来就拉满。上下文越长,KV Cache 越大,内存和带宽压力越大。按实际需要设置,比如日常对话 4K 到 8K 就够,长文档处理再往上加。

批处理大小:单人使用设小一点,减少内存占用。多人并发才需要调大,但 Mac 上并发本来就吃力,不建议。

GPU 层数卸载:llama.cpp 里有个-ngl参数,控制多少层放到 GPU 上。Mac 统一内存下,理论上可以全部卸载,但有时候留一两层在 CPU 上反而能缓解内存压力,具体要实测。

线程数:CPU 推理时线程数设成性能核数量,不要设成总核心数,因为能效核会拖后腿。

提示:调参这件事没有万能公式,因为每台机器的内存配置、散热、后台负载都不一样。建议用同一个 prompt 反复测,记录 token/s,找到自己机器的最优组合。

8. 常见问题与排查实录

8.1 速度比预期慢很多怎么办

先按带宽公式算一下理论上限,看看实际速度是不是在合理范围内。如果远低于理论值,检查几个点:是不是模型太大导致内存交换(swap)了?打开活动监视器看内存压力,如果内存压力常年黄色或红色,说明内存不够,系统在拿 SSD 当内存用,速度必然崩。是不是后台有别的程序占资源?是不是量化格式没选对?

8.2 内存不够用怎么优化

优先降量化位数,其次降上下文长度,再次换更小的模型。如果都不行,那就是硬件容量真的不够,只能换机器。Mac 的内存是焊死的,买的时候就要想清楚,后期没法加。

8.3 MoE 模型跑不动怎么办

先确认框架支持。MLX 对 MoE 支持有限,试试 llama.cpp。如果还是慢,那就是苹果生态的锅,短期内无解,换稠密模型吧。

8.4 多人访问就卡死

这是带宽瓶颈的典型表现,没有软件层面的解法。要么限制并发人数,要么换硬件。Mac Mini 从设计上就不是为多并发推理准备的。

问题现象可能原因排查方向
速度远低于理论值内存交换看活动监视器内存压力
首 token 特别慢预填充带宽受限正常现象,减少输入长度
MoE 模型异常慢框架支持差换 llama.cpp 或换稠密模型
多人访问卡顿带宽被瓜分限制并发或换硬件
长上下文崩溃KV Cache 爆内存降低上下文长度

9. 我个人的一些实际体会

折腾本地推理这两年,我最大的感受是:硬件选型这件事,最怕的就是被单一卖点带偏。Mac Mini 的统一内存是个好卖点,但它解决的是“装得下”的问题,没解决“跑得快”的问题。很多人买之前只看到前者,买之后才发现后者才是日常体验的决定因素。

我的建议是,买之前先问自己三个问题:我主要跑多大的模型?我是单人用还是多人用?我在意的是速度还是隐私?这三个问题的答案,基本就能决定你该买什么。如果答案是“中小模型、单人、在意隐私和静音”,Mac Mini 是个好选择。如果答案是“大模型、多人、在意速度”,那 Mac Mini 会让你失望。

还有一个体会是,本地部署的软件生态比硬件更重要。同样的硬件,换个框架、换个量化格式,速度可能差一倍。所以别只盯着参数表,多去社区看实际评测,多自己动手测。硬件是死的,软件调优的空间很大。

最后分享一个小技巧:如果你不确定自己该不该买 Mac Mini 跑本地 AI,先用手头的电脑装个 Ollama 跑个 7B 模型试试。如果那个速度你能接受,再考虑升级硬件;如果那个速度你都嫌慢,那 Mac Mini 大概率也救不了你。先验证需求,再花钱,这个顺序别搞反。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进