8
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

 今回はNVIDIAの研究チームが発表した"VLA-0"の論文について解説します.

 タイトルは"Building State-of-the-Art VLAs with Zero Modification"で,日本語では無修正で最新VLAを構築してみたとなり,強気でインパクトのあるタイトルです. 本記事では,VLA-0を論文に準拠しつつわかりやすく解説し,VLAへの参入障壁が下がることを期待します.

Screenshot from 2025-12-18 20-40-43.png

ABSTRACT

 最近流行っているVLAs(Vision Launguage Action Models)はロボットアームが柔軟に様々なタスクができる一方,その仕組み自体が複雑です.多くのアプローチは,VLMそのものを大きく魔改造する,行動系列(関節角度等)を出力するための特殊なaction headsなるものを付けるなど,とにかく色々わちゃわちゃやってます.

 でも,もっと簡単で誰でも思いつきそうな方法が意外にも未検証だったりします.行動系列を直接VLMに文字として吐かせちゃえば一番簡単にVLAを構築できると思いませんか.最近はVLMの性能も向上していることですし,この方法なら素人でもできそうです.

 これが意外にも良さげで,VLAsの性能を測るLIBEROベンチマークで,π0.5-KI,OpenVLA-OFT,SmolVLAに勝っちゃいました.どれもVLAとしては有名なモデルですが,これに勝っちゃうシンプルなモデルは魅力的ではないでしょうか?

INTRODUCTION [今のVLAsの構造]

 まず,VLAsはどのような構造をしているか,どのようなタイプがあるのか見ていきます.

 LLMsやVLMsなどの基盤モデル(汎用的なモデル)が近年出ていますが,VLAsはまだ誰も正解アーキテクチャーを知りません。今出てきているVLAsを分類するとおよそ3つになり、どれもVLMsをバックボーンに持ちます.

1.Discrete Token VLAs(離散トークン型)

 一番初期にできたモデルです.RT-2やOpenVLAがこれに該当します.

 ロボットの動作(連続値)を,bin(区間)に分割して離散化します.その各binに対して,VLMの語彙の中から新しいトークンや使用頻度の低いトークンが割り当てます.その後,モデルはベースとなるVLMの学習時と同じやり方で再度学習します(Cross-Entropy Loss(損失関数の一種)).そして、行動トークンを予測して動くようになります.

 わかりやすいアプローチですが,主に2つの欠点があります.1つ目は,Fine-grained control(きめ細かい手先の制御)を行うために数千のbinが必要ですが,このbinが言語の語彙と共有されているため,行動空間の解像度を上げにくいです.2つ目は,本来は言語のためにある語彙を行動用として再利用するため,事前学習で獲得したVLMの言語理解能力が低下します.

これら欠点により,少なくとも著者が行った実験によると,このタイプのVLAsは性能が高くないです.

2.Generative Action Head VLAs(生成アクションヘッド型)

VLMにAction head(関節角を出力するもの)と呼ばれるパーツを取り付ける方式です.Pi0,SmolVLAが該当します.VLMは潜在ベクトルを予測するようにファインチューニングされ,diffusion processやflow matching等のモデルで潜在ベクトルをアクションにデコードします.この手法はアクションの忠実度(離散化してないので,より連続的=なめらかに動く)ようになる一方で,fine-tuningが必要であるため,VLMの言語理解能力の低下を招くほか,事前学習されていないアクションヘッドを導入することで、全体の汎化性能が損なわれることがあります.

3.Custom Architecture VLAs(カスタムアーキテクチャ型)

OpenVLA-OFTは,専用のACTヘッドを導入し,Pi-FASTは離散コサイン変換で特殊なトークン化をしていたり...上げるときりがないです.

METHOD [VLA-0の仕組み]

VLAだから複雑ではなく,あえて最もシンプルな構成を作っています.新しいトークンを使わず,VLMの語彙を変えず,新しいNNのレイヤーを加えず,複雑な構成を持たずです.構成を説明していきます.

Input(入力)

VLMには,Qwen-VL-2.5-3Bを使用しています.モデルサイズが小さいかつ性能が高いことが選定理由ですが,構造的にどのVLMを使っても良いです.VLMの構造自体には修正を行いません.

VLMは,テキストと画像を入力にできるので,まずテキストのベースのシステムプロンプトを書きます.

実際のプロンプト

Analyze the input image and predict robot actions for the next H timesteps. Each action has D dimensions. Output a single sequence of H × D integers (0 - B each), representing the H timesteps sequentially. Provide only space-separated numbers. Nothing else.

入力画像を解析し,次のHステップまで,ロボットの動きを予測してください.それぞれの行動はD次元です.そして,Hステップを順番に表す,H×Dの一続きの0からBまでの整数数列を出力してください.スペースで分けられた数字のみを出力してください.それ以外はなにも出力しないでください.

