【備忘録】Mac mini M4 Pro 48GBで、Ollama・Gemma 4・Docker・OpenClawをローカル環境に構築する手順

エージェント

1. 目的

Mac mini M4 Pro、メモリ48GBの環境に、ローカルLLM実行環境を構築した。

今回のゴールは以下である。

  • VS Codeを使えるようにする
  • Python開発環境を作る
  • Dockerを動作確認する
  • Ollamaをインストールする
  • Gemma 4 12Bをローカルで動かす
  • OpenClawをOllama / Gemma 4 12Bに接続する
  • OpenClawからローカルLLMに質問できるところまで確認する

なお、名前を混同しやすいが、今回扱うのは OpenCL ではなく OpenClaw である。OpenCLはGPU計算APIで、OpenClawはAIエージェント実行環境である。


2. Mac mini初期設定

中古またはオークション購入のMac miniでは、最初に以下を確認する。

  • Activation Lockが出ないこと
  • Remote Management / リモート管理が出ないこと
  • 前所有者のApple ID入力を要求されないこと
  • 自分のローカルMacアカウントでログインできること
  • 再起動後も普通にログインできること

初期設定時、Apple Account作成に失敗する場合がある。この場合、無理にその場でApple Accountを作らず、あとで設定またはサインインしないを選んで、まずMacのデスクトップまで進めればよい。


3. VS Codeのインストール

Safariで以下を検索する。

Visual Studio Code download

公式サイトからMac版をダウンロードする。Apple SiliconのMac miniなので、Apple silicon版を選ぶ。

ダウンロード後、VS CodeをApplicationsフォルダに移動して起動する。

次にVS CodeのExtensionsで、最低限以下を入れる。

  • Python
  • Pylance
  • Python Debugger
  • GitHub Copilot Chat、必要なら

VS Codeの拡張だけではPython本体は入らない。Pythonは別途インストールが必要である。


4. 作業フォルダの作成

WindowsのCドライブに相当する考え方はMacにはない。Macでは、通常は自分のユーザーフォルダ以下に作業フォルダを作る。

例:

cd ~
mkdir work
cd work

または、Finderで以下のように作る。

Users / XXX / work

今後、OpenClaw、Python、Docker関連のテストはこの ~/work 以下で行うと管理しやすい。


5. Python環境の確認

VS CodeでTerminalを開く。

python3 --version

バージョンが表示されればPythonは入っている。

テスト用プロジェクトを作る。

cd ~/work
mkdir test_python
cd test_python
python3 -m venv .venv
source .venv/bin/activate

左側に (.venv) が出れば仮想環境が有効になっている。

テストファイルを作る。

touch test.py

test.py に以下を書く。

print("Hello from Mac mini")

実行する。

python test.py

以下が出れば成功。

Hello from Mac mini

6. Ollamaのインストール

Safariで以下を検索する。

Ollama Mac download

公式ページからmacOS版をダウンロードしてインストールする。

インストール後、Terminalで確認する。

ollama --version

バージョンが出れば成功。


7. Gemma 4 12Bのインストール

今回は最初のローカルLLMとして Gemma 4 12B を使った。

Ollama公式ライブラリでは、Gemma 4の12Bモデルは以下のコマンドで実行できる。Gemma 4には12B、26B、31Bなどのワークステーション向けモデルが用意されている。

ollama run gemma4:12b

これは初回実行時に、モデルのダウンロードと起動を同時に行う。ダウンロードには時間がかかる。

起動したら、以下を入力して確認する。

Hello. Please introduce yourself briefly.

終了する場合は、

/bye

を入力する。

インストール済みモデルを確認するには、

ollama list

を使う。


8. Gemma 4 12Bの速度確認

Ollama単体で速度を確認するには、--verbose を付けて起動する。

ollama run gemma4:12b --verbose

その後、例えば以下を入力する。

Please write 200 words about Japan.

返答が終わると、最後に以下のような情報が出る。

prompt eval rate:  xx tokens/s
eval rate: xx tokens/s

見るべき指標は主に eval rate で、これは出力生成速度を示す。OllamaのAPIメトリクスでは、eval_count が出力トークン数、eval_duration が出力生成時間として説明されている。

今回のMac mini M4 Pro 48GBでは、Gemma 4 12Bで約26 tokens/s程度が出た。これはローカルLLMとしては十分実用的な速度である。


9. Activity MonitorでGPUとメモリを見る

OllamaでGemma 4 12Bを動かすと、Activity Monitorで llama-server が表示される。

