【イベントレポ】Node-RED Park Vol.11 - AIを使うフローについて語る会! #noderedpark #nodered #noderedjp
今日は2023年5月11に行われた「Node-RED Park」の11回めのイベントに参加しました。その名の通りIoTの世界でよく使用されているビジュアルプログラムング環境であるNode-Redについてのイベントなのですが、ここにもChat-GPTの波が押し寄せています。AIを使ったフローについて・・・というのがテーマです。
オープニング
オープニングは野良ハック、IoTLTそして本や雑誌の執筆と多方面で活躍されている北崎さんのファシリテートで始まります。今回はChatGPTを使ったAIを フローを紹介する回という話からコミュニティの説明に入りました。
Node-Red ParkとはNodeの知見を共有する場で皆さんとワイワイ楽しく集まって 議論する場ですが、今回のようなディープな話題、深い知見を 共有するっていうのがメインになっています。でもNode-Redは初めての人でもすごいことができちゃうポテンシャルを持ったプロダクトなので初心者の方でも大歓迎とのことです。
今回のイベントは株式会社ウフルさんの提供でお送りしています
そこから今回のイベントについての説明です。最近はChatGPTとAPI連携が話題ですが、速報としてBardの日本語対応がされましたがGoogleのアカウントがあればすぐに使い始められるみたいです。今後APIが公開され始めたらNode-Redとの組み合わせも事例が出てくると期待できます。
本日のアジェンダとしてはセッションが3つ、その後はテーマについて語って、それから次回のテーマぎめになります
「Node-RedからGPUリソースを使ってみた」:北崎さん
最初のセッションは本日のファシリテーターでもある北崎さんから。
まずは北崎さんが最近気になったトピックの紹介です。
ChatGPT演劇システムbyまつしたさん
ハリウッドのAI脚本 家がストライキを起こしたりしてこの周辺がざわざわしています。
Node-REDを使ってWhisperで音声認識してChatGPTで回答させてみたbyまつしたさん
ChatGPT研究会 ChatGPT APIを使ってみた by 田中正吾さん
JSONをうまく吐き出させるための知見に注目
OpenAI 社の ChatGPT API を enebular からつないでみる by 田中正吾さん
試したい場合はDiscover Flowから簡単に自分のプロジェクトに取り込めます。
Node-RED 2.1の新機能:ツアー機能 by 横井一仁さん
ChatGPTにNode-REDのフローを書かせる、ツアーをさせる試み
ウフル山崎さんのTweet Node-RED jpさんのイベント
FacebookのNode-RED User Groupの記事
メタバース空間の中でAIアバターにしゃべらせる事例。接続の技術的な部分が気になった
WebAssemblyとWebContainer by 横井さんのTweet
JavaScript以外の選択肢
WebGL〜グラフィックライブラリでGPUリソースを使う
技術書典14で「PLAYCANVAS入門」頒布します
WebGPU〜グラフィックライブラリの次のブラウザ機能
・ブラウザの中のSandboxやコンテナ環境でNode-REDが動く
・AIを動かすGPUリソースがブラウザの中から使えるようになる
GPUリソースをNode-REDから使う
ここからいよいよメインのテーマです。本日のテーマは「リモート環境の中でGPUをどう使うか」です。
今回はGPU機能を搭載したエッジコンピュータであるJetson Nanoを使ってNode-REDでAIの推論を動かしてみた実装の話です。
同じことを実装している例としてはenebularさんの例もあります。
こちらはコンテナ上のNode-REDが通信をしてAIを使うリソースになっています。
今回はこれと異なりNode-REDが直接GPUのリソースを使用します。(記事はこちら)
TensorFlowはCPUもGPUのどちらも使ってAI推論ができます。ただし使用するにはライブラリのバージョンが非常にシビアで環境にはかなりの注意が必要です。・・・TensorFlowのビルドは50時間超えだそうです
ハードウェアのリソースを使う
・AIの性能が上がる⇒推論実行のスピードが上がる
・GPUを使ったほうが圧倒的に早い
<資料です>
ChatGPT+Node-RED+Hololens2+IoTな連携のNode-REDフロー例:田中正吾さん
次の田中さんのセッションは音声認識したテキストをChatGPT APIに伝えてIoTに指示するJSONに変換させIoTが動作するという話です。
まずはデモから紹介されました。Hololensの視界で実際の操作がされました。音声でIoTデバイスのLEDを点灯させたり点滅させたりしています。(ここは動画を見てください)
使ったのはOpenAI社のChatGPT APIの「Chat completion」でWeb版のChatGPTに近いものですがAPIプライバシーが守られるので使いやすいとのことです。APIキーを取得すればすぐに使用できます。REST APIや公式のPython、Node.jsのライブラリが使用できますがNode-REDで使用する場合はNode.jsのライブラリです。
今回はNode-REDを使ってAPIとIoTをつなぎます。ChatGPTを他のシステムになじませるにはルールを決めて回答しやすくしたり、回答にJSONを指定したりする必要があります。
いい感じにJSONの回答を得られるようにするために試行錯誤して適切なプロンプトが発行されるようにしていきました。
そこにHololens2の音声認識を加えて音声を日本語テキスト化させてChatGPTでJSON化するようにして音声命令でIoT機器を動かすようにしました。
言葉遣いが違う「揺れた言葉」でもChatGPTがいいように識別してくれるので、ちゃんとIoT機器が動作します。今回のようにしっかりお願いをするとGPT3.5でもGPT4でもあまりクオリティは変わらないそうです。
<資料です>
Node-RED × ChatGPT × Koeiromapで演劇を上演する:まつしたさん
最後のセッションはまつしたさん。野良ハックチームの一員です。演劇を見るのが大好きでChatGPTが無限に演劇を生成できるか・・・をやってみた話です。この試みに関しては実際の演劇でも試されていたりもします。
演劇を行うには作(劇作家)や、演出、出演(俳優)や舞台監督などさまざまな役割が必要になります。今回は作、演出、出演、証明をシステム化してしまうことを考えました。
システム構成としてはenebular上のNode-REDを中心にKoeiromapやshifterなどを使用しました。
今回は3つのテーマを与えて話をChatGPTに台本を作成させ、koeiromapでセリフを切り出し、音声合成させ、それを順次再生させていくというものです。証明の指示はMQTT経由で送られます。
・・・ちゃんと「ねことカレー」をテーマにした掛け合いの演劇がされました。
劇作家としてのChatGPT
テーマとルール設定、出力フォーマットの指定をプロンプトの要素に入れ、戯曲(役者ごとのセリフ、照明の指示)を作成してもらう
俳優としてのChatGPT
Koeiromapで声質、感情、セリフを指定して音声合成させる
koeiromap:rinnaが提供するサービス
Stack-chanのような形で演技
照明としてのChatGPT
NeoPixelのLEDを照明として使用
色々課題はありますが、活用範囲を拡大して行きたいとのことです。会場からもいろんなアイデアが出てきたりして夢が拡がっていました。成長に期待です。
<資料です>
テーマについて語る
ここからはスピーカーによるディスカッションになりました。ポイントだけを上げておきます。
引き続き盛り上がった演劇の話
・演劇というものの知識体系化され、Node-REDのフロー化されるのはすごい
・複数のセッションのChat-GPTでかけ合わせても面白そう
・複雑になってもNode-REDならば作りやすい感じがする、コードと違って全体を見渡せる。
・シンプルChatGPT APIはつかいやすい
Whisperの話題
・Whisperもすごく使いやすくてChatGPTとWhisperの親和性もすごい高い
・Whisperも言葉の揺れに関しても懐が 深いのでHololensの音声データを拾ってWhisperへ投げるっていうのをやってみ たい
・普通にこういろんなブラウザ とかでこうできたらいいですよね
ふたたび演劇の話からAIの未来へ
・プロンプトのルール決めて投げる技は実は相性が良かったのを再確認できた
・AIで事務的な作業が変わるって世の中今騒いでますけど 今日のですねお二人ネタを見てすごく未来を示してるなと思いました
・ 役者をロボットにするっていうところ感動して演劇だけじゃなくてもほんといろんなことに使えると思う
・動かし方みたいなのが具体的で3年ぐらい先行ってるような気がします
・NOde-REDで今までやっ てきたことがあったからこそ気づけてる。テンプレートノードと かに気づいたのもNode-RED様々って感じ
・AIの進化は速いが、人間がその能力を使いこなすのには時間がかかるがAIの進化により、より進歩していくことが期待される
・NodeのAPIがGPT3.5とGPT4で同じ挙動を示すため、簡単に入れ替えることができる
・そのうちプロンプトを投げる用のNodeとか出てきそう。
・テンプレートNodeって使い道が あんまりなかったのがChatGPTで 脚光を浴びたんじゃないかって思った
・APIっていうキーワードで 幅広くやってもいいのかなと思った
クロージング・次回テーマ決め
話も盛り上がったところで次回のテーマぎめです。このスタイルはコミュニティっぽくていいですね。投票はSlidoでやってました。