苹果端侧30亿参数模型:量化、缓存与LoRA三板斧

30 亿参数的模型,16 位精度下光权重就要 6GB——还不算提示词、中间结果和操作系统抢占的内存。iPhone 要在共享内存里跑它,还要不发热、不卡顿、不耗干电池。苹果给出的工程答案值得所有做端侧 AI 的人拆解学习:存储压缩、缓存瘦身、适配器共享、硬件调度,四件事环环相扣。

第一板斧:把权重从 6GB 压到 1.39GB

量化是用更少的比特表示权重,代价是数值精度。苹果用的是变体技术调色板化(palettization):相似权重分组,一张小型查找表存代表值,每个权重只存指向查找表的短引用——2 比特引用即可从 4 个条目里选一个。

关键的工程判断在于混合精度:模型不同部位对误差的容忍度差异很大。早期版本混用 2 比特和 4 比特表示,平均每权重 3.7 比特,30 亿权重压进约 1.39GB——对照 FP16 的 6GB,压缩比约 4.3 倍。算笔账验证:30 亿 × 3.7 bit ≈ 111 亿 bit ≈ 1.39GB,数字对得上。

后期更激进:主解码器 2 比特、嵌入表 4 比特。压到这个程度,普通训练方法撑不住精度,必须上量化感知训练(QAT)——训练阶段就模拟量化带来的限制,让权重学会在约束下工作。这里的因果链值得记住:不是先训练后压缩,而是把压缩约束提前注入训练目标。

第二板斧:KV 缓存瘦身 37.5%

权重只是内存问题的一半。生成文本时模型要复用已处理 token 的中间结果,这就是 KV 缓存。缓存随文本长度线性膨胀:权重装得下的模型,处理长文档照样可能内存见顶。

苹果的做法是跨层 KV 共享:把模型按深度比 5:3 分成两个模块,后一个模块的层复用前一个模块最后一层的 key 和 value,缓存占用直接降 37.5%。这个设计的取舍也明确——深层复用浅层表征会带来一点精度损失,换来的是长上下文场景的可行性。

第三板斧:LoRA 适配器消灭模型副本

摘要、改写、信息提取,每个功能微调一个完整模型,等于把共同的语言能力复制 N 份。苹果用 LoRA 破局:基础模型权重冻结,每个功能只训练一个小适配器,挂载在注意力矩阵、注意力输出投影和前馈网络上。rank-16 的适配器用 16 位数值,单个几十 MB,可按需加载、缓存、交换——几十 MB 对比几个 GB,专有化成本差了两个数量级。

硬件调度与端云路由

模型小了还要跑得快。iPhone 里有 CPU、GPU 和苹果神经网络引擎(ANE)三种处理器,但选对硬件只是开始——数据布局、分块策略、内存拷贝次数同样决定速度和功耗。

端侧能力再强也有上限。摘要、提取、分类这类任务端侧直接处理;复杂请求路由到私有云计算(PCC):设备只对经验证的 PCC 节点加密发送请求,边界外的基础设施拿不到解密密钥,苹果自己的员工也看不到内容。云端侧由独立的大模型接管,用混合专家(MoE)架构和并行流水线分配计算。

2026 年的新变量

架构在演进:新一代 AFM 3 Core 是 3B 参数模型;AFM 3 Core Advanced 是总参 200 亿的稀疏模型,按 Apple Silicon 能力每次只激活 10-40 亿参数。它的存储策略值得注意——完整模型驻留闪存,只把被选中的专家权重加载进内存,按提示词路由,不必每个 token 都换专家。云端侧 PCC 工作负载已扩展到 Google Cloud 的 NVIDIA GPU 上运行。

苹果的设计原则一句话:模型能力按运行时可用资源设计。反过来看,这也是所有端侧 AI 团队的检验清单——存储压缩、缓存管理、参数共享、硬件适配、端云分工,五项逐条对照,缺哪项补哪项。

0

评论0

请先
显示验证码
没有账号?注册  忘记密码?