最新消息:关注人工智能 AI赋能新媒体运营

Swiftlet 实现 80B 参数 Qwen 模型 Mac 端部署:峰值内存 4.3GB,iPhone 17 可原生运行 35B 模型

科技资讯 admin 浏览

Swiftlet 运行时让大模型"瘦身"进手机:80B 参数模型仅需 4.3GB 内存

一个名为 Swiftlet 的 Swift + Metal 运行时项目正在改变大模型的部署边界。该项目专为 Qwen3-Next 和 Qwen3.5/3.6 系列的 MoE(混合专家)模型设计,采用了一种"以空间换时间"的策略:仅将小型稠密核心常驻内存,占主体的路由专家权重则存储在 SSD 中,按需流式读取。

实测数据令人瞩目。在 M5 Mac 上,Qwen3.6-35B-A3B 的 4-bit 版本磁盘占用 18GB,峰值内存仅 2.6GB,解码速度达 7-11 tok/s;更极端的 Qwen3-Next-80B-A3B 4-bit 版本,磁盘需 42GB,峰值内存却控制在 4.3GB,速度 4.5-5 tok/s。35B 版本已成功在 iPhone 17 上运行,内存约 2.5GB,速度约 1 tok/s——据开发者称,这是该量级模型首次原生运行于手机端,全程无需服务器参与。

Swiftlet 运行演示

项目目前已端到端可用,两个模型均能输出经校验的正确结果。但开发者也坦承了一项代价:每个 token 实际仅激活约 3B 参数,导致模型在对话和写作中表现如大模型,事实记忆能力却接近小模型。

技术细节在于精细的调度机制。每层将 token 路由至 512 个专家中的 10 个(80B 版)或 256 个中的 8 个(35B 版)。Swiftlet 将注意力、DeltaNet 投影、路由器、共享专家、嵌入向量等稠密权重固定于内存,4-bit 下约 1.3GB(35B)或 2.5GB(80B)。数以万计的路由专家则被重打包为固定步长数据块,存入 .qpack 容器;读取单个专家仅需一次 pread 系统调用,不依赖 mmap,也不污染页缓存。热门专家由有限池缓存,采用 LFU 结合近期性策略淘汰,实测命中率 43%-70%。缓存大小对速度影响甚微,因 Apple SSD 足以承受未命中开销。

前向传播完全基于 Metal,使用运行时编译着色器,构建时无需 Metal 工具链,同一套代码可直接部署至 iOS。值得注意的是,75% 的层采用 Gated DeltaNet 线性注意力,配合固定大小的循环状态,消除了随上下文增长的 KV 缓存膨胀问题。

Swiftlet 设计了四种使用形态:作为库(SwiftletCore),可嵌入任意 macOS/iOS 应用,支持流式增量输出与对话缓存;作为命令行工具,提供 chat、generate、repack 等子命令,支持从 MLX 检查点构建容器及 Hugging Face 断点续传;作为服务器(swiftlet-server),在本地提供 OpenAI 兼容的 chat-completions 接口;作为应用,iOS 端 Priv AI 已将其集成为流式模型引擎,用户可一键下载使用。

正确性验证方面,每层前向传播均与 mlx-lm 参考实现逐层比对,覆盖 f32 和 int4 量化格式;增量解码与整序列结果校验;Metal 内核针对精确 CPU 参考反复验证;容器与源检查点进行字节级校验。无论专家来自缓存还是磁盘,输出结果完全一致。

项目灵感部分来自 TurboFieldfare——后者在 Mac 上验证了 Gemma 模型专家流式的可行性。Swiftlet 借鉴了其 pread 流式读取、LFU+近期性淘汰、固定步长打包等设计,但其余部分基本从零构建,约一万行 Swift 和 Metal 代码,独立实现了 Gated DeltaNet 线性注意力、门控 GQA、带共享专家的高稀疏 MoE 等架构,并在 Metal 中实现了类 MLX 的 int4/int8 分组量化计算。

硬件要求为 Apple Silicon、macOS 14+ 或 iOS 17+,以及充足的 SSD 空间(35B/18GB,80B/42GB)。iPhone 用户可通过 App Store 的 Priv AI 应用开启 Experimental Models 下载,该功能尚处审核通道,也可选择源码自构建。项目以 Apache 2.0 协议开源,模型权重需单独下载并遵循各自授权条款。