Mac Mini M4 Pro:
究極のOpenClawサーバー
/** 常時稼働のOpenClawホストとしてMac Mini M4 Proを選定・購入・構築し、コストを試算する方法 */
📊 Apple Siliconでの報告値レンジ(自機で再計測してください)
| Model | tok/s | Context | Use Case |
|---|---|---|---|
| llama3.1:8b | ~30–50 | 128K | // Default conversational model |
| qwen2.5:14b | ~18–28 | 128K | // Stronger Chinese, longer context |
| gemma3:12b | ~20–30 | 128K | // Code + vision tasks |
| nomic-embed-text | n/a | 8K | // Embeddings, not chat generation |
⚡ 運用コスト — 計算式付き。自分の電気料金で再計算できます
月額は24時間365日その状態で、$0.12/kWhと仮定した場合の値です:W ÷ 1000 × 730時間 × $0.12。自分の電気料金を代入してください。実際の常時稼働ホストはほとんどの時間アイドルで、負荷がかかるのは短時間だけなので、請求額は推論側ではなくアイドル側に近くなります。推定ではなく実測したい場合は、電力計測付きスマートプラグを1週間つないでください。
⚙️ 24GB M4 Pro向けの初期設定
🛍 推奨アクセサリー
1. 実際にどの構成を買うべきか
実行できるモデルを決めるのはユニファイドメモリだけで、それ以外の仕様は速度を決めるにすぎません。4-bit量子化モデルは10億パラメータあたり約0.6GBを必要とし、これにコンテキストウィンドウとmacOS自身の余裕が加わります。構成を決めるべきなのはベンチマークではなくこの計算です。収まらないモデルは、どんなチップでも動きません。
| 構成 | 収まるもの | 結論 |
|---|---|---|
| M4、16 GB | 8Bは余裕、14Bは厳しい | 8Bのチャットモデルだけを動かし、他に何も載せないなら十分です。 |
| M4 Pro、24 GB | 8Bと14B、コンテキストの余裕あり | 常時稼働のエージェントホストとして妥当な既定値。ブラウザ、Docker、OSの余裕も残ります。 |
| M4 Pro、48 GB | 32Bクラス | 32Bの具体的な用途がある場合のみ。エージェント用途では、プロンプトを整えた14Bの方がレイテンシで有利なことが多いです。 |
| M4 Pro、64 GB | 4-bitの70Bは載るが遅い | 収まりますが、70Bは対話用途ではもたつきます。チャットではなくバッチ処理向けです。 |
目安:4-bitのサイズ(GB)≒ パラメータ数(十億)× 0.6。8Bで約5GB、14Bで約9GB、32Bで約20GB、70Bで約40GBです。長いコンテキストに2〜4GB、macOSに約8GBを残します。合計がユニファイドメモリを超えるとmacOSはスワップを始め、スループットは急落します。購入時に避けるべきはこの崖であって、毎秒トークン数ではありません。
2. 開封から最初の応答まで
以下のコマンドはすべてMac Mini本体で実行します(SSHでもキーボード直結でも構いません)。全体で約20分、その大半はモデルのダウンロード待ちです。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" # follow the printed instructions to put brew on your PATH, then: brew install node
OpenClawには新しめのNodeが必要で、macOSではHomebrewが最も手間の少ない入手方法です。
brew install --cask ollama open -a Ollama # start it once so the background service registers ollama pull llama3.1:8b
初回のpullで数GBをダウンロードします。Apple SiliconではOllamaが自動的にMetalを使うため、GPUのフラグ設定は不要です。
ollama run llama3.1:8b "reply with the single word: ready"
ここで失敗するなら原因はOllamaであってOpenClawではありません。先に切り分けておくと後が楽です。
curl -fsSL https://openclaw.ai/install.sh | bash openclaw --version openclaw doctor
ゲートウェイを起動する前にバージョンが表示されることを確認してください。中途半端なインストールは分かりにくい形で失敗します。
3. 再起動・スリープ・停電を乗り切る
デスクトップのMacは、そのままではサーバーではありません。3つの既定値がエージェントを落とします。スリープすること、停電後に復帰しないこと、起動時にゲートウェイを立ち上げるものが何もないことです。3つとも直しておかないと、最悪のタイミングで到達不能になります。
sudo pmset -a sleep 0 sudo pmset -a disablesleep 1 # confirm: pmset -g | grep -E 'sleep|disablesleep'
ディスプレイスリープは問題なく、省電力にもなります。ゲートウェイを殺すのはシステムスリープの方です。
sudo pmset -a autorestart 1
これを設定しないと短時間の停電後もマシンは落ちたままで、UPSを付けた意味がなくなります。
openclaw gateway install openclaw gateway start openclaw gateway status
`gateway install` がlaunchdエージェントの作成と読み込みを行います。自作のplistはアップグレードで引数が変わるまでは動きますが、その後は壊れていることに気づきにくいコピーを抱えることになります。
sudo reboot # once it is back, from another machine on the network: curl -sf http://<mac-mini-ip>:18789/health && echo OK
意味があるのはこのテストだけです。3週間後に穴に気づくより、今やっておいてください。
4. 自分のマシンで計測する
公開されているスループット値は——このページのレンジも含めて——キャパシティ計画にはほぼ役立ちません。量子化方式、コンテキスト長、熱の状態に左右されるためです。自分の個体で測れば2分で済み、実際に計画の根拠にできる数字が得られます。
ollama run llama3.1:8b --verbose "Write two paragraphs about tide pools."
出力のeval rateの行を見てください。これが生成フェーズの毎秒トークン数で、応答の体感速度を決めます。prompt eval rateは別のはるかに速いフェーズを測ったもので、誇張された数値が引用しがちなのはこちらです。
ollama run llama3.1:8b --verbose "$(cat some-long-document.txt) Summarise the document above."
コンテキストが伸びるほどスループットは落ちます。ゼロではなく、実際に使う長さで測ってください。
sudo powermetrics --samplers cpu_power,gpu_power -i 1000 -n 10
リクエスト実行中のパッケージ電力をミリワット単位で報告します。電源の損失を含む実際の壁面電力を知りたい場合は、電力計測付きスマートプラグの方が正直です。powermetricsは電源ユニットを見ていません。
pmset -g thermlog
ここでスロットリングが報告されるなら、連続時のスループットはピーク時を下回っており、原因はファンカーブです。
Mac Miniが正解でない場合
- ✗64GBを超えるメモリ、あるいはCUDA専用のツールチェーンが必要な場合は、NVIDIAのマシンを買うか借りてください。
- ✗固定のグローバルアドレスでエージェントに到達する必要がある場合。CGNAT配下の自宅Macは苦労します。VPSの方が簡単です。
- ✗最も安価な常時稼働ホストが欲しく、小さいモデルで足りる場合。Raspberry Pi 5がはるかに安く同じことをします。
- ✗バッチ処理が週に1回だけの場合。6日間アイドルするハードを買うより、GPUを時間借りする方が安く済みます。