Model Card for lingbot_vla_v2

LingBot-VLA 2.0 is a cross-embodiment Vision-Language-Action policy that pairs a Qwen3-VL-4B backbone with a sparse-MoE Qwen2 action expert, predicting action chunks via flow matching over a unified 55-D canonical state/action space.

This policy has been trained and pushed to the Hub using LeRobot.

Learn how to train and run it in the LeRobot lingbot_vla_v2 guide, or browse the full documentation.


Model Details

Inputs & Outputs

The policy consumes these observation features and produces these action features.

Inputs

Feature Type Shape
observation.state STATE (6,)
observation.images.camera_top VISUAL (3, 224, 224)
observation.images.camera_wrist_left VISUAL (3, 224, 224)
observation.images.camera_wrist_right VISUAL (3, 224, 224)

Outputs

Feature Type Shape
action ACTION (6,)

Training Dataset

  • Repository: maximellerbach/omx_multicubes
  • Episodes: 176
  • Frames: 137392
  • Frame rate: 30 FPS
  • Task(s): "pick all the cubes and place them one by one in the blue square"

Training Configuration

Setting Value
Training steps 10000
Batch size 4
Optimizer adamw
Learning rate 5e-05
Seed 1000
LeRobot version 0.6.2

How to Get Started with the Model

New to LeRobot? These guides cover the full workflow:

The short version to run and train this policy:

Run the policy on your robot

lerobot-rollout \
  --strategy.type=base \
  --robot.type=omx_follower \
  --robot.port=<your_robot_port> \
  --robot.cameras="{ <camera_1>: {type: opencv, index_or_path: <index_or_path>, width: 640, height: 480, fps: 30}, <camera_2>: {type: opencv, index_or_path: <index_or_path>, width: 640, height: 480, fps: 30}}" \
  --policy.path=maximellerbach/lingbot_vla_v2_omx_multicubes_distill \
  --task="pick all the cubes and place them one by one in the blue square" \
  --duration=60

Replace the remaining <...> placeholders with your own values: --robot.port and the camera names/indices are specific to your machine, and the camera names must match the observation keys this policy was trained on.

When --strategy.type=base is used the script doesn't record the episodes. Skipping duration will make the policy run indefinitely. For more information look at rollout documentation.

Train your own policy

Fine-tune your own from the same base model, lerobot/lingbot_vla_v2_base:

lerobot-train \
  --dataset.repo_id=${HF_USER}/<dataset> \
  --policy.path=lerobot/lingbot_vla_v2_base \
  --output_dir=outputs/train/<policy_repo_id> \
  --job_name=lerobot_training \
  --policy.device=cuda \
  --policy.repo_id=${HF_USER}/<policy_repo_id> \
  --wandb.enable=true

Writes checkpoints to outputs/train/<policy_repo_id>/checkpoints/.


Evaluation

No evaluation results have been provided for this policy yet.


Citation

If you use this policy, please cite the method linked in the description above, along with LeRobot:

@misc{cadene2024lerobot,
    author = {Cadene, Remi and Alibert, Simon and Soare, Alexander and Gallouedec, Quentin and Zouitine, Adil and Palma, Steven and Kooijmans, Pepijn and Aractingi, Michel and Shukor, Mustafa and Aubakirova, Dana and Russi, Martino and Capuano, Francesco and Pascal, Caroline and Choghari, Jade and Moss, Jess and Wolf, Thomas},
    title = {LeRobot: State-of-the-art Machine Learning for Real-World Robotics in Pytorch},
    howpublished = "\url{https://github.com/huggingface/lerobot}",
    year = {2024}
}
Downloads last month
20
Safetensors
Model size
6B params
Tensor type
BF16
·
Video Preview
loading

Model tree for maximellerbach/lingbot_vla_v2_omx_multicubes_distill

Finetuned
(1)
this model

Dataset used to train maximellerbach/lingbot_vla_v2_omx_multicubes_distill