Seeed K.K.の松岡です。
11/23-24に開催されたOgaki Mini Maker Faire 2024のSeeedブースに「ミソ・イン・ザ・スープ OMMF2024スペシャルバージョン」を展示した経緯と仕組みを解説します。
経緯
日ごろから、SeeedにNVIDIA Jetson関連製品がたくさんあるので、これ使ってなにか展示物作りたいなと考えていました。でも、AIよくわからないのでどうしようかなと。もやもや。
そんなときに、有名ブロガーからあげさんの記事が目に留まりました。
これだ!!!(キラーン)
イベント展示帰り(からあげさん、いつも手伝っていただきありがとうございます)に、恐る恐る相談。
まつおか:「これ、Jetsonで出来ない?」
からあげさん:「できると思う。」
まつおか:「ちょっと手伝ってほしいかも...(モジモジ)」
からあげさん:「いいよ。」
大勝利 \(^o^)/
そんなわけで、からあげさんにお手伝いいただきながら、Ogaki Mini Maker Faire 2024に向けてポータブル脳みそ「ミソ・イン・ザ・スープ」をJetsonに換装することになりました。
出来上がり
Jetsonで動いている様子がこちらです。 reComputer J4012のローカルLLMで動いています。 ちょっと不気味ですけど...。
やったこと
最終的に、このような仕組みになりました。
プロセッサ以外もいろいろとアップグレードしました。以下が具体的な変更点です。
プロセッサ
元々はRaspberry Pi 5を使っていますが、reComputer J4012に変更します。
LLM(大規模言語モデル)を動かすときにメモリ不足で苦労したくなかったので、一番多いJetson Orin NX 16GBの機種にしました。(Jetson AGX Orinという選択肢もあるのですが、価格が高くて手が出せませんでした。😅)
メカ
最初は物理脳オブジェにしたかったところを妥協してiPad+透過スクリーンにしているので、本来やりたかった物理脳オブジェを作ることにします。
「やわらかな触感で~」とか「水槽に入れて~」といったヤバそうなアイデアがいくつか出ましたが、ちょっと難しそうだったので、シンプルに3Dプリンターで作ることにしました。
脳データは、BOOTHにイイ感じのものがあったので購入して、3D CADで中身をくりぬいて大きさを調整しました。 また、脳内の基板(後述)を出し入れできるように、いくつかの部位に分割しました。
3Dプリンターの出力は60時間くらいでした。(写真撮り忘れ😣)
最終的に、塗装は無しとしました。 お試しでパテ埋めや金塗装などもやりましたが、結果はいまいちだったので。
脳内
3Dプリンターで出力しただけではただの置物なので、脳タッチ検知とLEDピカピカの基板を作って入れることにします。
タッチ検知は長谷部さんのLoopian::ORBITと同じCY8CMBR3110を使いました。(長谷部さん、アドバイスありがとうございます)
LEDはよくあるカラーLEDテープを使いました。 色ムラを避けたかったので、これでもかっ!というほど敷き詰めました。 合計47個です。
制御は使い慣れていて安価なXIAO ESP32C6にしました。安いので。
将来、振動ブルブルみたいなのができるように、DCモーター制御の回路も加えました。BD6211Fです。
脳内基板の回路図はGitHubに置きました。 https://github.com/matsujirushi/miso-in-the-soup-xiao/blob/main/schematic/miso-in-the-soup-xiao.1.0.pdf
脳内基板のソフトはこちらです。 reComputer J4012からUSB-CDCで指令を受けて、タッチ検知を返したりLEDを点灯させたりします。 LEDのアニメーション?(ふわふわと光らせるとか)はreComputer J4012側の負担にならないよう、脳内基板のソフトの中に組み込みました。
reComputer J4012ソフト
からあげさんにreComputer J4012を送って、従来のミソ・イン・ザ・スープを良い感じに動くようにしてもらいました。その後、物理脳と連動するようにしました。
環境構築はからあげさんのZenn記事にまとめられています。
OllamaというのがさまざまなLLMを動かす便利ツールのようです。なるほど。
そして、次のように呼び出して処理していました。なるほど。
ollama.chat()
というのでLLMを動かしている。(ここ)- 使っているモデルは
7shi/tanuki-dpo-v1.0:8b-q6_K
。(ここ) - LLM実行結果は実行しながら部分的に取得できる。ストリーミング的な。(ここ)
- プロンプトは固定。(ここ)
発話を追加
LLMがサクッと動いたので、「これ喋れないかな?」と予定にない追加タスクをからあげさんに投げてみたところ、VOICEBOXというもので音声合成するものが出来上がって返ってきました。すごい!
そうそう、ソフトは発話するようになったのですがreComputer J4012にはスピーカーがありません。会社にreSpeaker Liteがあったので、これを使うことにしました。USB接続するだけで、市販のUSBスピーカーのようにreComputer J4012から認識できました。
最後に
「AIよくわからん」「ローカルLLM難しそう」だったのが、「おれポータブルな脳みそ作れるんだぜ」に少しレベルアップしました。
LLMの謎技術もすごいですが、Ollamaもすごいです。Ollama無しで環境構築はキツいんだろうなと感じました。(想像)
次は、タッチなどでプロンプト変えて、インタラクティブに反応してくれる脳みそにアップグレードしたいと思います。
参考リンク
- ミソ・イン・ザ・スープ OMMF2024スペシャルバージョン動画
- ミソ・イン・ザ・スープ OMMF2024スペシャルバージョンスライド
- ポータブル脳みそ 〜ミソ・イン・ザ・スープ〜を作ってみました
- ミソ・イン・ザ・スープ ソース
- ミソ・イン・ザ・スープ 脳内基板ソース
- reComputer Jetson
- reComputer J4012
- 脳 3Dモデル
- Loopian::ORBIT
- reSpeaker Lite
- Seeed reComputer J4012(Jetson Orin NX 16GB)セットアップ情報まとめ
- Jetson Orin NXでのVOICEVOXを使った音声合成
- Ogaki Mini Maker Faire 2024
変更履歴
日付 | 変更者 | 変更内容 |
---|---|---|
2024/12/16 | 松岡 | 作成 |