OpenVLAの大規模トレーニング: ロボットトレーニングデータセットの構築方法
TL;DR:
- OpenVLAはロボット操作のための7Bパラメータのオープンソースビジョン・ランゲージ・アクションモデルです。
- Open X-Embodimentデータセットから970kのロボットエピソードでトレーニングされています(22種類のロボット、527のスキル)。
- 複数のベンチマークでRT-2-Xのようなクローズドソースの55Bパラメータモデルを上回ります。
- 新しいロボットセットアップには、LoRAを使用してわずか100のデモンストレーションでファインチューニングが可能です。
- ロボティクスAIにおける最大の課題はモデルアーキテクチャではなく、多様で高品質なトレーニングデータセットの構築です。
- 大規模なビデオおよび視覚データの収集には、堅牢なプロキシインフラストラクチャと自動化が必要です。
企業向けメモ: 数百万の視覚トレーニングサンプルを必要とするロボティクスAIシステムを構築する研究チームや企業にとって、エンタープライズグレードのデータ収集インフラストラクチャが不可欠です。スケール、稼働時間、データの多様性がボトルネックとなります。 Bright Dataのビデオデータプラットフォーム のようなソリューションは、産業規模のデータセット作成に必要な堅牢なパイプラインを提供できます。
ロボティクスAIはブレークスルーの瞬間を迎えています。大規模な言語モデルがテキスト生成を変革し、ビジョンモデルが画像理解を変えたように、ビジョン・ランゲージ・アクションモデル(VLA)はロボットが物理的な世界と相互作用する方法を再形成しています。
この変革の中心にあるのがOpenVLAです。これは、ロボットを即座に制御し、自然言語の指示を理解し、最小限のトレーニングデータで新しいタスクに適応できる7Bパラメータのオープンソースモデルです。
しかし、ほとんどのチュートリアルが教えてくれないことがあります。それは、モデルは物語の半分に過ぎないということです。本当の課題は、これらのシステムを支えるトレーニングデータセットの構築にあります。
OpenVLAとは?
OpenVLAは、スタンフォード大学、UCバークレー、トヨタリサーチインスティテュート、Google DeepMindの研究者によって開発されたオープンソースのビジョン・ランゲージ・アクションモデルです。カメラ画像を処理し、自然言語のコマンドを解釈し、連続的なロボットアクションを出力します。
モデルアーキテクチャは、3つの主要なコンポーネントを組み合わせています。
- SigLIPとDinoV2バックボーンを使用した融合ビジュアルエンコーダー
- 視覚特徴を言語モデルの入力空間にマッピングするプロジェクターレイヤー
-
トークン化されたロボットアクションを予測するLlama 2 7B言語モデル
OpenVLAの特長はそのトレーニングデータにあります。チームは、Open X-Embodimentデータセットから970,000のロボット操作軌跡をキュレーションし、22種類の異なるロボットプラットフォームと527の異なるスキルを網羅しています。
その結果、OpenVLAはGoogleのクローズドソースの55BパラメータモデルであるRT-2-Xを上回り、完全にオープンソースで8倍小さいです。
OpenVLAの始め方
OpenVLAの推論は、数行のコードで実行できます。
from transformers import AutoModelForVision2Seq, AutoProcessor
from PIL import Image
import torch
# Load the model and processor
processor = AutoProcessor.from_pretrained("openvla/openvla-7b", trust_remote_code=True)
vla = AutoModelForVision2Seq.from_pretrained(
"openvla/openvla-7b",
attn_implementation="flash_attention_2",
torch_dtype=torch.bfloat16,
low_cpu_mem_usage=True,
trust_remote_code=True).to("cuda:0")
# Get image from robot camera
image: Image.Image = get_from_camera(...)
prompt = "In: What action should the robot take to pick up the red cup?\nOut:"
# Predict action (7-DoF)
inputs = processor(prompt, image).to("cuda:0", dtype=torch.bfloat16)
action = vla.predict_action(**inputs, unnorm_key="bridge_orig", do_sample=False)
Execute the action
robot.act(action, ...)
モデルは、ロボットアームを直接制御できる7-DoFアクションを出力します。トレーニングデータに含まれるロボット(WidowXやFranka Pandaなど)に対しては、OpenVLAをゼロショットで使用できます。新しいロボットセットアップにはファインチューニングが必要です。
カスタムロボットのためのOpenVLAのファインチューニング
OpenVLAの強みの一つは、新しいロボットやタスクへの効率的な適応です。LoRA(Low-Rank Adaptation)を使用することで、驚くほど少ないデータでモデルをファインチューニングできます。
LoRAファインチューニングを開始する方法は次のとおりです。
torchrun --standalone --nnodes 1 --nproc-per-node 1 vla-scripts/finetune.py \
--vla_path "openvla/openvla-7b" \
--data_root_dir /path/to/datasets \
--dataset_name your_robot_dataset \
--run_root_dir /path/to/checkpoints \
--lora_rank 32 \
--batch_size 16 \
--learning_rate 5e-4 \
--image_aug True
OpenVLA論文からの重要な洞察: わずか10〜150のデモンストレーションで新しいタスクに対して強力なパフォーマンスを達成できます。LoRAは、フルファインチューニングの結果に匹敵しながら、わずか1.4%のパラメータのみをファインチューニングします。
ロボティクスAIにおけるデータの課題
ここから、スケールでロボティクスAIシステムを構築する誰にとっても興味深いことが始まります。
Open X-Embodimentデータセットは印象的です: 21の研究機関からの22のロボットプラットフォームにわたる1M以上の軌跡。しかし、最近の業界分析からの視点を考慮してください: Open X-Embodimentデータセット全体は、巨大な言語モデルをトレーニングするために使用されるテキストコーパスCommon Crawlの1,673倍小さいです。
ロボティクスAIはデータ不足です。
これは、ユニークな機会と課題を生み出します。より良いロボティクスAIシステムを構築することは、単にモデルアーキテクチャの問題ではありません。スケールで多様なトレーニングデータを収集、キュレーション、処理することが重要です。
ロボティクスにおけるビデオデータの重要性
OpenVLAのトレーニングは視覚データに大きく依存しています。各軌跡には、モデルが解釈を学習するカメラ観測が含まれています。これにより、ロボティクスAIとビデオデータ収集の間に直接的な接続が生まれます。
以下のユースケースを考えてみてください:
デモンストレーションビデオからの学習: 研究者はますます人間のデモンストレーションを見てロボットをトレーニングしています。これには大規模なビデオ収集と処理が必要です。
シミュレーションから現実への転送: チームはシミュレーターを使用して合成トレーニングデータを生成し、実際のビデオ映像と照合します。
クロスエンボディメント学習: OpenVLAの強みは、22種類の異なるロボットタイプ間での学習にあります。これを拡張するには、さらに多くのプラットフォームや環境からのビデオデータが必要です。
AIトレーニングのためのビデオデータ収集に取り組んでいる場合、ロボティクスデータセットを構築する場合でも、他の視覚AIシステムを構築する場合でも、原則は似ています。プロキシ、レート制限、自動化はスケールで重要な要素となります。
大規模なビデオスクレイピング操作には、適切なプロキシ設定を持つyt-dlpのようなツールが視覚トレーニングデータを収集するのに役立ちます。同じインフラストラクチャの課題が適用されます: 回転する住宅プロキシ、堅牢なエラーハンドリング、コンプライアンスを考慮した自動化が必要です。
ロボットトレーニングデータセット構築のベストプラクティス
OpenVLAのドキュメントと研究結果に基づいて、成功するロボティクスデータ収集のための重要な要素は次のとおりです:
制御頻度: 5〜10Hzでデモンストレーションを収集します。OpenVLAはアクションチャンクを使用しないため、高頻度データに苦労します。
連続的な動き: データ収集中に一時停止を避けます。モデルは推論中にアイドルアクションでスタックする可能性があります。
データの多様性: 初期条件、物体の位置、照明の変化を含めます。OpenVLAの一般化はトレーニングデータの多様性から来ています。
一貫した戦略: タスクを同様の方法でデモンストレーションします。一貫したアプローチはモデルにとって学習問題を容易にします。
質を重視: 100の高品質なデモンストレーションは、しばしば1000のノイズの多いものを上回ります。
Open X-Embodimentを超えたスケーリング
Open X-Embodimentデータセットは強力な基盤を提供しますが、製品ロボティクスシステムはしばしばカスタムデータを必要とします。チームがデータセットを拡張する一般的な方法は次のとおりです:
RLDS形式に変換: OpenVLAはRLDS(強化学習データセット)形式のデータを期待します。カスタムデータセットをこのツールキットを使用して変換できます。
カスタムデータセットを登録: 変換後、OpenVLAの設定ファイルにデータセットを登録します。
# In prismatic/vla/datasets/rlds/oxe/configs.py
OXE_DATASET_CONFIGS = {
"your_custom_dataset": {
"image_obs_keys": {"primary": "image"},
"action_space": "continuous",
# ... additional configuration
}
}
混合設定を作成: カスタムデータを既存のOpen X-Embodimentデータセットと組み合わせて、壊滅的な忘却を防ぎます。
パフォーマンスベンチマーク
OpenVLAの結果は自らを語ります:
このモデルは、視覚の変化(背景、気を散らす要素)、動きの変動(物体の位置)、および意味理解(新しい指示)において強力な一般化を示します。
今後の展望
OpenVLAはロボティクスAIにおける変化を表しています。競争力のあるVLAを完全にオープンソースにすることで、研究者たちは最先端のロボット学習へのアクセスを民主化しました。
次のフロンティアはモデルアーキテクチャではありません。それはデータです。
多様なロボティクストレーニングデータを効率的に収集、処理、キュレーションできるチームは、重要なアドバンテージを持つことになります。シミュレーション、人間のデモンストレーション、またはインターネット規模のビデオ収集を通じて、データパイプラインが主要なボトルネックになりつつあります。
この分野で構築している方々へ: モデル開発と同じくらい真剣にデータインフラストラクチャに投資してください。ロボットたちは感謝するでしょう。
関連文献:
- AIのためのYouTubeビデオスクレイピングのスケーリング
- 最高のウェブスクレイピングAPI
- ウェブスクレイピングのための最高のプロキシ
