🤖

Socratic Models 論文解説

2022/12/18に公開

はじめに

こんにちは、学生時代からRobocup, Maritime RobotX Challengeで如何にロボットが見る世界を表現するべきか、さらにそれをどのように行動計画につなげていくか気になって気になって夜しかねれない片岡です。

https://twitter.com/hakuturu583/status/1602287040464588800?s=20&t=Mdtz4jVBaOqtF_Mb4cBLRg

複雑な物理世界をモデリングする方法の一つとして「言語」というツールは有効なものの一つだと考えます。
世界にはいろいろな属性を持った物体が存在し、それに対して「こういう振る舞いができるよ」という情報を引き出すのに自然言語から得られた情報は使えるんじゃないかなと漠然と思っていたところ、知人から「基盤モデルはいいぞ」という囁きが聞こえてきたので深層学習何もわからんけどとりあえず読んでみて基盤モデルで何ができて何ができないのかを理解したいなということで基盤モデルxロボティクスアドベントカレンダーに参加を決めました。
今回は、知人から勧められた「Socratic Models: Composing Zero-Shot Multimodal Reasoning with Language」を読んでいこうと思います。

Socratic Modelsとは?

https://twitter.com/i/status/1512089759497269251

Socratic Modelsのココがすごい

  1. 事前に学習した複数のモデルがゼロショット、すなわちマルチモーダル情報に基づくプロンプトを通じて構成され、互いに情報を交換し、微調整を必要とせずに新しいマルチモーダル能力を獲得することが可能
  2. 最小限のエンジニアリングで、Socratic Modelsは最先端のゼロショット画像キャプションやビデオテキスト検索に対抗できるだけでなく、(i)自己中心的なビデオに関する自由形式の質問に答える、(ii)外部APIやデータベース(ウェブ検索など)と連動して人とマルチモーダル支援対話を行う、(iii)ロボット知覚と計画などの新しいアプリケーションを実現可能

なんか機能山盛りですね、一つ一つ見ていきましょう。

Socratic Modelsの構造

まずは全体構造の把握から行きたいと思います。

Not Found

Socratic Modelsは視覚言語モデル、大規模言語モデル、音声言語モデルといった複数の学習済み機械学習モデルが組み合わさってできています。
これらのモデルとモデルの間でプロンプトが交換されることによってZero-Shotかつマルチモーダルな処理を実現しています。
Socratic Modelsは新しいタスクを前にしても、追加の学習や微調整を必要としないモジュールフレームワークとなっています。
それぞれの機械学習モデルはそれぞれ異なったドメインで事前に学習されているため、プロンプトを介してお互いに補完し合うことで様々な処理を実行可能です。

Socratic Modelsは、ある領域における古典的な難問を、別の領域の問題として再定式化することで解決します。
例えば、一人称映像に関する自由形式の質問(例えば、「今日なぜ玄関に行ったのか」)に答えることは、以前は、領域特有のデータ収集がなければ、自己中心的な知覚には届かないと考えられていましたが、Socratic Modelsでは映像を言語ベースの世界の履歴(短編小説やイベントログの形式)に組み立て、その世界史について様々な種類の自由形式のテキストプロンプトによるタスク(例えば、質問に答える)を実行すること、すなわち、現代の言語モデルが得意とする読解問題として映像理解を定式化することにより、Socratic Modelsでこれが可能であることを示す。

タスク特化Socratic Model f_{sm}: x \rightarrow y (xはモデルに対する入力、yはモデルの出力)は個々のモジュールをノード、ノード間の通信をエッジとする計算グラフとして表現されます。
個々のモジュールは外部APIや何らかのマルチモーダルモデルである。各モジュールfはあるモデルmから出力されたプロンプトを他のモデルが解釈可能な言語に変換する

実際のzero-shot learningにおける具体例を示すと、以下のような手順で計算を行います。

activity = f_{LM}(f_{VLM}(f_{LM}(f_{ALM}(f_{LM}(f_{VLM}(video))))))

