
OpenAI 与 Anthropic 抢购 Mac mini、渠道一度缺货的消息表面上是一次供应行情波动实质上是 AI 基础设施需求变化的信号。过去讨论 AI 计算默认就是买 GPU、租云主机但 Mac mini 这种以统一内存和低功耗见长的小主机突然成为 AI 公司批量采购的对象说明算力需求正在从训练侧延伸到执行侧。这篇文章从工程角度拆解 Mac mini 在 AI 工作负载里的真实角色并给出本地大模型推理、macOS 虚拟化执行环境、多台设备管理和排错的完整思路。适合正在选型本地推理设备、需要维护一批 macOS 执行节点或者想理解 Apple Silicon 为什么适合跑大模型的开发者阅读。读完后可以回答三个问题Mac mini 的算力边界到底在哪里一台和多台 Mac mini 分别怎么用真正落地时最容易踩到哪些坑。1. 为什么 AI 公司会批量采购 Mac mini先看懂需求信号1.1 缺货背后不是普通消费需求从渠道反馈和市场讨论看Mac mini 在部分市场出现了缺货和溢价。这种情况如果发生在手机新品上很容易解释但 Mac mini 是一款相对成熟的产品线集中缺货往往意味着大宗采购而不是零售波动。行业里比较一致的两类工程解释一类是用统一内存跑本地大模型推理另一类是把大量 Mac mini 当作 macOS 虚拟化实例的执行底座。两类需求都可能一次性采购几十台到几百台设备对渠道库存的冲击远大于零散订单。这里不讨论具体公司到底买了多少台、用来做什么这类信息无法从公开渠道准确确认。更值得做的是拆解技术原因Mac mini 到底有哪些特性会让 AI 团队把它纳入算力规划。1.2 统一内存是 Mac mini 区别于普通 PC 的关键Mac mini 和普通迷你主机最大的区别不是机身体积而是芯片里的统一内存架构。在 M 系列芯片里CPU、GPU、神经网络引擎共享同一块物理内存数据不需要经过 PCIe 总线在显存和内存之间拷贝。对大模型推理来说这意味着权重可以完整放进内存而不是像显卡显存那样受 12GB、24GB 的物理上限约束。一块主流消费级显卡的显存通常在 8GB 到 24GB而一台 64GB 内存的 Mac mini 可以加载 40GB 左右的量化模型权重。虽然算力远不如高端 GPU但对很多只需要把模型跑起来、跑出可接受吞吐量的场景它已经够用。此外M 系列的内存带宽远高于普通 DDR 内存。以 M4 Pro 为例内存带宽达到 273GB/s普通 PC 的双通道 DDR5 带宽通常在 80GB/s 上下。LLM 解码阶段是典型的内存带宽敏感负载带宽越高单位时间内能读出的权重越多生成速度越快。1.3 Mac mini 在 AI 项目里的三类角色把 Mac mini 放进技术架构里看它通常承担三类角色。第一类是本地推理终端。代码仓库里跑私有模型、个人工作流里做文档问答数据不出本机避免把敏感内容发送到外部 API。这类场景对网络依赖小对内存容量要求高。第二类是 Agent 执行节点。通过 macOS 虚拟化创建隔离的桌面环境运行自动化脚本或智能体任务。这里有一个被很多人忽略的限制要在虚拟化环境里跑 macOS就必须有实体 Apple 设备。于是 Mac mini 成为成本最低、最容易集中采购的入口。第三类是设备农场。用一批固定配置的 Mac mini 做软件兼容性测试、UI 自动化回归特点是并发任务多、单任务资源占用小。三类角色对内存、CPU、网络的要求完全不同下面的章节分别展开。2. 用 Mac mini 跑本地大模型从装环境到测吞吐2.1 为什么先看内存带宽而不是只看算力很多第一次接触 Mac mini 推理的人习惯先问它的 GPU 是多少 TFLOPS结果发现和独显有差距就认定它不能跑模型。这个判断忽略了 LLM 推理的两阶段差异。预填充阶段是计算密集的需要大量矩阵乘法确实吃 GPU 算力但解码阶段是权重复用型负载每次生成一个 token 都要把权重从内存里读一遍瓶颈在带宽而不是峰值算力。一台 64GB 内存的 Mac mini 在解码阶段的实际表现往往比规格表里的 GPU 算力更有参考价值。这也是上一章强调统一内存和带宽的原因它们决定了一台 Mac mini 能装下多大的模型、每秒钟能生成多少个 token。2.2 最小环境安装 Ollama 并跑起 7B 模型本地推理最省事的路径是 Ollama它把模型下载、量化、运行时和 HTTP API 都封装好了。前置条件不复杂macOS 14 或更新系统内存至少 16GB硬盘建议 512GB 以上。装之前先执行系统更新避免因为系统版本太老导致安装失败。brew update brew install ollama安装完成后启动服务ollama serve第一次运行后Ollama 会在 11434 端口启动本地服务。新开一个终端窗口拉取模型ollama pull qwen2.5:7b ollama run qwen2.5:7bqwen2.5:7b会在本地下载量化后的权重默认约占 4GB 到 5GB 磁盘。ollama run会进入交互式对话先输入一句中文确认它能正常回复。确认后退出交互用下面的 API 做一次非流式请求curl http://127.0.0.1:11434/api/generate \ -H Content-Type: application/json \ -d {model:qwen2.5:7b,prompt:用一句话解释统一内存,stream:false}返回的 JSON 里有response、eval_count和eval_duration等字段。eval_count是生成的 token 数eval_duration是生成耗时两者相除就是解码速度。这一步完成说明一台 Mac mini 已经具备对外提供本地模型推理服务的能力。2.3 需要细粒度控制时改用 llama.cppOllama 隐藏了底层细节适合快速验证。但当你需要控制线程数、上下文长度、量化类型或者要复现生产问题建议直接用 llama.cpp。llama.cpp 是跨平台的 C/C 推理引擎对 Apple Silicon 做了优化支持 Metal GPU 加速。git clone https://github.com/ggml-org/llama.cpp cd llama.cpp cmake -B build -DCMAKE_BUILD_TYPERelease cmake --build build --config Release -j编译完成后把 GGUF 格式的模型文件放到models目录再执行./build/bin/llama-cli \ -m models/qwen2.5-7b-instruct-q4_k_m.gguf \ -p 介绍一下 Apple 统一内存的作用 \ -n 256 \ --no-display-prompt-m指定模型文件-n指定生成的最大 token 数。GGUF 权重可以从开源模型仓库下载具体路径以模型页面说明为准。llama.cpp 的输出有更详细的性能统计可以看到 prompt 处理速度和解码速度的差异这比自己估算更准确。注意不同项目的编译依赖版本差异很大如果 cmake 或编译器版本过旧编译阶段会先报错要按报错内容补装依赖。2.4 用数字验证token/s 怎么算只看模型能不能回复还不够推理速度必须量化。以刚才的 API 返回为例如果eval_count是 132eval_duration是 8600000000 纳秒也就是 8.6 秒那么解码速度大约是132 / 8.6 ≈ 15.3 token/s这个速度对追求流畅对话的场景偏慢但作为脚本调用或离线批量处理是可用的。如果换成小模型或更高带宽的芯片速度会明显提升。关键判断标准是模型必须能装进内存吞吐必须能满足业务二者缺一不可。学习环境下只需要关注前者生产环境则要同时关注延迟波动和并发上限。3. Agent 执行环境与 macOS 虚拟化为什么需要实体 Mac mini3.1 授权限制macOS 虚拟机只能跑在 Apple 硬件上如果 Agent 任务需要操作真实 macOS 桌面环境比如自动化办公软件、浏览器界面测试、截图分析就必须有 macOS 虚拟机或实体机。这里有一个经常被忽略的约束macOS 的使用许可只允许在 Apple 品牌硬件上运行。公共云虽然已经出现 macOS 实例但覆盖区域和配额有限成本也不低很多团队最终选择自购物理设备。和“把计算放到云上”的直觉相反跑 macOS 执行环境反而要回到实体硬件。Mac mini 是 Apple 硬件里入门价格较低、尺寸规整、容易集中摆放的产品自然成为这类需求的首选。买几十台 Mac mini 放到机柜里通过虚拟化把一台物理设备切成多个隔离执行环境总成本比租用同等数量的云实例更可控。3.2 用 Tart 在 Mac mini 上创建 macOS 虚拟机在单台 Mac mini 上创建 macOS 虚拟机最简单的方式是使用基于 Apple Virtualization Framework 的开源工具 Tart。Tart 能创建、克隆、运行 macOS 虚拟机并且支持脚本化批量操作。brew install cirruslabs/tart/tart tart clone 基础镜像地址 base tart run --headless basetart clone从远程仓库拉一份 macOS 基础镜像具体镜像地址以工具仓库说明为准。tart run --headless表示无头运行适合没有显示器的服务器场景。虚拟机启动后可以通过 SSH 连接。做 Agent 任务时建议每个任务使用独立的 VM 快照任务结束后直接回滚避免上一次运行留下的文件、缓存和登录状态污染下一次执行。这比“删掉重建一台虚拟机”快得多也是 Mac mini 批量执行场景里最常用的姿势。3.3 多台 Mac mini 组成执行集群的思路当任务量超过单机承载能力时架构会变成管理端加执行端两层。管理端负责任务调度、镜像分发、结果回收每台 Mac mini 运行若干虚拟机执行端通过队列服务领取任务。调度中心可以选择 Redis、NATS 之类的轻量消息组件任务描述用 JSON 传递。执行节点不需要暴露公网端口只主动连接内网任务队列安全模型简单很多。批量情况下还需要统一处理三件事。第一是镜像更新。基础镜像只维护一份修改后通过内网分发不要在每台设备上手工改动。第二是资源配额。每台设备分配多少个 VM、每个 VM 多少内存必须和物理内存匹配否则后面会频繁出现 OOM。第三是异常恢复。宿主机重启后要能自动拉起 VM