VLA-Δ: ロボットに「何が変わるべきか」を教える方法

動作をコピーして再生するだけで、空のグリッパーのまま棚へ向かうロボット。動作ではなく状態の「物理的な変化」を学習目標に据え、この問題に狙いを定めた研究。
← 목록으로
온
온틀 리서치
2026년 10월 19일 読了 14分 閲覧 0

ロボットに「コップをつかんで棚に置いて」と指示する。カメラで場面を見て、言葉による指示を受け取り、アームとグリッパーを動かさなければならない。このように映像(Vision)と言語(Language)を受け取って動作(Action)に変換するモデルをVLAと呼ぶ。三つの頭文字をそのままつなげた名前だ。

ところが、この種のモデルにはよく見られる失敗がある。コップをつかみ損ねる。それなのにロボットは空のグリッパーを持ったまま棚へ向かう。手に何も持っていないのに、置く動作まで完了させてしまう。いま場面がどう変わったかを見ておらず、学習時に見た動作の順番をそのまま巻き戻して再生しているのだ。

VLA-Δは、ここに別の学習目標を立てる。観察を動作に直接ひも付ける代わりに、いまの状態と次の状態の「あいだの差(difference)」——何がどう変わるべきか——を教える。タイトルのΔ(デルタ)が、この変化量を指している。

この研究が狙うのは操作性能だ。状態変化を学習させて、タスクの成功率を引き上げる。失敗を自分で気づいて元に戻す「復旧」能力の立証は、範囲の外にある。この区別は結果を読むあいだずっとついて回るので、あらかじめ書いておく。

動作を当てる vs 状態変化を当てる

VLAの設計はシンプルだ。映像と「引き出しを開けて」といった指示を受け取り、あらかじめ学習されたビジョン・言語モデル(VLM、画像と文章をあわせて理解するように学習されたモデル)の知識を借りて関節動作に変換する。ベンチマークのスコアはすでに高い。問題は、間違え方のほうだ。目標に届く前にグリッパーを閉じたり、つかみ損ねたのに置き場へ移動したりする。どちらも、場面がどう変わりつつあるかを読めていない姿だ。

ここで学習目標の違いが分かれる。たいていのVLAは「この観察にはこの動作」というペアを当てるように学ぶ。観察と実演された動作を直接対応づけるだけで、そのあいだに起こるべき物理的な状態変化は教えない。だから場面と動作の組み合わせにだけ張りつき(過適合)、場面が少しでもひねられると崩れてしまう。VLA-Δはペアを当てる代わりに、「いまから次へ、何が変わるのか」を当てるように学ぶ。

中間の過程を扱った研究がなかったわけではない。論文は既存の流れを三つの系統に整理する。

  • 推論型VLA(ECoT系):動作の前に「次に何をするか」という計画と物体の位置を言語で先に検討する。この推論(思考の連鎖、chain-of-thought)は高レベルの計画とおおまかな位置にとどまる。何をするかは語っても、物体とロボットの物理状態がどう変わるかは語らない。
  • ワールド・アクション・モデル(WAM):未来の場面を画像として描いて変化を捉える。視覚のディテールは緻密だが、未来の画像を復元する作業は見た目を合わせることに偏り、「どの変化がタスクに不可欠なのか」は押さえられない。画像を生成するぶん推論コストもかさむ。
  • 潜在WAM(Latent-WAM):未来予測を潜在空間へ移して復元コストを下げる。それでも扱うのは「未来の視覚状態」にすぎず、物理状態や接触信号とは結びつかない。

既存のアプローチは、高レベルのタスク意味か、未来の見た目を教える。肝心の、物体の姿勢・空間関係・ロボットと物体の接触が、いまから次へどう変わるのか——物理的な状態遷移そのもの——は、なかなか教えない。ロボットが取る動作を実際に規定しているのは、この変化だ。ここがVLA-Δが切り込むすき間である。

核心アイデア:変化を収めるクエリ

VLA-Δの中心には、物理状態差分クエリ(Physical State Difference Queries)がある。クエリとは、動作を決めるのに必要な変化の情報を収めるよう学習される数値の束だ。最初は空の器だが、学習が終わるとその中に「いまから次へ、何が変わるのか」が圧縮して収まる。

コップをつかんで棚に置く場面で見てみよう。ロボットはいまの画面とグリッパーの状態を観察する。クエリはその観察と指示を条件に変化の情報を汲み上げ、動作はその変化の情報を見て決定される。観察 → 変化 → 動作。真ん中に変化が一コマ挟まるのが肝だ。

では、クエリに何を収めるよう訓練するのか。この研究は「コップがいまどこにあって、グリッパーが触れたか」といった変化を、三つの方式で記録させる。

  • 状態の項目として記録する:タスクの進捗度、目標位置、グリッパーの状態、接触の有無といった情報を、項目ごとの数値として書き込む。
  • 画面の動きとして記録する:いまの画面と次の画面のあいだで、コップと手がどの方向へどれだけ動いたかをピクセル単位で書き込む。
  • 文章で説明する:「コップがグリッパーにつかまれて棚のほうへ移動する」のように、変化を自然言語で記述する。

