CoreML-LLM 刚发布了 v0.2.0,数据炸裂。Gemma 4 E2B 直接跑在 iPhone 的 Neural Engine 上——11 tok/s 解码速度、250MB 内存占用、2W 功耗。这是目前在 iPhone 上跑 Gemma 4 最高效的方式,没有之一。
X/Twitter 上讨论得火热,原因很简单:这些数字太离谱了。下面详细讲讲这是什么、怎么做到的、怎么上手。
CoreML-LLM 是什么?
CoreML-LLM 是一个开源框架,把大语言模型转换成 Apple 的 CoreML 格式,直接跑在 Neural Engine 上——iPhone 里那颗专门用来做 AI 计算的芯片。跟 GPU 推理不同,Neural Engine 是专门为矩阵运算设计的,所以功耗和内存都低得多。
v0.2.0 版本加了 Gemma 4 E2B 的完整支持,社区的测试数据已经说明一切。
大家在讨论的跑分数据
CoreML-LLM v0.2.0 + Gemma 4 E2B 在 iPhone 上的实测表现:
| 指标 | 结果 |
|---|---|
| 预填充(33 tokens) | 188ms(比 CPU 快 15.8 倍) |
| 解码速度 | 11 tok/s |
| 上下文窗口 | 2048 tokens |
| 内存占用 | ~250MB |
| 功耗 | ~2W |
对比一下通过 AI Edge Gallery 或 MediaPipe 跑 Gemma 4 E2B 的标准方案——通常需要 3GB 内存,电池掉得明显。CoreML-LLM 的内存占用大约低了 12 倍,功耗是「小口喝」而不是「大口灌」。
想了解更多手机端部署方案,看我们的移动端部署指南。
这些数字是怎么做到的?
CoreML-LLM 不是把模型往 Neural Engine 上一扔就完事。有四个关键的技术优化:
滑动窗口注意力(Sliding Window Attention)
不用对整个上下文做完整的自注意力,而是用滑动窗口——每层只关注最近的固定窗口内的 token。不管序列多长(上限 2048),内存占用始终恒定,跟 Neural Engine 的固定大小张量操作完美契合。
INT4 调色板量化 + mmap
权重用 Apple 的调色板技术(palettization)量化到 INT4——本质上是查表量化,每个权重是一个小码本的索引。模型文件通过 mmap 内存映射加载,而不是整个读进内存,所以你看到的是 250MB 而不是完整模型大小。只有正在用的内存页才会被加载到物理内存。
无状态 KV 缓存
传统 KV 缓存会随序列长度增长,吃内存。CoreML-LLM 用无状态方式管理,KV 缓存是固定大小的 CoreML 张量,避免了动态内存分配,保持 Neural Engine 流水线的干净。
批量预填充(Batched Prefill)
188ms 的预填充时间(33 个 token)来自于把整个 prompt 作为一次批量操作处理,而不是逐 token 处理。比顺序处理快 15.8 倍,初始响应几乎感觉不到延迟。
哪些 iPhone 能用?
需要 A16 芯片或更新——也就是 iPhone 14 Pro 及以上。
| 设备 | 芯片 | Neural Engine | 是否兼容 |
|---|---|---|---|
| iPhone 14 Pro / Pro Max | A16 Bionic | 16 核 | 可以 |
| iPhone 15 / 15 Plus | A16 Bionic | 16 核 | 可以 |
| iPhone 15 Pro / Pro Max | A17 Pro | 16 核 | 可以 |
| iPhone 16 / 16 Plus | A18 | 16 核 | 可以 |
| iPhone 16 Pro / Pro Max | A18 Pro | 16 核 | 可以(最快) |
| iPhone 14 / 14 Plus | A15 Bionic | 16 核 | 不行 |
| iPhone 13 及更老 | A15 或更老 | — | 不行 |
A16 的 Neural Engine 才有 INT4 调色板操作需要的指令集。更老的芯片虽然也有 Neural Engine,但不支持 CoreML-LLM 使用的特定量化格式。
想知道跑更大模型需要什么硬件?看硬件需求指南。
手把手安装教程
前置条件
- 装了 Xcode 15.4+ 的 Mac
- iPhone 14 Pro 或更新,系统 iOS 17+
- iPhone 上大约 2GB 可用空间
- Mac 上装有 Python 3.10+(用于模型转换)
第一步:安装 CoreML-LLM
# 克隆仓库
git clone https://github.com/nicklimmm/coreml-llm.git
cd coreml-llm
# 安装 Python 依赖
pip install -r requirements.txt第二步:下载并转换模型
# 下载 Gemma 4 E2B 并转换成 CoreML 格式
python convert.py \
--model google/gemma-4-e2b-it \
--output gemma4-e2b.mlpackage \
--quantize int4-palettized \
--context-length 2048这一步根据你 Mac 的配置,大约需要 10-20 分钟。转换过程会自动处理量化、调色板化和 Neural Engine 优化。
第三步:构建 iOS 应用
# 打开 Xcode 项目
open CoreMLLLM.xcodeproj- 在 Xcode 中选择你的 iPhone 作为目标设备。
- 把
gemma4-e2b.mlpackage拖进项目的 Resources 文件夹。 - 在 Signing & Capabilities 里设置你的开发者团队。
- 点 Build and Run(Cmd+R)。
第四步:首次运行
首次启动需要一两分钟,CoreML 在为你的 Neural Engine 编译模型。之后会缓存下来,后续启动很快。
试个简单的 prompt:
用两句话解释什么是 Neural Engine。你应该能看到 token 以大约每秒 11 个的速度流出来。把手机切到飞行模式——还是能用。这就是重点。
第五步:验证性能
应用内置了跑分模式。点设置图标,选「Run Benchmark」,可以看到你设备的实际预填充和解码速度。跟本文的数据对比一下,确认一切正常。
CoreML-LLM vs AI Edge Gallery
目前在 iPhone 上跑 Gemma 4 主要有两种方式,对比如下:
| 特性 | CoreML-LLM v0.2.0 | AI Edge Gallery |
|---|---|---|
| 上手难度 | 中等(需要 Mac + Xcode) | 简单(App Store 直接下) |
| 解码速度 | 11 tok/s | 5-15 tok/s |
| 内存占用 | ~250MB | ~3GB |
| 功耗 | ~2W | ~5-8W |
| Neural Engine 原生 | 是 | 部分(主要用 GPU) |
| 集成到自己的 App | 可以(开源) | 不行(独立应用) |
| 模型支持 | 仅 Gemma 4 E2B | E2B + E4B |
| 多模态 | 暂不支持 | 有限支持 |
选 CoreML-LLM: 追求最大效率、想集成到自己的 App、或者想最大限度省电。
选 AI Edge Gallery: 就想快速试试 Gemma 4、不想折腾开发环境、或者需要 E4B 模型。关于 AI Edge Gallery 的详细教程,看我们的 iPhone 指南。
目前的限制
只支持 E2B。 CoreML-LLM v0.2.0 支持 Gemma 4 E2B,更大的 E4B、12B、26B 还没适配。E4B 在计划中,但没有时间表。
还没有多模态。 Gemma 4 E2B 完整版本支持文本、图像和音频,但 CoreML-LLM 目前只支持文本推理。多模态支持在 v0.3 的路线图里。
2048 上下文窗口。 滑动窗口注意力保持了低内存,但限制了模型能一次处理的文本量。长文档需要分块输入。
安装需要 Mac。 模型转换和 App 构建都需要 macOS 上的 Xcode,目前没有 Windows 或 Linux 的方案。
质量上限是 E2B 水平。 这是个 20 亿参数的模型。做快速任务很好用——摘要、翻译、简单问答、基础代码生成——但别指望 GPT-4 级别的推理能力。详细的质量对比看我们的 E2B vs E4B 对比。
为什么这件事很重要
250MB 内存、2W 功耗。意味着 Gemma 4 可以跟你其他 App 同时运行,不会把手机搞崩。意味着你可以连续用几个小时,电量不会断崖式下跌。意味着端侧 AI 不再只是个「demo」,而是你真的可以放进生产 App 里的功能。
Neural Engine 在 iPhone 里已经存在好几年了,主要用来跑相机处理和键盘预测。CoreML-LLM 展示了当你真正把一个语言模型对着它优化的时候,会发生什么。
下一步
- 刚接触手机端 Gemma 4? 从移动端部署指南开始了解全貌
- 想要更简单(但效率低一些)的方案? 看 iPhone 指南 了解 AI Edge Gallery
- 在纠结模型大小? 读一下 E2B vs E4B 对比
- 要确认硬件要求? 看硬件需求指南
端侧 AI 实用化刚迈出一大步。CoreML-LLM v0.2.0 + Gemma 4 E2B 是目前在 iPhone 上跑大语言模型最高效的方式——v0.3 多模态支持已经在路上了。
Stop reading. Start building.
~/gemma4 $ Get hands-on with the models discussed in this guide. No deployment, no friction, 100% free playground.
Launch Playground />


