はじめに
最近、ローカルLLM(Large Language Model)に興味を持ち始め、家で眠っていたRaspberry Pi 5を引っ張り出して、自宅で動くAIチャット環境を構築してみました。
きっかけは、Appleの新しいMac mini M6の登場です。
「自宅に自分専用のローカルAIアシスタントがあったら面白そう!」と思い、さっそくApple Storeへ。
ところが、ある程度のスペックを求めると、Mac miniのお値段はなかなかのもの……。
さすがに気軽に購入できる金額ではなかったので、「まずは手元にある機材で、どこまでできるか試してみよう!」 と思ったのが今回の検証の始まりです。
目指したのは、クラウドのAIサービスに依存せず、自宅のローカル環境だけで動くAIアシスタント。日常的なチャットはもちろん、Linux、Docker、Kubernetesなどの技術的な質問にも答えてくれる環境を作ることです。
実際に構築を始めてみると、Ubuntuの起動トラブルからネットワーク設定、Docker環境の構築、LLMの実行まで、思った以上にいろいろな課題に遭遇しました。
最終的には、WebブラウザからQwen3を利用できるところまでたどり着きましたが、Raspberry Pi 5のCPUだけでLLMを動かすには、やはり性能面で厳しい部分もありました。
「動く」と「快適に使える」は、やっぱり別の話。
今回は、そんな試行錯誤を含めて、ローカルAI環境の構築手順と実際に動かしてみた結果をまとめてみます。
1. 検証環境
構成環境
- ハードウェア: Raspberry Pi 5
- メモリ: 8GB
- ストレージ: microSD 128GB
- OS: Ubuntu Server 24.04.5 LTS(64-bit)
- コンテナ: Docker
- LLM実行環境: Ollama
- AIモデル: Qwen3 1.7B
- Web UI: Open WebUI
- クライアント: MacBook Pro
- 接続方法: SSH / HTTP
構成イメージ
MacBook Pro
|
| HTTP :8080
|
v
Raspberry Pi 5 (192.168.0.4)
|
+-- Ubuntu Server 24.04 LTS
|
+-- Docker
| |
| +-- Open WebUI :8080
|
+-- Ollama :11434
|
+-- Qwen3 1.7B
|
+-- CPU Inference
各コンポーネントの役割
- Raspberry Pi 5: ローカルAIを動かす物理サーバ。小型・低消費電力で常時稼働可能
- Ubuntu Server: Raspberry Pi上で動作するOS。GUIを省き、限られたリソースをAI処理に活用するために採用
- Docker: Open WebUIをコンテナとして実行し、アプリケーションの導入・管理を簡単にする
- Open WebUI: ブラウザからAIとチャットするためのWebインターフェース
- Ollama: AIモデルのダウンロード・管理・推論を担当し、HTTP APIを提供する
- Qwen3 1.7B: Ollama上で実行する小規模LLM。日本語を含む多言語に対応
なぜこの構成にしたのか?
今回のポイントは、Web UIとLLMの推論処理を分離していることです。
Open WebUIはDockerコンテナ内で動作させ、OllamaはUbuntu Server上に直接インストールしています。
Open WebUIはユーザーからの質問を受け取り、OllamaのAPI(ポート11434)にリクエストを送信します。OllamaはQwen3 1.7Bを使ってCPUで推論し、その結果をOpen WebUIに返します。
この構成にした理由は主に以下の3つです。
- 管理しやすい: Open WebUIをDockerで管理することで、更新や再作成が容易になる。
- シンプル: OllamaをホストOS上で直接動かすことで、コンテナ内のデバイス設定などを考慮せずにCPU推論を検証できる。
- 拡張しやすい: 将来的にOllamaだけをGPU搭載の別マシンに移し、Raspberry PiをWeb UIサーバとして利用することも可能。
つまり、今回はRaspberry Pi 5の1台でWeb UIとLLM推論の両方を動かしていますが、将来的には役割を別々のマシンに分散できる構成にしています。
なぜインターネット接続なしでAIを動かせるのか?
通常、ChatGPTなどのクラウドAIは、インターネット経由で外部のAIサーバにリクエストを送信し、回答を受け取ります。
一方、今回の構成では、AIモデル(Qwen3 1.7B)自体をRaspberry Piのローカルストレージにダウンロードし、Ollamaを使ってローカルCPUで推論処理を実行しています。
処理の流れは以下のとおりです。
MacBook(ブラウザ)
|
| ① 質問を送信(LAN内)
v
Open WebUI(Raspberry Pi)
|
| ② Ollama APIにリクエスト
v
Ollama + Qwen3 1.7B
|
| ③ Raspberry PiのCPUで推論
v
Open WebUI
|
| ④ 回答をブラウザに返す
v
MacBook
つまり、質問の送信からAIによる回答生成まで、すべてローカルネットワーク内で完結するため、インターネットに接続していなくてもAIチャットを利用できます。
ただし、初回のソフトウェアインストールやAIモデルのダウンロードにはインターネット接続が必要です。また、Web検索などの外部サービスを利用する機能には別途インターネット接続が必要になります。
なお、インターネット接続がなくても、MacBookとRaspberry Piが同じLAN内で通信できることが前提です。
2. Ubuntu Serverのインストール
最初にUbuntuを起動しようとしたところ、Raspberry Pi 5のブート画面で停止する問題が発生しました。

