
ラズパイ上で Qwen3-4B を動かす!Raspberry Pi 5 で AI アクセラレーター LLM-8850 を試してみた
はじめに
ローカル LLM が流行っていますね。
Raspberry Pi 界隈でもいくつかの方法や関連デバイスなどが販売されるようになってきました。私もやっと AI アクセラレーターを入手できたので、その導入と簡単な動作確認までを紹介したいと思います。
利用したデバイス
今回は以下の構成で利用しました。
- LLM-8850 Card (AI アクセラレータ)
- Raspberry Pi 5(8GB)
- USB メモリ (128 GB)
- Ubuntu 24.04 LTS
LLM-8850 Card
今回利用したのは、M5Stack 社より販売されている 「LLM-8850 Card」 という AI アクセラレーターです。
何社かの販売サイトでは 2026 年 3 月 2 日現在で品切れ中となっています。
- スイッチサイエンス
- M5Stack
このモジュールは「M.2 M-KEY 2242」形式でデバイスに接続して使うため、Raspberry Pi であれば「M.2 HAT+ 拡張ボード」経由で取り付け可能です。電源は ラズパイ本体から給電する仕組みになっています。
また、Raspberry Pi の他のデバイスでも利用可能です。
ラズパイのようなシングルコンピューターボード(SBC)である RK3588 や x86 PC などでも利用できますが、筆者は Raspberry Pi でしか試せていません。
現在は、このカードモジュールの他に PCIe 接続のための変換基板とセットになったキットも販売されています。
(少々お値段が高いですが…)
余談ですが、同じ SoC を使った PC タイプのデバイスも販売されています。形状の通り 「AI Pyramid(AI ピラミッド)」 という名前です。
このデバイスは Rasberry Pi などのホストデバイスは不要です。デバイス上で Linux が稼働するためすぐにプロトタイピング可能です。
LLM モデルは、LLM-8850 専用に変換したモデル AxModel が利用できます。
公式ドキュメントで下記が紹介されていますが、Hugging Face のリポジトリではさらに多くのモデルが公開されています。

