Swift · 项目报告

leonickson1/Swiftlet

Swiftlet is a Swift and Metal runtime that runs large Qwen Mixture-of-Experts models locally on Apple devices by streaming expert weights from storage, enabling 35B and 80B models to run with low RAM, including on iPhone.

已完成 打开 GitHub
L
468星标
20Fork
2Issue
Apache-2.0许可证

分析结果

项目分析

Swiftlet 是一个面向 Apple Silicon 的 Swift + Metal 本地大模型运行时,核心目标是在普通 Mac 和 iPhone 上运行 Qwen3-Next / Qwen3.5/3.6 MoE 混合模型。它通过“专家权重按需从 SSD 流式读取”的方式,只让小型 dense core 常驻内存,从而以较低 RAM 运行 35B/80B 级别模型。项目提供 Swift Package、CLI、OpenAI 兼容本地 server,以及 iOS App 集成能力,适合关注端侧 AI、隐私 AI、Apple 生态本地推理的开发者研究和集成。

适用领域 端侧大模型推理 / Apple Silicon / Metal GPU 计算 / Swift / iOS / macOS AI 应用开发 / 本地隐私 AI / MoE 模型推理优化 / LLM Runtime / OpenAI 兼容本地服务 / 模型量化与权重打包
配置难度 高。普通用户可以按 README 运行 CLI 或 App,但如果要进行模型适配、性能调优、Metal kernel 修改、iOS 深度集成或生产化封装,需要熟悉 Swift、Metal、LLM 推理、量化格式、MoE 架构和 Apple 平台内存/存储特性。
商业价值 对中国开发者和团队而言,Swiftlet 的商业价值主要在于端侧隐私 AI 和 Apple 生态差异化能力。它可以帮助 iOS/macOS 应用在不依赖云端推理的情况下提供本地聊天、写作、知识辅助、隐私助手等功能,降低数据出境和隐私合规压力,也能减少长期云推理成本。对于做本地 AI App、企业私有化助手、离线场景、教育科研工具、开发者工具的团队,该项目具有较高参考价值。不过由于当前速度、模型适配范围和 Apple 平台限制,它更适合技术验证、垂直产品原型和高隐私场景,而不是通用高并发商业推理服务。
01

技术亮点

  • 能在普通 Apple 设备上运行 35B/80B 级别 Qwen MoE 模型,内存占用远低于传统全量加载方式。
  • 采用专家权重 streaming 机制,将 routed experts 固定步长打包到 .qpack 容器中,每次 expert fetch 对应一次 pread,避免 mmap 和 page cache 抖动。
  • dense weights 常驻内存,routed experts 按需从 SSD 读取,并使用 LFU + recency 的 bounded cache。
  • 全 forward pass 基于 Metal 执行,支持 macOS 和 iOS,构建时不需要单独 Metal toolchain。
  • 提供 Swift Package、CLI、OpenAI 兼容 server、iOS App 集成四种使用方式。
  • 支持从 Hugging Face 流式下载和 repack,支持断点续传和 stall recovery。
  • 项目强调 correctness:Metal kernels、CPU reference、MLX reference、容器字节验证、增量解码一致性等都有测试。
  • Apache-2.0 许可证,适合商业项目进一步评估和集成。
  • README 信息完整,架构设计、性能数据、限制和来源关系说明较透明。
02

目标用户

  • 希望在 Mac 或 iPhone 上运行本地大模型的开发者
  • iOS/macOS AI 应用开发者
  • 研究 MoE 模型端侧部署的工程师
  • 关注隐私、本地化、离线 AI 的产品团队
  • 熟悉 Swift、Metal、LLM 推理优化的高级开发者
  • 需要 OpenAI 兼容本地接口的个人或工具开发者
03

