
Swiftlet 是一个专为 Qwen3-Next 和 Qwen3.5/3.6 MoE 混合专家模型设计的 Swift + Metal 运行时。它通过将小型稠密核心常驻内存、按需从存储流式加载路由专家权重的方式,使 35B 和 80B 参数规模的模型可在普通 Apple 设备上运行。
实测数据显示,35B 模型在 M5 Mac 上解码速度为 7–11 tok/s,峰值内存占用仅 2.6 GB;80B 模型速度为 4.5–5 tok/s,内存占用 4.3 GB。35B 模型亦可在 iPhone 17 上以约 1 tok/s 的速度运行,内存占用约 2.5 GB。项目已开源,提供 CLI、Swift 包、本地服务器及 iOS 应用四种接入方式。
性能数据与能力边界说明
Swiftlet 当前支持两个 4-bit 量化模型,具体规格如下:
- Qwen3.6-35B-A3B:磁盘占用 18 GB,峰值内存 2.6 GB,M5 Mac 解码速度 7–11 tok/s
- Qwen3-Next-80B-A3B:磁盘占用 42 GB,峰值内存 4.3 GB,M5 Mac 解码速度 4.5–5 tok/s
需明确的能力边界是:每个 token 仅激活约 3B 参数,因此模型在对话生成与写作任务中表现接近大模型,但在事实回忆与知识密集型查询上更接近小模型水平。这一特性源于 MoE 架构本身,而非实现缺陷。当前优化重点在内核调度效率,解码循环尚未达到 IO 瓶颈,仍有提速空间。
技术实现机制与存储访问策略
Swiftlet 的核心设计围绕减少内存占用与避免页缓存抖动展开:
- 常驻内存组件:注意力层、DeltaNet 投影、路由器、共享专家及嵌入层保持驻留,4-bit 下 35B 约占 1.3 GB,80B 约占 2.5 GB
- 专家权重打包:数万个路由专家被重组为
.qpack容器中的固定步长 blob,每次专家获取对应一次 SSDpread调用,不使用 mmap,避免页缓存污染 - 缓存策略:采用 LFU 加最近性淘汰的有限池缓存热门专家,但缓存命中率对整体速度影响有限(实测 43%–70%),因 Apple SSD 可吸收未命中开销
- 线性注意力结构:75% 的层使用 Gated DeltaNet 线性注意力,具有固定大小循环状态,任意上下文长度下均不产生增长的 KV 缓存
- Metal 运行时编译:全部前向传播通过运行时编译的 Metal 着色器执行,构建时无需 Metal 工具链,同一代码库兼容 macOS 与 iOS
四种接入方式与部署路径
Swiftlet 作为库提供多形态集成选项:
- Swift 包:将 SwiftletCore 嵌入 macOS/iOS 应用,支持流式增量聊天、对话缓存、重复控制采样及内存压力自动处理
- CLI 工具:
swiftlet chat用于交互式对话,swiftlet generate用于单次生成与性能统计,swiftlet-repack支持从 MLX 检查点或 Hugging Face 直接流式构建容器(含断点续传) - 本地服务器:
swiftlet-server在环回接口暴露 OpenAI 兼容聊天补全 API,可供任意支持该协议的 UI 调用 - iOS 应用:Priv AI 已集成 SwiftletCore 作为流式引擎,用户通过“设置 > 实验性模型”下载即可使用;该功能随新版本提交审核,暂未上架。急需体验者可克隆
leonickson1/localLLM仓库自行构建
运行要求为 Apple Silicon 设备、macOS 14+ 或 iOS 17+,以及对应模型的 SSD 空闲空间(35B 需 18 GB,80B 需 42 GB)。模型容器可通过 R2 镜像或 Hugging Face 获取,R2 对匿名下载限速更宽松,推荐优先使用。
相关导航


Is Agentic

Microsoft eXecution Container (MXC)

Raycast AI

OpenHands GitHub Launcher

CRM

Zendesk







