498 Views
September 18, 25
スライド概要
DL輪読会資料
DEEP LEARNING JP “SmolVLA” [DL Papers] A vision-language-action model for affordable and efficient robotics Shusaku SONE http://deeplearning.jp/ 1
アジェンダ 1. 書誌情報 2. 背景 3. 目的 4. 提案手法 5. 実験方法 6. 実験結果 7. 考察 8. 制限と貢献 9. 感想 2
1 書誌情報 タイトル: SmolVLA: A vision-language-action model for affordable and efficient robotics 著者: Mustafa Shukor and Dana Aubakirova and Francesco Capuano and Pepijn Kooijmans and Steven Palma and Adil Zouitine and Michel Aractingi and Caroline Pascal and Martino Russi and Andres Marafioti and Simon Alibert and Matthieu Cord and Thomas Wolf and Remi Cadene Hugging Face, Sorbonne University, valeo.ai, École Normale Supérieure Paris-Saclay, Core team 出版日: 2025年6月2日 出版物: arXiv 選んだ理由:SO-101の模倣学習基盤であるSmolVLAに興味があったから 3
2 背景 ・ロボット制御分野では、大規模VLAが注目されている(例:OpenVLA, π0) ・しかし、これらは数Bパラメータ規模であり、学習・推論に膨大な計算資源が必要で、研究再現性や 実機展開のコストが課題 ・著者らは、単一GPUでも学習可能、かつ 低コストロボットで再現可能な代替アプローチを模索している 例: Π0モデル モデル規模: 3.3B 事前学習 約10000時間 Franka Emika Panda 147万円 Sawyer 441万円 4
3 目的 ・SmolVLAを設計し公開することが主目的 ・省メモリ・省計算で動作し、かつオープンソース化されることでコミュニティで の利用・拡張を可能にする ・実機タスク(Pick-Place, Sortingなど)でも実証し、低コストでロボット研究が可能な環境を整備する Akira Sasaki, SO-101によるピッキング学習 5
4 提案手法(SmolVLAモデルの提案) SmolVLA は Hugging Face が提案した 軽量な Vision-Language-Action (VLA) モデル 安価なロボット(SO-100/101)でも 画像+言語指令+状態 から行動を決められるようにする 構成: SmolVLM-2 (小型VLM, frozen, 前半層のみ) → 視覚・言語・状態を統合した特徴 Zt を出す Action Expert (Flow Matching Transformer) → Zt から アクションチャンク At:t+n(例: n=50ステップ の動作軌道) を生成 非同期実行スタック → 観測と実行を分離し、実機で低レイテンシ制御が可能 特徴: 小規模(0.45Bパラメータ程度)で GPU 1枚でも学習・推論可能 23kエピソードの模倣データ(SO-100系ロボット) で事前学習 LIBERO / Meta-World (シミュレーション) と実機 SO-100/101 で評価 Akira Sasaki, SO-101によるピッキング学習
4-1 提案手法(SmolVLAモデルの提案) 出力 Z 出力 A (1) 小型 VLM バックボーンの活用 ・SmolVLM-2 を基盤に使用し、層スキップ (N=L/2) により中間層までのみを活用 ・これにより 推論速度を約半分に短縮しながらも、性能を維持 (2) 効率的な視覚入力 ・入力画像を Pixel Shuffle により空間的に圧縮し、 ・1フレームあたり 64 トークンに削減 → 計算コストを大幅に軽減 (3) 統合表現 Z の生成(SmolVLM-2 の役割) ・言語トークン・画像トークン・ロボット状態トークンを入力として結合し、SmolVLM-2 (L/2, Frozen) に入力 ・出力は 統合表現 Zt(視覚・言語・状態をまとめた潜在表現)
4-2 提案手法(SmolVLAモデルの提案) 出力 Z 出力 A (4) Action Expert: Flow Matching Transformer(推論時) ・入力は SmolVLM-2 が出力した ot = zt ・出力は 学習済みvθを用いて、otとランダムノイズベクトルεから、 アクションチャンク At:t+n(n=50 ステップ程度の動作軌道) を非ARで一括生成 (5) インターリーブ注意機構 ・Cross-Attention (CA) と Self-Attention (SA, 因果マスク) を交互に配置 ・外部文脈(Z)を参照しつつ系列一貫性を担保 → 安定学習と高速推論を実現 (6) 非同期推論スタックによる高応答性 ・観測処理と行動実行を分離 ・観測類似度フィルタと キュー閾値制御により、重複計算を回避しつつリアルタイム応答性を確保
4-3 SmolVLM2モデル ・SmolVLM: 「小型VLMの設計原則」を提示した初代モデル トークン圧縮・バランス設計・長コンテキスト対応など、 小型化のための工夫が体系化された ・SmolVLM-2: その改良版. 特に 動画理解の強化 と さらに効率的な推論 に重点 Hugging Face が SmolVLA(ロボットVLA) の基盤モデルとして利用 https://huggingface.co/blog/smolvlm2 ・SmolVLM-2 特徴: ・Video対応を強化:フレーム間の効率的な表現学習、長動画に強い ・効率化のさらなる推進:推論をさらに軽量化し、安価なGPUでもリアルタイム可能 ・事前学習データの拡充:より多様な画像・動画・テキスト指示を学習に追加点 ・モデルカード & 実装整備:HF Hub で複数のモデルサイズが公開され、デモもブラウザ上で実行可能 9
4-4 SmolVLMモデル https://arxiv.org/abs/2504.05299 SmolVLMアーキテクチャ ・画像はサブ画像に分割され、動画からフレームがサンプリングされ、その後視覚特徴量として符号化される ・これらの特徴量はピクセルシャッフル操作によって再配置され、MLP射影を用いて視覚トークンとしてLLM入力 空間にマッピングされる ・視覚トークンはその後、テキスト埋め込み(オレンジ/赤)と連結される ・この結合されたシーケンスがLLMに渡され、テキスト出力が生成される 10
4-5 Pixel Shuffle https://arxiv.org/abs/2504.05299 ピクセルシャッフル ・符号化された画像を再配置し、空間解像度を犠牲にしてチャネル深度を増加させる ・これにより、情報密度を維持しながら視覚的トークン数を削減する 11
4-6-1 Flow Matching Transformer (推論時) Action Expert = Flow Matching Transformer (SmolVLA が唯一学習する部分) ノイズ 𝝐を入力に、𝒐𝒕 に条件づけられた のベクトル場をたどり、「正しいアクションチャンク 𝑨𝒕 」を復元 ・入力 ・出力 及び𝒐𝒕 ロボットの連続制御信号At: 各タイムステップの エンドエフェクタ位置 (x, y, z) 回転 (roll, pitch, yaw) またはオリエンテーション表現(quaternion) グリッパー開閉(バイナリ or 連続値) ・学習した修正ベクトル を使って、ノイズ→正しいアクションAt:t+nへの流れを一気に追跡する ・Diffusion のように1000ステップもかけず、数ステップでサンプルできる → 高速な行動軌道生成が可能 論文設定では「50ステップ程度の連続軌道 At:t+50」を1回で予測する(非AR, non autoregressive). これを実機制御ループに流し込んで、Pick-Place や Stacking 動作を実現.
4-6-2 Flow Matching Transformer (学習時) Loss function L Action Expert = Flow Matching Transformer (SmolVLA が唯一学習する部分) 入力: ノイズ付きアクション と観測特徴 出力: 修正ベクトル (どちらの方向に動かせば正しいアクション に近づくか 13
4-6-3 Flow Matching Transformer 「ノイズ付きアクションを正しいアクションに戻す流れを予測する」ように学習される。 損失関数は: 観測 を固定し、そこからデータ分布 そのアクションにノイズを混ぜたサンプル に従って正しいアクション をサンプルする。 を からサンプルする。 モデル に「ノイズ付きアクション+観測」を入力し、「修正ベクトル」を出力する。 それを「本当の修正ベクトル(ノイズ→正解への方向)」と比較し、二乗誤差を取る。 これをすべての観測・アクション・ノイズに対して期待値を取る(=平均する)。 :学習中のモデル(Flow Matching Transformer) ・入力: ノイズ付きアクション と観測特徴 ・出力: 修正ベクトル (どちらの方向に動かせば正しいアクション に近づくか) : 正解の修正ベクトル(ターゲット) ・定義: ・直感的には「ノイズ成分から正解アクションまでのベクトル」 ・「いまのノイズ混じり動作を、どう直せば正しい動作に戻れるか」を表す。 14
4-6-4 Flow Matching Transformer (各種定義) Flow Matching ・「ノイズ状態」から「正解データ」へ流れるベクトル場(速度場)を学習すること ・ Diffusion は「確率過程の逆拡散」を学習、Flow Matching は「ベクトル場を直接回帰」
4-6-5 Flow Matching Transformer (CA⇔SA) 16
4-6-6 Flow Matching Transformer (CA⇔SA) ・Cross-Attention: Aτ(行動トークン)を Query、Z を Key/Value として、環境条件に基づく修正方向を取り込む ・Self-Attention(因果):時間方向の一貫性を担保(未来を見ない) ・Embed(τ) は Aτトークン側に注入(加算・FiLM・専用トークンいずれか) ・Cross-Attn : VLM特徴(視覚・言語・状態)から外部条件を取り込む ・Self-Attn : アクション系列トークン内で一貫性を保つ → 交互にすることで「外部文脈に基づきながらも、アクション軌道を時間的に整合させる」ことができる。 ノイズの入ったアクション系列 を 観測 に条件づけつつ、時間的に一貫した形に整え、 「ノイズから正解アクションへ進む速度ベクトル」 を出力 17
4-7 非同期推論(観測処理と実行を分離、重複観測フィルタ導入) 従来 (同期推論 / sync inference) 1つのアクションチャンク At を丸ごと実行してから次の観測を処理 平均計算負荷は小さいが、計算中にロボットがアイドル状態になる=応答性が低下. 適応的戦略 (逐次的推論) 毎タイムステップごとに新しい観測からチャンクを再計算・統合. 高い反応性を持つが、常時推論が必要でリソース消費が大きい. SmolVLAの非同期推論 ・基本アイデア 「予測(Action chunk生成)」と「実行(Queue消費)」を切り離す。 RobotClientが観測をPolicyServerに送信し、サーバーで計算されたアクションチャンクを受け取る。 実行中の古いチャンクを消費している間に、新しいチャンク予測を並行処理する。 ・メリット アイドル時間(blind lag)の削減 → ロボットが止まらず連続行動できる。 反応性の向上 → より頻繁に観測を処理可能。 計算資源の柔軟性 → リモートサーバー(GPUなど)に負荷をオフロードできる。
4-7-1 非同期推論(観測処理と実行を分離、重複観測フィルタ導入) キュー閾値 g 残りアクションが n ステップのうち g 未満になると新しい観測を取得して推論を開始 g=0:同期推論 Sync (遅いが計算コスト小) g=1:逐次的な毎ステップ更新(反応性最大だが計算コスト大) g=0.7:非同期推論 Async (バランス型) 観測類似性フィルタ 観測が関節空間で「ほぼ同じ」であれば処理をスキップ 冗長なサーバー呼び出しを避け、安定した挙動を確保
4-7-2 非同期推論(観測処理と実行を分離、重複観測フィルタ導入) 例 前提条件 (注 説明のために単純化しています) チャンクサイズ: 𝑛 = 10アクション(例:0.1秒ごとに出すので、合計1秒分のアクション) 制御周期: 0.1秒ごとにアクションを消費 (制御周波数 10Hz) キュー閾値 𝑔: キュー内の残り割合が 𝑔を下回ると、新しい観測を取り、次のチャンクを推論開始 ケース1: g=0(同期推論) 10個全部消費 → キュー空になってから推論開始。 つまりアイドル時間が発生。 ケース2: g=1(逐次更新) 「残量/10 < 1」なので、最初のアクションを実行した瞬間(残9/10=0.9)で条件成立。 毎ステップで観測と推論を要求する動作になる。 ケース3: g=0.7(非同期推論 バランス型) 「残量/10 < 0.7」 → 残6以下になったら発火。 つまり「4個消費済み(残6/10=0.6)」の時点で新しい観測を取得し (n=10を新たに取得,残り6個を捨てて新しいデータに切り替え), 推論を始める。
4-7-3 非同期推論(観測処理と実行を分離、重複観測フィルタ導入) ・非AR:1観測 → n=10ステップ分(約1秒分)を一括出力. ・非同期(0<g<1, 例 g=0.7):制御は高レート(10Hz).4ステップ行動した後、最新計画で逐次上書き. ・観測がほぼ同じなら 再生成スキップ(類似度フィルタ)
5-1 実験方法 (シミュレーション実験) ベンチマーク LIBERO: 40タスク(Spatial 10 / Object 10 / Goal 10 / Long-horizon 10) Meta-World MT50: 50タスク(Easy / Medium / Hard / Very Hard) 条件 VLA Pt = No(SO-100事前学習は行わず、各ベンチマークデータで直接学習) 学習はタスクごとに10試行、成功/失敗の二値基準で評価 評価指標 成功率 (SR) = 各タスク10試行の完全成功率を平均化
5-1 実験方法 (シミュレーションベンチマークのタスク例) LIBERO (40タスク, 4カテゴリ × 10タスク) カテゴリ タスク例 Spatial (空間配置) put_apple_in_basket(リンゴをバスケットに入れる) put_plate_on_table(皿をテーブルに置く) Object (物体操作) stack_block_on_block(ブロックを積み重ねる) put_book_on_bookshelf(本を本棚に置く) Goal (目標達成) open_drawer(引き出しを開ける)close_door(ドアを閉める) push_button(ボタンを押す) Long-horizon (長期シーケンス) put_block_in_drawer(ブロックを掴み → 引き出しを開け → 中 に置く)put_plate_in_cabinet(皿を取って → 戸棚を開けて → 中に置く) Meta-World MT50 (50タスク, 難易度別) 難易度 タスク例 Easy push-v2(物体を押す)reach-v2(指定位置まで到達する) Medium open-door-v2(ドアを開ける)drawer-open-v2(引き出しを開ける) Hard peg-insert-side-v2(ピンを穴に差し込む) handle-pull-side-v2(横からハンドルを引く) Very Hard assembly-v2(パーツを組み立てる)disassemble-v2(パーツを分解する)
5-2 実験方法 (実機実験) 対象ロボット ・SO-100(事前学習用データ収集: 22.9kエピソード, 10.6Mフレーム) ・SO-101(評価タスク: Pick-Place, Stacking, Sorting, Lego Pick-Place) 条件 ・VLA Pt = Yes(SO-100実機データで事前学習済みのモデルを用いて評価) 学習: 200kステップ, VLM部分はfrozen, Action Expertのみ更新 評価方法 ・成功率 (SR) を部分点方式で算出 例: Pick-Place → 「掴む=0.5点」「置く=0.5点」 Stacking → 「掴む=0.33」「置く=0.33」「積む=0.34」 SO-100(トップ+リスト), SO-101(トップ+サイド)
5-2 実験方法 (SO−100/SO−101 実機 サブタスク例) Pick-Place 掴む (0.5) – 対象物を正しく掴む 置く (0.5) – 指定場所に置く Stacking 掴む (0.33) – 対象物を掴む 置く (0.33) – 正しい位置に置く 積む (0.34) – 正しく積み重ねる Sorting 掴む (0.5) – 指定色/形の物体を掴む 分類 (0.5) – 正しい箱や仕分け場所に置く Lego Pick-Place 掴む (0.5) – レゴを正しく掴む 置く (0.5) – レゴを指定位置に配置 25
5-3 実験方法 (用語) エピソード (episode) 1回のタスク実行全体(例: 「青いブロックを掴んで箱に置く」) 開始 → 掴む → 運ぶ → 置く → 終了 論文では計 22.9k エピソード ≈ 約23,000回分の実演を収集 フレーム (frame) 動画の1コマ(観測ステップ) 内容: カメラ画像 + ロボット状態(関節角度・グリッパー状態) 例: 50Hz (0.02秒間隔) × 200フレーム ≈ 1エピソード4秒 論文では総計 10.6M フレーム ≈ 1060万観測 1エピソード = 1タスク実演 (数百フレームの連続観測) 総フレーム数 = 全エピソードを合算した総コマ数 シミュレーション = VLA Pt=No, ベンチマークデータで直接学習 実機 = VLA Pt=Yes, SO-100で事前学習済みモデルをSO-101で評価 評価指標はいずれも成功率 (SR)、ただしシミュレーションは二値基準、実機は部分点方式
比較ベースモデル モデル パラメータ数 視覚エンコーダ 約 0.45B (4.5億) SmolVLA (SmolVLM-2 L/2 SmolVLM-2 (前半 (提案) 層 L/2, frozen) frozen + FM Transformer) π0 (Black+ 2024) ACT (Zhao+ 2023) 入力 出力 RGB (Pixel アクションチャ Shuffle→64トー ンク(非AR, 50 クン), 状態, 言語 ステップ程度) 学習方式 / 損失 学習データ規模 学習時間の目安 Flow Matching 損失 23k エピソード (~10.6Mフ レーム) (SO100, 単一機体) A100 1枚で 数 日(5–10 epoch); finetuning は数時間 〜半日 3.3B (33億) Paligemma (大規 模VLM) 3視点RGB, 状態, 言語 アクションチャ ンク Flow Matching 損失 10,000時間 の cross数百GPUで 数週 embodiment ロ 間〜月単位だと ボットデータ 思われる (複数ロボット, 膨大規模) 80M (0.08億) ResNet (ImageNet pretrain) RGBシーケンス, 状態 アクションチャ ンク CVAE + 回帰損 失 中規模(例:数 十〜数百時間, 環境依存) 1–数GPUで 数 日〜1週間 SmolVLA は π0 のような大規模基盤モデルと比べて 極めて軽量&低データ学習で実機に導入可能. 一方で ACT よりは大きく、VLM (SmolVLM-2) を活用できる点で多モーダルな拡張性がある. 27
6-1 実験結果 (シミュレーション) LIBERO平均: π0 (3.3B) 86.0% vs SmolVLA 87.3% → +1.3pt (+1.5%) SmolVLA (0.45B) は π0 (3.3B) よりも小さいにもかかわらず、シミュレーション・実機の両方で高成功率を達成
6-1 実験結果 (シミュレーション) ・Meta-World平均: π0 (3.5B) 47.9% vs SmolVLA 57.3% → +9.4pt (+19.6%) SmolVLA (0.45B) は π0 (3.5B) よりも小さいにもかかわらず、シミュレーション・実機の両方で高成功率を達成 特に Meta-World の難タスクで顕著に優れており、「軽量でも汎化可能」な設計の有効性を示した
6-2 実験結果 (実機 SO100) ・表3 SmolVLA条件 ::Pick-Place, Stacking, Sorting SO-100実機では VLA Pt=Yes(SO-100 23kエピソードで事前学習)かつ Multi-task training ・表3 結果 SO100:π0 61.7% vs SmolVLA 78.3% → +16.6pt (+26.9%) SO100・SO101の物理実験で、SmolVLAは他手法を大きく上回る
6-3 実験結果 (実機 SO101) In Distribution (ID) ・学習時と同じ条件で評価。 ・例:学習で見たのと同じような位置・姿勢に レゴブロックが置かれている状況。 つまり「訓練分布内」での性能。 Out of Distribution (OOD) ・学習では見ていない条件で評価。 ・例: 学習時には無かった新しい位置にレゴを置いて タスクを実行させる。 つまり「訓練分布外」での汎化性能。 ・表4 SmolVLA条件 :: Pick-Place-Lego SO100・SO101の物理実験で、SmolVLAは他手法を大きく上回る 特に分布外タスク(未学習位置でのLego配置)でも ACT より高い成功率を維持
6-4 実験結果 (実機 SO100) ・表5 SmolVLA条件 ::Pick-Place, Stacking, Sorting VLA Pt=Yes(SO-100 23kエピソードで事前学習)or No Fine-tuning Single-task training or Multi-task training コミュニティデータセットでの事前学習がなければ性能は半分以下 マルチタスク学習でさらに性能が伸び、知識移転(Knowledge Transfer)の効果を裏付ける
6-5 実験結果 (同期or非同期) (a)Pick-Place, Stacking, Sorting課題 成功率 (b)Pick-Place課題 10回の試行と5つの異なる立方体位置において、課題完了までの時間を計測 (c) Pick-Place課題 10回の試行と5つの異なる立方体位置において、時間制限(例:60秒)を設定し、 異なる位置から箱へ正常にピックアップ・配置されたキューブ数をカウント
7 考察 表2〜5の結果から ・小規模でも高性能 SmolVLA (0.45B) は π0 (3.3B) よりも小さいにもかかわらず、シミュレーション・実機の両方で高成功率を達成 特に Meta-World の難タスクで顕著に優れており、「軽量でも汎化可能」な設計の有効性を示した ・実機タスクでの優位性 SO100・SO101の物理実験で、SmolVLAは他手法を大きく上回る 特に分布外タスク(未学習位置でのLego配置)でも ACT より高い成功率を維持 安価なロボットでも十分に実用的 ・事前学習+マルチタスク学習の重要性 コミュニティデータセットでの事前学習がなければ性能は半分以下 マルチタスク学習でさらに性能が伸び、知識移転(Knowledge Transfer)の効果を裏付ける データの多様性と共有が不可欠 ・実用性と効率性の両立 大規模モデルに匹敵する性能を、単一GPUで学習・CPUで推論可能なスケールで実現 低リソース環境でも高い性能を発揮できるため、研究再現性と実機展開のハードルを大幅に下げる
8 制限と貢献 〇制限 ・単一ロボット型データ → 他機体への汎化に弱い ・データ規模小(~23k vs 他研究の100万以上) ・小規模VLMの限界 → 表現力制約 ・長期タスクには階層型方策が必要 ・強化学習は未導入 〇貢献 ・軽量アーキテクチャの提案 ・小規模データでも高性能な事前学習 ・非同期推論による反応性向上 ・完全オープンソース化
9 感想 ・SO-101ロボットの学習・推論モデルSmolVLAの理解のために、今回この論文を紹介した. ・非常に小さいVLAモデルサイズ実現のために、近年の様々な論文の成果を応用して作られているの が面白かった. ・少しの事前学習により, より良い成果が得られるのが分かったが、複雑なタスクでは、現在の SmlVLM-2 L/2 frozenを使ったVLM+Flow Matching Transformerの構成で、精度が出るのかは 未知数であるので,複雑なタスクを試してみたい. 36
知識移転:マルチタスク学習とメタ学習 種類 説明 マルチタスク学習 (Multi-task Learning) 複数タスクを同時に学習し、表現を共有する メタ学習 (Meta-Learning) 「学習の仕方」を学習し、新しいタスクにすばやく適応 転移学習 (Transfer Learning) あるタスクで学んだモデルを、別タスクへ再利用・微調整 する 終身学習 (Lifelong Learning) 継続的に新しいタスクを学びつつ、過去の知識を忘れずに 保持 https://meta-world.github.io/ 知識移転(Knowledge Transfer): ・あるタスクや環境で学んだ知識・表現・スキルを、別のタスクや環境に活かすこと。 ・人間でいうと「自転車に乗れるようになるとバイクも学びやすい」ように、既存の経験を新しい課題に 応用する能力。 マルチタスク学習: ・複数の既知タスクを同時に学んで、全部ある程度うまくできるようにする学習 メタ学習: ・いろんなタスクの経験を通して、新しいタスクをすぐに学べるようになる学習(学び方を学ぶ) 37
LIBERO (MuJoCo シミュレーション) LIBEROは、マルチタスクおよびロボット学習問題における知識移転の研究を目的として設計されている。 LIBERO は、Spatial・Object・Goal・Kitchen(合計130タスク)に分類されたタスクセットから構成される. 38
Meta-World MT50 (MuJoCo シミュレーション) ML45は、45 のトレーニング環境と 5 つのテスト環境を備えたメタ学習モード。 MT50は、上記の50の操作環境すべてを効率的に学習する能力を評価する。 https://meta-world.github.io/ 39