実測結果
MLX 行はすべて同一の約 8,000 バイト長文プロンプト(tokenize 後 2,700〜2,900 トークン)を入力し、 温度 0 で 300 トークンを生成。プロンプト処理(PP)と生成は別々に測定しています。 Apple Silicon ではこの2つの挙動が大きく異なるため、片方だけを引用すると誤解を生みます。
| モデル | 生成 | PP | サイズ | ロード | ピークRAM | 電力 p90 / 最大 |
|---|---|---|---|---|---|---|
| DeepSeek R1-05284bit MLX | 20.3 tok/s | 206.9 tok/s | 351.7 GiB | 40.2 秒 | 380.7 GB | 55.6 / 160.5 W |
| GLM-5.24bit MLX + draft PR #1410 実験枠 | 17.9 tok/s | 182.6 tok/s | 389.6 GiB | 40.2 秒 | 421.4 GB | 53.1 / 157.1 W |
| Kimi K2.7 CodeUD-Q2_K_XL GGUF / llama.cpp | 24.6 tok/s | 144.8 tok/s | 316.2 GiB | 116.9 秒 † | 339.8 GB | —† / 160.5 W |
| DeepSeek V4 Flash4bit MLX + draft PR #1189 実験枠 | 29.9 tok/s | 426.5 tok/s | 141.1 GiB | 21.7 秒 | 154.2 GB | 41.2 / 156.6 W |
| Qwen3.6 35B-A3BOptiQ 4bit MLX | 94.6 tok/s | 2,892.2 tok/s | 23.0 GiB | 4.0 秒 | 24.1 GB | 53.9 / 127.2 W |
| Qwen3-Coder-Next4bit MLX | 77.2 tok/s | 2,099.8 tok/s | 41.8 GiB | 6.7 秒 | 47.0 GB | 37.9 / 106.9 W |
| Devstral 2 123B Instruct4bit MLX | 8.9 tok/s | 90.4 tok/s | 65.5 GiB | 9.9 秒 | 72.0 GB | 75.9 / 172.7 W |
† Kimi K2.7 Code のみ llama.cpp(llama-bench・2,048 トークンプロンプト)での計測。PP は MLX 行と tokenizer が異なるため参考比較、ロードは cold-start 実時間、生成中だけの電力は分離できず未算出 (全区間 p90 は 103.6 W)。実験枠 の行は未マージの draft mlx-lm PR を commit 固定して実行したもので、正式 release には未収録です。
数字の読み方 — 実用上の結論
使い分けはシンプルです。Qwen3.6 35B-A3B と Qwen3-Coder-Next は 77〜95 tok/s で、チャットにも コーディングにも待ち時間を感じません。316〜390 GiB の巨大モデル群(DeepSeek R1 / GLM-5.2 / Kimi K2.7)は 18〜25 tok/s — 読みながら待てる速度ですが、そもそも他の単体コンシューマ機では ウェイトがメモリに載らないため、「動くこと」自体が 512GB 機の価値です。Devstral 2(8.9 tok/s)は 対話向きではなく、品質重視のバッチ処理向きです。
多くのベンチが隠すのがプロンプト処理速度です。小型 MoE は約 2,800 トークンを 2,000〜2,900 tok/s で取り込む一方、400 GiB 級は 145〜207 tok/s。長いリポジトリコンテキストを頻繁に投げる用途では、 生成速度と同じくらい PP を重視してください。
ローカル Codex 実走 — 32 分で 29/29 完走
同じ実機上でローカル配信した Qwen3-Coder-Next (4bit MLX) を Codex CLI のバックエンドにし、固定の実装課題 (既存テストを通す Python モジュールの実装 + Markdown レポート生成)を 1,909 秒間まわしました。29 イテレーション全てが 1 agent turn で完了し、テストは毎回 6/6。 1回あたり median 56 秒 / p90 102 秒、 soak 中の電力 median は 31.1 W でした。
※ 固定された小規模リポジトリ課題での安定性チェックです。任意の大規模リポジトリでの編集品質や、 フロンティア API モデルとの品質同等性を示すものではありません。
数値を引用する前に
- 単発実測のスナップショット
- 速度は量子化・ランタイムのバージョン・プロンプト・温度・OS の状態で変わります。各数値は「この実機で実際に1回計測した値」であり、保証性能・平均性能ではありません。
- 速度はモデル品質ではない
- このページはスループットの測定だけです。速いモデル=良いモデルではありません。出力品質でモデルを選び、その待ち時間が許容できるかをここで確認してください。
- GLM-5.2 / DeepSeek V4 Flash は実験枠
- 公開版 mlx-lm 0.31.3 では両方とも起動に失敗し、未マージの draft PR(#1410 / #1189)を commit 固定して初めて動きました。動作はしましたが「正式対応済み」とは表現しません。
- Kimi 行は参考値
- Kimi K2.7 Code だけ llama.cpp(2,048 トークンプロンプト)での計測で、tokenizer もロード時間の定義(cold-start 実時間)も MLX 行と異なります。生成中だけの電力は分離できなかったため、推測せず空欄にしています。
- 電力は区間つきの値
- ロードやプロンプト処理の瞬間値は生成中よりかなり高くなります。掲載しているのは「生成中の p90」と「全区間の最大値」の2列で、どちらも常時消費電力ではありません。
測定条件・再現性
- 機材
- Mac Studio / Apple M3 Ultra(32コアCPU・80コアGPU)/ 512GB ユニファイドメモリ / 4TB SSD
- ソフトウェア
- macOS 26.5.1 / MLX 0.32.0 / mlx-lm 0.31.3 / llama.cpp 571d0d5
- プロトコル
- MLX 行: llama.cpp README 先頭 8,000 バイトをプロンプトに、温度 0・seed 42 で 300 トークン生成。 Kimi: llama-bench -p 2048 -n 300。電力は powermetrics(CPU+GPU+ANE 合計)を 1 秒間隔で採取。
- 固定
- 測定した量子化物はすべて Hugging Face の repo と revision を固定して記録。「DeepSeek R1」は 特定のウェイト一式を指し、repo の最新版ではありません。
- 検証の衛生
- バックグラウンド I/O と重なった run は「汚染」として除外しアイドル状態で再測定。公開版 mlx-lm での 失敗ログもゼロ値に置き換えず保全しています。
この実機で、自分のワークロードを測る
このベンチは、お客様と同じ決済・アクセスページ・Tailscale 接続で測定しました。 3日間 ¥50,000 から、同じ環境をそのまま使えます。
ハードウェア仕様は 512GB スペック詳細 へ。English version: ai-kizai.com/benchmarks/512gb