Raspberry Pi 5
今回は以前から持っていた Raspberry Pi 5(メモリ8GB)を利用しました。
LLM-8850 は 8GB のメモリを内蔵しており、このメモリ上で LLM を展開して利用するため推論処理自体にはホスト側(今回は Raspberry Pi)の搭載メモリ量はあまり関係がなさそうです。
(機会があれば他のメモリサイズの Raspberry Pi でも比較してみたいと思います)
最近は Raspberry Pi の価格も急激に上昇しており、8GB 版の価格も安くても 3万円程度になっています…
(ラズパイを始めとして、RAM 16GB クラスの SBC 自体の値段が高騰しているので、エッジ AI への期待値は事前に確認しておくといいかもしれません)
ストレージは、microSDでは I/O の処理がボトルネックになりそうな気がしたので、最初から USB メモリでブートするようにしました。
最近 Raspberry Pi 公式からも USB メモリが出ましたが、今回は利用せず一般的な USB メモリを購入しました。(下記)
OS は 検証しやすいように Ubuntu 24.04 LTS を Desktop 環境で利用しています。
OS の指定と USB メモリへの書き込みは Raspberry Pi Imager を使いました。
ハードウェアの取り付け
ハードウェアの取り付け自体は簡単です。M.2 HAT+ を Raspberry Pi に取り付け、HAT に LLM-8850 カードを差し込むだけです。
電源
公式ドキュメント には下記の通り推奨される仕様があるので、別途用意します。
DC 5V@3A の電源供給能力を持つスイッチング電源(PD プロトコル非対応)のアダプターを推奨
USBブート
上記の推奨通りの電源アダプターを利用すると、Raspberry Pi 起動時に次のメッセージが表示されて起動が途中で止まってしまいました。
***
USB boot requires high current (5 volt 5 amp) power supply.
To disable this check set usb_max_current_enable=1 in config.txt or
press the power button to temporarily enable usb_max_current_enable
and continue booting.
See https://rptl.io/rpi5-power-supply-info for more information
***
電源ボタンを 1回押すと処理が進みますが、メッセージにある通り/boot/firmware/config.txtファイルにusb_max_current_enable=1の行を追加すれば、電源ボタンを押さずに起動します。
今回は周辺デバイスを利用することはないので、このまま進めますが、Rasberry Pi から給電してセンサーなども使う場合は、先程紹介した基板とセットになったキットを使うのが良いかと思います。
Raspberry Pi 側の環境構築
ハードウェアの準備が完了したので、OS 側の設定を行います。
$ sudo apt update
公式ドキュメントでは下記の通り apt full-upgrade も記載されていたのですが、今回は動作検証が目的だったのと、最新環境で確認されていない不具合などが発生する可能性もありそうだったので、apt update だけを実行しました。
$ sudo apt update && sudo apt full-upgrade
次に EEPROM のバージョンを確認します。
2023 年 12 月 6 日 より後であれば問題ありません。
$ sudo rpi-eeprom-update
[sudo] password for cm-test01:
BOOTLOADER: up to date
CURRENT: Mon Sep 23 13:02:56 UTC 2024 (1727096576)
LATEST: Mon Sep 23 13:02:56 UTC 2024 (1727096576)
RELEASE: default (/lib/firmware/raspberrypi/bootloader-2712/default)
Use raspi-config to change the release.
lspci コマンドでアクセラレーターカードが正しく認識されているか確認します。
Multimedia video controller: Axera Semiconductor Co., Ltd Device 0650 (rev 01) が LLM-8850 アクセラレータカードです。
$ lspci
0000:00:00.0 PCI bridge: Broadcom Inc. and subsidiaries BCM2712 PCIe Bridge (rev 21)
0000:01:00.0 Multimedia video controller: Axera Semiconductor Co., Ltd Device 0650 (rev 01)
0001:00:00.0 PCI bridge: Broadcom Inc. and subsidiaries BCM2712 PCIe Bridge (rev 21)
0001:01:00.0 Ethernet controller: Raspberry Pi Ltd RP1 PCIe 2.0 South Bridge
LLM-8850 Card ドライバインストール
次に専用のドライバをインストールします。
LLM-8850 カードを利用するには、別途ビルドツールが必要なのでgcc、make、patch、linux-header-$(uname -r) パッケージをインストールしておきます。
先に gcc と make インストールします。
$ sudo apt install gcc make
linux-headers-$(uname -r) をインストールします。
$ sudo apt install linux-headers-$(uname -r)
ドライバの aarch64 deb パッケージを取得するためにソースリストを更新します。
sudo wget -qO /etc/apt/keyrings/StackFlow.gpg https://repo.llm.m5stack.com/m5stack-apt-repo/key/StackFlow.gpg
echo 'deb [signed-by=/etc/apt/keyrings/StackFlow.gpg] https://repo.llm.m5stack.com/m5stack-apt-repo axclhost main' | sudo tee /etc/apt/sources.list.d/axclhost.list
確認します。
$ ls -l /etc/apt/keyrings/StackFlow.gpg
-rw-r--r-- 1 root root 1765 Mar 27 2025 /etc/apt/keyrings/StackFlow.gpg
$ cat /etc/apt/sources.list.d/axclhost.list
deb [signed-by=/etc/apt/keyrings/StackFlow.gpg] https://repo.llm.m5stack.com/m5stack-apt-repo axclhost mai
LLM-8850 のモジュール(axclhost)をインストールする前に DKMS をインストールします。
$ sudo apt install dkms
The following additional packages will be installed:
build-essential dpkg-dev fakeroot g++ g++-13 g++-13-aarch64-linux-gnu g++-aarch64-linux-gnu libalgorithm-diff-perl
libalgorithm-diff-xs-perl libalgorithm-merge-perl libdpkg-perl libfakeroot libfile-fcntllock-perl libstdc++-13-dev lto-disabled-list
Suggested packages:
menu debian-keyring gcc-13-doc git bzr libstdc++-13-doc
The following NEW packages will be installed:
build-essential dkms dpkg-dev fakeroot g++ g++-13 g++-13-aarch64-linux-gnu g++-aarch64-linux-gnu libalgorithm-diff-perl
libalgorithm-diff-xs-perl libalgorithm-merge-perl libdpkg-perl libfakeroot libfile-fcntllock-perl libstdc++-13-dev lto-disabled-list
0 upgraded, 16 newly installed, 0 to remove and 6 not upgraded.
Need to get 14.9 MB of archives.
After this operation, 57.3 MB of additional disk space will be used.
次に LLM-8850 のモジュール(axclhost)をインストールします。
$ sudo apt install axclhost
The following NEW packages will be installed:
axclhost
0 upgraded, 1 newly installed, 0 to remove and 6 not upgraded.
Need to get 56.0 MB of archives.
正常にインストールできたら下記のようなメッセージが表示されます。
source /etc/profile を実行しろと書かれていますね。
・・・
- Installation
- Installing to /lib/modules/6.8.0-1047-raspi/updates/dkms/
ax_pcie_p2p_rc.ko.zst:
Running module version sanity check.
- Original module
- No original module exists within this kernel
- Installation
- Installing to /lib/modules/6.8.0-1047-raspi/updates/dkms/
depmod.......
Need manual execute: source /etc/profile
Processing triggers for libc-bin (2.39-0ubuntu8.7) ...
インストールしたモジュールを使うため、source /etc/profile を実行するか、ターミナルを新しく変更してログインし直します。
$ source /etc/profile
正常にインストールできていれば、以下のコマンドでデバイス情報を確認できます
$ axcl-smi
下記は私の環境での出力です。
+------------------------------------------------------------------------------------------------+
| AXCL-SMI V3.6.4_20250822020158 Driver V3.6.4_20250822020158 |
+-----------------------------------------+--------------+---------------------------------------+
| Card Name Firmware | Bus-Id | Memory-Usage |
| Fan Temp Pwr:Usage/Cap | CPU NPU | CMM-Usage |
|=========================================+==============+=======================================|
| 0 AX650N V3.6.4 | 0000:01:00.0 | 146 MiB / 945 MiB |
| -- 55C -- / -- | 2% 0% | 18 MiB / 7040 MiB |
+-----------------------------------------+--------------+---------------------------------------+
+------------------------------------------------------------------------------------------------+
| Processes: |
| Card PID Process Name NPU Memory Usage |
|================================================================================================|
これで環境の構築が完了しました。
LLM 言語モデルの利用
今回は AxModel としてチャット形式で下記を簡単に試してみました。
- Qwen3-0.6B
- Qwen3-1.7B
- Qwen3-4B
Qwen3-0.6B を試す
モデルのダウンロードには git lfs が必要なのでインストールしておきます。
$ sudo apt install git-lfs
git lfs を初期化します。
$ git lfs install
モデルを取得します。
$ cd
$ git clone https://huggingface.co/AXERA-TECH/Qwen3-0.6B
モデルをダウンロードできたら確認してみます。
$ cd Qwen3-0.6B/
$ ls -lh
total 6.3M
-rw-rw-r-- 1 cm-test01 cm-test01 11K Feb 16 19:15 README.md
-rw-rw-r-- 1 cm-test01 cm-test01 0 Feb 16 19:15 config.json
-rw-rw-r-- 1 cm-test01 cm-test01 1.9M Feb 16 19:17 main_api_axcl_x86
-rw-rw-r-- 1 cm-test01 cm-test01 963K Feb 16 19:17 main_ax650
-rw-rw-r-- 1 cm-test01 cm-test01 1.7M Feb 16 19:17 main_axcl_aarch64
-rw-rw-r-- 1 cm-test01 cm-test01 1.8M Feb 16 19:17 main_axcl_x86
-rw-rw-r-- 1 cm-test01 cm-test01 277 Feb 16 19:15 post_config.json
drwxrwxr-x 2 cm-test01 cm-test01 4.0K Feb 16 19:15 qwen2.5_tokenizer
drwxrwxr-x 2 cm-test01 cm-test01 4.0K Feb 16 19:17 qwen3-0.6b-ax630c
drwxrwxr-x 2 cm-test01 cm-test01 4.0K Feb 16 19:18 qwen3-0.6b-ax650
drwxrwxr-x 2 cm-test01 cm-test01 4.0K Feb 16 19:17 qwen3_tokenizer
-rw-rw-r-- 1 cm-test01 cm-test01 7.6K Feb 16 19:15 qwen3_tokenizer_uid.py
-rw-rw-r-- 1 cm-test01 cm-test01 579 Feb 16 19:15 run_qwen3_0.6b_int8_ctx_ax630c.sh
-rw-rw-r-- 1 cm-test01 cm-test01 576 Feb 16 19:15 run_qwen3_0.6b_int8_ctx_ax650.sh
-rw-rw-r-- 1 cm-test01 cm-test01 596 Feb 16 19:15 run_qwen3_0.6b_int8_ctx_axcl_aarch64.sh
-rw-rw-r-- 1 cm-test01 cm-test01 592 Feb 16 19:15 run_qwen3_0.6b_int8_ctx_axcl_x86.sh
HuggingFace のリポジトリで Tokenizer サーバ用のスクリプトが提供されているので、Python の仮想環境を作成します。
$ sudo apt install python3.12-venv
qwen という名前で仮想環境を作成します。
$ python3 -m venv qwen
作成した仮想環境を有効化
$ source qwen/bin/activate
依存パッケージをインストールします。
$ pip install transformers jinja2
tokenizer サーバーを起動します。(ポートは任意のものを指定します。今回は ドキュメントと同じにしました)
$ python qwen3_tokenizer_uid.py --port 12345
下記は、私の環境での実行後の出力です。
PyTorch was not found. Models won't be available and only tokenizers, configuration and file/data utilities can be used.
Server running at http://0.0.0.0:12345
新しくターミナルを開いて接続します。LLM と対話するアプリが用意されているので実行権限を付与します。
$ cd ~/Qwen3-0.6B
$ chmod +x main_axcl_aarch64 run_qwen3_0.6b_int8_ctx_axcl_aarch64.sh
Qwen3-0.6B モデル用の推論サービスを起動します。
$ ./run_qwen3_0.6b_int8_ctx_axcl_aarch64.sh
下記のような表示になり最終的に prompt >> と表示されれば完了です。

