Preferred Networks

Vol.23 ロボット基盤モデルの発展と活用

今週のランチタイムトークはロボット基盤モデルについてお話したいと思います。

◆ ロボット基盤モデルが注目される理由

もともとLLMにはいろんな用途があるんですけれども、ロボット向けの基盤モデルとして使うのが非常にうまくいっています。

理由としては、ロボットは何か指示を受けるとき、かなり常識を知っていないといけないわけですね。例えば「机の上にペットボトルを載せてください」っていう指示を出そうとすると、平気で机を突き抜けようとしたりだとか、上っていう概念がわからなくて下側に付けたりだとか。

実際に実験自動化とかでロボットを使いましょうってなったら、危険な操作とかを全部前もってルールベースで教えておかないといけない。例えば「この薬品とこの薬品は近づけたら爆発するかもしれない」とか。そういったものを全部やらないといけないので、なかなか作り込みが大変でした。

PFNでもロボットをいろんな事業でやったり、研究したり、また子会社のPFR(プリファードロボティックス)で実際にロボットを開発、販売して、コンシューマ向けとかエンタープライズ向けに提供していく中で、ロボットを導入する大変さは非常に分かっています。

現在では、LLMを使えばロボット自身が常識を知った上で制御できると。例えば先ほど言った例は全部、LLMに聞けば「この薬品とこの薬品近づけたら危ないね」だとか、「机の上に載せるという意味は、重力に従って上側こっちだよね」とか、そういったものがわかっています。

その上で、今さらにLLMの性能がどんどん上がってきて、小型で賢くなっている上に、ビジョンをつけて画像や動画も認識して、いろんなことが理解できるようになってきています。基盤モデルの発展とともに、急速にロボットができる範囲が広がって、ロボット基盤モデルが急速に発展しています。

◆ ロボット基盤モデルの実例

こちらの動画で見せているのがそうしたロボット基盤モデルです。いろんな企業や研究機関が毎月のように新しいロボット基盤モデルを発表しているんですけれども、これは最新の一つで、π0(パイゼロ)って呼ばれるロボット基盤モデルで動かしている例です。

かなり汎用的にいろんなことを実現しているんですけど、特にロボットを今までやってきた人たちからすると、これがどれだけすごいかっていうのがわかるかと思います。

一つのモデルで、プロンプトで「こういうことをやってね」って指示をすると様々なタスクを実行してくれます。例えば、洗濯機から洗濯物を取り出してカゴの中に入れて、ドアを閉めて、カゴを持っていって机に置いて、畳むと。

洗濯物を畳むっていう一つだけでもチャレンジングなタスクなんですが、そういうことができます。だいぶまだシワシワですけどこんな感じでやれています。

これだけじゃなくて、今注目されているのはできそうでできなかったものであれば調理とかもありますし、汎用の実験自動化っていうのもあります。

あとは、段ボールを畳むとか作るっていうのも物流センターとかそういったところで非常に需要があるタスクになっています。その段ボールを畳む専用マシンは、ものすごい高値で今売れている大ヒット商品がありますが、そういったものも対応していくと思われます。

◆ どのようにロボット基盤モデルを作るのか

では、どうやってロボット基盤モデルを作るかっていう話をこれからしますけれども、いろんなアプローチがありますが、ここでは代表的な例であるπ0の場合を紹介します。

まずビジョンも扱えるようなLLM(VLM)を用意します。これは画像とテキストを入力として与えてそれを理解でき、テキストを出力できるようなモデルです。

ただ、インターネットから集めてきたデータだと、ロボットが実世界とインタラクションしているデータってほとんどないので、「ロボットが何か動作をさせたら何が起きるのか」っていうようなことは知りません。

なので、次にいろんな種類のロボットの動作(1万時間分のデータセット)を作って、それで様々なタスク指定でのロボットの動作データをとります。

最終的にこの基盤モデルがしたいのはプロンプトとセンサを入力としてロボットの制御シーケンスを出したいんですが、そこの制御シーケンスアクション系列っていうのを生成できるようにすることです。

入力としては今までの画像のシーケンスを何枚か与えて、プロンプトを与えると、その次にどういう行動を取ればいいのかっていうアクションシーケンスを最大50Hzくらいで出力します。

次に、このモデルは汎用でいろいろ使えそうなんですけど、とはいえ残念ながらまだLLMほどデータが足りないので、何かタスクをやろうと思ったらそれ用のデータが必要になります。

ただここはさっきの膨大な量のデータ(1万時間分)とかじゃなくて、タスクの難易度によるんですけど、もっとずっと少ないスケールの10時間だとかそれより少ない時間の実際のロボットデータを与えて、ファインチューニングしてあげて、それでいろんなタスクをこなせるようにします。というのがこのπ0になっています。

今ずっと説明してきた中でちゃんと説明してないところとしては、上の図の行動列を出す部分なんですけれども、先ほど言ったような50Hzとかすごい高速に出さないといけないわけです。

π0の場合には、コンテキスト部分前までの画像何枚かと、プロンプト部分はあらかじめ計算しておいてそこはもうキャッシュしておけば一度終わりと。

「action expert」側は、非常に大量に高速に計算しなきゃいけないんですけれど、ここの部分についてはフローマッチングの手法を使ってノイズを入れたら、そのノイズに応じて次の行動列を非常に高速に出せるようなモデルになっています。なので、自己回帰じゃなくて並列にたくさんの行動を同時に生成するようになっています。

さらには、いろんな種類のロボットに対応できるように作っていて、そこの部分は「action expert」って呼んでいるロボットの種類ごとに違う系列が出せるようにモデルを変えています。

ここは、Mixture of Experts(MoE)と同じ仕組みを持っていて、LLMのモデルパラメータとしてはほとんど同じものを使っているんですけれど、ロボット毎に、そこの部分だけがパラメータが別のものに切り替わるようになっています。

上の図の場合には、PaliGemmaっていうVLMで現在一番性能がいいものの一つを使っていて、2.6Bなので十分モバイルでも動くんじゃないかなと思います。もちろんデモ動画なのでできていないことも結構あると思うんですけれども、いろんなタスクができるようになっています。

◆ 課題と今後の展望

一方で、コメントとして、もっとちゃんと使えるようにしていくのに何が必要かと考えると、自分が思うに、一つはシミュレーションのデータは今回のタスクでは使っていないのですが、実世界で使おうと思うとシミュレーションで検証したいなというところは実際あります。

例えば、このロボットが「本当に安全かどうか」「変な状態になったとしても変なことをしないのか」というのを検証しようと思ったら、物理世界だとなかなか危なくてできなかったり、あとは網羅できなかったりするのでシミュレーションさせたい。

ただそういうのを使おうと思うと、まだかなり理想と現実のギャップがあってできないんですが、そういったところを動画の生成モデルなどで検証させていくということが今後あるのではという一つ。

あとはハードウェアのところも、例えばちょっと複雑なタスクをやろうと思うとすぐにもう1個ぐらい指が欲しいとかそういう話になったりすると思いますし、実際の家で使うと思うと現状のものではデカすぎるので、これを小さく、あと安全にするっていうのはかなり頑張らないといけないと思います。

PFNは新しい仲間を
募集しています

未掲載事例、プロダクト・ソリューション、研究開発についてお気軽にお問い合わせください