桃子桃子快讯
返回首页
工具

Apple Silicon 本地推理仍碎片化,vllm-metal 暂时领先

Reddit 用户调研 Apple Silicon 推理生态两周,认为软件栈分散、缺乏统一优化,vllm-metal 是…

2026.08.16 · 周日5 分钟阅读

一位 Reddit 用户在 r/LocalLLaMA 发布长篇调研报告,系统对比了 Apple Silicon 与 CUDA 在本地大模型推理方面的现状。结论是:与 CUDA 生态相比,Apple Silicon 端的软件栈仍处于碎片化状态,而新一代 Qwen 模型采用的混合 KV/Recurrent 架构,又进一步加剧了 prefix caching 与 speculative decoding 的实现难度。

调研动机与总体判断

作者表示,过去两周几乎全职投入研究 Apple Silicon 上的推理优化。核心结论是:与 CUDA 相比,Apple Silicon 端目前没有任何一个框架同时集成 prefix caching、speculative decoding、paged KV cache、continuous batching、dynamic scheduling、flash attention 等所有关键优化。

在 CUDA 生态,这些技术大多已经成熟并整合进主流推理栈;而在 Apple Silicon 端,优化能力分散在 mlx-lm、vllm-metal、多个 fork 以及各种自定义模型转换脚本之间,且大多数工具只覆盖了其中一小部分能力。作者呼吁社区停止「缺什么就新开一个 fork」的惯性,集中打磨 vllm-metal 这条主线,再把成果回传至 mlx-lm 与 vLLM。

关键优化技术:prefill 与 decode

作者先科普了本地推理的两个核心阶段:

  • Prefill:处理用户输入的上下文,填充 KV cache;
  • Decode:以自回归方式逐 token 生成回复。

围绕这两个阶段,社区发展出多种优化:prefix caching、paged KV caching、speculative decoding、flash attention、flash decoding、continuous batching、dynamic scheduling 等。对于单用户、长会话、智能体(agentic)类使用场景,prefix caching 与 speculative decoding 是最关键的两个优化:前者改善 prefill,后者加速 decode。作者直言:「如果没有这两项,你在 Mac 上跑本地模型一定失望。」

Prefix caching 的实际意义

在长 agentic 会话中,context 不断增长,没有 prefix caching 时模型每次都要重新处理整段历史。一个标称 45 tokens/sec 的框架,在真实长会话中可能跌到 9 tokens/sec,差距往往来自 prefix caching 是否真正生效,而非模型本身的极限吞吐。作者强调,很多框架声称「已实现 prefix caching」,但实现细节差异巨大,实际效果天差地别。

Qwen 混合架构带来的新难题

当前社区最想跑的 Qwen3.8 等模型已不再是纯 Transformer 架构,而是 hybrid KV/Recurrent(也称 Gated DeltaNet/GDN)模型:除常规 KV cache 外,还有一份会覆盖前值的 recurrent state。这使得 prefix caching 的复用策略不能照搬 Transformer 的简单方案。

  • vllm-metal 在最近一周为这类混合模型加入了 prefix caching 支持,但代价是:用户必须二选一,要么用 prefix caching,要么用 speculative decoding,无法同时启用。
  • 同时,mlx-lm 在模型转换过程中会丢弃内置的 MTP heads,导致即便原模型本身具备 speculative decoding 能力,转换后也用不上。

作者据此认为,当前 Apple Silicon 上最接近完整推理优化栈的选项是 vllm-metal,并建议社区优先完善这一条线,而不是继续分散精力。

注:原文在描述完 prefix caching 与 speculative decoding 的取舍后被截断,关于基准测试、推荐配置栈以及与 CUDA 性能的完整对比等后续内容未能呈现,编辑稿仅就已公开部分做了整理。

信源