確認ポイントは以下。

  • GPU使用率
  • CPU使用率
  • メモリプレッシャー
  • スワップ使用量

今回の環境では、GPU使用率が90%前後、CPUはかなり低めだった。これは、Apple SiliconのGPUを使ってLLM推論している状態であり、正常である。

メモリについては、llama-server 単体の表示だけを見るのではなく、全体のメモリプレッシャーとスワップ使用量を見る。

判断目安:

メモリプレッシャー:緑 → 良好
スワップ使用量:0または少量 → 良好
黄色・赤、またはスワップ数GB以上 → モデルが重い可能性

Gemma 4 12Bでは、48GBメモリ環境ではかなり余裕があった。


10. Dockerのインストールと確認

Docker Desktop for Macをインストールし、起動する。

Docker Hubのログインまたはサインアップ画面が出た場合、Googleアカウントで続行してもよい。ただし、途中で求められるのはGoogleアカウントではなく、Docker Hub用のusernameである。

例:

unikarei2026

Dockerが起動したら、Terminalで確認する。

docker --version
docker compose version

動作確認として以下を実行する。

docker run hello-world

以下のような表示が出れば成功。

Hello from Docker!

11. Homebrewのインストール

OpenClawのインストール時に、Homebrewが必要になる場合がある。

今回、OpenClawインストーラ実行時にHomebrewの自動インストールで失敗したため、先に手動でHomebrewを入れた。

まずsudoが通るか確認する。

sudo -v

Macのログインパスワードを入力する。入力中は文字が表示されないが、そのまま入力してEnterを押せばよい。

Homebrewをインストールする。

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Apple Silicon Macでは、インストール後に以下を実行する。

echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"

確認する。

brew --version

注意:
brew --vserion はスペルミス。正しくは brew --version

必要に応じてNode.jsを入れる。

brew install node
node --version
npm --version

12. OpenClawのインストール

OpenClaw公式ドキュメントでは、macOS / Linux / WSL2向けの推奨インストールコマンドとして以下が案内されている。インストーラはOSを検出し、必要に応じてNodeを入れ、OpenClawをインストールしてオンボーディングを開始する。

curl -fsSL https://openclaw.ai/install.sh | bash

インストール中にリスク確認が出る。

これは、OpenClawがベータ版であり、ツール許可を与えるとファイル読み取りや操作実行が可能になるための警告である。

個人用Macで、ローカルテストとして使う場合は、内容を理解したうえで Yes で進める。

ただし、以下はすぐには接続しない方がよい。

  • 本番Gmail
  • 会社メール
  • 会社Google Drive
  • Mac全体の重要ファイル
  • Apple ID / iCloud
  • 外部インターネット公開

13. OpenClaw初期設定で選んだ項目

今回選択した設定は以下。

セットアップ方式

Quickstart

recommended local setupなので、初回はこれでよい。

Gateway bind

Loopback (127.0.0.1)

外部公開しない設定なので安全寄り。

Tailscale exposure

Off

LLM Provider

OpenAIではなく、ローカルLLMを使いたいので、

More...

からOllamaを選択。

OpenClawのOllama設定では、Local onlyの場合にOllamaのbase URLを指定し、利用可能モデルを検出する流れになっている。

Ollama Host

http://127.0.0.1:11434

意味:

127.0.0.1 → このMac自身
11434 → Ollamaの標準ポート

モデル名

ここが重要。

gemma4:12b

gemma4 だけでは失敗する場合がある。Ollamaに実際に入っている名前を確認し、完全一致させる。

確認コマンド:

ollama list

Chat UI / interface

ClickClack

初回は外部チャットサービスではなく、ローカル用のClickClackでよい。

Search provider

初回テストでは、

Parallel Search (Free)

または、安全重視なら

Skip for now

どちらでもよい。

Additional dependencies

Skip for now

GitHub、PDF、Apple Notes、Whisperなどの追加機能は後から必要に応じて入れる。

Google Places API

No

地図や場所検索が必要になるまでは不要。

Hooks

Skip for now

初回は余計な自動処理を増やさない。

起動方法

Hatch in Terminal

初回はTerminal上で起動するのが一番分かりやすい。


14. OpenClaw起動時のモデル名エラー対策

最初、OpenClaw起動時に以下のエラーが出た。

model 'gemma4' not found

原因は、OpenClawが gemma4 というモデル名でOllamaに問い合わせていたこと。

しかし、Ollamaに実際に入っていたモデル名は、

gemma4:12b

だった。

まず確認する。

ollama list

次にOpenClaw設定ファイルを開く。

