「クラウドAIに頼らずに家庭や小規模オフィスで省電力のローカルLLMサーバーを立てたい」
そんな需要に応えるため、OllamaはARM64アーキテクチャに公式対応しており、Raspberry Pi 5(8GBモデル)上でも軽量な量子化モデルを動かせる。消費電力はアイドル時で5W前後、推論時でも15W程度に収まり、24時間稼働のサーバーとして月の電気代コストを大幅に抑えられる。
この記事では、Ubuntu Server 24.04 LTS ARM64のセットアップからOllamaのインストール、モデルのUSB SSD配置、温度管理まで、Raspberry Pi 5上での実装手順を解説する。
この記事のポイント
・OllamaのインストールスクリプトはARM64を自動検出し、Raspberry Pi 5でも通常のcurlコマンドで導入できる
・8GBモデルではGemma 3(2B・q4_K_M)やPhi-4(q4_K_M)など3GB以内に収まるモデルが実用的な速度で動作する
・モデルファイルはUSB SSDに保存しOLLAMA_MODELSで参照先を変更することでロード時間を大幅に改善できる
・vcgencmd measure_tempで温度を監視しアクティブクーラーを搭載するとサーマルスロットリングを防げる
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
Raspberry Pi 5でOllamaが動く理由と制約
Raspberry Pi 5のCPUはCortex-A76コアを4基搭載したARM64プロセッサだ。OllamaはLinux ARM64向けのバイナリを公式に提供しており、通常のインストールスクリプトが自動的に適切なバイナリを選択してインストールする。ただし、Raspberry Pi 5には独立したGPUがない。OllamaがGPUを使えない環境ではCPUのみで推論を行うため、NVIDIA GPUを搭載したx86サーバーと比べると推論速度は格段に遅くなる。目安として、Gemma 3(2B・q4_K_M)で3~8トークン/秒程度が現実的な速度だ。
チャット形式での利用やテキスト要約、コード補完の確認など「速度よりもコストを優先したい」用途には十分なパフォーマンスが出る。逆に、大量のドキュメントをバッチ処理するような用途には向かない。OllamaのパフォーマンスをGPU構成で最大化する方法はUbuntu ServerでローカルLLMを構築する方法で解説している。
OSとOllamaで合計1GB以上消費するため、4GBモデルでは選択肢が非常に限られる。8GBを推奨する理由はここにある。
必要なハードウェアとUbuntu Server 24.04 ARM64のセットアップ
最低限必要なハードウェア構成は以下のとおりだ。・Raspberry Pi 5(8GB RAMモデル推奨)
・公式アクティブクーラー(または信頼できるサードパーティ製ヒートシンク+ファン)
・USB 3.0接続のSSD(モデル保存用・64GB以上を推奨)
・microSDカード(OS起動用・32GB・A2クラス以上)
アクティブクーラーはコスト削減のために省略されることがあるが、LLM推論は持続的な高CPU負荷をかけるため、冷却なしでは85°Cを超えてサーマルスロットリングが発生する可能性が高い。省略しないことを強く勧める。
1. Raspberry Pi ImagerでのOSイメージ書き込み
Raspberry Pi Imager(公式ツール)でmicroSDカードにUbuntu Server 24.04 LTS(64-bit)を書き込む。書き込み前の「詳細設定」でSSHを有効化し、ユーザー名とパスワードを設定しておくと初回ログインがスムーズだ。2. 初回起動とシステム更新
$ ssh ubuntu@raspberrypi.local # またはIPアドレスでSSH接続 $ sudo apt update && sudo apt upgrade -y $ sudo apt install -y curl wget htop $ uname -m # 出力: aarch64 (ARM64が確認できること)
3. USB SSDのマウント設定
$ lsblk # USB SSDのデバイス名を確認(例: /dev/sda) $ sudo mkfs.ext4 /dev/sda1 $ sudo mkdir -p /mnt/ollama-models $ echo '/dev/sda1 /mnt/ollama-models ext4 defaults,nofail 0 2' | sudo tee -a /etc/fstab $ sudo mount -a $ df -h /mnt/ollama-models # 容量が表示されればマウント成功
OllamaのARM64版インストールと動作確認
1. インストールスクリプトの実行
$ curl -fsSL https://ollama.com/install.sh | sh # インストール完了後に確認 $ ollama --version $ systemctl status ollama | head -8
2. テストモデルのダウンロードと推論確認
$ ollama pull gemma3:2b-instruct-q4_K_M $ time ollama run gemma3:2b-instruct-q4_K_M "Linuxとは何ですか?50字で説明してください。" # 応答後に表示される tokens/sec を確認する
8GB RAMで動かせる量子化モデルの選び方
Raspberry Pi 5(8GB)でOllamaを安定して動かすには、ロード時にRAMに収まるサイズのモデルを選ぶ必要がある。OSとOllamaのオーバーヘッドを差し引くと、モデルに使えるRAMは実質6GB程度だ。実用的な選択肢は以下になる。
・`gemma3:2b-instruct-q8_0`(約2.3GB): 品質重視の小型モデル。最も安定して動く
・`gemma3:2b-instruct-q4_K_M`(約1.5GB): 速度と品質のバランスが取れており最初の選択肢として最適
・`phi4-mini:3.8b-instruct-q4_K_M`(約2.4GB): コード補完や英語タスクに強い
Mistral(7B)のq4_K_Mは約4.1GBで8GBモデルに収まるが、安定性を優先するなら3GB以内のモデルから始めることを勧める。
量子化タグの種類と選び方の詳細についてはローカルLLMのモデルを比較する方法も参照してほしい。
モデルをUSB SSDに保存するOLLAMA_MODELS設定
デフォルトでは `~/.ollama/models` にモデルが保存される。microSDカードへの書き込みは速度・耐久性の両面で制限があるため、USB SSDに変更する。1. systemd overrideでOLLAMA_MODELSを設定する
$ sudo systemctl edit ollama # エディタが開いたら以下を入力して保存: # [Service] # Environment="OLLAMA_MODELS=/mnt/ollama-models" # Environment="OLLAMA_HOST=127.0.0.1:11434" $ sudo systemctl daemon-reload $ sudo systemctl restart ollama
2. 既存モデルの移動と動作確認
$ sudo mv ~/.ollama/models/* /mnt/ollama-models/ $ ollama list # モデル一覧が表示されれば新パスでの認識成功 $ ollama run gemma3:2b-instruct-q4_K_M "テスト" # 応答が返れば新しいパスで正常動作
温度管理とOOMキラー対策
長時間の推論処理ではCPU温度が上昇し、85°Cを超えるとサーマルスロットリングが発生して推論速度が低下する。温度監視と対策を組み合わせることが安定稼働の鍵になる。1. CPU温度の監視
$ vcgencmd measure_temp # 出力例: temp=62.0'C $ watch -n 2 vcgencmd measure_temp # 2秒おきに温度を表示し、推論中の温度上昇を観察する
2. サーマルスロットリングの確認
$ vcgencmd get_throttled # 出力: throttled=0x0 → 正常(スロットリングなし) # 0x0以外が返った場合は過熱または電源電圧不足が発生している $ vcgencmd measure_volts core # 電源アダプターが5V/5A対応かどうかも確認する
3. OOMキラー対策のスワップ設定
8GB RAMでも大きめのモデルをロードする際にメモリ不足でプロセスが強制終了されるケースがある。スワップファイルを設定してバッファを設ける。$ sudo fallocate -l 2G /swapfile $ sudo chmod 600 /swapfile $ sudo mkswap /swapfile $ sudo swapon /swapfile $ echo '/swapfile swap swap defaults 0 0' | sudo tee -a /etc/fstab $ free -h # Swap: 2.0G の行が出ることを確認
Ollamaのsystemdサービスと自動起動確認
Ollamaはインストールスクリプトによってsystemdサービスとして自動設定され、OS起動時に自動的に起動する。1. Ollamaのサービス状態確認
$ systemctl is-enabled ollama # enabled が返ること(起動時に自動起動する設定) $ sudo journalctl -u ollama -n 20 --no-pager # エラーメッセージがないことを確認
よくあるトラブルと対処法
Raspberry Pi 5特有の問題と一般的なOllamaトラブルをまとめる。OOMキラーでOllamaが強制終了する場合
カーネルのOOMログは `sudo journalctl -k --since "1 hour ago" | grep -i "oom\|killed"` で確認できる。モデルサイズを下げるかスワップを追加する。
推論速度が1トークン/秒以下になった場合
`vcgencmd get_throttled` で `0x0` 以外の値が返ったらサーマルスロットリングが原因だ。推論を止めて温度が60°C台まで下がるのを待ってから再実行する。電源アダプターの容量不足(5V/3A以下)も速度低下の原因になるため確認する。
USB SSDがマウントされずOllamaが起動しない場合
`/etc/fstab` の `nofail` オプションの有無を確認する。このオプションがないと、SSD未接続時にOS起動がハングする。`grep ollama-models /etc/fstab` で確認し、`nofail` の文字列が含まれているかチェックする。
まとめ
Raspberry Pi 5でOllamaを安定稼働させるためのポイントを以下にまとめる。| 項目 | 推奨設定・コマンド | 理由 |
|---|---|---|
| 本体モデル選択 | 8GBモデル必須 | OS+Ollama+モデルで6GB超えることがある |
| 推奨モデル | gemma3:2b-instruct-q4_K_M | 1.5GBで収まり安定して動作する |
| モデル保存先 | OLLAMA_MODELS=/mnt/ollama-models(USB SSD) | microSDより3~5倍高速にロードできる |
| 温度監視 | vcgencmd measure_temp | 70°C以下が安定稼働の目安 |
| スロットリング確認 | vcgencmd get_throttled | 0x0以外はスロットリング発生を示す |
| OOM対策 | sudo fallocate -l 2G /swapfile | モデルロード中のメモリ不足バッファ |
| バインドアドレス制限 | OLLAMA_HOST=127.0.0.1:11434 | 外部からの直接アクセスを防ぐ |
ローカルLLMの環境構築を2日間のハンズオンで習得する
ハードウェア選定からOllamaのインストール、モデル設定まで体系的に学ぶには実機で手を動かすのが近道だ。実機GPU環境で手を動かしながら習得したい方向けに、「ローカルAIマスターセミナー」を開催しています。
少人数(最大8名)ZOOMハンズオン形式で実施しています。
・Ubuntu ServerでローカルLLMを構築する方法|Ollamaで機密データを外に出さず業務AIを動かす完全ガイド
・社内でChatGPTが使えないときの代替手段|機密データを守るローカルLLMという選択肢
・ローカルLLMのモデルを比較する方法|Llama3.3・Mistral・Gemma・Phi-4をUbuntuで使い分けるポイント
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
姓・名・メールの3つだけ/30秒/解除は3秒 / 詳細はこちら
- 前のページへ:OllamaとLangfuseでLLM可観測性を実装する方法|プロンプト・レスポンス・トークン使用量をローカル環境でトレースする手順
- この記事の属するカテゴリ:ローカルLLMへ戻る

無料メルマガで学習を続ける
Linuxの実践スキルをメールで毎週お届け。
登録は30秒、解除もいつでも可。
登録無料・いつでも解除できます