こんにちは、七宮さん(@shichinomiya_s)です。
前回はGTX 1080TiでQwenをどこまでローカルLLMとして動かせるかを検証しましたが、今回は新世代のQwen 3.6をApple M1 Max(64GBユニファイドメモリ)で実際に動かし、MLXでガッツリ実測しました。dense(密)モデルの27Bと、MoE(混合エキスパート)の35B-A3B、さらに4bit(nvfp4)と8bit(mxfp8)の量子化を比べています。
結論から言うと、「パラメータが大きい=遅い」は今回当てはまりませんでした。トークンごとに約3Bしか使わないMoEの35B-A3Bが、dense 27Bの約3.7倍速(61.2 tok/s vs 16.7 tok/s)。しかもメモリは大差なし。一方で8bit版は4bit版より遅く、メモリは約1.8倍と、数字で見ると使い分けがはっきり出ました。常時思考(thinking)で生成が伸びがちなクセも含め、正直にレビューします。
Qwen 3.6 とは — なぜ今ローカルで試すのか
Qwen 3.6 はAlibaba Qwenチームの新世代LLMシリーズで、2026年春にオープンウェイト版が相次いで公開されました(35B-A3Bが4/16、27Bが4/22)。エージェント系ベンチ(Terminal-Bench 2.0など)で上位を取ったと話題ですが、注目したいのはオープンウェイトがMLX量子化で配布され、手元のMacで動かせる点です。
今回の主役は2系統です。
- dense 27B — 全パラメータをトークンごとに使う”普通”の27Bモデル。
- MoE 35B-A3B — 合計35Bだが、トークンごとに活性化するのは約3B(A3B = Active 3B)。「大きいが、毎回使うのは一部だけ」という構造。
Apple SiliconはGPUとCPUが同じメモリを共有するユニファイドメモリなので、VRAMの壁がなく搭載メモリ全体をモデルに使えます。64GBあれば35Bクラスも十分射程。実際どうなのか、数字で見ていきます。
検証環境
| 項目 | 内容 |
|---|---|
| マシン | Apple M1 Max(10コアCPU / 32コアGPU) |
| メモリ | 64GB ユニファイドメモリ |
| OS | macOS(Darwin 25.4.0) |
| ランタイム | mlx-lm 0.31.3(Python 3.11) |
| 計測方法 | 各タスク2回ウォーム実行、最終runを採用。生成上限トークンは固定 |
テストしたモデルは以下の3つ。すべてmlx-communityのMLX量子化ビルドです。
| モデル | 量子化 | 種別 |
|---|---|---|
| Qwen3.6-27B-nvfp4 | FP4(4bit) | dense 27B |
| Qwen3.6-35B-A3B-nvfp4 | FP4(4bit) | MoE 35B / 活性3B |
| Qwen3.6-35B-A3B-mxfp8 | FP8(8bit) | MoE 35B / 活性3B |
タスクは日本語要約・コード生成・推論(算数)・長文生成の4種。Ollamaは使わず、Apple純正フレームワークのMLXで統一しています。
pip install "mlx-lm==0.31.3"
python -m mlx_lm.generate --model mlx-community/Qwen3.6-35B-A3B-nvfp4 --prompt "こんにちは"検証結果① 生成速度 — MoE 35B-A3B が dense 27B の約3.7倍速
まず生成速度(tok/s)です。4タスクすべてで傾向は明確でした。

| タスク | 27B-nvfp4 (dense) | 35B-A3B-nvfp4 (MoE) | 35B-A3B-mxfp8 (MoE/8bit) |
|---|---|---|---|
| 日本語要約 | 18.09 | 61.26 | 50.97 |
| コード生成 | 18.08 | 61.03 | 49.63 |
| 推論(算数) | 16.24 | 61.32 | 50.60 |
| 長文生成 | 14.35 | 61.28 | 50.53 |
| 平均 | 16.7 tok/s | 61.2 tok/s | 50.4 tok/s |
「合計35Bの方が、27Bより約3.7倍速い」という一見おかしな結果ですが、これがMoEの本質です。35B-A3Bはトークンごとに約3Bしか活性化しないため、実際の計算量は3Bモデル相当。dense 27Bは毎回27B全部を使うので、当然重くなります。プロンプト処理(prefill)の速度差はさらに顕著で、MoEが平均237 tok/s、denseが59 tok/sでした。
検証結果② 量子化 FP4 vs FP8 — 4bitの方が速くてメモリも半分
同じ35B-A3Bで、4bit(nvfp4)と8bit(mxfp8)を比べました。

| 項目 | nvfp4(4bit) | mxfp8(8bit) |
|---|---|---|
| 平均生成速度 | 61.2 tok/s | 50.4 tok/s |
| ピークメモリ | 18.41GB | 33.5GB |
4bitの方が速くて(+約21%)、メモリも約半分。8bitは出力品質のマージンを取りたいときの選択肢ですが、速度とメモリのコストは実測ではっきり出ます。M1 Maxのメモリ帯域を考えると、まず4bitで試して、品質に不満があれば8bitへ、という順番が現実的でしょう。
検証結果③ メモリとロード — 64GBなら全部余裕、ただし8bitは”重い”

