Inner Monologue - 言語モデルによるプランニングを通じた身体化推論

「基盤モデル×Robotics」 Advent Calendar 2022 12日目

この記事は 基盤モデル×Robotics Advent Calendar 2022 12日目の記事です

はじめに

株式会社松尾研究所の石本幸暉です。

今日の記事では、大規模言語モデルの推論機能に人間からの言語フィードバックなどを追加することでロボットの高レベルのタスクを行うことができたInner Monologueという研究を紹介します。

目次

Inner Monologueとは?

Inner Monologueとは、SayCanという研究の発展で、(SayCanはアドカレで他の方が解説してくださる予定です!)いくつかの追加のフィードバックループを通して言語指示による多段階タスクをロボットに行わせることを報告した論文です。

Inner Monologueの全体像(出典:[Inner Monologueの概要](https://arxiv.org/pdf/2207.05608.pdf)のFigure 1)
Inner Monologueの全体像(出典:Inner Monologueの概要のFigure 1)

Inner MonologueではchatGPTで利用されているInstructGPTPALMという大規模言語モデルを利用しています。 InstructGPTは、GPT-3を人間のフィードバックで微調整したもので、今話題のchatGPTでも使用されているモデルになります。

この研究では、1)シミュレータでの机, 2)実世界での机, 3)実世界でのキッチン の3つの実験設定で、それぞれ微妙に異なるモデルや入力の設計をしています。

