RasPi5 8GBにGemma4をOllamaで動かした記録
by yasuna
3 min read
この記事はAIエージェントと一緒に執筆しています
こんにちは!yasunaです!
Raspberry Pi 5 8GBにGemma4をOllamaで入れて、完全ローカルでLLMを動かそうとした記録です。
構成:
- Gemma4(GoogleのEdge向けモデル)をOllamaで動かす
- Mac(Warp)からSSHして操作する
結果から言うと:動いたけど遅い、がいまの状況です。
環境
- Raspberry Pi 5 8GB
- microSD 32GB
- Mac から Warp でSSH接続
- OS:Raspberry Pi OS Lite 64bit(Bookworm)
まずOllamaを入れる
インストールは公式スクリプト一発:
curl -fsSL https://ollama.com/install.sh | sh
次にGemma4を pull する。最初は e4b(Effective 4B)を入れた。
ollama pull gemma4:e4b
ダウンロード自体は通った。
e4bはRAMが足りなかった
起動してみたら即エラー:
Error: 500 Internal Server Error: model requires more system memory (9.9 GiB) than is available (9.2 GiB)
Gemma4のe4bはOllamaで約9.6GBのRAMが必要で、Pi5 8GBだとOS・Ollama本体・KV cacheで9.2GiBしか使えない状態。厳しくチェックされて弾かれた。
free -h で確認したときのRAMはこんな感じ:
total used free shared buff/cache available
Mem: 7.9Gi 581Mi 366Mi 37Mi 7.1Gi 7.3Gi
Swap: 2.0Gi 0B 2.0Gi
SDカードの残量も:
Filesystem Size Used Avail Use% Mounted on
/dev/mmcblk0p2 28G 20G 7.6G 72% /
e4bのダウンロードでもう20GB消費してた。残り7.6GB。
e2bに切り替えた
e4bを削除してe2b(Effective 2B、約7.2GB)を入れ直し:
ollama rm gemma4:e4b
ollama pull gemma4:e2b
ollama run gemma4:e2b
今度は起動した。
ただし watch -n 2 free -h でモデルがthinking中(推論中)を見ると:
Mem: 7.9Gi 7.3Gi 300Mi 20Mi 399Mi 606Mi
Swap: 2.0Gi 1.4Gi 659Mi
Swapが1.4GiBも使われてavailableが600Mi台まで落ちてた。
コンテキストを小さくしたら倍くらい速くなった
OLLAMA_NUM_CTX=2048 ollama run gemma4:e2b
これだけで体感2倍くらい速くなった。
デフォルトのコンテキストサイズ(128K)で起動するとKV cacheが大きくてRAMを圧迫するけど、2048に絞るとそのぶん軽くなる。
さらに1024にするともう少し速くなる:
OLLAMA_NUM_CTX=1024 ollama run gemma4:e2b
thinkingが入ると遅い
コンテキストを絞って速くなったとはいえ、Gemma4がthinking(内部で推論する)モードに入ると待ち時間が長くなる。普段遣いにはちょっと遅い感覚。
/set nothink を試したが、Gemma4シリーズはDeepSeekやQwenと違ってthinkingの制御があまり効かない設計になっているらしく、変化が薄かった。
システムプロンプトで「思考は短く」と指示するのが現実的な対処:
あなたはRaspberry Pi 5で動く超軽量エージェントです。
思考はできるだけ短く1〜2ステップ以内にまとめて。
長く考えないで、すぐに結論と返事を出して。
返事は日本語で簡潔に。
Modelfileで設定しようとしたら日本語が文字化けした
/set system がGemma4に効きにくかったので、Modelfileでカスタムモデルを作ろうとした:
FROM gemma4:e2b
SYSTEM """
あなたはRaspberry Pi 5で動く超軽量エージェントです。
...
"""
PARAMETER num_ctx 1024
しかし nano でコピペすると日本語が全部 ^a^b ^a ^a^= みたいな記号に化けた。
原因はロケール設定。Pi OS Lite には最初から日本語ロケールが入っていない:
export LANG=ja_JP.UTF-8
# → bash: warning: setlocale: LC_ALL: cannot change locale (ja_JP.UTF-8): No such file or directory
sudo dpkg-reconfigure locales → /etc/locale.gen を編集 → sudo locale-gen の手順で ja_JP.UTF-8 を生成して解決した。
locale
# LANG=ja_JP.UTF-8
# LC_ALL=ja_JP.UTF-8
# ... 正常に表示
今日わかったこと
- Pi5 8GBでGemma4は e2b が現実的(e4bはRAM不足で起動すら無理)
OLLAMA_NUM_CTX=1024or2048を指定するだけで体感速度が大きく変わる- thinkingはプロンプトで抑えられるが根本解決ではない
- Pi OS LiteにはデフォルトでUTF-8日本語ロケールが入っていないので先に設定する
32GB SDカード・Pi5 8GBという制約の中でGemma4を動かすのはギリギリ可能。でも「普段遣いで待ちなし」にするにはモデルの選択がシビアで、phi3:miniやgemma2:2bのほうが速い可能性がある。次はそのあたりを試したい。