ある日、大学で同僚と話していたらポータブルな脳みその話になりました。
同僚Aさん「水槽に入っている、ポータブルな脳みそっていいですよねー」
同僚Bさん「そうですよね、xxx先生とか自宅に脳みそ持って会話してそうですよね」
私「先生に追いつくために、自宅に脳みそ欲しいですね」
そのときは、なんとなくそのまま会話が終わったのですが。その後、ポータブルな脳みそが欲しくなってきたので作ってみることにしました。
最初に悩んだのがハードウェアです。プロセッサ、メカの観点で記載していきます。
ポータブルな脳みそは、ソフトウェアとしてLLM(大規模言語モデル、ChatGPT的なやつ)を使うことを考えました。使い方としては、基本は自宅で使うことが多いと思うのですが、イベントやアウトドアで使いたくなることが容易に想像できます。そのときに、潤沢なネットワーク環境があるとは限りません。なので、頭脳となるプロセッサとして、ポータブルでも使えて小型かつ、ローカルでLLMを動かせるデバイスが必要となります。
条件に合致するハードウェアとして、今回はRaspberry Pi 5(ラズパイ)を選定しました。以前ローカルでのLLMの動作も確認済みであることも大きかったです。
「ペッパーズ・ゴースト」という視覚トリックの応用を用いています。こちらの作品を参考にさせていただきました。
ダイソーでアクリル板(プラ板)とケースを買って自作しています。
ケースに水を入れてiPadをプロジェクタ代わりにしたら、わりとキレイに映りました。
ソフトウェアとしてはローカルなLLMを動かすためにOllamaを使いました。Ollamaに関してはこちらの記事を参照ください。ラズパイでも動くのがよいですね。
Ollamaで手軽に扱えるLLMは以下の通り複数あります。自分で追加することも可能なので、可能性は無限大です。
ただ、ラズパイである程度短い時間で文章を生成できるという制約から、小型のモデルに絞って選ぶことにしました。いくつか定性的に比較した結果、コストパフォーマンスにすぐれたGoogleのGemma 2Bモデルを使用することにしました。
正直流暢に会話できるわけではないのですが、ポータブルな脳みそ、少し日本が不自由という設定にすることで、性能の問題を回避(?)しました。
脳みその画像に関しては、ChatGPTに作ってもらいました。見栄えをよくするために、少し画像の演出も加えています。