M4 Pro Mac Miniでのローカルモデルセットアップ
My local model setup on an M4 Pro Mac Mini (lws.io)
要約
この記事では、M4 Pro Mac MiniにローカルLLMサーバーをセットアップし、AIモデルの実行環境を構築する方法を解説しています。クラウドAPIのコスト、プライバシー、制御の問題を回避し、コスト予測可能性、低遅延、オフライン機能といった利点を得るためにローカル環境が推奨されています。特に、Mixture-of-Experts (MoE) モデルの仕組みと、メモリ使用量を抑えつつ高性能を維持する量子化技術について詳しく説明されています。
全文翻訳
M4 Pro Mac Miniでのローカルモデルセットアップ
私は48GBのRAMを搭載したM4 Pro Mac miniでローカルLLMサーバーを実行しています。これは、Hermesエージェントのバックエンドから、スマートフォンのクイックチャットクエリまで、あらゆるものを処理します。セットアップ全体で約30分かかります。
スタックは以下の通りです。
- Qwen3.6-35B-A3B-OptiQ-4bit: 推論や深みが必要なあらゆるものに使用するメインモデル
- Gemma-4-E4B-it-OptiQ-4bit: 簡単なチャット、フォーマット、その他のルーチンタスク用の軽量モデル
- oMLX: 推論サーバー
- Tailscale: Mac mini、iPhone、MacBookを接続するテールネット
HermesはMac mini上でエージェントバックエンドとして実行され、私のMacBookはデスクトップクライアントを実行し、私の電話はTelegramを実行します。Hermes以外の用途では、簡単なチャットにiOSのApollo(Claudeのように読め、使い捨ての質問に適しています)、コーディングエージェントとしてPi(以前そのセットアップについて書きました)、そしてランダムなことにMac上のRaycast AIを使用しています。
なぜわざわざやるのか
ローカルで実行する主な理由は、クラウドAPIは借り物の土地だからです。彼らは価格を変更したり、使用制限に達したり、気分次第でバックグラウンドで提供されるモデルを入れ替えたりできます。私は定期的に月額200ドルのサブスクリプションを2つ上限まで使い切っており、その都度異なるものを得ているように感じていました。時にはモデルは良好でしたが、時には通知なしに劣化しました。
データプライバシーも別の問題です。これらの企業がデータを手に入れた後、どのように扱うか分かりません。使用方法を制限するかもしれませんし、販売するかもしれませんし、公開するかもしれません。いずれにせよ、運用上のセキュリティリスクとなります。機密性の高いコード、クライアントデータ、または独自のワークフローを扱う場合、サードパーティAPIに送信することは一度きりの決定であり、元に戻すことはできません。
次にAI主権があります。私は米国政府がさまざまなモデルの展開をどのように制限してきたかを見てきました。これはどの政府からでも、いかなる理由でも、いつでも起こり得ることですが、あなたには何のコントロールもありません。ワークフローが制限されたクラウドモデルに依存している場合、停止するか、慌てるしかありません。それを避ける唯一の方法は、自分のコンピューティングリソースを所有することです。
その他の実用的な利点:
- コスト予測可能性。APIは変動します。使用量が急増すると、請求額もそれに続きます。ローカルハードウェアの場合、コストはハードウェアの購入と電気代です。フラットです。その後、すべての推論は無料です。
- レイテンシ。ネットワークの往復がないということは、日常的なタスクの応答が速いということです。M4 Proのメディアエンジンは、ほとんどのプロンプトで瞬時に感じる速度で推論を処理します。
- オフライン機能。インターネットがなくても動作します。バックグラウンドで実行されるエージェントワークフローにとって、これは聞こえるよりも重要です。
- レート制限なし。APIプロバイダーは、使用量の閾値に達するとスロットルをかけます。あなた自身のマシンは、どれだけ実行しても気にしません。
実際にどのように使用しているか
Mac miniは常にオンになっています。デスクの上に置いてあり、必要になるまでほとんど気付きません。
Hermesも同じマシン上のローカルモデルを使用して、Mac miniで実行されます。私はTelegram(電話上)とMacBook上のHermesデスクトップアプリを介してエージェントにアクセスします。Hermesデスクトップアプリは「シェル」として機能し、別のデバイス(この場合はMac mini)上のHermesバックエンドに接続します。これは、すべてのデバイス間でバックエンド、会話履歴、スキルセットを共有できることを意味します。
そして、それ以外のすべてがあります。
- Apollo (iOS): 簡単な使い捨てチャット用。Claudeのように読めるが、APIキーやサブスクリプションを必要としないものが欲しい。Apolloを
http://[mac-mini-tailnet-url]/v1に接続するだけで完了です。「この段落を書き直して」や「このエラーは何を意味する?」といった質問に適しています。 - Raycast (Mac): インストールしたくないランダムなことのために。
- Pi: コーディング用。以前そのセットアップについて書きました。
ポイントはAPIベースのモデルを置き換えることではありません。GPT-5やClaude Opusを必要としないリクエストの80%を処理することです。そして、それらが必要なときには、すでに利用可能です。ローカルは、私の日常のより多くの部分を無料でカバーします。
モデルの内訳
ローカルで大規模モデルを実行することは、一つのことに集約されます。それは、実際にメモリにどれだけのRAMが必要かということです。ほとんどの人はパラメータ数を見て間違った考えを持ちますが、密結合モデルと混合エキスパート(MoE)モデルの違いは、コンシューマーハードウェアでは非常に重要です。
識別子の読み方は以下の通りです。
Qwen3.6-35B-A3B-OptiQ-4bit
Qwen3.6: モデルファミリーとバージョン35B: 全エキスパートの合計パラメータ数A3B: トークンあたりのアクティブパラメータ数(350億ではなく30億)OptiQ-4bit: 混合精度量子化(主に4ビット、機密性の高いレイヤーでは8ビット)
gemma-4-e4b-it-4bit
gemma-4: GoogleのGemma 4ファミリーe4b: エンコーディングサイズ、合計約40億パラメータit: 命令チューニング済み4bit: 一様な4ビット量子化
主な違いはA3Bの部分です。密結合の27Bモデルは、すべてのトークンに対して常に270億パラメータがRAMにロードされます。Qwen3.6-35B-A3BのようなMoEモデルは、256個のエキスパートに分散された合計350億パラメータを持っていますが、トークンあたり実際にアクティブになるのは約30億だけです。残りの320億はRAMにあり、何もしていません。
私の48GB Mac miniでは、4ビットのQwen3.6-35B-A3Bは約20GBのRAMを消費します。これにより、コンテキストウィンドウ、オペレーティングシステム、およびマシン上で実行されている他のすべてのものに28GBが残ります。Gemma-4-E4Bは約2.4GBです。単純なタスクでは、20GBモデル全体を使用するのが過剰な場合に、手元に置いておくのに十分小さいです。
友人のMacBook Airは合計16GBでした。4ビットの密結合27Bモデルは約14GBを必要とします。これは文字通りマシンが持つすべてであり、OS用のスペースを引いたものです。そのため、一瞬は動作しますが、動作しなくなるとSSDにスワップされ、苦痛になります。
MoEはこの状況を変えます。私の識別子にある35Bモデルは、同じMacBookに収まります。なぜなら、トークンあたり実際にアクティブになるのは3Bの重みだけだからです。これは、GPU/メディアメモリのフットプリントが、6B密結合モデルが必要とするものに近くなることを意味します。合計350億パラメータの重みはすべて、ユニファイドメモリに格納されます。
モデルがハードウェアで動作するかどうかを確認する方法:
- まず、量子化されたファイルサイズを確認してください。4ビットモデルは、パラメータ数(ギガバイト単位)のおおよそです(35Bパラメータ ≈ 量子化方法によりますが17〜20GB)。
- OSのオーバーヘッドを差し引いてください。macOSはApple Siliconで約6〜8GBを消費します。
- コンテキストウィンドウのためにスペースを残してください。数千トークンごとにKVキャッシュにメガバイトが追加されます。長い会話を期待する場合は、8〜16GBのオーバーヘッドを計画してください。
- MoEモデルの場合、合計パラメータ数は誤解を招きます。実際の推論メモリを理解するには、「アクティブパラメータ」の数値を調べてください。
- モデルとコンテキストの合計が、10〜15%のバッファを残した利用可能なユニファイドメモリ内に収まる場合、問題ありません。これより多い場合は、SSDにスワップします。
パフォーマンス
Qwenはプロンプト処理で平均325トークン/秒、トークン生成で34トークン/秒を記録します。これは瞬時ではありませんが、私がそれに全く考えを巡らせないほど十分に速いです。
メモリ帯域幅も重要ですが、モデルが実行できるかどうかではなく、どれだけ速いかに関わってきます。M4 Proは273 GB/sのユニファイドメモリ帯域幅を持っています。これは、推論中にモデルの重みをRAMからコンピューティングユニットに移動させる速度の上限です。参考までに、ベースM3は100 GB/s、M2 Proは200 GB/s、M3 Maxは最大400 GB/sです。M4 ProはProとMaxの範囲の中間にしっかりと位置しており、トークン速度が実用的でありながら瞬時ではない理由です。
モデルの交換は簡単
これは誰も話さない部分です。新しいモデルが登場するたびに、数週間ごとにローカルモデルを交換できます。文字通りダウンロードと再起動だけです。
ワークフロー:
- 新しいモデルを
~/models/にダウンロードします。 - oMLXはモデルディレクトリから自動的に検出します。
- oMLXアプリで選択するか、サーバーを再起動します。
- 完了です。
oMLX管理ダッシュボードには、HuggingFaceモデルブラウザが組み込まれています。モデルを見つけてダウンロードをクリックします。Hermes、Pi、Raycast、Apolloでモデルを変更すれば、すべて完了です。
これの多くはCLIでも実行できるため、どのデバイスからでもMac miniにSSH接続できます。
これが重要な理由:ローカルモデルとAPIモデルのギャップは急速に縮まっています。1年前に「まあまあ」の品質だったものが、現在ではほとんどの現実世界のタスクで競争力があります。コーディング、推論、ツール使用が重要な分野です。そして、OptiQの4ビット量子化は、品質を驚くほど高く保ちます。4ビットの35B-A3Bは、BF16(16ビット浮動小数点、非圧縮ベースライン)と比較して、ほとんどのベンチマークで1〜2ポイントしか失いません。これは、70GBではなく48GBのメモリ使用量のための許容できるトレードオフです。
ネットワーク
Tailscaleは、私のすべてのデバイス間にメッシュを作成します。Mac mini、iPhone、MacBook、すべて同じプライベートネットワーク上にあります。公開インターネットに公開されているものはありません。
oMLXサーバーはポート8000でリッスンします。テールネット上のどのデバイスからでも接続できます。Raycast、Apollo iOS、MacBook上のHermesデスクトップは、すべて同じエンドポイントにアクセスします。デバイス間で設定のずれはありません。
oMLXのKVキャッシュ永続化も、テールネットセットアップにおいて重要です。コーディングエージェントは、セッション中に以前のコンテキストを繰り返し参照します。oMLXは各ブロックをSSDにキャッシュするため、エージェントが以前のプレフィックスに戻ると、再計算されるのではなく、ミリ秒単位でディスクから復元されます。これにより、ローカルセットアップは、Hermesが存在するエージェントワークにとって実際に実用的になります。
まとめ
Apple Silicon上のローカルモデルは、もはやサイドプロジェクトではありません。M4 Pro Mac miniは、汗をかくことなくそれを処理し、モデルはほとんどのタスクに十分な品質であり、いつでも交換できます。トークンごとに支払う必要はありません。機密データをサードパーティのエンドポイントにルーティングする必要もありません。そして、来週さらに優れたモデルが登場した場合でも、わずかな労力とハードディスクスペースのコストで試すことができます。
私はすでに今年後半に納品される128GBのM5 Max Mac Studioを注文していますが、これまでのM4 Pro Mac miniのパフォーマンスには非常に満足しています。他のApple Siliconデバイスをお持ちの場合は、試してみてください。仕様に応じてモデルを変更する必要があるかもしれませんが、一般的なセットアップはそのまま適用できます。