gekro
GitHub LinkedIn
Hardware

Mac Mini M4:本地 LLM 的非官方王者

阅读约 8 分钟

本文是英文原文的机器翻译,部分细节可能有所损失,请以英文版本为准。 阅读英文原文

要点速览

为什么统一内存架构,是在没有数据中心预算的情况下运行 70B 参数模型的唯一办法。
别再追逐 24GB 的 NVIDIA 显卡了。对本地 LLM 推理来说,显存(VRAM)是唯一重要的指标,而 Apple 的统一内存架构(UMA)是获得 64GB+ 显存最划算的方式。本文解释为什么 Mac Mini M4 Pro 是我实验室推理层里安静、高密度的核心。

如果你在 DFW 的郊区搭建实验室,很快就会明白:功耗和发热是你最大的敌人。我花了好几个月跟一台 3090 的 PC 整机较劲,它的声音像喷气发动机,每次有智能体跑后台任务,我的办公室就变成桑拿房。后来我换成了 64GB 统一内存的 Mac Mini M4 Pro。它很安静,功耗比一盏台灯还低,还能以可用的速度运行 Llama 3-70B 模型。硬件第一次变得“隐形”,这是任何工程实验室的终极目标。

架构

Apple Silicon 的“魔法”不在 CPU 速度,而在统一内存架构(UMA)。在传统 PC 里,CPU 内存和 GPU 内存(VRAM)是分开的。如果你想运行一个 40GB 的模型,就需要一块 1,600 美元的 GPU。在 Mac 上,系统内存就是显存。

特性台式机 PC (RTX 4090)Mac Mini (M4 Pro 64GB)
显存容量硬上限 24GB最高 64GB(灵活)
内存带宽1,000 GB/s (GDDR6X)273 GB/s (统一内存)
功耗450W - 600W20W - 50W
噪音风扇噪音大近乎无声
理想模型大小8B - 34B8B - 70B(量化后)

虽然在纯速度(每秒 token 数)上 PC 胜过 Mac,但在容量与成本之比上 Mac 更胜一筹。不经过大幅剪枝,你根本无法在一块消费级 NVIDIA 显卡上运行 70B 模型。Mac Mini 却能轻松吃下。

搭建

为生产级实验室配置 Mac,需要摆脱“桌面应用”的思维,转向无界面服务的思维。

1. 推理栈

我用 Ollama,因为它对 Apple Metal API 的实现最好。它把张量运算直接交给 M4 芯片上的 GPU 核心。

# Verify Metal acceleration is active in the logs
grep "Metal" ~/.ollama/logs/server.log

# You should see: "Metal device is available" and "offloading layers to GPU"

2. Python 桥接

我的智能体通过本地网络,用 GekroLLMClient 与 Mac Mini 通信,这个客户端我在关于 API 主权的文章里详细介绍过。

import ollama

def run_heavy_inference(prompt):
    # This runs on the Mac Mini, called by a Pi or my Workstation
    response = ollama.chat(
        model='llama3:70b-instruct-q4_K_M',
        messages=[{'role': 'user', 'content': prompt}]
    )
    return response['message']['content']

3. 模型量化的选择

对于 64GB 的 Mac,Q4_K_M 是 Llama 3-70B 的“恰到好处”的量化方案。它能轻松装进内存(给系统和其他智能体留出 20GB),同时保留基础模型 99% 的智能。

取舍

Mac Mini 并不完美。最大的“税”是缺少 CUDA。如果你要做模型训练或微调,和 NVIDIA 整机相比,Mac 只能当镇纸。大多数新的研究代码都是先为 CUDA 编写的,“Metal 支持”往往是几个月后才姗姗来迟的补丁。

说句公道话,我其实从没撞上这堵墙。我在这个实验室里跑的全是推理,而 Metal 上的推理一直表现不错。我提到它,是因为哪天我想在 Apple silicon 上微调什么东西时它就会咬我一口,而不是因为它曾经咬过我。

我还遇到过一个大问题:热积累。在对 1,000 条 Tesla 遥测日志做 4 小时批处理时,Mac Mini 内部的风扇终于转了起来,推理速度从 8 TPS 掉到 5 TPS。即使是 Apple 的能效,在连续数小时 100% 负载下也有极限。最后我 3D 打印了一个带 120mm 风扇的定制支架,让机身底部在长时间推理时保持凉爽。

接下来

我目前在研究用高速 Thunderbolt 桥接来把 Mac Mini 组成集群。如果我能把两台 M4 Pro 的内存合并起来,就能在本地运行 405B 参数的模型。这就是梦想:一个能放进书桌抽屉的、私有的本地“超级智能”。

Rohit Burani

作者

Rohit Burani

AI 工程师,在实验室里构建本地优先系统、自托管基础设施和自主工具。

感谢阅读。

如果这篇文章对你有帮助,欢迎分享给你的圈子。

← 返回博客