code コマンドがTerminalで使えない場合は、以下でVS Codeを開く。

open -a "Visual Studio Code" ~/.openclaw/openclaw.json

ファイル内で gemma4 を検索する。

Command + F
gemma4

以下のようになっている箇所を、

"id": "gemma4",
"name": "gemma4"

以下に変更する。

"id": "gemma4:12b",
"name": "gemma4:12b"

特に重要なのは id である。Ollamaに渡されるモデル名なので、ここが間違っていると起動しない。

保存する。

Command + S

15. OpenClawの起動

今回、以下のようなコマンドは失敗した。

openclaw tui --local embedded --agent main --session main

--agentopenclaw tui のオプションとして使えなかったためである。

最終的には、以下で起動できた。

openclaw chat

または、

openclaw tui --local

起動後、画面下に以下のように表示されればよい。

ollama/gemma4:12b

動作確認として以下を入力する。

Hello. Which model are you using?

以下のように返れば成功。

I am currently running on the ollama/gemma4:12b model.

これで、

OpenClaw → Ollama → Gemma 4 12B

の接続が成功した。


16. VS CodeでローカルLLMを使う場合の注意

VS CodeのCopilot Chat連携でOllamaモデルを使おうとしたが、Hi だけでも長時間Thinkingが続く場合があった。

この場合、原因はGemma 4そのものではなく、VS Code側のAgentモードやツール選択処理のオーバーヘッドの可能性が高い。

切り分けは、まずTerminalでOllama単体を動かす。

ollama run gemma4:12b

そこで、

hi

にすぐ返るなら、OllamaとGemmaは正常。

VS Code側では、Agentモードではなく、

Ask
Chat

などの軽いモードに切り替えるとよい。


17. Qwen 3.6 27B Coding MXFP8を追加する場合

Gemma 4 12Bが動いた後、コーディング用途でQwenを試すなら、候補は以下。

ollama run qwen3.6:27b-coding-mxfp8

または、先にダウンロードだけするなら、

ollama pull qwen3.6:27b-coding-mxfp8

Qwen3.6は、Agentic Codingやリポジトリレベルの推論能力の強化が説明されている。

48GBメモリのMac miniでは試す価値はあるが、Gemma 4 12Bより重い。実行時は必ず以下を見る。

Activity Monitor → Memory → Memory Pressure
Activity Monitor → Swap Used

18. 今回の成功確認コマンドまとめ

Python

python3 --version
python3 -m venv .venv
source .venv/bin/activate
python test.py

Docker

docker --version
docker compose version
docker run hello-world

Homebrew

brew --version

Ollama

ollama --version
ollama list
ollama run gemma4:12b
ollama run gemma4:12b --verbose

OpenClaw

openclaw --version
openclaw chat

OpenClaw設定ファイルを開く

open -a "Visual Studio Code" ~/.openclaw/openclaw.json

19. 今回つまずいた点と解決

1. Mac初期設定でApple Account作成に失敗

Apple Account作成をスキップして、まずローカルアカウントでデスクトップまで進めた。

2. @ が入力できない

キーボード配列が違う可能性がある。US配列なら、

Shift + 2

@ が入る。

3. brew --version のスペルミス

誤り:

brew --vserion

正しい:

brew --version

4. code コマンドが使えない

代わりに以下を使った。

open -a "Visual Studio Code" ~/.openclaw/openclaw.json

後でVS Codeから以下を実行すれば、code コマンドを使えるようにできる。

Command + Shift + P
Shell Command: Install 'code' command in PATH

5. OpenClawが gemma4 を探して失敗

Ollama側の実モデル名は gemma4:12b だったため、~/.openclaw/openclaw.jsonidnamegemma4:12b に修正した。


20. 結論

Mac mini M4 Pro 48GBでは、以下の構成でローカルLLMエージェント環境を構築できた。

Mac mini M4 Pro 48GB
├─ VS Code
├─ Python
├─ Docker Desktop
├─ Homebrew
├─ Ollama
│ └─ Gemma 4 12B
└─ OpenClaw
└─ provider: Ollama / gemma4:12b

Gemma 4 12Bはローカルで十分実用的に動作し、Ollama単体では約26 tokens/s程度の速度が出た。OpenClawからも ollama/gemma4:12b として認識され、質問に回答できるところまで確認できた。

今後は、Qwen 3.6 27B Coding MXFP8など、よりコーディング向けのモデルを追加し、VS CodeやOpenClawからの実用性を比較していく予定である。

コメント

タイトルとURLをコピーしました