Qwen3-0.6B に質問してみる
日本で一番高い山について質問しました。Mount Fuji と正解ですが、Tohoku にあると回答しています。

日本語でも回答できます。

Qwen3-1.7B を試す
同じ要領で Qwen3-1.7B を試してみました。
0.6B のモデルよりも詳細な情報を返してくれています。

山ではなく川について質問してみました。
信濃川と答えていますが、流域は東北地方になっています。中国に「東北部」があることが影響しているのでしょうか??

次に 「Environment タグの値が DevであるEC2 インスタンスを表示するコマンド」 について質問してみました。
ec2 describe-intances コマンドで組み上がっていますが、--query が必要以上に複雑でこのまま実行しても期待する結果は得られません。

Qwen3-4B を試す
Qwen3-4B は公式ドキュメントに記載がありませんが、AxModel が Hugging Face で提供されています。
EC2 に関する同じ質問をすると正しいコマンドを生成できています。

3つのモデルを試してみたところ、順当にパラメーターが大きくなると精度が高くなる結果になりました。
Qwen3-4B程度なら実用に耐えられそうと思いました。
LLM-8850 用にモデルを変換
今回は AxModel に変換済みのものを試してみましたが、言語モデルは日々新しいものがリリースされています。
最新のモデルを LLM-8850 用のモデル(AxModel)に変換するには、Pulsar2 というツールが提供されています。
今後モデルの変換も試してみようと思います。
最後に
少々お値段が高いですが、省スペースで生成 AI を活用できるケースとして面白そうです。
これから色々試してみたいと思います。