ただし、f_{LM}はLanguage Model、f_{VLM}はVision & Language Model、f_{ALM}はAudio Language Modelを指します。
長いので以後はLanguage Model = LM、Vision & Language Model = VLM、ALM = Audio Language Modelと省略します。
上の式は一人称視点の動画からキャプション生成をしています。
VLMが視覚的実体を検出し、LMが聞こえそうな音を提案、ALMが最も可能性の高い音を選択、LMが可能な活動を提案、VLMが最も可能性の高い活動をランク付け、LMがSocratic interactionのサマリーを生成しています。
同じモデルを複数回呼び出すなど、複数の相互作用がある、Socratic Modelグラフのノード間で一種の「閉ループ」フィードバックを形成することも可能です。
将来的には、相互作用(すなわち、各変換の形やエッジ)を学習することに期待しているとのことです、つまり「どういう手順でこのデータを処理するか」は人間が決めてやらないといけないようです。
Socratic Modelで動くロボットを物理世界に解き放ってさまざまな行動をさせるにはこの問題解決をしてあげないといけなさそうですね。

Socratic ModelsのContribution

著者らが主張するSocratic Modelsの主なContribtionは以下の4点です。

  1. Socratic Modelsのフレームワークで、訓練を必要とせず、言語を通してマルチモーダルな事前学習済みモデルを構成することを提案
  2. Socratic Modelsフレームワークはマルチモーダルプロンプト手法、ビデオ理解のための言語ベースの世界状態履歴など重要なコンポーネントを含む
  3. 画像キャプションやビデオ理解などの複数のタスクにおいて、ゼロショットで新たなSOTAを設定し、Socratic Modelsシステムの強力な定量的性能を実証
  4. 自由視点知覚、マルチモーダル支援、ロボット知覚と計画に関する追加の応用例を提供

Socratic Modelsによるロボット制御

Socratic Modelsは静止画、動画キャプショニングや動画をみて質問に答えるといった様々なタスクをZero-shotで実行可能ですが、今回はその中でもロボットアーム制御に手法について解説したいと思います。

Not Found
Demo Video

Demoを見てみると、ロボットが自然言語で指示された通りにものを片付けていきます。
どうもこのデモはGooogle Colabで動かせるそうです。
素晴らしいですね。

このデモでは以下の手順でロボットを動かしています。
VLM(ViLD[1]を用いたオープンボキャブラリーオブジェクト検出)を用いてシーン内のオブジェクトを記述し、
その記述をマルチステッププランナー [2] [3] (大規模言語モデルによって学習された世界知識によりインタラクティブな環境での行動を推定するアルゴリズム、より具体的にいうと「朝食を作る」というタスクを「冷蔵庫を開ける」、「牛乳を取り出す」「卵焼きをつくる」と言った行動の列に変換するアルゴリズム)として LM にコンテキストを与え、次に、事前に学習した言語条件付きロボットポリシー(例えば、オープンボキャブラリーPick & Placeの CLIPort [4], [5], [6]と同様のモデル)に渡されるべき個々のステップを生成しています。
CLIPortはPick & Placeタスクを言語指示を介して実現可能にするニューラルネットです。
こちらの資料がわかりやすくまとめてくれていました。
CLIP-Resnet50によって画像を符号化した結果と指示文をText Encoderにより符号化したものおよび空間情報を符号化したTransporter Networkの出力を混ぜ合わせることで各タイムステップにおいてアフォーダンス抽出を行います。
つまり、VLMによりオブジェクト認識し、LMによりそこから意図抽出し、最後にCLIPortでそれらの結果を統合するという仕組みで動作するようです。

今後の課題、問題点

まあこんな感じで複数のモデルをつないでいろんなことができるぜ!というSocratic Modelsですが、ざっくりとよんだ感じでロボット適用を考えたときに問題担ってきそうな箇所はこのあたりでしょうか?

計算グラフを動的に変更できない

