5.1K Views
October 23, 23
スライド概要
GPT-3やChatGPTに代表される大規模言語モデルは,様々なタスクで汎用的に高い性能を示し,自然言語処理のみならず様々な領域での応用が広がっている.本稿では,大規模言語モデルをロボット制御の模倣学習に活用し,その学習効率やサンプル効率の向上への寄与について検証を行う.実験では,RLBenchというベンチマークデータセットを用いて,提案手法の有効性を検証する.複数のタスクを学習する際に,大規模言語モデルへのプロンプティングを活用して,タスクを解く手順を説明するテキストを生成し,それをサブゴールとして用いることで,学習効率や汎化性の向上を図る.
[2O1-GS-8] ロボットと実世界 大規模言語モデルを補助に用いた 言語指示ロボット学習の タスク汎用性の分析 高城 頌太,谷口 尚平,中野 聡大,岩澤 有祐,鈴木 雅大,熊谷 亘,谷中 瞳,松尾 豊 東京大学大学院 2023/6/7 2023年度 人工知能学会全国大会(第 37回) 1
研究背景:ロボット学習とその課題 近年のロボット制御の学習 ● ロボット制御を強化学習や模倣学習を用いて学習させる 例:モノを動かす・つかむなど ● 一般的に、ロボットに効率的に学習させるのは困難 (人間の学習より非効率) ○ 事前知識がなくタスクごとに最初から https://ai.googleblog.com/2018/06/scalable-d eep-reinforcement-learning.html 学習させなければならないため Q. 効率的に学習するために言語などの補助情報を活用できないか? 2
研究背景:言語情報を組み合わせたロボット学習 ロボット学習における言語の活用例: ● ● ● ● ➜ 制御動作を生成するための原始的な言語命令の生成(タスクに続く命令) 制御方針の学習のための言語情報に基づく報酬関数学習 言語でタスク指示を行う強化学習(language-conditioned RL) ロボット行動の修正または適応 大規模言語モデル(LLM)を使って、「常識」を活用するアプローチが 近年注目されている 3
先行研究①:RLBench RLBench: The Robot Learning Benchmark & Learning Environment (James, et al. IEEE Robotics & Automation Letters2020) ● ● ● ● 単腕ロボット制御のベンチマーク 100種類のpick-and-placeタスク 言語によるタスク説明がついている デモデータの生成も可能 ○ 模倣学習にも使える James S, Ma Z, Arrojo DR, Davison AJ. RLBench: The Robot Learning Benchmark & Learning Environment. arXiv e-prints, art. arXiv preprint arXiv:1909.12271. 2019 Sep. 4
先行研究②:Hiveformer Instruction-driven history-aware policies for robotic manipulations (Guhur, et al. 2022) ● ● ● 模倣学習を用いてRLBenchのマルチタスク学習を行っている タスクの説明文(人間がタスクごとにn個作成したもの)を入力としている 今回はこれをベースとする Guhur, P.-L., Chen, S., Garcia, R., Tapaswi, M., Laptev, I., and Schmid, C.: Instruction-driven history-aware policies for robotic manipulations, in CoRL (oral) (2022) 5
先行研究③:ATLA Leveraging Language for Accelerated Learning of Tool Manipulation (Ren, et al. CORL2022) ● ● 用いるツールについての説明文を GPT3を用いて生成 説明文を加えることで未知ツール へ の汎化がうまくいくことを示している Ren AZ, Govil B, Yang TY, Narasimhan K, Majumdar A. Leveraging Language for Accelerated Learning of Tool Manipulation. arXiv preprint arXiv:2206.13074. 2022 Jun 27. 6
先行研究の課題 ● ロボット学習において、膨大な事前知識をもつLLMの活用は有望だが、 現状の活用方法は限定的 ○ ○ ➜ 「対象物体の形状を説明させる」といった単純なものが多い 制御方策の獲得そのものを直接的に補助するものにはなっていない タスク達成のための手続き自体をLLMに説明させることはできないか? 7
目的 ロボット制御の学習において 1. 「物を掴んで所定の場所に移動させる」などの構成的な制御タスクを 2. 大規模言語モデルにタスクを解く手続きを説明させることで 3. 学習効率を向上させる 8
実験方針・実験設定 RLBenchのPut-rubbish-in-binタスクを用いる 1. 2. ゴミをつかむ ゴミ箱に移動させる という段階的な制御が必要で,スクラッチで 学習するのが難しいタスク 9
提案手法の概要 タスク文と初期状態の情報を用いてChatGPTにプロンプティングを行う 生成されたinstructionをHiveformerのLanguage Encoderの入力とする 10
プロンプティング:課題 単純に「タスクの解き方」を聞くだけ では不十分 ● ● ● 不要な情報が多い stepごとの文が長い step数が一意に定まらない 不要 不要 など 数を固定したい 不要 11
プロンプティング:工夫点 ● ● ● ● 4 stepsと明記(Hiveformerの step数と一致させる) 短く,情報量が多く,簡潔な instructionを生成させる State情報(各物体の位置 情 報)を渡す “Instruction: ”に続く形で生成 12
プロンプティング: 実際のプロンプト例 What are the 4 steps for the robotic arm to place the rubbish in the bin? The instructions must be short, informative, and concise. Please give me the coordinates of where to move it. Coordinates are given by (x, y, z). State: bin (0.10, 0.21, 0.85), rubbish (0.23, -0.30, 0.77), tomato1 (0.22, -0.15, 0.78), tomato2 (0.16, -0.02, 0.78) Instruction: 1. Move the robotic arm to the position of the rubbish: (0.23, -0.30, 0.77) 2. Grip the rubbish with the gripper on the robotic arm. 3. Move the robotic arm to the position of the bin: (0.10, 0.21, 0.85) 4. Release the grip on the rubbish. 13
比較手法:baseline, fixed instruction baseline: put rubbish in bin fixed instruction: 1. Position the arm above the rubbish. 2. Use the arm's gripper to pick up the rubbish. 3. Move the arm to the bin. 4. Release the rubbish into the bin by opening the gripper. 14
比較手法: variable instruction variable instruction: 1. Move the arm to the position of the rubbish: (0.22, 0.12, 0.77) 2. Grasp the rubbish with the arm's gripper. 3. Move the arm to the position of the bin: (0.26, -0.26, 0.85) 4. Release the rubbish into the bin. 15
実験結果:タスクの成功率 ● ● 学習過程におけるタスクの成功率 提案手法が一番早く高い成功率を達成 16
実験結果:マルチタスク学習での結果 ● 9つのタスクを同時に学習 ○ take_usb_out_of_computer,turn_oven_on,close_microwave,lamp_off,close_drawer,turn_ta p,basketball_in_hoop,slide_block_to_target,wipe_desk ● 各タスクで共通構造があればInstructionを追加することによって,学習効率が向上 する ● baseline, fixed instructionについて比較 17
実験結果:マルチタスク学習での結果 ● close drawer, close microwave等は提案手法の方が20%程成功率が向上した take usb out of computer lamp off turn oven on close drawer close microwave turn tap 18
実験結果:マルチタスク学習での結果 ● 他のタスクでは大きな差は見られなかった basketball in hoop slide block to target wipe desk 19
実験結果:マルチタスク学習での結果 ● close drawer, close microwave等は提案手法の方が20%程成功率が向上した ○ ● 一方で,他のタスクでは大きな差は見られなかった 失敗した例を観察すると,instructionでは表現できない部分で失敗 1. Move the robotic arm to the block. 2. Move arm to slide block to target location. 20
考察・分析 ● Instructionの効果があるタスクとないタスクが見られた ● step by stepのinstruction自体は動作としては,おおよそ達成できている ○ しかし,細かな部分で失敗している ○ ex. 「ドアノブを掴む」というstepで掴むような動作はできているが,あと少しの ところで掴み損ねている等 ● また,各ステップが成功 or 失敗しているかが判定できていないため,あるstepで失 敗するとその後のstepが必ず失敗する 21
今後の方針 ● 明示的に各ステップごとにinstructionを与えてサブゴールを途中で変更できるアー キテクチャに変更 ○ 閉ループ的に制御できるようにする ● 環境とのインタラクションによって,失敗した動作の軌道から後付けでinstructionをラ ベリングを行う ○ 最初に生成したinstructionでは不十分であった部分をラベリング ○ どのように失敗したかを考慮してinstruction情報をアップデート 22
Appendix 23
①Closed-loopでのアーキテクチャの変更(Option) 24
②言語のラベリングによる失敗データセット作成(Option) ● 失敗した動作の軌道から後付けでinstructionをラベリング r: reward, i: instruction, s: state, a: action 25
想定問答集① Q. chatGPTによるランダム性についてどのように対処しているか (chatGPTはseedを固定することができない) A. 現在の実験ではランダム性について完全に対処しきれていない chatGPTのAPIが公開されたので,追加検証する必要あり Q. Langage Encoder, Image Encoderには何を用いているのか A. Langage EncoderはCLIP, Image EncoderはCNNを用いて学習 Q. 座標情報はどのように取得しているのか A. 本来ならば,画像から座標を推定してそれを渡す方が良いが簡単化のため シミュレータから直接取得(Oracle情報)している 26
想定問答集② Q. SayCanのような高レベルの方策をLLMで推論する先行研究があると思うが それとは何が違うのか A. そのような研究では低レベルの方策は事前に学習し,高レベルの方策だけをLLMの 事前知識を用いて推論している.しかし本研究では低レベルの方策に関してLLMの 事前知識を用いて学習の効率化を図ることに着目している. Q. 他のプロンプトはどのようなものが考えられるか A. 座標だけではなく,相対的な位置関係や物体の色などの情報を加えること を考えている. Q. 提案手法の図では直接画像を入れてるように見えるがどうなっているのか A. 環境から得られた座標を入力している 27
実験結果:アームの位置に関する指標 ロボットアームの位置に関するmetrics(正解との誤差が一定以下で1, その他は0) 28
実験結果:アームの回転に関する指標 ロボットアームの回転に関するmetrics(正解との誤差が一定以下で1, その他は0) 29
背景 ● ● ● 背景 ○ planningとしてLLMを使用してる研究はある(say-canなど) ○ しかし,low-levelのポリシーは事前に用意する必要がある. 目的 ○ 構成論的なタスクにおいて,low-levelなpolicyをLLMの事前知識を用いて効 率的に学習したい 提案手法 ○ LLMを使用してstep-by-stepのinstructionを生成 ○ さらにエキスパートデータだけでなく失敗データを作成してそこから言語をラベ リング ○ このデータから効率的に学習できる手法を提案 30