3つの環境での実験(出典:[Inner Monologue](https://arxiv.org/pdf/2207.05608.pdf)のFigure3 )
3つの環境での実験(出典:Inner MonologueのFigure3 )

その1 シミュレーション上の机での再配置タスクにおけるInner Monologueの設計

使用した大規模言語モデル

InstructGPTをOpenAI APIからアクセスして使用しています。

pick and placeのプリミティブモーション

大規模言語モデルプランナーが呼び出せるpick and placeプリミティブモーションとしては、CLIPベースのトランスポーターネット(CLIPortを参考にした)を使用しています。プリミティブモーションの学習は、データセットに

  1. “pick up [“x”] and place it on [“y”]” という言語指令
  2. RGBD画像入力
  3. シミュレータから得られた物体の正確な位置
  4. シミュレータから得られた正確な物体の置く位置 の4つを含む、2万個のデモを用いて学習しています。

環境からのフィードバック:物体認識

各エピソードの開始時に環境に存在する物体のリストを言語モデルに与えます。(座標は与えない) ViLDMDETRなどの Open Vocaburaryな物体検出モデルによって得られるが、かんたんのためにシミュレータの真値を使用しています。

環境からのフィードバック:成功検出

Object+Success メソッドでは、各ポリシー実行後に物体姿勢に基づくヒューリスティックな成功判定処理を行なっている(掴んだ物体の2次元ユークリッド距離が目標から4cm未満かつ下の物体より上にあるなら成功としている)

環境からのフィードバック: Passive Scene Desctiption

Object+Success メソッドでは、成功したサブゴールのリストを用いて進行状況を描写します。大規模言語モデルは、高レベルの命令からサブゴールリスト([x]は[y]の上にある、といった形式)を作成し、成功検出を使ってどれが成功したかをチェックします。さらに、Robot thought: のところで言語モデルによる思考の連鎖を生成できるようにし、これが有用であることがわかりました。 

シミュレーション上での再配置タスク(出典:[Inner Monologueの動画](https://innermonologue.github.io/img/emergent_spontaneous.mp4))
シミュレーション上での再配置タスク(出典:Inner Monologueの動画

実験と結果

テーブルの上のブロックとボウルを置き、自然言語で指定したある配置に再配置させるタスクを行ないました。比較のため、CLIPortを用いたポリシーと比較しています。

下の表からわかることとしては、LLM単体でのポリシーに比べてInner Monologueの正解率が比較的高いことと、新しいタスクに対する適応がCLIPortだと難しいということです。また、CLIPortは長期タスクへの汎化が難しいこともわかります。Oracle(人間からのタスク終了指示)を与えてやらないとCLIPortはうまく機能していないようです。

シミュレーション上での再配置タスク(出典:[Inner Monologue](https://arxiv.org/pdf/2207.05608.pdf)のTable1 )
シミュレーション上での再配置タスク(出典:Inner MonologueのTable1 )

その2 実世界での机の上の再配置タスクにおけるInner Monologueの設計

使用した大規模言語モデル

InstructGPTをOpenAI APIからアクセスして使用しました。

pick and placeのプリミティブモーション

物体のpick and placeのために以下の情報を用いました。

  1. シーン内の全ての物体のバウンディングボックス

  2. つかむ物体と置く物体の名前

  3. 物体検出時に対応する深度画像

  4. カメラの内部構造

  5. カメラの姿勢

を入力として、目標把持位置と目標の置く位置を出力しました。ロボットは目標位置の15cm上まで移動し、ゆっくりとアームを下げて接触力が5 Nになるまで動かしました。

シミュレーション上での再配置タスク(出典:[Inner Monologueの動画](https://innermonologue.github.io/img/im_demo2_an.mp4))
シミュレーション上での再配置タスク(出典:Inner Monologueの動画

環境からのフィードバック:物体認識

MDERTという物体検出モデルを使用し物体ごとのバウンディングボックスを出力しました。

MDETR(出典:[MDETR](https://ashkamath.github.io/mdetr_page/))
MDETR(出典:MDETR

環境からのフィードバック:成功検出

pick and place 動作後に検出された物体のバウンディングボックスの2次元位置と、想定された2次元配置位置を比較し、成功検出を行いました。バウンディングボックスの中心点の座標を深度画像から計算し、閾値以下になると成功と判定した(ブロック積みの場合3cm, 物体の並び替えタスクでは10cmの閾値)

環境からのフィードバック: Passive Scene Desctiption

ブロック積みでは、現在見えている物体のリストと今は見えていない物体のリストを用意し、新しく見えた物体を検出した場合、前者のリストに追加しました。

物体の並べ替えタスクでは、現在見えている物体のリストと、ロボットが移動に成功した物体のリストを用意しました。

実験と結果

手先にIntel RealsenseカメラをつけたUR5eロボットアームで、オモチャのブロック、食品、調味料の再配置タスクを行ないました。具体的には、1)2つのブロックが既に積み上げられている状態からの3つ目のブロックを積み上げるタスクと、食品をさらに入れ、調味料を別の皿に仕分ける再配置タスク の二つを行いました。

実機での再配置タスク(出典:[Inner Monologue](https://arxiv.org/pdf/2207.05608.pdf)のTable2 )
実機での再配置タスク(出典:Inner MonologueのTable2 )

フィードバックを2つ使ったInner Monologueが最も高い成功率となっていることがわかります。フィードバックを削った場合の失敗例としては、1) 最初に見えなかった物体がモデルの生成するプランに含まれていないこと、2) ポリシーノイズを加えたことで失敗したpick and placeの動作を再試行しないこと の2つが主に原因であることがわかりました。

その3 実世界のキッチンでのInner Monologueの設計

使用した大規模言語モデル

PALMというWeb, 書籍、Wikipedia、会話、GitHubコードなどの大規模データセットで学習した540Bパラメータのモデルを使用しました。

pick and placeのプリミティブモーション

SayCanに習い、学習ベースとスクリプトベースを組み合わせたナビゲーションとマニピュレーションを使用しました。

カウンターピッキング、引き出しの開閉、ピキダシのピッキング、カウンター上の物体操作のための学習されたポリシーには、10台のロボットを使い11ヶ月かけて集めた68000の遠隔操作デモと、12000の自律的な成功例に対して学習されたBC(行動クローニング)ポリシーを用いました。

ナビゲーションにはスクリプトベースのものを用意し、環境内の異なる地点に向かうためにあらかじめ計測された地図を用いてポリシーが作成されました。

環境からのフィードバック:物体認識

人間が直接カメラ上の物体の存在をフィードバックしました。

例:コーラとりんごがキッチンカウンターの上にあったら、[scene: coke can, apple]をフィードバック

ViLDMDETRという物体認識モデルで完全自動の物体認識フィードバックについても検討したが、100%の制度にはなリませんでした。

ViLDとMDETRによる精度比較(出典:[Inner Monologue](https://arxiv.org/pdf/2207.05608.pdf)のFigure6, table5 )
ViLDとMDETRによる精度比較(出典:Inner MonologueのFigure6, table5 )

環境からのフィードバック:成功検出

デモンストレーションデータと自律的な走行データを用いて成功検出予見器を学習しました。

予見器は左下図のように初期画像とポリシー実行後の画像をそれぞれCLIPのImage Encoderに通し、繋げてMLPに入力として入れています。そこから出力された画像Embeddingと、命令をCLIP Text Encoderを通した Text Embeddingと合わせて再びMLPに入力し、ある閾値を設定し2値ラベルで出力しています。

False Positiveを減らすために、Hindsight(後知恵)モデルを訓練しました。最初と最後の画像から予見器と同様にしてImage Embeddingを出力し、Text Embeddingと内積をとり可能性のある全てのスキルの確率分布を作成しました。ある閾値を上回ったらhindsightモデルを使用し、すべてのスキルのargmaxが予見タスクである場合、成功と予測しました。(この予見器とHindsightモデルの使い分けの部分あんまりわかってないです)

予見モデルとHindsightモデル(出典:[Inner Monologue](https://arxiv.org/pdf/2207.05608.pdf)のFigure7 )
予見モデルとHindsightモデル(出典:Inner MonologueのFigure7 )

環境からのフィードバック: Passive Scene Desctiption

大規模言語モデルが直接質問をし、人間からフィードバックを受けるケーススタディを行いました。 各ステップ後、モデルは、次の行動にすすむ"and continue" か、人間に質問する"and ask"のいずれかを選択します。モデルが提案する質問は表現の自由度が高いものになりました。以下が人とモデルのインタラクションの例になります。

Inner Monologueの対話例(出典:[Inner Monologue](https://arxiv.org/pdf/2207.05608.pdf)のListing3 )
Inner Monologueの対話例(出典:Inner MonologueのListing3 )

実験と結果

SayCanと同じキッチン環境とタスク定義を使用したロボットシステムを使用しました。Everyday Robotというモバイルマニピュレータを使用しています。SayCanはLLMと基礎的な制御ポリシーの価値関数を組み合わせて、実世界での計画を立てる手法で、SayCanでは大規模言語モデル単体の予測にフィードバックは与えられていません。1) 4つの操作タスク, 2) 引き出しを利用した2つの操作タスク, 3) 2つの組み合わせタスク の3つで120の評価を行いました。また、ロボットの動作途中に人間が物体を動かすなどの妨害を加えた場合の検証も行ないました。

キッチン環境・実機での再配置タスク(出典:[Inner Monologue](https://arxiv.org/pdf/2207.05608.pdf)のTable3 )
キッチン環境・実機での再配置タスク(出典:Inner MonologueのTable3 )

上の表から、SayCanは妨害があると性能が著しく下がること、Inner Monologueは大規模言語モデルに、成功/失敗や物体の存在に関するフィードバックを組み込むことで、成功率を高められること、がわかります。

失敗を含めたケースの一覧(出典:[Inner Monologue](https://arxiv.org/pdf/2207.05608.pdf)のFigure4 )
失敗を含めたケースの一覧(出典:Inner MonologueのFigure4 )

創発的な能力

Inner Monologueはプロンプトで与えられた例以上の推論と再計画行動を示したと述べています。以下が論文中で挙げられているものです。

・人間がタスク途中で高レベルの目標を変更するよう指示した場合でもそれに対応できました。また、人間が「やめてください」というとプランナがシナリオの中に一般化しアクションの完了を受け取ることができます。

・いくつかのブロックの中にとても重いブロックを紛れ込ませ、ロボットが持ち上げられないような状況でも他のブロックにターゲットを切り替えることができました。

・命令を中国語で入力しても英語に変換して計画することができました。

・人間の指示介入などによりフィードバックの順番が変わっても対応できるロバストなプランナの特性を示した

・誤字脱字に対してロバストでした。

Limitation

1)成功検出、2)大規模言語モデルの計画エラー, 3)制御のエラー の3つの失敗の可能性があります。

例えばfalse positiveな成功検出により把持失敗したはずの物体を掴んだと認識したり、大規模言語モデルプランナーが存在しない物体を含む提案をするケースもありました。

まとめ

この研究では、いくつかの追加のフィードバックループを通して言語指示による多段階タスクをロボットに行わせることを報告しました。

SayCanが出たりこの論文が出たり、直近だとRT-1が発表されたりで、大規模言語モデルとロボットの関係がめっちゃ進んでる(主にGoogleとかOpenAIとかNvidiaとか)2022年ですが、ロボットAIが社会に実装される日が楽しみですね。

この研究が気になった方はInner MonologueのWebsiteをご覧ください。動画もたくさんあるのでそちらをみると直感的に何やってるかがわかりやすいです。

石本 幸暉
石本 幸暉

My research interests include robotics and rotot intelligence.