Raspberry Pi 5上で動作するLLM:ローカルAI 組み込み型
Raspberry PiでLLMを動かすという話は、2年前には冗談のように聞こえました。しかし、8 GBのPi 5、2.4 GHzのクアッドコアCortex-A76を搭載したSoC BCM2712、そして2026年に相次いで登場した2B〜4Bの小型モデルによって、実用的な使い方になりました。このガイドでは、Raspberry PiにOllamaをインストールし、Qwen 3.5 2B、Granite 4.2 3B、Qwen 3.5 4Bの毎秒トークン数を測定し、組み込みLLMが役立つ用途を紹介します。
#なぜRaspberry PiでLLMを使うのか?
Raspberry Pi 5はRTX 4090の代わりにはなりません。目的は純粋な処理速度ではなく、組み込み用途です。80ユーロの基板で、消費電力は5〜12W、クレジットカードほどの大きさのケースに収まり、騒音を出さずに24時間稼働します。ローカル音声アシスタント、スマート気象観測ステーション、オフラインのキオスク、移動ロボットといったエッジ用途には十分で、ミニPCよりも圧倒的に安価です。
もう一つの利点は、完全なプライバシーです。データはローカルネットワークの外に送信されません。クラウド、テレメトリ、サブスクリプションなしで、子供部屋の家庭用アシスタントを構築できます。
#ハードウェア要件
お使いのマシンで、プライベートかつ無料のChatGPTを1時間で構築 — LM Studio、Ollama、Open WebUI、ご自身のドキュメント、クラウド不要。
- 永久に利用できるオンラインスペース
- PDF + ファイル
- 生涯アップデート
- Raspberry Pi 5(8GB必須)
- 4 GB版ではQwen 3.5 2Bを動かせますが、それより大きいモデルには対応しきれません。快適に使うには8 GB版が最低ラインです。16 GB版(2024年末発売)なら、Qwen 3.5 4Bをスワップなしで動かせます。
- A2 microSDカードまたはNVMe SSD
- A1のSDカードでは、モデルの初回読み込みが大幅に遅くなります。理想的なのは、公式M.2 HAT経由でNVMe SSDを使うことです。帯域幅は500 MB/s以上で、Qwen 3.5 4Bの読み込みはSDカードでの30秒に対して4秒です。
- 公式27W電源
- Pi 5は推論実行中に9〜12 Wを消費します。スロットリングを避けるには、公式のUSB-C電源(5 V/5 A)が必須です。汎用の15 W電源では、基板への供給電圧が不足します。
- アクティブ冷却
- 必須です。SoCは80 °Cに達するとスロットリングが始まります。公式ファン(5 €)またはArgon ONE V3ケースで十分です。ヒートシンクがないと、推論開始から2分後には処理速度が30~40%低下します。
- Pi OS 64ビット(Bookworm)
- Raspberry Pi OS 64ビット版はDebian 12に基づいています。Ollama は32ビットをサポートしていません。uname -m で確認してください → aarch64 が返って来ることを確認してください。
#1. Pi 5に Ollama をインストール
Ollamaは2024年からlinux/arm64を正式にサポートしています。汎用インストールスクリプトはPi OS上でそのまま動作し、手動でのコンパイルは不要です。
スクリプトは ARM64 バイナリ(約150MB)をダウンロードし、systemd サービスをインストールし、11434 ポートでデーモンを起動します。1〜2分かかります。
#2. Raspberry Pi向けおすすめモデル
8 GBモデルのPi 5では、実際に使えるRAMは約6.5 GBです(残りはシステムとそのキャッシュが使用します)。Q4量子化後のサイズが4〜5 GBを超えるLLMは使い物になりません。microSDへのスワップが発生し、速度が0.1 tok/sまで落ちます。
2026年8月のPi 5で最も良い結果を出す3つのモデル:
- Qwen 3.5 2B(アリババ、Apache 2.0)
- RAM使用量に対する性能が最も優れています。Q4_K_M で 1.9 GB、マルチモーダル対応、256k のコンテキストに対応し、短いチャットやフランス語でのやり取りに優れています。シンプルなアシスタントや音声コマンドに最適です。
- Granite 4.2 3B (IBM, Apache 2.0)
- リソース消費が非常に少なく、トークン効率にも優れています。Q4_K_Mで2.2 GB。推論の質は一段上で、RAMを使い切ることなく24時間稼働するのに適しています。多言語でも優れた性能を発揮します。
- Qwen 3.5 4B (アリババ、Apache 2.0)
- 新しい「デフォルトの小型モデル」であり、3 つの中で最も高性能です。Q4_K_M で 3.4 GB。Pi 5 8 GB の RAM に収まりますが、余裕はほとんどありません。重いグラフィカルインターフェースを並行して実行しないでください。
#3. ベンチマーク:トークン/秒(おおよその目安)
Raspberry Pi 5 8GBで測定したおおよその値です。公式アクティブクーラー、M.2 HAT経由のNVMe SSD、Pi OS Bookworm 64ビット版、比較的新しいOllama、Q4_K_M量子化、200トークンの生成プロンプトを使用しています。数値はOllamaのバージョンや冷却状況によって変わるため、絶対的な値ではなく目安として捉えてください。
- Qwen 3.5 2B Q4_K_M
- ≈ 4.4トークン/秒生成 · 6.6トークン/秒プロンプト評価 · 1.9GB RAM · 9.6W
- Granite 4.2 3B Q4_K_M
- ≈ 3.4 tokens/sec 生成 · 5.1 tok/s プロンプト評価 · 2.2 GB RAM · 10.2 W
- Qwen 3.5 4B Q4_K_M
- ≈ 2.3トークン/秒生成 · 3.6トークン/秒プロンプト評価 · 3.4GB RAM · 11.2W
- Gemma 4 E2B(マルチモーダルの基準モデル)
- ≈ 3.9 tokens/sec · 4.3 GB RAM · 10.4 W。MoE は速いものの、RAM を多く消費します。
- Granite 4.2 3B Q3_K_S(省メモリ版)
- 約3.6トークン/秒 · RAM 1.7 GB · 9.9 W。この中で最も軽量で、RAM容量が限られている場合(4 GBのPi)に最適です。
--verboseフラグは、生成終了時にeval rate(トークン/秒)、prompt eval rate、total durationを表示します。これが比較に使う公式の測定値です。
#4. 適切なオフライン用途の例
推論速度が2〜5トークン/秒のPiは、リアルタイムチャットを想定していません。真価を発揮するのは、遅延が重要な問題にならない場合や、速度よりも機密性や自立して動作できることが重視される場合です。
- ローカル音声アシスタント
- Pi 5 + USBマイク + Whisper.cpp tiny + Qwen 3.5 2B + Piper TTS。質問 → 文字起こし → 回答 → 合成音声まで、すべてクラウドなしで8〜12秒。オフラインのホームオートメーション、子ども向けキオスク、教育用ロボット。
- メールやニュースの一括要約
- 毎時 RSS を pull し、Qwen 3.5 4B で要約して Telegram/Matrix に送信する Cron ジョブ。非同期処理の場合、推論の遅延は目立ちません。
- ログやチケットの分類
- ネットワークのエッジに置いたPiが、受信したログに「重大なエラー」「スパム」「正常」のタグを付けてから中央サーバーへ送信します。WANの帯域幅を節約できます。
- 組み込み型/持ち運び可能なデモ
- 顧客向けのプレゼン、学校でのワークショップ、カンファレンス:ポケットにPi 5、USB-Cバッテリーで、100%単体で完結するローカルAIのデモ。
- 他のLLM向けのガードレール
- プロンプトをフィルタリングしたり言い換えたりしてからクラウドのLLMに送信する、ローカルで動作する小型モデルです。エッジ側で機密性の高いデータを匿名化するのに役立ちます。
#5. Pi 用の特別な最適化
#コンテキストウィンドウを縮小
Ollamaはデフォルトでnum_ctx=2048を使用します。Piでは、これでも大きな値です。コンテキストの各トークンがRAMを消費し、事前評価を遅くするためです。短いやり取りをするチャットアシスタントなら、1024に下げてください。
#スレッドの数を制限する
Ollamaはデフォルトですべてのコアを使用します。Pi 5(4コア)では、速度だけを重視するなら最適ですが、SoCに最大限の負荷がかかるため、1〜2分後にはサーマルスロットリングが発生します。長時間使用する場合は、使用するコアを3つに制限すると、安定した処理速度をより長く維持できます。
#microSDよりNVMeを優先する
SDカードからモデルを初めて読み込む際には、数GBのデータを順次読み込みます。SD A1 → Phi-3.5 Miniで30〜40秒。NVMe → 3〜5秒。RAMに読み込まれた後は、推論に違いはありません。
#RAMが不足する場合は一段階下げる
グラフィカルインターフェースが動作しているPi 5の8 GB構成では、Q4_K_MのQwen 3.5 4Bを使うとスワップが発生し始める可能性があります。選択肢は2つです。Granite 4.2 3B(2.2 GB)かQwen 3.5 2B(1.9 GB)に小型化すれば、品質を大きく落とさずに1~1.5 GBのRAMを空けられます。
#トラブルシューティング
- インストール後に「ollama: command not found」と表示される
- systemdスクリプトの実行に失敗しました(よくある原因は、Pi OSが古すぎることです)。sudo systemctl status ollamaで状態を確認してください。「exec format error」が表示される場合は、32ビット環境です。Pi OSの64ビット版を再インストールしてください。
- モデルは読み込みされますが、0.3 tok/sです
- スワップが発生しています。free -hを確認してください。推論中に'available'列が500 MB未満なら、モデルが大きすぎます。Granite 4.2 3BまたはQwen 3.5 2Bにサイズを下げるか、Q3に切り替えてください。
- 1分経過後、熱制御によるスロットリング
- SoCの温度が80 °Cを超えました。推論中にvcgencmd measure_tempで温度を確認してください。対策:公式ファンまたはArgon ONE V3。アクティブ冷却がなければ、Pi 5で推論を連続して実行することはできません。
- 生成の途中でメモリ不足になる
- LinuxのOOM killerがOllamaを強制終了しました。num_ctxを1024に下げる、ブラウザを閉じる、またはより小さなモデルに切り替えることで対処してください。メモリ4GBのPiでは、2026年のカタログで最も軽量なQwen 3.5 2Bを使い続けてください。
- システム起動時にOllamaサービスが起動しない
- 自動起動を有効にするには、sudo systemctl enable ollamaを実行します。その後、systemctl is-enabled ollamaで確認してください。
#さらに詳しく
Pi 5 上で Ollama が動くようになったら、次に掘り下げる方向として、以下の3つが挙げられます。
- さらに活用するために量子化を理解する
- 量子化の選び方ガイドでは、Q3、Q4、Q5、Q8を詳しく比較しています。RAMの100MBさえ重要になるPiでは、量子化の選択が特に重要です。
- Pythonアプリへの統合
- Python に Ollama を REST API で統合するガイドでは、Flask または FastAPI を使用したスクリプトで Pi 5 を制御する方法を示しています — これはエッジアシスタントの基本です。
- オフラインでのワークフロー自動化
- n8nとOllamaで自動化するガイドは、Piでもそのまま適用できます(n8nはARM64でネイティブに動作します)。自律型のAIホームオートメーションハブに最適です。
ご意見、誤りのご指摘、補足はありますか?ぜひお知らせください。皆さんにとってより良いガイドにするために役立ちます。