2026 MLX ローカル API
MACMLX_
BATCH_
MATRIX.

Apple Silicon MLX 推論ワークステーション

Cursor や社内エージェントを localhost の OpenAI 互換 /v1 に繋ぐとき、Apple Silicon では二つの MLX 実装が並びます。Swift ネイティブの macMLX はメニューバー常駐と mlx-swift-lm を同一プロセスに載せ、Electron を避けます。mlx-batch-server 系は mlx-lm の BatchCoordinator と MLX_BATCH_BATCH_WINDOW_MS など明示ノブで集約スループットを狙います。どちらも /chat/completions に見えますが、並行意味論・RSS・ログの切り口が異なるため、インタラクティブ編集とオフライン集約を同居させると TTFT と SSE 初バイトが崩れます。統合メモリの奪い合いは Activity Monitor とバッチ統計の両方で見ないと誤診します。LiteLLM は鍵ローテーションには強いですが Metal の空き帯域を増やしません。OpenAI 互換 API + launchdvllm-mlx 並列 と合わせて読むとトポロジ全体が繋がります。

1. 課題整理:`/v1` でも運用負荷が変わる理由

ランタイム境界が違えばログも違います。macMLX は対話 UX とモデル固定ピンを優先し、mlx-batch-server はスライディング窓でのリクエスト束ねを優先します。窓が 50–180ms と広いと集約 tok/s は伸びますが IDE 補完の TTFT が犠牲になります。統合メモリでは Xcode のインデックスや VideoToolbox と GPU が同じプールを使うため、曜日や時間帯でベースラインが変わります。ベンチにはワークロード指紋を固定してください。

2. 対照表:デスクトップ macMLX vs サーバ型 mlx-batch-server

観点macMLXmlx-batch-server 型
想定ユーザー個人開発・GUI/CLI 一体利用10 並列以上の HTTP 集約 API
ポート例:8000/v1:10240/v1(設定可)
ノブKV 階層・モデルプールMLX_BATCH_*、動的 load/unload
リモート Mac のきっかけIDE はローカルに残しピークだけ移す熱設計と電源が SLA に見合わないとき

3. 五段階受理ラダー

Step 1

ストリーミング対話とオフライン batch を同一チューニングセッションで混在させない。

Step 2

バッチ窓(ms)、最大並列スロット、RSS ピーク(物理 RAM 比)を三点セットで記録する。

Step 3

TTFT と SSE 初バイト、バッチではスロットあたり tok/s p95 を見る。

Step 4

窓を 50→200ms と振って劣化が許容外ならチーム上限として固定する。

Step 5

チップ世代・MLX コミット・ノブ値を変更チケットに貼る。

export MLX_BATCH_BATCH_WINDOW_MS=80 export MLX_BATCH_MAX_BATCH_SIZE=12 /usr/bin/memory_pressure

4. 継続ローカル / LiteLLM / リモート Mac

条件優先次善避ける
対話 TTFT が悪いが offline は健康窓縮小またはプロセス分割対話専用インスタンス単にモデルを肥大化
RSS が 10 分連続で RAM 82% 超並列制限または最重モデル移設専用リモート推論 Macルーティングだけの LiteLLM 万能視
プロバイダ複数の監査ルートが必要Explicit fallback の LiteLLMクラウド溢出し契約の事前レビュー未監査ゲートウェイ多重化

チケット用閾値の例:① swap が 90 秒連続で 768MB を超えたらランプダウン。② 窓最小でも TTFT p95/p50 が 2.8× を超えるなら対話と集約を分離。③ 週二回以上 OOM/jetsam なら購買より先にリモート Mac PoC。

5. 事例:ノートに mlx-batch-server を載せた夜のデモ週

デモ前週、180ms 窓で tok/s を伸ばした結果ファンが鳴り SSE が荒れた。バッチ層だけリモート Mac mini に移し、Cursor 向け macMLX はローカル維持で収束した。

原因はストリーミング完了と batch が同一プロセスを共有していたことです。権重量と MLX 重み整合は保ったまま SLA 言語を「対話」「オフライン」に分けると経営側とも対話しやすくなります。クリエイティブ作業とエージェント試作にはノートの統合メモリが有利ですが、24×7 の集約スループットは冷却余裕のある筐体へ載せ替えるのが筋です。

6. 洞察:2026 年の MLX 二股と実行可能 SLA

Swift 優先の macMLX は環境摩擦を下げ、Python バッチサーバは並列経済を取りに行きます。LiteLLM は要件が固まった後の鍵とレート制御に置くべきで、GPU 常駐リセットの代替にはなりません。クラウド API だけより MLX-on-Mac は量子化再現性が高く、過剰なノートより時間課金のリモート Mac がピーク整合に向きます——カフェ Wi-Fi を推論 SLA に混ぜないのが MACGPU のような時間課金ノードの位置付けです。

まとめ:プロトタイプはネイティブ MLX で早く回し、本番スループットはバッチ窓・RSS・明示オフロード条件で縛る。熱と swap が許容できないピークは、SSH トンネルより電源が読めるレンタルリモート Mac に載せ替えるのが堅実です。