三つの方式は、同じ変化をそれぞれ別の言語で書き取る。だから一つの方式が取りこぼすものを、別の方式が補う。画面の動きはコップと手がどこへ行ったかを教えてくれるが、グリッパーがコップを実際に握ったかは分からない。握らなくても、コップと手が並んで滑ることがあるからだ。状態の項目は握ったかどうかは教えてくれるが、その握りが目標に近づく握りなのかは分からない。文章の説明は目標に向かう進行の方向は与えてくれるが、いまの画面の具体的な動きは空白のままだ。三つを並べれば、コップの位置・グリッパーの接触・目標への進行が、一つのクエリの中で互いを補い合う。

設計には、もう一つ仕掛けがある。変化の情報を作る通路が、元の映像と指示には直接触れられず、クエリだけを経由するよう道を狭めた。観察の情報が変化の説明に使われるには、必ずクエリを一度通らなければならない、という意味だ。通り道を狭めると、三つの方式の信号がクエリの中へ押し寄せ、クエリは変化を収めるよう自然に学習される。

運用上もっとも重要な判断は、この三つの記録を事前学習のときだけ使うという点だ。タスクに合わせて微調整(ファインチューニング)するときは、動作目標ひとつだけを最適化する。タスクごとに変化の注釈を新たに付ける必要がない、という意味だ。デプロイのときも、変化情報の抽出と動作生成の経路だけが残り、補助目標は計算しない。だから推論コストが増えない。未来の画像を毎回描かなければならなかったWAM系の弱点を、ここで避けている。

学習目標を変えると何が変わるか

性能がどこから来たのかは、アブレーション実験(ablation、要素を一つずつオンオフして寄与を測る実験)が分ける。40個のLIBEROタスクが基準だ。

構成 LIBERO平均(%)
高密度VLM特徴(事前学習なし) 95.70
高密度VLM特徴 + 事前学習(動作のみ) 95.85
差分クエリのみ(事前学習なし) 96.25
差分クエリのみ + 事前学習(動作のみ) 96.45
クエリ + 差分テキスト 97.20
クエリ + 構造化スロット 96.90
クエリ + オプティカルフロー 97.35
VLA-Δ(全体) 98.40

同じデータを動作監督だけで使うと、改善幅はほとんどない(95.70→95.85、96.25→96.45)。一方でクエリ機構を入れると、ベースラインより0.55%p上がる(95.70→96.25)。この比較は、性能を動かしたのが「データをより多く見た」ことではなく「何を教えたか」であることを示している。三つの記録をすべて足した全体構成が98.40%で最も高い。

ひとつは線を引いておく。表が直接示したのは「三つの記録を足すと成功率が上がる」ところまでだ。先に説明した「各記録が互いの死角を補う」は、その数値に対する解釈である。両者を重ねて一つの証明のように読むと、数値が支えきれない主張になってしまう。

性能:基礎から実機まで

評価はシミュレーターと実機の両方で、タスク成功率を主指標とした。代表的な結果だけを抜き出す。

基本遂行(LIBERO)。 LIBEROは四つのセット(Spatial・Object・Goal・Long)で基本操作を見る。VLA-Δ(2B)は平均98.4%で、表に載ったすべての比較手法を上回った。openVLA-OFTのような7B級(97.1%)より小さい体格で収めた数値だ。

環境を揺さぶると(LIBERO-Plus・RoboTwin 2.0)。 LIBERO-Plusは同じタスクに言語・照明・背景・配置の四つの外乱をかけ、学習時に見ていない状況を試す。四つの外乱全般で高い成功率を保ち、言語外乱では89.0%と、比較対象の82.6%より6.4%p高かった(この比較は言語という一条件の数値だ)。RoboTwin 2.0は場面をランダムに揺さぶる。クリーンな設定で90.06%、ランダム設定で89.74%と、どちらも比較手法を上回った。注目すべきは下がり幅だ。クリーンからランダムへ移るとき、平均の低下が0.32%pにとどまった。同じ移行で、もっとも強いベースラインZR-0は0.72%p、Motusは1.50%p下がった。状態変化を明示的に教えた方向とかみ合うが、この対応は著者らの解釈であって、タスクの特性とスコアのあいだの相関を超えた因果ではない。

実機(AgileX PiPER)。 AgileX PiPER 6-DoF双腕ロボットで、五つのタスク(障害物回避・長期遂行・精密操作・空間推論・環境変化への汎化)をそれぞれ40回ずつ、計200回まわした。平均68.0%で、緑の基準となる比較モデルπ0.5より5.5%高かった。障害物回避で42.5%と最も高かったが、著者らはこれを、変化記述に含まれる「避けるべき障害物・守るべき関係」の部分と結びつけている。

成功率が測れないことも書いておく。成功率は「終えたか」という二値の結果だけを収める。動作が滑らかか、軌道に安全余裕を取ったかは入ってこない。シミュレーターと実機の成功率のあいだの隔たりもそのまま残り、著者らが実機200回を別に回した理由はここにある。成功率が上がったということと、ロボットが失敗に気づいて復旧したということは同じではない。先に置いた留保が、ここでも有効だ。

