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.
何を解決するか
Swiftletは、Qwen3-NextやQwen3.5/3.6シリーズ(最大80B、あるいは397Bパラメータ)など、大規模なMixture-of-Experts(MoE)モデルを、消費者向けのAppleハードウェア(iPhoneを含む)で実行可能にします。メモリのボトルネックを解消するために、モデルの重みをSSDからGPUにオンデマンドでストリーミングする仕組みを採用しており、モデル全体をRAMに常駐させる必要がありません。
動作方法
Swiftletはメモリ管理にハイブリッドアプローチを採用しています:
- 密度型コアの常駐:アテンション、埋め込み、ルーターなど、必須の密度型重みのみをメモリに常駐させます。
- エキスパートのストリーミング:ルーティングされたエキスパートは固定ステップ幅で
.qpackコンテナにパックされます。トークンが処理される際、ランタイムはpreadを使用してストレージから必要なエキスパートのみをバウンデッドキャッシュプールにフェッチします。 - Metal統合:前方伝搬全体をランタイムコンパイルされたMetalシェーダーでGPU上で実行します。
- 線形アテンション:レイヤーの75%でGated DeltaNet線形アテンションを活用し、コンテキスト長が増加してもKVキャッシュが成長しないようにします。
対象ユーザー
- Apple Siliconユーザー:M1からM5までのMac、またはiOS 17以降のiPhoneをお使いで、高パラメータモデルをローカルで実行したい開発者やエンジニア。
- iOSアプリ開発者:Swiftベースのアプリケーションに高性能なローカルLLMエンジンを統合したい方。
SwiftletCoreパッケージを通じて実現可能。
主な特徴
- 極めて効率的なRAM使用:4ビットで80Bモデルを約4.3GBのRAM、35Bモデルを約2.6GBのRAMで実行可能。
- クロスプラットフォーム:macOS 14+およびiOS 17+で動作。
- 複数のインターフェース:アプリ統合用のSwiftパッケージ、ベンチマーク用CLI、サードパーティUI用のOpenAI互換サーバーを提供。
- 検証済みの正しさ:各レイヤーは
mlx-lmの参照実装と比較され、出力の同一性を保証しています。 - iPhone対応:ベースモデルのiPhoneで35Bパラメータのモデルを実行可能。
関連
- Dispatch
- プロジェクト
- プロジェクト
- Dispatch
- プロジェクト