Apple Silicon MacでのローカルAI実行トラブルシューティング
はじめに
Apple Silicon(M1/M2/M3/M4)搭載のMacは、統合メモリアーキテクチャにより、意外なほどローカルLLMの実行に適しています。しかし、多くのAIツールはNVIDIA GPU(CUDA)を前提に開発されているため、Apple Silicon固有の問題に遭遇することがあります。この記事ではMacでのローカルAI実行で頻発する問題と解決法をまとめます。
問題1: PyTorchでGPU(Metal)が認識されない
PyTorchのMPS(Metal Performance Shaders)バックエンドが有効にならない問題です。
import torch
# MPSデバイスの確認
print(torch.backends.mps.is_available()) # Trueであること
print(torch.backends.mps.is_built()) # Trueであること
# MPSが使えない場合、PyTorchのバージョンを確認
# MPS対応はPyTorch 1.12以降(安定版は2.0以降)
pip install --upgrade torch torchvision torchaudio
macOS 12.3以上が必要です。システム環境設定でmacOSのバージョンを確認してください。
問題2: MPS使用時のメモリエラー「MPS backend out of memory」
Apple Siliconの統合メモリは大容量ですが、AIモデルがシステム全体のメモリを圧迫することがあります。
# 環境変数でMPSのメモリ上限を設定
export PYTORCH_MPS_HIGH_WATERMARK_RATIO=0.7 # メモリの70%まで使用
export PYTORCH_MPS_LOW_WATERMARK_RATIO=0.5 # 50%を下回ったら解放
# または推論時にメモリを手動管理
import torch
torch.mps.empty_cache() # MPSキャッシュをクリア
問題3: Ollamaの推論がCPUで動いている
OllamaはApple SiliconのMetal GPUに対応していますが、設定によってはCPUモードで動作する場合があります。
# GPU使用状況を確認
ollama ps
# NUM_GPU列が0ならCPUモード
# Activity MonitorでGPU使用を確認
# 「ウインドウ」→「GPU履歴」で実行中のGPU使用率を表示
# Ollamaの再インストールで解決する場合もある
brew uninstall ollama
brew install ollama
問題4: llama.cppのMetal対応ビルドエラー
llama.cppをApple Silicon向けにビルドする際、Metalバックエンドが有効にならない問題です。
# Metal対応ビルド(正しい方法)
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
make clean
make LLAMA_METAL=1 -j$(sysctl -n hw.ncpu)
# CMakeを使う場合
mkdir build && cd build
cmake .. -DLLAMA_METAL=ON
cmake --build . --config Release -j$(sysctl -n hw.ncpu)
# Metalが有効か確認
./llama-cli -m model.gguf -p "test" -ngl 1
# 「ggml_metal_init」のログが出ればMetal有効
問題5: Homebrewのarm64/x86_64混在問題
Rosetta 2経由でインストールしたx86_64版のPythonやライブラリが混在すると、互換性エラーが発生します。
# 現在のアーキテクチャを確認
arch # arm64と表示されること
file $(which python3) # Mach-O 64-bit executable arm64
# x86_64版が混在している場合
# arm64版のHomebrewを再インストール
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# パスの優先順位を確認(arm64版が先であること)
echo $PATH
# /opt/homebrew/bin(arm64)が /usr/local/bin(x86_64)より前にあること
問題6: Stable Diffusion on Macの速度が遅い
MPS対応のStable Diffusionでも、NVIDIA GPUに比べると速度が出にくい場合があります。
# Core ML最適化版を使用(Apple推奨)
pip install coremltools
# ml-stable-diffusionを使用することで、Core ML経由の高速化が可能
git clone https://github.com/apple/ml-stable-diffusion
cd ml-stable-diffusion
pip install -e .
# SDXL Turboなど軽量モデルはMacと相性が良い
M1/M2/M3/M4別の実行可能モデル目安
メモリ8GBのモデルでは、Ollama/llama.cppで7Bパラメータ(Q4量子化)が快適に動作します。16GBなら13Bモデル(Q4)やStable Diffusion XLが実行可能です。32GBでは70Bモデル(Q4量子化)も動作し、64GB以上ならLlama 3.1 70B(Q8量子化)やMixtral 8x7Bの非量子化版も扱えます。
まとめ
Apple Silicon MacはCUDA非対応ですが、Metal/MPSとApple独自の統合メモリにより、ローカルAI実行で十分な性能を発揮します。問題の多くはアーキテクチャの混在やMPSの設定不足が原因なので、arm64環境の統一と最新のツールバージョンの使用を心がけてください。
この記事はAIトラブル解決に特化した技術メディア「EffiAI」が提供しています。
☁️ ローカルGPUが足りない?クラウドGPUという選択肢
高性能GPUを今すぐ使いたい方には、クラウドGPUサービスがおすすめです:
🔧 AI開発におすすめのGPU・パーツ
本記事の手順を快適に進めるための推奨スペック:
- GPU: NVIDIA RTX 4070 Ti Super(AI開発コスパ最強)
- メモリ: DDR5 64GB(LLM推論に必須)
- SSD: NVMe SSD 2TB(大規模モデル保存用)
⚡ GPU環境をすぐに使いたいなら
ハードウェアの購入・セットアップなしで、すぐにGPU環境を使えるクラウドサービスがおすすめです。
- RunPod — RTX 4090/A100/H100を即座に利用可能
- Vast.ai — 最安のGPUクラウド、オークション方式で低コスト
- RTX 5090をAmazonで見る — 自宅GPU環境を構築するなら