LeRobot documentation
Wall-OSS-0.5
Wall-OSS-0.5
Wall-OSS-0.5は、XSquare Robotによる4Bのビジョン・言語・アクションモデルです。 Qwen2.5-VLのビジョン・言語バックボーンと、連続的なフローマッチングのアクションエキスパートを組み合わせています。
LeRobot は、wall_oss_05 ポリシータイプと lerobot/wall-oss-0.5 チェックポイントを通じて Wall-OSS-0.5 を提供しています。
wall_oss_05と既存のwall_xポリシーは、異なるWALLリリースを対象としています。 Wall-OSS-0.5のチェックポイントにはwall_oss_05を使用してください。
モデル概要
Wall-OSS-0.5 は、カメラの観測、ロボットの状態、および自然言語によるタスクを条件としてアクション生成を行います。このポリシーは、フローマッチングを用いて連続的なアクションのチャンクを予測します。そのビジョン・言語エキスパートは、キャプション生成、視覚的質問応答、グラウンディング、および言語サブタスクのためにテキストを生成することもできます。
公開されたモデルは以下を使用しています:
- 26次元の正規化された状態とアクションの表現
- 32ステップのアクションチャンク;
- q01/q99範囲正規化;
- 10ステップのフローサンプラー
- 視覚と言語の入力に対応するQwen2.5-VL。
ベースチェックポイントは、デプロイ前にターゲットのロボットとタスクのデータセットでファインチューニングすることを目的としています。
LeRobot統合の範囲
- 標準的な
policy.type=wall_oss_05設定と、Hubからのチェックポイントの読み込み。 - ネイティブのQwen2.5-VLビジョン言語処理とWallアクションエキスパート。
- 連続x予測フロー学習と10ステップのEulerサンプリング。
- レシピ駆動型のテキストクロスエントロピーおよびテキスト/アクションのジョイントファインチューニング。
- VQA、グラウンディング、キャプション、言語サブタスク向けのネイティブなテキスト生成。
- LeRobotのインタラクティブなロールアウトによる直接テキスト生成。
- LeRobotのq01/q99プロセッサを使用して、正規化された26次元の状態およびアクション入力を使用します。
lerobot-trainによるファインチューニングと、標準的なポリシーAPIを介した推論。
インストール要件
Wall-OSS-0.5にはCUDA対応のNVIDIA GPUが必要です。ポリシーの依存関係を含むLeRobotをインストールしてください:
pip install "lerobot[wall_oss_05]"LeRobotのソースチェックアウトの場合:
uv sync --extra wall_oss_05このポリシーは LeRobot にネイティブで実装されています。ポリシー固有の依存関係は Transformers のみであり、Wall-X の個別のチェックアウトは不要です。レシピベースの処理には、dataset の追加パッケージも必要です。言語クエリやトレーニングを行う場合は、uv sync --extra wall_oss_05 --extra training をインストールしてください(training には dataset のサポートが含まれます)。dataset の追加パッケージなしでアクションのみの処理を行う場合は、--policy.recipe=null を設定してください。
チェックポイント
| バリアント | LeRobotチェックポイント | 想定される用途 |
|---|---|---|
| Base 4B | lerobot/wall-oss-0.5 | Canonical 26Dのファインチューニングとデプロイ |
チェックポイントには、ポリシー設定、Qwenプロセッサとトークナイザー、モデルの重み、保存されたLeRobotの前処理/後処理器、正規化統計情報、変換メタデータが含まれます。これはベースのチェックポイントであり、タスクレベルの結果を報告する前に、対象のロボットとタスクでファインチューニングしてください。
使用方法
次のポリシーを選択します:
--policy.type=wall_oss_05
…
--policy.path=lerobot/wall-oss-0.5
保存したLeRobotチェックポイントを評価またはデプロイする際は、--policy.path=your-org/your-finetuned-checkpointを使用してください。
テキストとVQA
Wall-OSS-0.5 は共有ポリシーテキスト契約を使用します。ランタイムはquery_kindとquery_textを供給し、通常のポリシー入力プロセッサを実行します:
request = {
**observation,
"query_kind": "vqa",
"query_text": "Which object is closest to the right gripper?",
}
processed_batch = preprocessor(request)
answer = policy.generate_text(processed_batch)vqa は呼び出し元の質問を保持します。next_subtask はWallOSS05Configが所有するレシピを適用します。ポリシーはgenerate_text(processed_batch)を継承し、supports_text_generationとgenerate_textをオーバーライドします。生成には、チェックポイントの紐付けられた Qwen 語彙ヘッドとビジョン・言語エキスパートが使用され、別の VLM を呼び出しません。
言語ランタイムはサブタスクを生成し、その後、Wall のアクション予測をそのサブタスクに条件付けできます。
lerobot-rollout \
--policy.path=your-org/your-finetuned-wall-oss-0.5 \
--policy.device=cuda \
--task="clear the table" \
--interactive=true/start の後、/vqa <question>、/autosteer <goal>、または /subtask <text> を使用します。
Wallは有用なエンボディドVQAおよびグラウンディング機能を保持していますが、ロボットの観測に特化しており、汎用VLMの代替として意図されたものではありません。
データ要件
Wall-OSS-0.5 は内部で正規化された 26 次元の状態およびアクションのレイアウトで動作します。
より狭い状態およびアクションの特徴量は、それぞれのネイティブなデータセットの統計量で正規化された後、モデル用に 26 次元までゼロパディングされます。パディングされたアクション次元は学習損失から除外されます。出力は、非正規化の前にデータセットのアクション幅にクロップされます。例えば、8 次元の状態と 7 次元のアクションを持つ場合、7 次元のアクションが返されます。postprocess_action_dim を使用すると、追加の出力クロップを適用できます。パディングは関節座標やコントローラの規約を再マッピングしません。互換性のある値を指定してください。
camera_key_mapping を使用して画像入力を設定します。このマッピングは、各 LeRobot 画像特徴量を Wall のカメラスロットに関連付けます。デフォルトのチェックポイントでは、face_view と right_wrist_view が使用されます。
…データセットのタスク文字列は、ポリシーの言語指示として渡されます。 記録、学習、評価の際には、一貫性のあるタスク説明を使用してください。
状態とアクションのq01/q99正規化は、保存されたLeRobotのpreprocessorとpostprocessorによって処理されます。推論時には、チェックポイントに保存された統計情報が復元されます。lerobot-trainでファインチューニングを行う場合、学習データセットの統計情報が事前学習済みプロセッサの統計情報を置き換え、新しいチェックポイントとともに保存されます。
公開されているチェックポイントは、ネイティブのLeRobotポリシー状態辞書および現在の前処理/後処理フォーマットを使用しています。重みの読み込みと保存は、分散環境での集約(gather)およびメインプロセスでの書き込みゲートを含む、共有ポリシー永続化コードを通じて行われます。設定ファイルは安定したトークナイザーアセットの参照を保持しており、任意の作業ディレクトリから読み込むことができます。
トレーニング
標準的なLeRobotトレーニングコマンドを使用して、ベースチェックポイントをファインチューニングします:
トレーニングコマンドの例
lerobot-train \ --dataset.repo_id=your-org/your-dataset \ --policy.path=lerobot/wall-oss-0.5 \ --policy.repo_id=your-org/wall-oss-0.5-your-task \ --output_dir=outputs/train/wall_oss_05 \ --job_name=wall_oss_05_finetune \ --policy.device=cuda \ --batch_size=1 \ --steps=20000
Wall-OSS-0.5 は 4B パラメータのモデルであるため、まず小さなバッチサイズから開始してください。 利用可能な GPU メモリに応じて増やすか、分散学習の設定を通じて勾配蓄積を使用してください。
カメラ名が異なるデータセットの場合、その特徴量のキーをWallのカメラスロットにマッピングします。例えば、topとwristには、次のオプションを追加します。
--policy.camera_key_mapping='{"observation.images.top":"face_view","observation.images.wrist":"right_wrist_view"}'ファインチューニングでは、ベースのチェックポイントを--policy.pathで読み込む場合も含め、データセットからカメラの形状と状態/アクションの幅を解決します。
言語アノテーションで学習
WallOSS05Configが所有するレシピは、デフォルトでLeRobotの任意の言語カラムを使用します。そのジョイントサブタスクレシピは、1つの因果的シーケンス内でアシスタントの応答と連続アクションチャンクを教師信号として使用します。
lerobot-train \
--dataset.repo_id=your-org/your-language-annotated-dataset \
--policy.path=lerobot/wall-oss-0.5 \
--policy.use_language_recipe=true \
--policy.text_loss_weight=0.1 \
--policy.flow_loss_weight=1.0 \
--policy.device=cuda \
--batch_size=1 \
--steps=20000レシピストリームは、各サンプルに対してどの目的が実行されるかを決定します。
- ターゲットされたアシスタントのターンには、次トークンテキストのクロスエントロピーが適用されます。
low_levelのターンでは、連続的なフローアクションの監督を受け取ります。また、low_levelレシピでターゲットされたアシスタントターンがある場合、両方の損失が適用され、アクショントークンは教師付きテキストにアテンションを向けます。
対象の assistant ペイロードとその <|im_end|> トークンだけが、言語ラベルとして使用されます。ユーザーのプロンプト、パディング、画像、プロプライオセプション、および連続アクションクエリトークンは、テキストのクロスエントロピーからマスクされます。アノテーションのない行は、元のアクション専用のプロンプトと損失を保持します。use_language_recipe=false を設定するとアノテーションのレンダリングが無効になり、recipe=null を設定すると両方のレシピレンダラーが無効になります。明示的な recipe_path は、組み込みのレシピを上書きします。新規のファインチューニングでは、そのレシピとトレーニング統計からプロセッサを再構築します。再開されたトレーニングとロールアウトでは、チェックポイントに保存されたプロセッサと統計を復元します。
アノテーションスキーマとレシピの構造については、言語カラムとレシピを参照してください。recipe_pathは、明示的な外部YAMLオーバーライドを指す場合があります。LeRobotは共有のデフォルトレシピファイルを提供していません。
主要な設定パラメータ
| パラメータ | デフォルト | 説明 |
|---|---|---|
pretrained_name_or_path | lerobot/wall-oss-0.5 | Tokenizerおよび画像プロセッサの資産ソース |
tokenizer_revision | None | 重みのリビジョンとは別に指定できる、任意のベーストークナイザのピン |
chunk_size | 32 | チャンクごとに予測されるアクション数 |
n_action_steps | 32 | 再計画の前に実行される予測アクションの数 |
camera_key_mapping | 顔と右手首の視点 | モデルのカメラスロットに画像の特徴キーを関連付けます |
use_language_recipe | true | ポリシー設定に保存されたレシピを有効にします |
recipe_path | None | オプションの明示的な外部レシピの上書き |
text_loss_weight | 0.1 | 教師ありアシスタントトークンのクロスエントロピーの重み |
flow_loss_weight | 1.0 | 連続フローアクション損失の重み |
tokenizer_max_length | 1000 | 最大ジョイントビジョン言語アクショントークンシーケンス長 |
device | auto | Wall-OSS-0.5にはcudaを使用します |
評価と推論
Hub リポジトリまたはローカルディレクトリをポリシーパスとして渡すことで、ファインチューニング済みのチェックポイントを標準的な LeRobot 評価またはロボットロールアウトワークフローで使用できます。
Wall-OSS-0.5 は、そのフローサンプラーによって連続的なアクションチャンクを生成します。現在のポリシーは連続フローブランチをサポートしていますが、自己回帰アクションブランチは公開されていません。
各チャンクは、カメラ画像をエンコードし、観察/テキストのプレフィックスを1回だけプリフィルします。10回のEulerステップでは、プレフィックスのキーと値を再利用し、アクショントークンのデコードのみを行います。新しい観察ごとにキャッシュが再構築されます。
サポートされているシミュレーターの場合、ファインチューニングされたチェックポイントと環境固有のオプションをlerobot-evalを通じて指定します。
lerobot-eval \ --policy.path=your-org/your-finetuned-wall-oss-0.5 \ --policy.device=cuda \ --env.type=<environment> \ --env.task=<task> \ --eval.batch_size=1 \ --eval.n_episodes=10
ベースのチェックポイントをタスク固有のポリシーであるかのように評価しないでください。 正規化された表現、正規化統計量、タスク分布は、ファインチューニングされたチェックポイントと一致する必要があります。
参考文献
ライセンス
Wall-OSS-0.5とWall-XはApache 2.0ライセンスの下でリリースされています。
Update on GitHub