microSDカードをMacBookに接続して確認したところ、ブートパーティションにはRaspberry Pi 4以前向けのDevice Treeファイルが存在していましたが、Raspberry Pi 5向けのファイルが見当たりませんでした。
そのため、OSイメージとRaspberry Pi 5の互換性に問題がある可能性を考え、OSを再インストールすることにしました。
Raspberry Pi Imagerを使用し、以下のOSを選択しました。
Ubuntu Server 24.04.5 LTS(64-bit)
カスタム設定では以下を指定しました。
- Hostname:rpi-ai
- Username:totorosuika
- Timezone:Asia/Tokyo
- SSH:有効
- Wi-Fi:必要に応じて後から設定
OSの書き込み完了後、microSDカードをRaspberry Piに挿入して起動しました。
3. ネットワーク設定とSSH接続
Ubuntu Serverでは、Netplanを使用してネットワーク設定を管理できます。
設定ファイルの一例:
sudo nano /etc/netplan/50-cloud-init.yaml
Wi-Fi設定例:
network:
version: 2
wifis:
wlan0:
dhcp4: true
access-points:
"YOUR_SSID":
password: "YOUR_PASSWORD"
※ 実際のインターフェース名は環境によって異なります。また、既存のNetplan設定を上書きする場合は、他の設定が失われないよう注意が必要です。
設定を適用します。
sudo netplan try
接続確認:
ip -4 addr
ping -c 4 8.8.8.8
今回はRaspberry Piに以下のIPアドレス: 192.168.0.4 が割り当てられました。
MacBookからSSH接続します。
ssh totorosuika@192.168.0.4
これでヘッドレス環境での管理が可能になりました。
4. Ollamaのインストール
Ollamaは、ローカル環境でLLMを実行するためのツールです。Linux ARM64にも対応しているため、Raspberry Pi 5でも利用できます。
インストール:
curl -fsSL https://ollama.com/install.sh | sh
インストール完了後、バージョンを確認しました。
ollama --version

サービスの稼働確認:
systemctl status ollama

Ollama APIはデフォルトで以下のアドレスを使用します。
http://127.0.0.1:11434
インストール時には次の警告が表示されました。
WARNING: No NVIDIA/AMD GPU detected.
Ollama will run in CPU-only mode.

つまり、今回のRaspberry Pi 5では、今回の構成の場合、CPUによる推論が行われます。
5. Qwen3 1.7Bを導入
今回選んだモデルは、AlibabaのQwenシリーズに属するQwen3 1.7Bです。
比較的小規模で、多言語にも対応しているため、Raspberry Piでの検証に適していると考えました。
モデルをダウンロードします。
ollama pull qwen3:1.7b
モデル一覧:
ollama list

※ テストのためqwen3:0.6bも入れています。
CLIから実行:
ollama run qwen3:1.7b

