ロボット工学の世界には、コンピュータが理解できることと、実際に実行できることの間に存在する、根強い隔たりがあります。長年、科学者たちはロボットに動きの言語を教え込み、強力な人工知能モデルに新しい専門的な運動コマンドの語彙を学習させることで、この溝を埋めようと試みてきました。このアプローチには膨大な量の訓練データを必要とし、しばるとロボットから推論能力を奪い、状況を理解するのではなく、特定の動作を暗記させる結果を招きます。より最近のアイデアは、ロボットに新しい言語を教えるのではなく、ロボットがすでに最も得意としている言語、すなわちコンピュータ・コードを話させるべきであると示唆しています。AIに、ロボットの動き方を指示する短いプログラムを書かせることで、AIの推論能力を損なわずに済むのです。しかし、この手法の大きな欠点は、ロボットが動き始める前にプログラムが一度だけ書かれるという点でした。もしロボットが掴み損ねたり、何かにぶつかったりしても、プログラムは盲目的に実行され続け、その間違いを最後まで引きずってしまうのです。
新しい研究は、VLCPと呼ばれるシステムを紹介しており、作業中に自らの指示を書き換えさせることで、そのルールを変えています。研究者たちは、凍結された(学習済みの)事前学習済み人工知能モデルが監督者として機能するフレームワークを構築しました。最初に一連のコマンドを送る代わりに、このシステムは50ステップごとに一時停止し、カメラやセンサーを通じてロボットの現在の状況を確認します。そして、今見たものに基づいて、次の50ステップを処理するための新しい短いPython関数をAIに書かせます。もし前のフェーズでロボットが物体を掴むことに失敗した場合、AIは画像の中からその失敗を察知し、アプローチを修正するための新しいコードを書き、同じ試行の中で再び挑戦します。これにより、単にロボлоットの動きを調整するのではなく、制御ソフトウェア自体がリアルタイムで編集されるという、クローズドループが作成されます。
研究者たちは、単純な物体のピックアップから、キッチンやリビングルームの設定における複雑な一連の動作に至るまで、57種類の異なるタスクを含むシミュレーション環境でこのシステムをテストしました。彼らは、この手法を、最初に一度だけコードを書き、二度と振り返らないバージョンのシステムと比較しました。その差は歴然でした。進行しながらコードを書き換えるシステムは35%のタスクに成功しましたが、当初の計画に固執したシステムはわずか3%しか成功しませんでした。この10倍の向上は、テストされたすべてのシーンにおいて同様に見られました。この成功の鍵は、ロボットが自分の間違いを見ることができたことだけでなく、その間違いを引き起こした指示そのものを変更できたことにあります。ロボットが物体を掴むことに当初失敗したケースの約30%において、システムはエラーを検知し、アプローチを書き換え、同じ試行の中で後にアイテムを持ち上げることに成功しました。コードを編集する能力がなければ、これらの失敗は決定的なものとなっていたはずです。
このプロセスが実用的であることを確認するため、チームはどれほどの計算能力が必要かを測定しました。AIは毎回ほとんど同じ背景情報を再利用しているため、システムは毎回ごく少量の新しいデータのみを処理すればよいのです。これにより、ロボットは動作が遅くなったりコストが高くなったりすることなく、一つのタスク中に約10回、停止して考え、指示を書き換えることができました。また、この研究は、この手法がロボットに特定のフレーズや指示を暗記させることに依存していないことも示しました。研究者がタスクの説明の言い回しを変更しても、システムの性能は安定していましたが、訓練データに依存していた他のモデルは、言語がわずかに変わるだけで大幅に苦戦しました。これは、システムが単にパターンを一致させているのではなく、真に目標を理解していることを示唆しています。
研究者たちは、自分たちの結果が実世界の部屋における物理的なロボットではなく、コンピュータ・シミュレーションによるものであることを注意深く明記しました。現在のシステムは、物体の位置に関する完璧なデジタル情報に依存しており、これは実世界のカメラでは必ずしも確実に提供できるものではありません。さらに、AIが新しいコードを生成する時間は、このアプローチが瞬時の反応を必要としないタスクに適していることを意味します。こうした制限はあるものの、この研究は明確な進むべき道を示しています。AIをコードの言語に留め、発生しているミスを自ら修正できるようにすることで、ロボットは何千もの人間のデモンストレーションによる再学習を必要とせずに、より有能になることができるのです。この研究は、ロボット制御の未来が、機械に新しい動き方を教えることではなく、学習しながら自らの計画を編集する自由を与えることにある可能性を示唆しています。
技術要約: VLCP (Vision Language Control Policy)
問題提起
最先端の視覚言語モデル(VLM)をロボティクスに導入する現在のアプローチは、通常、Vision-Language-Action (VLA) モデルに依存しています。これらは、事前学習中に遭遇したことのない低レベルなアクション・トークン(例:関節位置や特殊なモーター・トークン)を出力するために、事前学習済みのVLMをファインチューニングすることを必要とします。この適応プロセスは、モデル固有の推論能力を損なうリスクがあり、また大規模なデモンストレーション・データセットを必要とします。さらに、既存の「Code-as-Policy」手法は、実行開始前に制御コードを一度だけ生成します。そのため、実行中に失敗(例:掴み損ね)が発生した場合、これらのオープンループ・システムは、ポリシーが固定されているため、回復することができません。逆に、観測に対して反応する既存のクローズドループ手法は、多くの場合、タスクレベルまたは言語レベル(サブタスクの再選択や固定されたポリシーの再試行)で動作しており、失敗の原因となった基礎的な制御コード自体を書き換えることはありません。
手法
VLCPは、VLMを凍結(frozen)したまま、短期間のPython制御関数を生成する、トレーニングフリーのクローズドループ・フレームワークを提案します。核心となる革新は、単一のエピソード内で制御コードのレベルでループを閉じることです。
- Code-as-Policy表現: モーター・トークンを出力する代わりに、凍結されたVLMは、マルチビューRGB観測、固有受容状態、およびエンドエフェクタのヤコビアンを入力として受け取るPython関数
control(obs, J) を記述します。この関数は、シミュレータのPDコントローラへの関節位置ターゲットの辞書を出力します。
- クローズドループ再計画 (Closed-Loop Replanning): エピソードは K ステップ(デフォルト K=50)のブロックに分割されます。各ブロックの開始時に、現在の状態に基づいて新しい制御関数を生成するためにVLMが呼び出されます。
- 観測: VLMは、同期されたマルチビューRGB画像、数値状態(エンドエフェクタのポーズ、関節位置、オブジェクトのポーズ)、および明示的な状態デルタを受け取ります。
- 書き換え (Rewrite): 前のブロックが失敗した場合(例:把持の試行が失敗した場合)、VLMは新しい画像内の失敗の兆候を観察し、次のブロックに向けてアプローチを修正するように制御関数を書き換えます。これにより、エピソード間だけでなく、エピソードの「最中」に回復が可能になります。
- スキル・ライブラリ: 再計画中に生成されたヘルパー・モジュール(スキル)は、共有ディスク・ディレクトリに保存されます。これらは、後続の再計画(同一エピソード内およびエピソードを跨いで)において、システム・プロンプト内にそのまま再注入されます。これにより、ファインチューニングを行うことなく、ポリシーがスキルを蓄積し再利用することが可能になります。
- プロンプト・エンジニアリング: プロンプトはトークン・キャッシュを最大化するように構造化されています。これには、静的なプレフィックス(ドキュメンテーション、API、例)、動的なスキル・ライブラリ、およびコンテキストの切り捨て(truncation)を回避する「ゴール・ピン(目標の固定点)」(タスク記述)が含まれます。コンテキストの肥大化を防ぐため、画像はライブ・ユーザー・ターンにのみ含まれます。
主な貢献
- VLCPフレームワーク: ライブ観測と状態デルタに基づいて制御関数を書き換えるために、毎 K ステップごとに凍結されたVLMを再照会する、トレーニングフリーのクローズドループ操作システム。
- クロス・エピソード・スキル・ライブラリ: 再計画中に生成されたヘルパー・モジュールを永続化し、将来のプロンプトに再注入するメカニズムであり、再学習なしでのスキルの蓄積を可能にします。
- 制御されたアブレーション (The Loop): オープンループの退化したケース(K=T、VLMがエピソードごとに一度だけ照会される場合)との厳格な比較。これにより、シミュレータ、API、モデル、およびタスク・セットを一定に保ったまま、エピソード内の再計画ループによる貢献を分離・特定します。
- 定量化された回復: エピソード内での回復を直接測定し、システムがエピソードの途中で失敗した把持を検出し、修正できることを実証しました。
- 実現可能性分析: プロンプト・キャッシュングを介して計算コストが抑えられることを示し、高いキャッシュ・ヒット率を維持しながら、エピソードあたり約10回のVLM呼び出しのみで動作することを示しました。
結果
MuJoCo/RoboVerseにおける3つのシーン・ファミリー(Object Picks, Kitchen Scenes, Living-Room Scenes)にわたる57タスクのスイープで評価されました:
- 成功率: クローズドループのVLCP (K=50) は、プールされた成功率 35.1% を達成しました。対照的に、同一のシステムをオープンループ・モード (K=T) で実行した場合、わずか 3.5% でした。これは、すべてのシーン・ファミリーにおいて、重複しない95%信頼区間を伴う10倍の改善を表しています。
- 回復メカニズム: ログに記録されたトレースの分析により、失敗した把持の 27.3% がその後の再計画によって正常に回復されたことが明らかになりました。オープンループ版の回復率は、その構造上0%でした。
- 汎用性: 指示の言い換え(タスク指示のフレーズ変更)の下で、VLCPは安定した性能(オリジナルと変更後の両方で40.0%)を維持しましたが、ファインチューニングされたVLAベースライン(VLA-0)は、指示が言い換えられると特定のタスクで大幅な性能崩壊を示しました。
- 効率性: システムは中央値で84%の入力トークン・キャッシュ・ヒット率を達成しました。エピソードには中央値で10回の再計画呼び出しが必要であり、再計画あたりのレイテンシの中央値は18.8秒でした。生成された778個の制御ブロックはすべて、正常にパースおよびコンパイルされました(妥当性100%)。
意義と主張
本論文は、制御コードのレベルでループを閉じることが、ロボット操作における明確かつ効果的なフロンティアであることをVLCPが示していると主張しています。
- 推論の保持: VLMを凍結したまま、(モデルが流暢である言語である)コードを書かせることで、アクションのためにファインチューニングすることなく、モデルの事前学習による推論能力を保持します。
- 修正の所在: 著者らは、従来のメソッドが失敗するのは、固定されたポリシーを再試行したり、プランナーへとエスカレーションしたりするだけで、根本的な原因(制御コード)を修正していないからだと主張しています。VLCPは、エピソードの途中で失敗したアーティファクトを書き換える数少ない手法の一つです。
- トレーニングフリーの実行可能性: 結果は、ゼロ・デモンストレーションのトレーニングフリー・アプローチが、コードの書き換えを通じて自己修正が可能であれば、複雑な操作タスクにおいて強力な絶対的性能(35.1%)を達成できることを示唆しています。
- 継続的学習の基盤: クロス・エピソード・スキル・ライブラリは、再学習なしで能力が積み重なっていく、継続的学習への自然な経路を提供します。
著者らは、現在の実装がシミュレータから提供されるオブジェクト・ポーズに依存しており(知覚ノイズをバイパスしている)、VLMの推論レイテンシに制約されるため、高頻度のリアクティブな制御よりも、低速な操作タスクに適しているという限界についても認めています。彼らは、貢献は(生成された特定のプログラムではなく)「ループ」そのものであることを強調しています。
毎週最高の machine learning 論文をお届け。
スタンフォード、ケンブリッジ、フランス科学アカデミーの研究者に信頼されています。
受信トレイを確認して登録を完了してください。
問題が発生しました。もう一度お試しください。
スパムなし、いつでも解除可能。
週刊ダイジェスト — 最新の研究をわかりやすく。登録