Vision-Language-Action(VLA)モデルの多くは、画像・言語・行動を「同じトークン列」として扱い、次のトークンを1つずつ予測する自己回帰的な生成方式を採ってきた。Physical Intelligenceが2024年に発表したπ0(パイ・ゼロ)は、この自己回帰トークン化を使わず、条件付きフローマッチング(flow matching)によって連続的な行動チャンクを一括生成するという、VLAの行動生成方式そのものを変えたモデルである。この記事では、原論文「π0: A Vision-Language-Action Flow Model for General Robot Control」(Black, Brown, Driess他、Physical Intelligence、arXiv:2410.24164)の記述に基づいて、その仕組みを一つずつ検証する。
この記事は原論文(arXiv:2410.24164)およびPaliGemma論文(arXiv:2407.07726)の記述に基づいて構成している。
0. この記事で分かること
- π0がRT-2/OpenVLA型の自己回帰的VLAと何を変えたのか
- PaliGemma VLMバックボーンと、専用の「Action Expert」がどう併走しているか
- 条件付きフローマッチングによる行動生成の仕組みと、推論時のEuler積分
- 7種類のロボットにまたがる異種混合(クロスエンボディメント)学習の扱い方
- 事前学習(pre-training)とポスト学習(post-training)を分ける2段階レシピ
1. まず結論:π0とは何か
π0は、事前学習済みのVision-Language Model(PaliGemma)に、連続的な行動チャンクを条件付きフローマッチングで生成する専用の「Action Expert」を統合した、汎用ロボット制御モデルである。単一のネットワークが、カメラ画像・自然言語指示・ロボットの関節状態を入力として受け取り、50ステップ先までの行動列を一括で出力する。7種類の異なるロボットプラットフォームにまたがるデータで事前学習されており、ゼロショットでも一定のタスクをこなせるほか、少量のデータでのファインチューニングによって新しいタスクへ適応できる設計になっている。
2. なぜフローマッチングによる行動生成が必要なのか
RT-2やOpenVLAに代表される初期のVLAは、連続的な行動値(関節角度や速度など)をあらかじめ決めた区間に離散化し、言語モデルの語彙の中の未使用トークンに割り当てることで、画像・言語・行動のすべてを「同じトークン列」として扱う。この方式は実装がシンプルである一方、2つの限界を抱えている。1つは、行動を1トークンずつ逐次生成する自己回帰の性質上、高頻度・高次元な行動列の生成が遅くなりやすい点である。もう1つは、離散化そのものが行動空間を粗く近似するため、滑らかで精密な動作(布をたたむ、液体を注ぐといった変形物体・接触の多いタスク)を表現しにくい点である。
π0はこの2点に対する回答として、行動をトークン化せず、拡散モデルの一種であるフローマッチングによって、50ステップ分の連続的な行動チャンクをまとめて生成する設計を採った。原論文は、この設計が「最大50Hzという高頻度の行動チャンクと、高度に器用なタスクを扱える」ことを狙いとして明記している。
3. 入力は何か
π0への入力は、次の3種類から構成される。
- 画像 o_t: 複数のカメラ視点からのRGB画像(構成によって最大3視点)
- 言語指示: 「シャツをたたんで」のような自然言語のタスク記述
- プロプリオセプション(固有受容感覚) q_t: ロボットの関節角度などの状態ベクトル
これらをまとめて観測 o_t = [I_t^1, \dots, I_t^n, \ell_t, q_t] として扱う。ロボットの構成によってカメラ台数や関節自由度が異なるため、後述するように、次元をそろえるパディングとマスキングの処理が必要になる。
4. 何を求めるのか/出力は何か
出力は、現在時刻から先の H=50 ステップ分の行動を束ねた行動チャンク A_t = [a_t, a_{t+1}, \dots, a_{t+H-1}] である。1ステップごとに1つの行動を生成する自己回帰方式と異なり、π0は行動チャンク全体を一括で生成する。この行動チャンクをフローマッチングというメカニズムで生成する、というのがπ0の核心のアイデアである。
5. 基本構成
π0のアーキテクチャは、事前学習済みのVLM(PaliGemma)と、行動生成に特化した小型の「Action Expert」という、2つのTransformerを同じ層で併走させる設計になっている。
図1 — PaliGemma(画像・言語)とAction Expert(状態・ノイズ行動)は別々の重みを持ちながら、同じTransformer層をブロックワイズ因果注意で共有する。Action Expertが出力する速度場を10回のEuler積分で積み重ね、50ステップ分の行動チャンクを一括生成する。
6. 構成要素の技術詳細
PaliGemmaバックボーンとAction Expert
π0のVLMバックボーンには、Googleが2024年に発表したPaliGemma(SigLIP-So400mビジョンエンコーダとGemma-2B言語モデルを組み合わせた3BパラメータのVLM)がそのまま初期値として使われている。これにインターネット規模の事前学習で得られた視覚・言語知識を、ロボット行動の生成に転用するという狙いがある。
π0はこのPaliGemma(約3Bパラメータ)に加えて、行動生成専用のAction Expert(約300Mパラメータ)という、幅(width)1024・MLP次元4096の小さめのTransformerを追加している(PaliGemma側は幅2048・深さ18層・MLP次元16384)。合計でπ0全体は約3.3Bパラメータになる。
重要なのは、この2つが完全に独立した2つのネットワークとして並列に動くのではなく、同じTransformer層を共有しながら、トークンの種類に応じて異なる重み集合を使うという設計になっている点である。画像・言語トークンに対応する重みはPaliGemma側、状態・ノイズ行動トークンに対応する重みはAction Expert側が担当し、両者は同じ層のブロックワイズ因果注意(blockwise causal attention)を通じて情報をやり取りする。行動トークン同士は互いに双方向に注意を向けられるが、未来の情報を先読みすることはできない、という制約が課されている。この構成は、Mixture-of-Expertsに近い発想で、離散的な言語出力(交差エントロピー損失で学習)と連続的な行動出力(フローマッチング損失で学習)という異なる性質の出力を、1つのモデルの中で両立させる工夫だと理解できる。
条件付きフローマッチングによる行動生成
π0の行動生成は、拡散モデルの一種である条件付きフローマッチングに基づく。学習時には、まず実際の行動チャンク A_t とガウスノイズ \epsilon \sim \mathcal{N}(0, I) を、時刻パラメータ \tau \in [0,1] に沿って線形に混合し、ノイズを含む行動 A_t^\tau を作る。
このとき、A_t^\tau を真の行動 A_t に近づけるために辿るべき方向(目標ベクトル場)は、次のように定義される。
Action Expertは、観測 o_t とノイズ行動 A_t^\tau から、この目標ベクトル場を予測するネットワーク v_\theta(A_t^\tau, o_t) として学習される。損失関数は、予測した速度場と真の目標ベクトル場との二乗誤差である。
推論時には、純粋なノイズ A_t^{\tau=0} = \epsilon から出発し、予測された速度場に沿って \tau=0 から \tau=1 まで、前進オイラー法(forward Euler)で積分することで、最終的な行動チャンクを組み立てる。
原論文では \delta = 0.1、すなわち10回の積分ステップで \tau=0 から \tau=1 まで到達する設定が使われている。RT-2/OpenVLA型の自己回帰トークン生成が「行動チャンクの長さ分だけ逐次デコードを繰り返す」のに対し、π0は「10回の反復更新で行動チャンク全体を同時に洗練していく」という、生成の繰り返し回数がチャンク長に依存しない設計になっている点が実用上の速度面での違いになる。
クロスエンボディメント学習 — 異なるロボットをどう1つのモデルで学習するか
π0の学習データは、UR5e、双腕UR5e、Franka、双腕Trossen、双腕ARX・AgileX、モバイルTrossen・モバイルARX、モバイルFibocomという、7種類の異なるロボットプラットフォームにまたがる。カメラ台数は2〜3台、自由度は7から17までロボットごとに異なる。
この異種混合データを1つのモデルで扱うため、π0は次のような正規化を行っている。
- 状態ベクトル q_t と行動ベクトル a_t の次元数を、学習データ中で最大の自由度を持つロボット(18次元)に統一し、それより自由度の少ないロボットではベクトルの余った部分をゼロパディングする。
- カメラが3台に満たないロボットについては、存在しない画像スロットをマスクして、注意機構がその位置を無視するようにする。
- タスク・ロボットの組み合わせごとにデータ量が大きく偏っているため、各組み合わせのサンプル数 n に対して n^{0.43} で重み付けしたサンプリングを行い、データが豊富なタスクに学習が偏りすぎないようにする。
学習に使われたデータ全体は、Physical Intelligence独自の68タスク・7ロボットの収集データに加え、Open X-Embodiment(OXE)、Bridge v2、DROIDといった公開データセットを合わせた、約9億タイムステップ(約1万時間相当)に及ぶ。
2段階の学習レシピ — 事前学習とポスト学習
π0の学習は、大きく2段階に分かれる。事前学習(pre-training)では、上記の大規模かつ多様なデータ全体を使い、タスク名や、数秒程度の単位に細かく区切られたサブトラジェクトリの注釈(segment annotations)を手がかりにしながら、幅広い基礎知識を獲得させる。ポスト学習(post-training)では、特定の下流タスクに絞った高品質なキュレーション済みデータを使い、事前学習で得た基礎知識を具体的な挙動へ絞り込む。
原論文は、この2段階構成の理由として「高品質なデータだけで学習すると、モデルは失敗から回復する方法を学べない」という点を挙げている。事前学習に含まれる、必ずしも完璧ではない多様な実行データが、モデルに「うまくいかなかったときにどう立て直すか」という頑健性を与える一方、ポスト学習の高品質データが、狙ったタスクを狙った精度で遂行する能力を仕上げる、という役割分担になっている。
なぜ「フローマッチング」であって、通常の拡散モデルではないのか
DDPM(Denoising Diffusion Probabilistic Models)に代表される標準的な拡散モデルは、ノイズを段階的に付加・除去する非線形な経路を仮定し、多くの場合は数十〜数百ステップの反復が必要になる。これに対しπ0が採用する条件付きフローマッチングは、ノイズ \epsilon と真の行動 A_t を直線で結ぶ経路(A_t^\tau = \tau A_t + (1-\tau)\epsilon)を仮定する、線形・ガウス型の確率パス(linear-Gaussian probability path)を使う。経路が直線であるぶん、モデルが学習すべき速度場は単純になり、少数の積分ステップ(π0では10ステップ)でも十分な精度で目的の行動へたどり着ける。原論文はこの設計を、高頻度・高次元な行動チャンクを実時間に近い速度で生成するための現実的な選択として位置づけている。
7. 他のVLA行動生成方式との違い
VLAの行動生成方式は、大きく3つの系統に分けられる。
| 観点 | 自己回帰トークン化(RT-2, OpenVLA) | 拡散ヘッド(Octo等) | フローマッチング(π0) |
|---|---|---|---|
| 行動の表現 | 離散化した行動値をトークンとして逐次予測 | 連続値を拡散過程で生成、transformer出力を条件に | 連続値をフローマッチングで生成 |
| 生成の繰り返し回数 | チャンク長に比例(長いほど遅い) | 拡散のステップ数に依存(多段階) | 少数の積分ステップ(π0は10回)で完結 |
| 高頻度・器用な動作への適性 | 離散化の粗さがネックになりやすい | 比較的滑らかだが多段階でレイテンシが増えやすい | 高頻度(最大50Hz)のチャンクを比較的高速に生成 |
| 実装の単純さ | 言語モデルの語彙拡張だけで済み単純 | 専用の拡散ヘッドが必要 | 専用のAction Expertと目標ベクトル場の設計が必要 |
| 計算コスト | 逐次デコードのオーバーヘッドが大きい | 拡散のステップ数に応じて中程度〜大 | 少数ステップのため相対的に軽い |
| 実装難易度 | 比較的低い(既存のLLM基盤を流用しやすい) | 中程度 | 高い(2つのネットワークの重み共有・損失設計が必要) |
自己回帰トークン化は実装のシンプルさで優れるが、行動チャンクが長くなるほど逐次デコードの回数が増え、レイテンシが伸びる。拡散ヘッドは連続的で滑らかな出力を得やすい一方、多段階の生成過程を必要とする。π0のフローマッチングは、この両者の間を取るような設計であり、連続値を扱いながらも、固定された少数の積分ステップで行動チャンク全体を生成できる点が実用上の強みになっている。この設計思想の違いは、より基礎的な模倣学習の枠組みから見ると理解しやすい。BC(Behavior Cloning)やDAggerが「観測から行動への写像をどう学習するか」を扱う枠組みだとすれば、π0はその写像を巨大なVLMと専用の生成ヘッドで実現した一例であり、詳しくは「模倣学習と逆強化学習」を参照してほしい。
8. 何が苦手か/難しい環境
原論文が報告する評価は、いずれも大枠の傾向を示すものである。ベースとなる事前学習済みモデル(ファインチューニングなし)で複数の実タスク(シャツたたみ、テーブル片付け、食料品の袋詰め、トースターからのパン取り出しなど)を評価した結果、π0はOpenVLAやOctoといった既存のベースラインを大きく上回る成功率を示しており、特にシャツたたみのようなタスクではほぼ確実に成功する一方、OpenVLA・Octoは大きく成功率を落としている。ただし、この差は事前学習データの規模・多様性の違いにも起因するため、フローマッチングという生成方式そのものの優位性だけを取り出して評価するのは難しい。
原論文自身が認める限界として、事前学習データに含まれるタスクに近いほど恩恵が大きく、大きくかけ離れたタスクではポスト学習用のデータの質と量への依存度が高いという点が挙げられている。また、箱を組み立てる、卵を梱包するといった長時間・多段階のタスクでは、比較的高い成功率を示す一方、単純な単一動作のタスクほど完全に近い成功率には至っていない領域も報告されている。
より一般的な課題として、クロスエンボディメント学習のゼロパディング設計は、学習データに存在しない全く新しい自由度構成のロボットへは自明には拡張できない点、フローマッチングの積分ステップ数(10回)は固定されており、速度と精度のトレードオフを推論時に細かく調整する自由度が限られる点も、アーキテクチャ上の制約として理解しておく必要がある。
9. 実用上の選び方
多様なタスクを1つのモデルでこなす汎用マニピュレーションロボットを目指す場合、π0はゼロショットでもある程度動作し、少量データでのファインチューニングにも対応する設計であるため、有力な出発点になる。Physical Intelligenceは重みとコードをopenpiリポジトリとしてオープンソース化しており、独自ロボットへの適用の敷居も比較的低い。
布のたたみ込みや液体の注ぎなど、接触が多く滑らかな軌道が求められるタスクでは、離散トークン化に頼る自己回帰型VLAよりも、連続値を扱うフローマッチング(またはOctoのような拡散ヘッド)を採用したモデルが適している。
単純な把持・搬送タスクを高速・低レイテンシで動かしたいだけの場合、3.3Bパラメータのπ0はやや過剰であり、タスク特化型の軽量な模倣学習モデル(BCベースの小型ネットワークなど)のほうが実装・運用コストの面で見合うことも多い。
特定ロボット1台だけを、決まったタスクセットで動かす場合は、汎用性より特化した学習効率が重要になるため、π0のような大規模事前学習モデルをそのまま使うよりも、対象タスクに絞った狭いデータで学習するほうが効率的なことがある。汎用モデルと専用モデルのどちらを選ぶかは、対象タスクの多様性と、収集できるデータ量のバランスで決まる。
最新の改良版(π0.5、π0.6、π0.7)やVLA分野全体の動向、LIBEROベンチマークでの競争状況は「VLAの技術動向」に整理されている。模倣学習・逆強化学習の基礎とBC/DAggerの共変量シフト問題については「模倣学習と逆強化学習」を参照してほしい。
10. まとめ(3行で復習)
- π0は、PaliGemma VLM(3B)と専用のAction Expert(300M)を同じTransformer層で併走させ、条件付きフローマッチングで連続行動チャンクを生成するVLAである。
- A_t^\tau = \tau A_t + (1-\tau)\epsilon から目標ベクトル場 u = \epsilon - A_t を予測し、推論時は10回のEuler積分で50ステップの行動チャンクを一括生成する——チャンク長に比例して遅くなる自己回帰トークン化との最大の違いがここにある。
- 7種類のロボットにまたがるゼロパディング・重み付きサンプリングでクロスエンボディメント学習を行い、多様な事前学習データと高品質なポスト学習データを2段階に分けることで、汎用性と特定タスクの精度を両立させている。
コメント
コメントの投稿にはログインが必要です
まだコメントはありません。