これでターミナル上からローカルAIと対話できるようになります。
6. DockerとOpen WebUIの構築
CLIだけでは少し使いにくいため、ChatGPTのようなブラウザベースのUIを導入しました。
今回利用したのはOpen WebUIです。
Dockerの稼働確認:
systemctl is-active docker
Open WebUIコンテナを起動します。
sudo docker run -d \
--name open-webui \
--restart unless-stopped \
--network host \
-e OLLAMA_BASE_URL=http://127.0.0.1:11434 \
-e WEBUI_SECRET_KEY="$(openssl rand -hex 32)" \
-v open-webui:/app/backend/data \
ghcr.io/open-webui/open-webui:main-slim
今回は--network hostを使用しました。
これにより、コンテナからホストのOllama APIに127.0.0.1:11434でアクセスできます。
コンテナの状態を確認します。
sudo docker ps
無事にOpen WebUIが起動しました。
7. 実際にQwen3を動かしてみた
SafariからUIへhttp://192.168.0.4:8080アクセスし、Open WebUI上でQwen3 1.7Bが認識され、チャット画面から利用できるようになりました。(最初はAdminユーザで登録する必要があります)
日本語で以下の質問を入力してみました。
「株式の売買に慣れている前提で、オプション取引を簡単に説明してください。」

しかし、質問を送信しても、なかなか回答が返ってきません。待つこと、なんと29秒……!
普段は当たり前のように使っているクラウドAIですが、改めてその応答速度の速さを実感しました(笑)。
htopを使用してリソース使用状況を確認しました。
htop
確認した結果:
- CPU Core 0 100%
- CPU Core 1 100%
- CPU Core 2 100%
- CPU Core 3 100%
- メモリ 約2.30GB / 7.75GB
- Swap 0KB
Ollamaのllama-serverプロセスも動作していました。
メモリには余裕があるものの、CPUはフル稼働している状態でした。

ラズパイちゃん、ここまでよく頑張ってくれました!💪
Qwen3にはThinkingモードがあるため、推論処理が長くなっている可能性を考え、Thinkingを無効にして再度試しました。
しかし、体感速度は依然として遅く、日常的なAIチャット用途としては厳しいと感じました。
なお、今回の検証ではtokens/secの定量測定までは実施していません。
8. 今回分かったこと
今回の検証で、以下のことが分かりました。
① Raspberry Pi 5でもローカルLLM環境を構築できる
Ubuntu Server、Docker、Ollama、Open WebUIを組み合わせることで、ローカルネットワーク内で利用できるAIチャット環境を構築できました。
② 8GBメモリでも小規模LLMは動作する
Qwen3 1.7Bをロードして実行でき、今回観測した範囲ではメモリ不足は発生しませんでした。
③ 最大の課題はCPU性能
Raspberry Pi 5のCPUだけでは、LLMの生成速度が遅く、特にThinkingを伴う処理では待ち時間が長くなります。
④ Open WebUIとOllamaを分離できる
今回の構成では、Open WebUIとOllamaを別プロセスで動かしています。
そのため、将来的にLLMの推論処理だけを別の高性能マシンに移すことも可能です。
9. 今後試してみたいこと
今回の検証を通じて、Raspberry Pi 5でもローカルLLMを動かせることが分かりましたが、CPUによる推論には性能面で限界があることも実感しました。
そこで次のステップとして、中古のMac miniを購入するか、メルカリや秋葉原で中古パーツを集めて自作AIサーバを構築してみたいと考えています。
特に、以下のようなことに挑戦してみたいです。
-
中古Mac miniでのLLM実行: Apple SiliconのGPUとユニファイドメモリを活用し、より大きなモデルを動かしてみる。
-
中古パーツによる自作AIサーバ: CPU、GPU、メモリなどを自分で選定し、コストを抑えながらローカルAI専用サーバを構築する。
-
LLMの性能比較: 異なるモデルの回答精度、生成速度(tokens/sec)、メモリ使用量を比較する。
-
ローカルAIの実用化: 日本語・英語など多言語チャットに加え、LinuxやKubernetesの技術的な質問、資料・コード生成などに活用する。
次回は、限られた予算でどこまで高性能なローカルAI環境を構築できるのか をテーマに、ハードウェアの選定から挑戦してみたいと思います。
まとめ
今回、Raspberry Pi 5(8GB)を使って、Ubuntu Server + Docker + Ollama + Qwen3 + Open WebUIによるローカルAI環境を構築しました。
OSの起動トラブルなどもありましたが、最終的にブラウザからローカルLLMにアクセスできる環境を構築できました。
一方で、実際に使ってみると応答速度が遅く、「LLMを動かせること」と「快適に使えること」は別問題だと実感しました。
今回の検証は、ローカルLLMの仕組みだけでなく、Linux、Docker、ネットワーク、API連携について理解を深める良い機会にもなりました。
Raspberry Pi 5は本格的なAI推論には性能面で制約がありますが、ローカルAIの仕組みを学び、実際に手を動かして検証するには非常に面白い環境だと思います。