Socratic Modelsの計算グラフを動的に変更したりそれ自体の構造を獲得することは本論文には記載されていません。
つまり計算グラフは常に固定されます。
大規模言語モデルの高い表現力によって計算グラフが固定であっても高い環境適応性が期待できる、ということを著者の方々は考えておられるのかなあと思いつつ他のエージェントとのインタラクションが発生する動的環境において計算グラフが固定なことは将来問題になるのではないかな?と思う片岡です。

物理環境条件に対してそれほどロバストではない、三次元空間をうまく捉えられていない

本論文のまとめにこのような記述がありました、

良好な視野角(頭上カメラ)、フィルタリングされた色(赤、緑、黄、青)、名前の調整(頭上カメラのため、ブロックを「箱」、ボウルを「円」と呼ぶことにしました)が必要、これらの変更なしでも、システムは多くのタスクを完了することができますが、一貫性はありません。
今後、市販のVLMが現在のものよりも堅牢になることを期待している。

良好な視野角に関しては、Socratic Modelsはこの構造では時系列を考慮しているわけでは無いので一度視界の外に出てしまったオブジェクトは再度視界に入るまでいないものとして扱うしか無いという事情はありそうですね。
またCLIPortもそうですが、三次元の世界を単眼カメラからみた二次元の世界に落としてしまっています。
そのため様々な視点のデータが含まれるVLMとは得られる画像情報が異なってしまうためかブロックを「箱」、ボウルを「円」と上から見た形状に呼び方を変更するという本質的でないプロンプトエンジニアリングが必要なようです。(正直これに関してはVLMを頑健にするのではなくロボットのセンサ配置や計算グラフを再検討するべきじゃないでしょうか....)

まあ、とはいえこの問題は計算グラフを工夫すれば解決するんだから大した問題じゃないんじゃね?というのが著者らの答えかもしれないですね。

まとめ

とりあえず知り合いから勧められて興味が湧いたので調査してみた基盤モデルですが、マルチモーダルな情報の間をつなぐ面白いツールの一つだなと感じました。
今後も定期的に調査を勧めて行きたいなと思っています。

引用文献

[1] X. Gu, T.-Y. Lin, W. Kuo, and Y. Cui. Open-vocabulary object detection via vision and language knowledge distillation. arXiv preprint arXiv:2104.13921, 2021.
[2] W. Huang, P. Abbeel, D. Pathak, and I. Mordatch. Language models as zero-shot planners: Extracting actionable knowledge for embodied agents. arXiv preprint arXiv:2201.07207, 2022.
[3] M. Ahn, A. Brohan, N. Brown, Y. Chebotar, O. Cortes, B. David, C. Finn, K. Gopalakrishnan, K. Hausman, A. Herzog, J. Hsu, J. Ibarz, B. Ichter, A. Irpan, E. Jang, R. J. Ruano, K. Jeffrey, S. Jesmonth, N. Joshi, R. Julian, D. Kalashnikov, Y. Kuang, K.-H. Lee, S. Levine, Y. Lu, L. Luu, C. Parada, P. Pastor, J. Quiambao, K. Rao, J. Rettinghouse, D. Reyes, P. Sermanet, N. Sievers, C. Tan, A. Toshev, V. Vanhoucke, F. Xia, T. Xiao, P. Xu, S. Xu, and M. Yan. Do as i can and not as i say: Grounding language in robotic affordances. In arXiv preprint arXiv:2022.00000, 2022.
[4] M. Shridhar, L. Manuelli, and D. Fox. Cliport: What and where pathways for robotic manipulation. In
Conference on Robot Learning, pages 894–906. PMLR, 2022.
[5] A. Zeng, P. Florence, J. Tompson, S. Welker, J. Chien, M. Attarian, T. Armstrong, I. Krasin, D. Duong,
V. Sindhwani, et al. Transporter networks: Rearranging the visual world for robotic manipulation. arXiv
preprint arXiv:2010.14406, 2020.
[6] https://cliport.github.io/

Discussion