ピークメモリは dense 27Bで14.55GB、MoE 35B(4bit)で18.41GB、MoE 35B(8bit)で33.5GB。一番重い8bitの35Bでも33.5GBで、64GB搭載の半分強。M1 Max 64GBなら、今回の3モデルはどれも余裕で動きます。32GB機でも4bit版(最大18.4GB)なら問題なさそうです。

ロード時間は dense 27Bが3.6秒、MoE 35B(4bit)が6.8秒。注意点として、8bit版(mxfp8)はグラフで約500秒と突出していますが、これは公平な比較ではありません。実行時にモデルの一部ファイルが未ダウンロードで、Hugging Faceからの再取得(約8分)が混ざってしまったためです。キャッシュ済みなら4bit版(6.8秒)と同程度のはず。正直なところ、ここは「ロード時間」ではなく「ダウンロード込みの初回時間」として読んでください。
考察 — なぜMoEは速いのか、そして”常時思考”のクセ
結果の主役はやはりMoEの速さです。「パラメータ数が多い=重い」という直感は、MoEには当てはまりません。35B-A3Bは合計サイズこそ大きい(メモリは食う)ものの、推論時の計算は活性3B相当なので、dense 27Bより圧倒的に速い。ローカルで”賢くて速い”を狙うなら、まずMoEの4bit版が第一候補という結論になります。
一方で、想定外だった点も正直に書きます。Qwen 3.6は常時思考(always-on thinking)で、回答前に内部の思考過程を出します。しかも日本語プロンプトでも思考は英語で走る傾向があり、生成トークンの上限を小さく(200程度)すると、思考の途中で打ち切られて最終回答に届かないことがありました。ローカルで実用する場合は、生成上限を大きめに取るのが前提になります(その分、体感速度には効いてきます)。なお今回は速度・メモリの実測が主眼で、出力品質の定量採点はしていません。
向いている人・注意点
向いている人:
- Apple Silicon Mac(特にメモリ32GB以上)で、ローカルLLMを実用速度で回したい人
- クラウドAPIに出せない機密データをローカルで処理したい人
- 「大きいモデル=重い」と思って敬遠していた人(MoEなら速い)
注意点:
- 8bit量子化はメモリ約1.8倍・速度−約18%。まず4bitで十分なことが多い
- Qwen 3.6は常時思考。生成上限トークンは大きめに設定する
- モデルのダウンロードは大きい(8bit 35Bで30GB超)。初回は時間と回線に注意
- 量子化はコミュニティ製ビルド。品質はタスクで自分でも確認を
ローカルAI用途のApple Silicon Macは中古市場でも手に入りやすく、64GBあれば35Bクラスまで遊べるのでコスパは良い選択肢です。
まとめ
Qwen 3.6 を M1 Max 64GB でローカル実測した結論です(すべて実測値)。
- MoE 35B-A3B(4bit)= 61.2 tok/s。dense 27B(16.7 tok/s)の約3.7倍速
- 速さの理由はトークンごとに活性3Bだけ使うMoE構造
- 量子化は4bit(nvfp4)が速くてメモリ半分。8bitは速度−18%・メモリ1.8倍
- ピークメモリは最大でも33.5GB。M1 Max 64GBなら全部余裕、32GBでも4bit版はいける
- Qwen 3.6は常時思考。生成上限は大きめに
「ローカルで賢くて速いモデルが欲しい」なら、Qwen3.6-35B-A3B の4bit版が今いちばんのおすすめです。Macのメモリさえ足りれば、クラウドに頼らずここまで動きます。
検証ノート(再現用)
本記事の数値はすべて、筆者のM1 Max(64GB)での実測です。再現手順は以下のとおり。
環境: Apple M1 Max / 64GB / macOS (Darwin 25.4.0) / mlx-lm 0.31.3 (Python 3.11)
# セットアップ
python3.11 -m venv venv && source venv/bin/activate
pip install "mlx-lm==0.31.3"
# 実測(各モデルをロードし、4タスクをウォーム計測)
python -m mlx_lm.generate --model mlx-community/Qwen3.6-27B-nvfp4 --prompt "..."
python -m mlx_lm.generate --model mlx-community/Qwen3.6-35B-A3B-nvfp4 --prompt "..."
python -m mlx_lm.generate --model mlx-community/Qwen3.6-35B-A3B-mxfp8 --prompt "..."計測値(生成速度の平均・実測): 27B-nvfp4 = 16.7 tok/s(ピーク14.55GB, ロード3.6s)/ 35B-A3B-nvfp4 = 61.2 tok/s(ピーク18.41GB, ロード6.8s)/ 35B-A3B-mxfp8 = 50.4 tok/s(ピーク33.5GB)。
既知の制約: mxfp8のロード時間は、実行時にモデルの一部が未DLでHugging Faceからの再取得(約8分)が混入したため、公平なロード比較から除外。Qwen3.6は常時思考のため、生成上限が小さいと回答が途中で切れる場合がある。出力品質の定量採点は本検証では未実施(速度・メモリが主眼)。





コメントを残す