Apple Silicon机器学习的思考

2024年10月底 Mac Mini 2024 横空出世,Apple Silicon M4处理器带来的最具性价比苹果设备,在国补和教育优惠下能够下探到4000以下售价。时光飞逝,转眼在我开始写下这篇文章时(2025年10月27日),苹果已经在上周推出了基于M5的多款设备,虽然还没有轮到经济型的Mac mini,但是预计也就在这几周时间了。

硬件

凭借苹果成熟的制造技术和产品质量,Mac mini实际上远超个人自己攒机所能获得的计算性能:

  • 对比我采购了大量 Raspberry Pi 设备及周边,同样的4k投资无法获得低功耗稳定强劲的计算和AI性能

  • 对比我组合二手 Nvidia Tesla P10 GPU运算卡 以及Intel台式机,实际上4k获得的主机工艺质量也无法和苹果精密设备媲美

此外,如火如荼的大语言模型技术(机器学习)发展,使得我更加考虑是否基于Apple Silicon架构来构建机器学习平台:

  • Apple Silicon的统一内存架构(Unified Memory Architecture, UMA)天然具有高带宽特性,能够加速AI性能(当前统一内存架构已经成为主流GPU提升性能的利器,AMD和NVIDIA都有类似产品架构)

  • 2025年10月推出的M5 Apple Silicon增强的神经网络引擎和全新的GPU架构,在AI相关的性能比上一代M4快3.5倍:

    • 神经网络引擎: 比M4快29%

    • 统一内存带宽: 153 GB/s,比M4 (120GB/s) 快27.5%

    • SSD性能: 比M4快2倍

    • 比M4增加了新的神经加速器

从苹果发布周期来看,很快会发布基于M5处理器的经济型Mac mini,如果售价和去年M4机型一致,那么性价比也是非常高的。特别是在AI方面,可能比M4更值得入手。

M5处理器特性

  • 每个GPU核心都配备了专用的神经加速器

    • AI计算负载分担:将部分AI计算任务从传统的神经网络引擎(NPU)分流到GPU,可以显著提升AI工作流的整体效率

    • 更高的并行计算能力:通过在GPU核心中加入神经加速器,加速原本由CPU或NPU处理的AI任

  • 神经网络引擎(NPU): M5和M4一样是16核NPU,但效率上有所增强,能以更低的功耗提供更强的AI性能

  • 统一内存带宽: M5内存带宽从M4的120GB/s提升至153GB/s,可加快AI训练和推理过程中的数据传输速度

备注

不差钱的话,其实入手 M3 Ultra 的 Mac Studio 更好: 苹果当前售卖的最高端 M3 Ultra Mac Studio 可以配置512GB统一内存,意味着可以直接加载 DeepSeek deepseek-r1:671b 4位量化模型 (404GB)

顶配16GB SSD存储,只需要10w RMB

集群

网络

单台Mac mini,特别是入门款,内存非常有限,只有16GB。实际上有部分内存必须保留给操作系统使用,估计能够用于AI负载的只有12GB。考虑到我的经费有限,最多也就购买丐版Mac mini来跑大模型。那么有没有办法来组建Apple Silicon集群呢?

组网方案:

  • 高性能以太网: 需要10Gb以太网接口,但综合考虑我觉得不经济

    • 对于Mac mini不太现实: 万兆网口需要加800元,有这个经费不如直接加内存更好

    • 雷雳口实际上能够用第三方万兆网卡,但是又多了一笔网卡投资

    • 另外需要配置一台万兆交换机

  • 雷雳(Thunderbolt)网络: 利用Mac mini自带雷雳5接口,能够实现80Gb/s双向带宽(我觉得这是个人最经济的方案)

    • 适合小型组网(反正我也买不起很多Mac mini)

    • 超高带宽: 雷雳4提供40Gb/s,雷雳5则可提供最高80Gb/s的双向带宽

    • 低延迟:设备间直接连接,通信延迟极低

  • 专用互联技术(Infiniband): 这个"贵族"方案就不考虑了,除了大厂,个人没法负担

综合考虑,我准备采用 雷雳(Thunderbolt)网络 来构建小型Mac mini集群网络

软件

  • 操作系统: 依然使用macOS

早期我曾经想过是否需要将Mac mini的操作系统替换成 Asahi Linux 来运行标准的基于Linux的 vLLM ,但是目前看来实现可能性不大: Linux无法驱动Apple Silicon专有的GPU和NPU,导致只能使用CPU进行机器学习。

虽然Apple Silicon的CPU性能也很强,但是这样的方案是买椟还珠,相当于白白浪费了苹果核心的硬件优势

  • 分布式框架

苹果的MLX框架和Ray等工具可以支持在macOS上实现分布式LLM,能够实现学习、实验或中等规模的本地推理。当然,这无法和NVIDIA架构下只有Linux才有的最佳工具vLLM相比,但是能够充分发挥GPU和NPU的性能,也是学习另一种机器学习架构的好机会。

备注

macOS平台没有 vLLM 工具,但是有一些能够充分利用Apple Silicon实现高性能本地LLM推理的工具,结合一些部署优化可能可以实现分布式推理:

  • ollama 底层使用的 llama.cpp 能够将模型转为GGUF格式,利用CPU和GPU混合推理,在Apple Silicon上性能优异。由于 llama.cpp 社区正在开发分布式推理功能(基于gRPC的RPC协议),通过一个"leader"节点协调多个"worker"节点实现模型分片,所以通过一定配置可能可以实现分布式推理。(Ollama的社区正在探索利用llama.cpp的分布式推理功能)

  • Ollama主要针对本地使用,结合K2/olol等项目可以实现Ollama集群负载均衡和透明扩展(待研究实践)

  • 苹果官方的MLX框架原生支持分布式通讯,是实现高效集群化的最佳选择(分布式通信API, 模型并行, 不过需要手工配置集群,通过SSH和网络共享,并利用Python脚本启动分布式任务)

  • PyTorch 使用MPS后端(单机多进程,有限支持分布式),需要使用PyTorch的分布式数据并行(DDP)并结合gloo后端(CPU通信,会显著降低性能)

总之,上述框架部署需要进一步研究和实践

思路二是 安装双操作系统切换 (感觉可能会浪费大量时间折腾),在使用 vLLM 时切换到 Asahi Linux ,采用CPU模式模拟集群运算。

思路三是在 macOS 上运行 Apple container ,当前苹果官方推出的原厂解决方案能呕充分发挥硬件性能来运行Linux容器,在小规模模拟下可能是一个解决思路。由于即使使用裸Linux也无法使用GPU和NPU,实际上container模式运行Linux来部署vLLM ,采用CPU模式运行,应该和裸金属Linux没有差别。

总之, "体法双修" 是飞升之道

  • PyTorch

PyTorch 1.12及更高版本包含对苹果MPS支持,目前已经实现将计算任务放到GPU上运行。未来PyTorch应该会扩展支持神经引擎(ANE),性能会进一步提升。

此外,苹果还发布了为Apple Silicon优化的机器学习框架MLX,某些操作比PyTorch的MPS后端更快,后续要研究PyTorch和MLX结合使用。

随便想想

作为苹果最具性价比的Mac mini,叠加现在"国补",估计M5处理器的版本可能在4k左右(如果能有更低价格更好),用于组建虚拟化集群、容器化 Kubernetes 以及机器学习平台,极具性价比。

如果经济能力允许,我会购买至少2台来组建集群学习集群...待续

参考