0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Raspberry Pi 5(8GB)でローカルAI環境を構築してみた

0
Last updated at Posted at 2026-11-03

はじめに

最近、ローカル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のブート画面で停止する問題が発生しました。
IMG_3728.jpg

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
Version.png

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

Ollama APIはデフォルトで以下のアドレスを使用します。
http://127.0.0.1:11434

インストール時には次の警告が表示されました。
WARNING: No NVIDIA/AMD GPU detected.
Ollama will run in CPU-only mode.
警告.png

つまり、今回のRaspberry Pi 5では、今回の構成の場合、CPUによる推論が行われます。

5. Qwen3 1.7Bを導入

今回選んだモデルは、AlibabaのQwenシリーズに属するQwen3 1.7Bです。
比較的小規模で、多言語にも対応しているため、Raspberry Piでの検証に適していると考えました。

モデルをダウンロードします。
ollama pull qwen3:1.7b

モデル一覧:
ollama list
List.png
※ テストのためqwen3:0.6bも入れています。

CLIから実行:
ollama run qwen3:1.7b
会話.png

これでターミナル上からローカル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

結果:
sudo docker ps.png

無事にOpen WebUIが起動しました。

7. 実際にQwen3を動かしてみた

SafariからUIへhttp://192.168.0.4:8080アクセスし、Open WebUI上でQwen3 1.7Bが認識され、チャット画面から利用できるようになりました。(最初はAdminユーザで登録する必要があります)

日本語で以下の質問を入力してみました。
「株式の売買に慣れている前提で、オプション取引を簡単に説明してください。」
UI.png

しかし、質問を送信しても、なかなか回答が返ってきません。待つこと、なんと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

htop.jpg

Ollamaのllama-serverプロセスも動作していました。

メモリには余裕があるものの、CPUはフル稼働している状態でした。
 Pi.jpeg
ラズパイちゃん、ここまでよく頑張ってくれました!💪

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の仕組みを学び、実際に手を動かして検証するには非常に面白い環境だと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?