これとは別に,ユーザからのプロンプトを入力します(例:カップケーキをボールに入れてください)

画像も入力します.シミュレーション環境では,ベースライン研究と合わせるために三人称カメラと手首カメラ,実機実験ではFig.3のように左右カメラを画像入力としています.なお,カメラをマージして1つの画像として与えても,分けたまま与えても同じ結果になったそうです.

Screenshot from 2025-12-18 20-33-04.png
Fig.3: 提案されたVLA-0

そして,一番コアとなる秘密の3つのレシピがあります.

1. Action Decoding

アクションを数字としてそのまま出力してもらう方針をとっています.
まず,ロボットの現在の連続な関節角度(浮動小数点数)を,固定された整数の範囲に正規化します.サーボが(-180.0 ~ 180.0)のロボットアームならば,(0 ~ 1000)に変換します.これをVLMに入力し,次の関節角度を予測してもらいます.このようにすることで,希望するアクションの解像度の変更や異なるロボットにも適応できるようになっています.

2. Ensembling Prediction

有名なALOHAで提案された方法です[5].現在のステップ $t$ で行われた予測、ステップ $t-1$ で(その予測シーケンス内の2番目のアクションとして)行われた予測,そして同様にステップ $t-n+1$ で行われた予測までを計算し,この $n$ 個の予測を平均化することで,$t$における最終的な動作が安定します.

Fig.5がわかりやすく,

  • $t=0$で,3番目に予測された角度
  • $t=1$で,2番目に予測された角度
  • $t=2$で,1番目に予測された角度
  • $t=3$で,0番目に予測された角度

を平均化します.ロボットがガタつくときに非常に有効です.

Screenshot from 2025-12-18 21-48-13.png
Fig.5: Temporal Emsembling[5]

3. Masked Action Augmentation

VLMは文字を自己回帰的(auto-regressively)に生成します.次に生成されてるトークンは,以前のトークンに条件付されます.この学習過程で,正解となるアクション文字列の中の文字を,ランダムにマスクします.この手順で,VLMは単に書き始めた数列を自動補完することに頼るのではなく,視覚情報と指示に基づいてきちんとアクションを推論するようになります.

学習

VLMの"構造"は一切変更していません(この論文のすごいところです)が,いずれにせよfine-tuningは必要です.

モデルは,語彙全体に対してクロスエントロピー損失を用い,目標となるアクション文字列を生成するように学習されます.最適化にはAdamオプティマイザを使用し,

  • バッチサイズ:192
  • 学習率:5e-6
  • エポック:64

という条件で,学習には8枚のA100 GPUで約32時間かかった模様です.
ここで,ギャーとなるのはわかりますが...しゃーないです.計算資源がない場合は,LoRAを行うかやGPUサーバでなんとかしましょう.

EXPERIMENTS [実験結果]

実験は,実世界とシミュレーションの両方で行います.

実験設定

実世界

SO-100を使って

  • ブロックの向きを変える
  • リンゴを押す
  • バナナを掴んで置く
  • カップケーキを掴んで置く
    という4つの操作タスクで実験を行います.

学習用には,各100件のデモデータを収集しました.

シミュレーション

VLAモデルの比較に広く採用されているベンチマークであるLIBEROを使い,Spatial、Object、Goal、Longをテストしました.

結果

シミュレーション

VLA-0は,大規模なロボットデータによる事前学習を行わないモデル群(SmolVLAや$\pi_0$-Fastなど)の中で,全ての既存手法を上回り,最も高い成功率を記録しました.

さらに,大規模データで事前学習された強力なモデル($\pi_0$, Octo, OpenVLA, GR00T-N1など)と比較しても,それら多くを上回る性能を発揮しました.

ベンチマークでいうところの,OpenVLA-OFTに次ぐ第2位の平均ランクです.

実世界

大規模データで事前学習された強力なベースラインであるSmolVLAと比較し,VLA-0は平均成功率で12.5ポイント上回りました(VLA-0: 60% vs SmolVLA: 47.5%)

このとき,5090に特別な最適化を施さず,4Hzの推論周期を達成した.遅いですが,ローカルVLMのリアルタイム運用は遅いのはしょうがない...

CONCLUSIONS & LIMITATIONS [結論と展望]

VLMにたいして,新しいトークン追加,新しいアーキテクチャ追加などを施さずに構築したVLAでえらい成果が出た.

良い成果だが,今後やっていくべきことは,

  • より大規模なモデルで学習したらどうなるのか
  • 推論速度が遅い(4Hz)なので,量子化や蒸留などの最適化を行って高速化を目指す
    あたりになりそうだ.

参考資料

[1] 元論文

[2] 特設ページ

[3] github

[4] hugging face

[5] Alohaの論文

8
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?