HN 日本語サマリー

← 一覧へ戻る
AI・機械学習

M4 Pro Mac Miniでのローカルモデルセットアップ

My local model setup on an M4 Pro Mac Mini (lws.io)

40 pointsby raybb11 コメント

要約

この記事では、M4 Pro Mac MiniにローカルLLMサーバーをセットアップし、AIモデルの実行環境を構築する方法を解説しています。クラウドAPIのコスト、プライバシー、制御の問題を回避し、コスト予測可能性、低遅延、オフライン機能といった利点を得るためにローカル環境が推奨されています。特に、Mixture-of-Experts (MoE) モデルの仕組みと、メモリ使用量を抑えつつ高性能を維持する量子化技術について詳しく説明されています。

全文翻訳

私は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%を処理することです。そして、それらが必要な場合は、既に利用可能です。ローカル環境は、私の日常のより多くの部分を無料でカバーします。 モデルの内訳 大規模なモデルをローカルで実行することは、1つのことに集約されます。それは、メモリに実際にどれだけのRAMが必要かということです。ほとんどの人はパラメータ数を見て間違った考えを持ちますが、密モデルとMixture-of-Experts (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のオーバーヘッドを差し引いてください。Apple SiliconではmacOSは約6-8GBを消費します。コンテキストウィンドウのためにスペースを残してください。数千トークンごとにKVキャッシュにメガバイトが追加されます。長い会話を期待する場合は、8-16GBのオーバーヘッドを計画してください。MoEモデルの場合、合計パラメータ数は誤解を招きます。実際のエラー推論メモリを理解するには、「アクティブパラメータ」の数値を調べてください。モデルとコンテキストの合計が、10-15%のバッファを含めて利用可能なユニファイドメモリ内に収まる場合、問題ありません。満杯に近い場合は、SSDにスワップされます。 モデルのスワップは簡単です これは誰も話さない部分です。新しいモデルが登場するたびに、ローカルモデルを数週間ごとにスワップできます。文字通りダウンロードと再起動です。 ワークフロー: 新しいモデルを~/models/にダウンロードします。 oMLXはモデルディレクトリから自動検出します。 oMLXアプリで選択するか、サーバーを再起動します。 完了です。 oMLX管理ダッシュボードには、HuggingFaceモデルブラウザが組み込まれています。モデルを見つけて、ダウンロードをクリックします。Hermes、Pi、Raycast、Apolloでモデルを変更すれば、すべて完了です。これの多くはCLIでも実行できるため、どのデバイスからでもMac MiniにSSH接続できます。 なぜこれが重要か: ローカルモデルとAPIモデルのギャップは急速に縮まっています。1年前に「まあまあ」だった品質が、ほとんどの現実世界のタスクで競争力を持つようになりました。コーディング、推論、ツール使用が重要な分野です。そして、OptiQによる4ビット量子化は、品質を驚くほど高く保ちます。35B-A3Bを4ビットにした場合、BF16(16ビット浮動小数点、非圧縮ベースライン)と比較して、ほとんどのベンチマークで1〜2ポイントしか失いません。これは、70GBではなく48GBのメモリ使用量のための許容できるトレードオフです。 ネットワーク Tailscaleは、私のすべてのデバイス間にメッシュを作成します。Mac Mini、iPhone、MacBookはすべて同じプライベートネットワーク上にあります。パブリックインターネットに公開されているものはありません。oMLXサーバーはポート8000でリッスンします。テールネット上のどのデバイスからでも接続できます。Raycast、Apollo iOS、MacBook上のHermesデスクトップはすべて同じエンドポイントに接続します。デバイス間で設定のずれはありません。oMLXのKVキャッシュ永続性もテールネットセットアップで重要です。コーディングエージェントは、セッション中の以前のコンテキストを繰り返し参照します。oMLXは各ブロックをSSDにキャッシュします。