ONTLEの視点:差し戻された発注一件

ロボットの論文だが、業務エージェントを運用する側にも移せる点がある。この研究から得られる設計上の問いはこれだ——業務でも、行動ではなく状態変化を明示できるか。

ONTLEのAI PMが、小企業の在庫補充を反復代行するとしよう。毎日在庫を照会し、しきい値を下回った品目で発注書を作り、サプライヤーのポータルに入力し、社内の帳簿を更新する。よくある構築のやり方は、「この画面が見えたらこのボタン」という入力→行動のマッピングを実演で学習させることだ。

問題は、発注が途中で差し戻されるときだ。エージェントは差し戻し画面を読めず、覚えた次のステップへ直進する。差し戻された発注を受付済みとみなして帳簿を更新してしまう。つかみ損ねたのに棚へ向かうロボットと、同じ場所で滑ったのだ。

この論文から借りる原則はひとつ。ステップとステップのあいだの「期待される状態遷移」を明示的な変数として持ち、画面ではなく、その遷移が実際に起きたかどうかを見る。

ここから先はONTLEが提案する別個の運用設計であって、論文が実装した内容ではない。発注ステップなら、期待状態を先に書く。「対象品目が未発注から発注受付へ変わり、受付番号が生まれ、サプライヤー確認が待機に立つ。」次のステップへ進む前に、この遷移が実際に起きたかを確認する。食い違えば直進せず、止まるか元に戻す。このとき、論文のコスト原則——重い状態学習は事前に寄せ、実行は軽く——も一緒に持ち込む。実行中に一ステップごとに冗長な推論をさせれば、遅くて高くつくからだ。ただし実行中の確認と復旧は、論文が扱った性能向上の範囲を超えた、ONTLE側の設計提案であることを、あらためて明記しておく。

この設計は測定できる。発注が差し戻された画面をわざと混ぜ込み、状態確認の仕組みを入れる前と後で二つの数字を比べる。誤った帳簿更新の比率、そして一件あたりの処理時間。比率が下がり、時間が過度に伸びなければ、このつながりは当為ではなく測定として立つ。

付録:実装の詳細

三つの記録の実装仕様

構造化遷移スロット(Structured Transition Slots)はタスク関連の状態変数を九つのカテゴリに分け、それぞれに予測目標を付ける:タスク進捗度、タスク段階、目標位置、グリッパー位置、運動・相対変位、インタラクション可能位置、グリッパー状態遷移、接触遷移、障害物リスク。カテゴリごとに軽量な予測ヘッドが該当クエリを読んで値を出す。

高密度オプティカルフロー(Dense Optical Flow)は、同じ視点でいまと次の観察のあいだの2次元の動きをピクセル単位で教える。損失は全ピクセルの平均誤差と、動きがしきい値を超えた「運動ピクセル」の誤差を合わせて使う。

未来状態差分テキスト(Future-State Difference Text)は、いまと未来のあいだのタスク進行、空間変化、接触遷移、守るべき物理制約を自然言語で記述し、VLM本来の次単語予測(自己回帰)の目的関数で学習する。

動作生成はGR00T N1の構造に従う。バックボーンはQwen3-VL-2B-Instruct、動作エキスパート(action expert)は9層のDiffusion Transformerだ。動作エキスパートは変化の情報をクロスアテンションで受け取り、別途エンコードしたロボット姿勢感覚(proprioception)と合わせ、フローマッチング(flow matching)でノイズを連続動作に変える。

スロットがなぜ役立つのか — 内部状態の観察

九つのスロットは七つの固定クエリグループを使う(タスク進捗度・段階はG12を、グリッパー状態・接触遷移はG78を共有)。構造化監督を受けたクエリの内部状態をt-SNEで2次元に広げると、グループごとにくっきりした塊をなし、監督がなければ散らばる。クエリに役割を割り振った設計が実際に機能しているという信号だ。

事前学習データと注釈パイプライン

事前学習データは約484時間、2,400万フレーム規模で、DROID・MolmoAct・RH20Tから集めた。VLMはZR-0 baseの重みから始めた。状態変化の注釈は人が一つひとつ付けたわけではない。すべてのソースをLeRobot v3の軌跡フォーマットに統一 → Qwen3.8で映像を操作段階(接近・整列・把持など)に分割してキーフレーム・意味ラベルを生成 → SAM 3で対象物体・グリッパー・障害物の境界ボックスと分割マスク → UniDepth V2で深度推定 → MegaFlowでオフラインのオプティカルフロー。品質管理は自動検査(フォーマット誤り・時間のずれ・座標の異常・物体同一性の不一致・深度の異常)を経て、複雑だったり衝突したりする注釈はGPT-5.6が視覚的証拠と照合してフィールド単位で検討し、最後に層化標本による手動監査を置く。自動でありながら、検査なしで流してしまう構造ではない。この重い注釈を事前学習の一回に寄せ集め、タスクごとに付け直さなくて済むようにした。

参考資料