配置要求

  • 硬件:Apple Silicon Mac 或支持 iOS 17+ 的 iPhone。
  • 系统:macOS 14+ 或 iOS 17+。
  • 语言/工具链:Swift 5.9+,建议安装最新 Xcode。
  • GPU:使用 Apple Metal,运行时编译 Metal shaders。
  • 存储空间:35B qpack 约 18GB,80B qpack 约 42GB,需额外预留下载和构建空间。
  • 内存:35B 峰值约 2.6GB RAM,80B 峰值约 4.3GB RAM;iPhone 运行 35B 约需 2.5GB RAM。
  • 网络:首次从 Hugging Face 下载模型需要稳定网络,工具支持断点续传。
  • 模型许可:运行时为 Apache-2.0;模型权重需遵守对应模型许可,README 中提到 Qwen 权重为 Apache-2.0。
  • 服务配置:swiftlet-server 默认用于 loopback 本地访问,不是面向公网部署的服务。
04

适用场景

  • 在 Apple Silicon Mac 上本地运行 Qwen 35B/80B MoE 模型进行聊天或文本生成
  • 在 iPhone 上通过 App 或源码集成运行 35B 级模型,实现完全端侧聊天
  • 将 SwiftletCore 集成到 iOS/macOS 应用中,提供隐私优先的本地 AI 能力
  • 启动 OpenAI chat-completions 兼容的本地服务,供现有聊天 UI 或工具调用
  • 将 Hugging Face 或 MLX checkpoint 重新打包为 .qpack 容器
  • 研究专家流式加载、Metal kernel、量化 GEMV、MoE routing 等推理优化技术
  • 进行本地 LLM benchmark、实验性模型部署和模型正确性验证
05

部署与配置

  • 准备 Apple Silicon 设备,macOS 14+ 或 iOS 17+。
  • 确认安装 Xcode / Swift 5.9+ 工具链。
  • 克隆仓库:git clone https://github.com/leonickson1/Swiftlet.git && cd Swiftlet
  • 构建 release 版本:swift build -c release
  • 下载并打包 35B 模型:.build/release/swiftlet-repack --from-hf Leonickson/Qwen3.6-35B-A3B-qpack --output ~/models/qwen3.6-35b.qpack
  • 或下载并打包 80B 模型:.build/release/swiftlet-repack --from-hf Leonickson/Qwen3-Next-80B-A3B-qpack --output ~/models/qwen3-next-80b.qpack
  • 使用 chat 模式测试:.build/release/swiftlet chat ~/models/qwen3.6-35b.qpack "Who wrote One Hundred Years of Solitude?"
  • 使用 generate 模式生成文本:.build/release/swiftlet generate ~/models/qwen3.6-35b.qpack --gpu --chat --prompt "Explain expert streaming in one paragraph."
  • 启动 OpenAI 兼容本地服务:.build/release/swiftlet-server --model ~/models/qwen3.6-35b.qpack --port 8080
  • 如需 iPhone 体验,可使用 App Store 上的 Priv AI,或克隆 leonickson1/localLLM 并将本仓库放在相邻目录 swiftlet 后用 Xcode 构建运行。
06

风险与注意事项

  • 项目仍处于性能优化阶段,README 明确说明 decode loop 当前 dispatch bound,仍有较大优化空间。
  • 虽然模型参数规模大,但每 token 只激活约 3B 参数,因此事实记忆能力可能更接近小模型,不能简单等同于完整 35B/80B dense 模型体验。
  • iPhone 端当前速度约 1 tok/s,适合实验和轻量聊天,不适合高吞吐生产场景。
  • 强依赖 Apple Silicon、Metal、macOS/iOS 新版本,不适合 Linux、Windows、NVIDIA CUDA 生态。
  • 模型文件体积大,35B 需要约 18GB,80B 需要约 42GB,对手机和低容量 Mac 的存储压力明显。
  • 模型主要支持特定 Qwen MoE hybrid family,不是通用 LLM runtime,适配其他模型需要较多底层开发。
  • 仓库 star 数约 396、fork 数约 12,生态和社区规模仍较小,长期维护和兼容性需要持续观察。
  • OpenAI 兼容 server 当前定位为 loopback 本地服务,不应直接作为公网 API 服务暴露。
  • 涉及低层 Metal kernel、量化、MoE streaming、Swift 并发和内存管理,二次开发门槛较高。

历史记录

热榜历史快照

2026-08-10 第20名 新收录 · github_search
2026-08-09 第19名 新收录 · github_search
2026-08-08 第23名 新收录 · github_search
2026-08-07 第26名 新收录 · github_search
2026-08-06 第28名 新收录 · github_search