Mac本地跑AI编程助手,这一篇够了

Mac本地跑AI编程助手,这一篇够了

七月 06, 2026 local-ai apple-silicon llama-cpp coding-agents gemma macos machine-learning speculative-decoding

为什么我开始用本地AI写代码

不知道你们有没有经历过这种事儿——正写代码写到嗨,突然断网了。云端AI直接罢工,你只能对着屏幕发呆。

我就是最近遇到这种情况之后,才下定决心研究本地跑AI编程助手。结果发现,只要配置对了,在Apple Silicon上效果还真不错,有时候甚至比那些专门给Mac优化的方案还快。

实际可用的配置

测了一大圈之后,以下是我在M1 Max(64GB统一内存)上跑出来的最优方案:

核心组件:

  • llama.cpp + Metal加速
  • Gemma 4 26B-A4B,GGUF格式,Q4量化
  • MTP(Multi-Token Prediction)draft模型,负责投机解码
  • Gemma 4的多模态投影器,用来处理截图
  • Pi——一个终端里的编程agent

这个配置肯定不是最强的,但胜在实用。速度要按tokens/秒算,不能按响应分钟算。

关键数据

我用下面这段prompt跑了多组测试:

"写一个Python函数,解析unified diff并返回修改过的文件路径。然后解释两个边界情况。"

每次生成大约128个tokens,便于横向对比生成速度。

基础性能:

直接用llama.cpp跑Metal加速的Gemma 4,速度是58.2 tokens/秒。能用,但说实话真正写代码的时候还是觉得有点拖。

MTP一开就不一样了:

这才是有意思的地方。Multi-Token Prediction让模型可以"预判"多个token,接受正确的预测,回滚错误的部分。打开Q8 MTP draft模型之后,速度直接蹦到72.2 tokens/秒——提升了24%,主模型根本没动。

Prompt处理速度基本不变(大约297-299 tokens/秒),但agent工作流里生成速度才是王道。你又不是一直狂敲新prompt,大部分时间都在等模型回复、做决策、执行工具。

我测试了1到6个draft token数量,对我的M1 Max来说3个最合适。超过4个反而变慢——这也好理解,预测越多,猜错的时候浪费的工作量越大。

llama.cpp vs MLX:意外的结果

这个挺出乎意料的。我原本以为MLX(苹果自己的ML框架)会更强,毕竟它是专门给Apple Silicon优化的。但实际情况恰恰相反:

| 运行时环境 | 生成速度 tok/s | |-----------|----------------| | llama.cpp Metal + MTP | 72.2 | | llama.cpp Metal | 58.2 | | MLX-LM (Unsloth 4-bit) | 45.8 | | MLX-LM (标准 4-bit) | 43.9 | | MLX-LM (OptiQ 4-bit) | 38.1 |

llama.cpp配MTP比最强的MLX配置快了约58%。llama.cpp这么多年积累的优化确实不是盖的——虽然是跨平台项目,但在macOS上跑得非常顺。

加上视觉能力

想让编程agent体验完整,截图支持是少不了的。可能是想让agent看看它写的界面效果,或者检查一下刚改的UI。

问题是:只有Gemma 4 12B本身是多模态的。我们用的26B模型需要额外加载多模态投影器。

加上 --mmproj 投影器之后,llama.cpp正确地向Pi报告了多模态能力,图片工具输出就正常工作了。而且!速度完全没有变慢——还是72.2 tokens/秒。

实际用起来怎么样

整个配置下来,模型文件大约17GB(主模型16GB,加上MTP head和投影器)。对于64GB统一内存来说,完全没压力。

Pi这个agent提供了一个干净的终端界面,连接llama.cpp server模式暴露的OpenAI兼容API。所以只要你用的工具支持OpenAI API格式就能用,不绑死在某个平台上。

最大的好处是什么?断网了继续写。网迟早会断的,而且总是在最要命的时候。本地agent可能比云端稍慢一点,但绝对够快,不会打断你的思路。

怎么配置

首先需要编译支持Metal的llama.cpp。官方文档有macOS编译指南,编译好之后server模式会给你一个OpenAI兼容的端点。

模型方面,Hugging Face上Unsloth的GGUF量化版本优化得不错。主模型选Q4_K_XL量化,再下载对应的Q8 MTP draft模型。

--spec-draft-n-max 这个参数从3开始调,在1到6之间试试不同值。不同Apple Silicon配置的最佳值可能不太一样。

值不值得搞?

如果你经常用AI助手写代码,而且硬件够用(最低16GB,推荐32GB以上),那绝对值得。光是不用依赖网络这一点就值回票价了,再加上MTP把速度拉到真正能用的级别,体验出乎意料地完整。

跟GPT-4级别的智能比不了,但用来代码补全、重构、debug辅助、日常编程任务?比大多数人以为的要强。而且跑在本地,属于你自己,隐私安全,不会有延迟抖动或者服务宕机。

这些工具已经成熟很多了。如果你以前试过本地模型被速度劝退过,再给这个机会试试。MTP改变了游戏规则。

Read in other languages:

RU BG EL CS UZ TR SV FI RO PT PL NB NL HU IT FR ES DE DA EN