How Apple Fits an LLM on Your iPhone

TL;DR · AI 摘要
How Apple Fits an LLM on Your iPhone ByteByteGo Oct 27, 2026 Webinar How to stop rewriting your agent’s code Sponsored R...
核心要点
- 主题聚焦:How Apple Fits an LLM on Your iPhone
- 来源:ByteByteGo Newsletter,建议结合原文判断细节。
- AI 分析暂不可用,本条为保底评分与摘要。
Apple 如何在 iPhone 上运行大型语言模型
ByteByteGo
2026年10月27日
[网络研讨会] 如何停止反复修改代理代码(赞助)
目前,你就是代理的上下文引擎。你编写规则文件,维护技能,并粘贴代理遗漏的 Slack 线程。
但人工整理的上下文会过时。当出现答案冲突时,代理无法判断哪个正确。这会体现在更高的 token 费用和更长的审核时间上。
10月28日(免费)加入我们的直播,了解:
- AI 成熟度的8个阶段以及团队常遇到的瓶颈
- 上下文引擎如何在代理编写代码前整理上下文并解决冲突
- 实时演示:相同编程任务中的 token 节省效果,以及超出代码生成的使用场景
- 奖励:2个今天即可使用的开源工具
立即注册
大型语言模型(LLM)是一种神经网络。你可以用它来处理和生成语言。模型的行为取决于训练过程中教授给它的数值。这些数值被称为参数。
苹果在你的 iPhone 上运行了一个30亿参数的模型。这意味着模型需要大约30亿个数值才能正常工作。这些数值影响模型如何理解输入以及如何生成输出。
苹果如何在不损害设备性能的情况下在 iPhone 上运行如此庞大的模型?
在本文中,我们将尝试回答这个问题。以下是我们的内容安排:
- 在手机上运行 LLM 的问题
- 苹果如何降低权重存储成本
- 苹果如何加速重复计算
- 适配器如何帮助功能共享基础模型
- 苹果如何优化硬件运行模型
- 系统如何决定何时使用云端
来源:Apple 工程博客
免责声明:本文基于来自多个来源的公开信息。文末有参考文献。如发现任何不准确之处,请在评论中指出。
在手机上运行 LLM 的挑战
运行 LLM 也称为推理。在这个阶段,LLM 使用其参数来处理请求。
在处理某些文本之前,LLM 必须将其分割成 token。你可以将 token 看作是一个词、词的一部分,甚至是标点符号。模型会将这些 token 作为响应的一部分生成更多 token。在模型内部,这些 token 会通过一系列处理层。
第一个问题是存储参数。
在16位精度下,我们之前提到的30亿参数几乎需要占用6GB空间。但这还不是全部。你还需要空间存储输入提示、计算过程和模型需要的临时结果。最后,你还需要运行操作系统和其他应用,它们共享相同的内存。显然,存储是一个重大挑战。
第二个问题是快速将权重从内存传输到处理器。在文本生成过程中,处理器必须反复从内存中获取数值数据。即使你拥有强大的处理器,它可能也会花费大量时间等待数据从内存中读取。
在尝试让 LLM 在 iPhone 上运行时,苹果工程团队还必须应对内存容量和内存带宽方面的挑战。此外,手机还需要管理电池消耗、过热问题,以及其他应用对相同资源的竞争。你当然不希望 LLM 让设备其余部分变得无响应。
减少模型大小最直接的方式是使用更少的位数来存储每个权重。这种技术被称为量化。
可以将量化视为用更小的数值可能性集合来表示数值的一种方式。虽然在这个过程中会损失一些数值细节,但模型仍然可以以相当不错的水平完成任务。主要的权衡在于选择一种在内存节省和质量之间达到最佳平衡的表示方法。请参见下图。
苹果工程团队使用了一种称为调色板化(palettization)的技术。在这种技术中,你会将相似的权重值分组。一个小型查找表存储代表值,而单个权重则存储指向该表的简短引用。例如,你可以使用一个2位的引用从查找表中选择四个条目。
在早期的模型版本中,苹果工程团队结合了2位和4位表示法。平均每个权重使用3.7位。这意味着30亿个权重可以存储在约1.39 GB的内存中。这是一个相当不错的优化。
他们混合使用不同精度是因为模型的不同部分可以轻松处理不同数量的数值误差。你需要在敏感组件上使用更多位数以确保质量不下降,而其他组件则可以进行更多压缩。
苹果后续发布的模型进一步提升了压缩强度。主解码器权重使用每个权重2位,嵌入表使用每个权重4位。为了使这种压缩有效,苹果采用了量化感知训练(quantization-aware training)。在这种方法中,你会模拟量化将施加的限制,然后在这些限制条件下调整模型的权重,使其能够适应这些限制。
苹果如何加速重复计算
权重存储只是整体内存问题的一部分。在成功压缩模型后,模型仍然需要内存来处理请求。
假设你已经有一个模型,它已经读取了一段文本并生成了响应的开头。当模型尝试预测下一个标记时,需要使用前面标记的信息。然而,如果必须重新计算每个中间结果,这将大大浪费计算资源。
KV缓存(key-value cache)存储这些中间结果。你可以将这个缓存视为一种重用已计算结果的方式。然而,KV缓存存在权衡。如你所见,缓存会占用内存。请求中的文本越多,需要存储在缓存中的信息就越多。即使你有一个权重能舒适适应内存的模型,在处理大量文本的文档时仍可能遇到内存问题。
这意味着你有两个优化目标。首先,你可以压缩权重以减少模型所需的存储空间。其次,你可以尝试减少KV缓存的大小。
苹果通过一种称为跨层KV共享(cross-layer KV sharing)的技术进行缓存优化。在这种技术中,你需要将模型分为两个块,深度比例为5:3。第二块中的层会复用第一块最后一层生成的键和值。通过这种方法,苹果将KV缓存的内存使用量降低了37.5%。
适配器如何帮助功能共享基础模型
你可以通过压缩来减少单个模型的大小和成本。但通常情况下,你可能需要许多该模型的副本,这些副本具有略微不同的功能。
一种简单的方法是创建一个用于摘要的模型,一个用于改写的模型,另一个用于信息提取的模型,依此类推。但所有这些模型都将具有大量重叠的语言能力。你基本上是在重复所有这些能力。
适配器可以帮助你消除这种重复。你可以将适配器视为一组小参数,这些参数会改变基础模型在特定任务中的工作方式。例如,假设你有一个功能可以编写简洁的通知摘要,另一个功能可以将长段落改写为不同风格。这两个功能可以共享同一个基础大语言模型(LLM),无需重复。
这种技术被称为LoRA(低秩适配)。在训练适配器时,你会固定基础模型的权重,仅修改适配器的权重。这就是为什么与分发新的独立模型相比,专门化模型的成本更低。
苹果公司将适配器应用于各种功能,如注意力矩阵、注意力输出投影和前馈层。其秩-16适配器使用16位值,占用约几十MB的内存。它们可以根据需要加载、缓存或交换这些适配器。
系统如何优化运行模型的硬件
即使模型较小,你也需要高效的硬件实现来充分发挥模型的性能。
苹果iPhone配备了多种处理器来处理这个问题。你有处理所有通用任务的CPU,然后是能够并行处理大量数值运算的GPU。苹果神经引擎(ANE)可以高效运行机器学习工作负载。
然而,你不能仅仅使用加速器就认为模型会高效运行。你仍然需要选择合适的数据布局,将大型数组拆分为可管理的部分。同时,你需要尽量减少内存复制。这些技术对速度和内存使用都有影响。
系统如何决定何时使用云服务
即使进行了所有这些优化,模型仍然存在限制。
以苹果为例,其设备上的模型在摘要、提取和分类等任务上表现出色。然而,苹果智能会检查请求是否可以在设备上处理。然而,对于更复杂的任务,它可以将请求发送到私有云计算(PCC)。
PCC为你提供了一个受保护的环境,只有授权软件才能处理数据。它还限制任何外部方查看数据。
苹果使用加密网络连接来保护数据在传输到云时的安全。你的设备会对验证的PCC节点加密请求。任何超出这个范围的基础设施都没有解密请求和读取其内容的密钥。只有当数据进入授权边界时,才能被读取。目标是确保即使苹果的员工和管理员系统也无法访问请求中的内容。
当请求最终到达云时,一个独立的服务器模型会处理该请求。苹果使用专家混合计算和并行处理轨道。这使得大型模型可以选择最佳计算组件来分配任务。
结论
苹果对其模型进行了大量新的改进。
2026年,他们推出了AFM 3 Core。这是其30亿参数模型的新一代版本。同时推出的还有AFM 3 Core Advanced,这是一个总参数量达200亿的稀疏模型。但该模型会根据Apple Silicon系统的性能,每次仅激活1至40亿参数。
在Core Advanced版本中,完整模型存储在闪存存储器中。只有专家权重会被加载到内存中。它会根据提示内容选择权重,无需为每个token从闪存驱动器中切换专家权重。苹果还扩展了云架构,现在可以在Google Cloud的NVIDIA GPU上运行PCC工作负载。
苹果遵循的主要设计原则是:模型的能力应基于运行时可用的资源。我们之前讨论的所有技术共同作用,为用户带来最佳体验。
参考资料:
- Apple ML Research: Introducing Foundation Models
- Apple ML Research: 2025 Updates
- Apple Security Research: Private Cloud Compute