📌

M5Stack Module LLMがやばい

2024/12/27に公開

はじめに

IoTLTがアドベントカレンダー振り返りやってるので急ぎ記事制作

Module LLMとは

2024年11月1日に発売されたM5Stackのモジュールです。
https://x.com/M5Stack/status/1852279474282447270

その正体は?

ローカルで最小サイズのLLMが動くエッジAIアクセラレータ付きのLinuxボードです。
AXERA社という中国のチップメーカが開発したAX630CというSoCが載っていて、armコアとNPU(AI用アクセラレータ)が入ってます。

ストレージとして32GBのeMMCが載っているので、OSはeMMCから高速起動します。
RAMは4GB載っていて、OS用に1GB、NPU用に3GBが割り当てられています。ざっくりいうと、RAM1GBのラズパイに3GBのVRAMが搭載されたGPUが付いてる感じ。(めっちゃ強くなったラズパイZero2)

配布されてるOSイメージはubuntuの22.04LTSなので、Ubuntuで動くパッケージは結構なんでも動きます。ROS2とかOpenCVも普通に動く。

ただしOS用のRAMは1GBなので、GUIはほぼ無理でCUIでの作業が必要です。

何に使うの?

基本的にはM5StackのModuluなので、M5Stack Basic/Core2/CoreS3の機能拡張に使います。
Moduleとして使う際には、Ubuntuが動いてるなんてことは意識することなく、UIFlow2もしくはArduinoからAPIをたたくことで、LLMサーバ的に扱えます。

基本となる機能は次の四つ
KWS (Key Word Spoting):キーワードでウェークアップ
ASR (Automated Speech Recognition):speech to textでお喋りをテキスト化
LLM (Large Language Model):ローカルのLLMでお返事返してくれる
TTS (Text To Speech):text to speechでお返事をお喋りにしてくれる。

このポストでは、上の4つを使ってM5Stackと完全ローカルでお喋りしてます。
https://x.com/AirpocketRobot/status/1854160102984663464

最良のユースケースは?

Coreシリーズに機能追加できるModuleとなると、スタックチャン用がもっとも期待される用途でしょう。
つい先日 @moto_tw さんが実装されました。
https://x.com/motoh_tw/status/1870656302667665684

ちなみに同じSoCを使って、カメラ、ディスプレイ、マイク、スピーカー、HDMI、I2C、SPI、Wi-Fiその他IOも付いてる(もしくはオプション的に付けられる)全部入りのデバイスも開発中。早ければ2025年早々にリリースされそうですが、技適のからみがあるので日本販売は先になりそう。
https://x.com/AirpocketRobot/status/1872090830783299907

他に何ができる?

NN用のアクセラレータなので、LLMに限らずCNN系はいろいろ動きます。私はCVが好きなのでちょこちょこ試してます。
こちらはYOLOv9を使ったカスタムモデルを移植して動かした例です。CPU推論と比較すると20倍くらい早く動いています。
AXERAのSoCはモデル変換ツールもそれなりにそろっているので頑張れば自分の好きなモデルを変換することもできます。ONNXモデルをInt8量子化して使うかんじ。
https://x.com/AirpocketRobot/status/1861034788544786813

どのへんがすごい?

エッジでAIを動かすデバイスというと、Raspberry Pi(+TPUやHailo8)とかRadxa、最近だとJetoson Orin Nano superですよね。
これらと比較すると性能は落ちてしまうのですが、圧倒的に低消費電力性に優れます。
Raspberry Piの場合、4B + edge TPUなどを使うとしても5V4A、Pi5だと5V5Aが必要ですが、Module LLMだと5V1A以下でうごく(はず。ちゃんと確認はしてないですごめんなさい)
Core2とくっつけてても電池で動くのだから大したものです。
これに対抗できるのはRaspberry Pi Zero2Wあたりですが、NPUのおかげで推論速度は5~10倍くらい早いです。

このポストでは、M5StackのAAAモジュール(単四×4本で動かすモジュール)で動いてます。
https://x.com/AirpocketRobot/status/1857362923108323700

使い方がわからない!

M5Stack Module LLM Advent Calender 2024に知見がたっぷりたまってきたので参考にしよう!
https://qiita.com/advent-calendar/2024/m5stack_module_llm

ちなみにアドカレIoT部門でIoTLTと競ってます。
https://qiita.com/advent-calendar/2024/ranking/feedbacks/categories/iot

どのへんがIoT?

個人的には先日アップデートされたOpen AI Realtime APIを補完するような形で使うのがおもしろそう。
ネットワークに接続できるときや、推論精度が必要な場合はクラウドリソースを使い、ネットワークが使用できない場合やプライバシーの問題でクラウドにデータが送れないユースケースなどにはエッジを使うというよに、同じデバイスで適宜リソースを切り替えるという運用がよさそうに思う。ので、先々そんなシステムを載せてみたいと思ってます。

Discussion