SharpAI/SwiftLM
⚡ Native MLX Swift LLM inference server for Apple Silicon. OpenAI-compatible API, SSD streaming for 100B+ MoE models, TurboQuant KV cache compression, MACOS + iOS iPhone app.
それは何か
SwiftLM は、Swiftで書かれた高性能推論サーバーで、Apple Silicon上でMLX(Appleの機械学習フレームワーク)モデルを実行します。標準的なOpenAI互換API(/v1/chat/completions)を提供するため、既存のクライアントやツールは変更なしで接続できます。典型的なPythonベースのスタックとは異なり、PythonランタイムやGILなしの単一のネイティブバイナリにコンパイルされます。READMEは、Apple Siliconでのベアメタルパフォーマンスを強調しています。
これは、真剣に開発が進められているプロジェクトで、詳細なエンジニアリング情報が含まれています:ベンチマークテーブル、バグ修正の説明(32GB Macで発生したメモリバグ)、スライディングウィンドウ境界バグ後のビット同一ロールバックを備えたMTP投機的デコード、過大なMoEモデル向けの--stream-experts SSDストリーミングなどのパフォーマンス機能があります。
主な機能と革新
OpenAI互換API — OpenAIスタイルのエンドポイントのドロップイン代替。モデルはHugging Faceから自動ダウンロードされます(例:
mlx-community/gemma-4-26b-a4b-it-4bit)。MoE(Mixture-of-Experts)最適化 — Gemma 4 26Bのようなモデル(トークンごとに26Bパラメータのうち約4Bのみアクティブ)では、SwiftLMはアクティブなエキスパートのみを読み取り、同じメモリフットプリントで高密度27Bモデルよりも5〜6倍高速なデコード速度を実現します。
TurboQuant — 主要機能:KVキャッシュを4倍に圧縮します。Gemma 4-26B 4ビットの100Kコンテキストで、66.9 tok/s(ベースライン27.5 tok/s)(2.43倍高速化)を実現し、40KコンテキストでのOS RAMを48.7GBから18.2GBに削減します。8ビットでは、48.3 tok/s(バニラ14.9)を実現(3.24倍)。READMEには、TurboQuantが帯域幅制約のあるモデルでMTPよりも効果的であることが明示されています。
MTP(マルチトークン予測/投機的デコード) — ステップごとに複数のトークンを予測します。8ビットモデル(帯域幅制約)では、MTPは40Kコンテキストで+20%、100Kで+51%の速度向上をもたらします。READMEは、MTPが役に立たない場合(4ビットMoEは計算制約であり、TurboQuantと組み合わせると計算がオーバーヘッドになるため損失)を注意深く説明しています。
SSDストリーミング(
--stream-experts) — ユニファイドメモリに収まらないモデルの場合、SwiftLMはNVMe SSDから直接エキスパートレイヤーをストリーミングできます。例:126GBのDeepSeek-V4-Flashが64GBのM5 Proで、TurboQuantを使用した40Kコンテキストで約4.2 tok/sで動作(なしでは0.32 tok/s)。長いコンテキストのサポート — ベースのMac mini M6(32GB)で約80.7Kトークン、M5 Proで100Kまでテスト済み。KVキャッシュのサイズ設定と、
--turbo-kvの長距離リコール修正(#175、#65)に細心の注意を払っています。メモリガードと正確性 — READMEは、32GBマシンが隠れたバグを露呈させたことを文書化しています(無制限のMLXバッファキャッシュ、Metal GPUタイムアウトでクラッシュする誤ったKVキャッシュ推定、
preprocessor_config.jsonにimage_meanがない場合のVLMフォールバック、チャンク化されたプレフィルの修正)。また、DFlash(別の投機的デコードプロジェクト)は、グリーディデコーディングの固定化によりQwen3.6の本番環境には不適切であり、適切な修正(Leviathan/Chenによる確率的事後サンプリング)を指摘しています。
なぜ重要なのか
- ネイティブApple Siliconパフォーマンス — Pythonオーバーヘッドなし。単一のバイナリがMetal、ユニファイドメモリ、Mシリーズチップの全帯域幅を使用します。
- メモリ効率 — 大規模なMoEモデル(例:26B)を32GB Macで実行可能にし、SSDストリーミングにより64GBで126GBモデルも実行可能にします。
- 長いコンテキストでの高速化 — TurboQuantとMTPは、ベンチマーク駆動の慎重な方法で組み合わされます。READMEには、いつどちらを使用すべきかのテーブルが含まれています(40K以上の8ビットには
--mtp、TurboQuantで最大スループットを得るには--turbo-kv、24GB Macには--stream-experts)。
実用的なユースケース
- Mac上でLLMをローカルに実行し、開発、テスト、またはOpenAI互換エンドポイントで本番運用。
- GPUメモリが限られているラップトップ/デスクトップでの展開(例:
--stream-expertsを使用した24GB Mac)。 - 40K〜100KトークンをRAMを使い果たさずに必要とする長いコンテキストアプリケーション(コードファイル、ドキュメント)。
- iOS統合(
SwiftBuddyiOSデモがあります)。
技術的な注意点(公平を期すために)
- READMEには、異なるチップ(M1 Ultra、M5 Pro、M6)とモデルタイプ(4ビット対8ビット、MoE対高密度)にわたるベンチマークテーブルが豊富にあり、明確な注意事項があります:「TTFTは除外」、「メモリガードは2GBを超えるスワップを中止」、「40.8Kでのニードルチェックは両モードで信頼できない」。
- 制限について正直です:MoEでの
--gpu-layersは非常に遅い(シングルコアCPUフォールバック)、MTP+TurboQuantは計算制約のあるモデルでTurboQuant単独よりも低下する可能性があり、DFlashは本番環境非対応とフラグされています。 - ビルドにはHomebrewの
cmakeが必要で、サブモジュール(mlx-swift-lmフォーク)からMetalカーネルをコンパイルし、リリースtarballは自己完結型です。
要するに:Apple SiliconでのLLM推論向けの、真剣に設計されたベンチマーク駆動のSwiftサーバーであり、スタンドアウトするTurboQuant KV圧縮と、慎重なMoE/SSDストリーミングサポートを備えています。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト