VLAct · Qwen3-VL-4B GR00T · RoboTwin 2.0 (Clean)
0
6 commits
5 linked in READMEs
updated Sep 4, 2026
This repository contains the 50K-step VLAct downstream fine-tuning checkpoint for
RoboTwin 2.0 Clean, introduced in Beyond Data Scaling: Representation-Centric Continued
Pre-training for Vision-Language-Action Models. It starts from
StarVLA/VLAct_Qwen3_Pretrain and adapts the
shared VLAct backbone with a randomly initialized GR00T action head for the target
benchmark.
[!IMPORTANT] This is a StarVLA training / evaluation checkpoint, not a standard
transformers.AutoModelpackage. Load it with the matching StarVLA framework (QwenGR00T) and the packagedconfig.yaml/dataset_statistics.json. Safe robot deployment still requires embodiment-specific action mapping, normalization, camera calibration, control-rate handling, workspace constraints, and independent safety systems.
VLAct is a representation-centric continued-pretraining recipe for vision-language-action models. It preserves the VLM prior, co-trains multiple continuous action heads on a shared latent, and shares action semantics across embodiments with a partially unified padded layout and wrap-aware joint loss. Downstream policies discard the pretraining heads, randomly initialize a target action head, and fine-tune from the VLAct backbone.
The complete method, ablations, and evaluation protocols are documented in the paper and code repository.
| Item | Value |
|---|---|
| Framework | StarVLA QwenGR00T |
| Base VLM | StarVLA/Qwen3-VL-4B-Instruct-Action |
| Pretrained backbone | StarVLA/VLAct_Qwen3_Pretrain @ 100K |
| Action head | GR00T / DiT flow-matching (DiT-B), randomly initialized at fine-tuning start |
| Action / state dimensions | 14-D action / 14-D state |
| Action horizon | 32 steps (future_action_window_size: 31) |
| Diffusion settings | num_inference_timesteps: 4, repeated_diffusion_steps: 4 |
| Dataset mix | robotwin_wrap_32 |
| Data root | ./playground/Datasets/RoboTwin-Clean |
| Image size | 224×224, buckets [[320,180],[280,210]] |
| Training step | 50,000 |
| Per-GPU VLA batch size | 16 |
| Extra losses | endpoint_wrap_loss_weight: 0.5, wrap-aware angular joint loss |
| Learning rates | Qwen-VL interface 1e-5; action/base modules 1e-4 |
| Seed | 42 |
Fine-tuning uses RoboTwin 2.0 Clean (robotwin_wrap_32) with absolute-joint actions and a
CoT object-grounding prompt. The GR00T head is trained as a dual-system continuous action expert on
top of the VLAct backbone.
git clone https://github.com/starVLA/VLAct.git
cd VLAct
conda create -n vlact python=3.10 -y
conda activate vlact
# Install a CUDA-compatible PyTorch build first.
python -m pip install -r requirements.txt
python -m pip install flash-attn==2.7.4.post1 --no-build-isolation
python -m pip install -e .
Run from the VLAct repository root:
hf download StarVLA/VLAct_Qwen3GR00T_Robotwin_Finetune \
--local-dir playground/Pretrained_models/VLAct-Qwen3VL4B-GR00T-Robotwin
The checkpoint path is then:
playground/Pretrained_models/VLAct-Qwen3VL4B-GR00T-Robotwin/checkpoints/steps_50000_pytorch_model.pt
Keep the downloaded directory structure unchanged. StarVLA resolves config.yaml and
dataset_statistics.json from the run directory two levels above the checkpoint file.
The policy predicts actions normalized to roughly [-1, 1]. StarVLA maps them back to physical
units using the q01 / q99 / mask statistics stored in dataset_statistics.json, and the
unnorm_key selects which statistics block to use.
This run packages a single key, new_embodiment. StarVLA resolves it automatically when only one key is
present, so you normally do not need to set anything. If your evaluation config exposes an
unnorm_key field (for example DOMINO's examples/DOMINO/eval_files/deploy_policy.yml or the eval config generated by the RoboTwin launcher), set it to new_embodiment.
Changing the normalization statistics, camera ordering, state usage, action ordering, or execution horizon can materially change results.
Follow examples/Robotwin/README.md for evaluation setup.
Reproduce training with:
bash scripts/run_scripts/RoboTwin/train_robotwin_qwen3gr00t.sh
Reconstruct the policy with the matching StarVLA framework (QwenGR00T) and the packaged
configuration. The .pt file contains model parameters only; it does not package optimizer or
scheduler state.
This checkpoint is intended for evaluation or further fine-tuning on the same embodiment / action contract. Transferring it to a different robot, camera setup, or action space usually requires additional adaptation.
VLAct-Qwen3VL4B-GR00T-Robotwin/
├── README.md
├── config.yaml
├── training_config.original.yaml
├── dataset_statistics.json
├── summary.jsonl
└── checkpoints/
└── steps_50000_pytorch_model.pt
| File | Purpose |
|---|---|
checkpoints/steps_50000_pytorch_model.pt | Fine-tuned PyTorch state dict for the downstream policy |
config.yaml | Portable resolved configuration using the public base-model ID |
training_config.original.yaml | Original resolved run configuration as produced by training; it records the internal base-model ID used at training time and is kept for provenance only |
dataset_statistics.json | Dataset statistics used by StarVLA normalization utilities |
summary.jsonl | Saved-checkpoint step history |
Checkpoint SHA-256:
0609b879b09d51aeebd375f036cc24ca59a9c1d27de4b2cde12abd88048ba26d
VLAct's published RoboTwin 2.0 results:
| Setting | VLAct (OFT head) | Matched Qwen3-VL-OFT baseline |
|---|---|---|
| RoboTwin 2.0 Base, Clean | 80.5% | 61.7% |
| RoboTwin 2.0 Data Scaling, Clean / Random | 92.5% / 90.8% | 88.2% / 88.3% |
[!NOTE] The released artifact head can differ from the head used in the paper's headline table for the same benchmark. The numbers above are the published VLAct results for this benchmark; they are not a re-evaluation of this specific checkpoint.
The RoboTwin headline numbers above use the OFT head, while this checkpoint uses the GR00T head. No separate RoboTwin success rate is reported for this GR00T artifact.
This checkpoint is the VLAct-initialized GR00T RoboTwin policy for head / architecture
comparison. To reproduce the headline RoboTwin numbers, use
VLAct_Qwen3OFT_Robotwin_Finetune
(Base, Clean) or
VLAct_Qwen3OFT_Robotwin_all_Finetune
(Data Scaling).
This checkpoint is intended for research on VLA representation transfer and benchmark evaluation on RoboTwin 2.0 Clean.
@article{yang2026beyond,
title={Beyond Data Scaling: Representation-Centric Continued Pre-training for Vision-Language-Action Models},
author={Yang, Senqiao and Wang, Chengyao and Chen, Yuxin and Wang, Zixuan and Tang, Longxiang and Gui, Haokun and Ye, Jinhui and Lu, Changsheng and Wu, Xiaoyang and Zhu, Mingkang and others},
journal={arXiv preprint arXiv:2608.27550},
year={2026}
}
The checkpoint is released under the Apache License 2.0. The VLAct code repository is released separately under the MIT License. Users must also comply with the licenses and terms of the base model, the VLAct pretraining checkpoint, and the training / evaluation datasets.
VLAct builds on StarVLA, LeRobot, GR00T, and Qwen3-VL.
For questions, email yangsenqiao.ai@gmail.com or open an issue in the VLAct repository.
VLAct · Qwen3-VL-4B GR00T · RoboTwin 2.0 (Clean)
0
6 commits
5 linked in READMEs
updated Sep 4, 2026
This repository contains the 50K-step VLAct downstream fine-tuning checkpoint for
RoboTwin 2.0 Clean, introduced in Beyond Data Scaling: Representation-Centric Continued
Pre-training for Vision-Language-Action Models. It starts from
StarVLA/VLAct_Qwen3_Pretrain and adapts the
shared VLAct backbone with a randomly initialized GR00T action head for the target
benchmark.
[!IMPORTANT] This is a StarVLA training / evaluation checkpoint, not a standard
transformers.AutoModelpackage. Load it with the matching StarVLA framework (QwenGR00T) and the packagedconfig.yaml/dataset_statistics.json. Safe robot deployment still requires embodiment-specific action mapping, normalization, camera calibration, control-rate handling, workspace constraints, and independent safety systems.
VLAct is a representation-centric continued-pretraining recipe for vision-language-action models. It preserves the VLM prior, co-trains multiple continuous action heads on a shared latent, and shares action semantics across embodiments with a partially unified padded layout and wrap-aware joint loss. Downstream policies discard the pretraining heads, randomly initialize a target action head, and fine-tune from the VLAct backbone.
The complete method, ablations, and evaluation protocols are documented in the paper and code repository.
| Item | Value |
|---|---|
| Framework | StarVLA QwenGR00T |
| Base VLM | StarVLA/Qwen3-VL-4B-Instruct-Action |
| Pretrained backbone | StarVLA/VLAct_Qwen3_Pretrain @ 100K |
| Action head | GR00T / DiT flow-matching (DiT-B), randomly initialized at fine-tuning start |
| Action / state dimensions | 14-D action / 14-D state |
| Action horizon | 32 steps (future_action_window_size: 31) |
| Diffusion settings | num_inference_timesteps: 4, repeated_diffusion_steps: 4 |
| Dataset mix | robotwin_wrap_32 |
| Data root | ./playground/Datasets/RoboTwin-Clean |
| Image size | 224×224, buckets [[320,180],[280,210]] |
| Training step | 50,000 |
| Per-GPU VLA batch size | 16 |
| Extra losses | endpoint_wrap_loss_weight: 0.5, wrap-aware angular joint loss |
| Learning rates | Qwen-VL interface 1e-5; action/base modules 1e-4 |
| Seed | 42 |
Fine-tuning uses RoboTwin 2.0 Clean (robotwin_wrap_32) with absolute-joint actions and a
CoT object-grounding prompt. The GR00T head is trained as a dual-system continuous action expert on
top of the VLAct backbone.
git clone https://github.com/starVLA/VLAct.git
cd VLAct
conda create -n vlact python=3.10 -y
conda activate vlact
# Install a CUDA-compatible PyTorch build first.
python -m pip install -r requirements.txt
python -m pip install flash-attn==2.7.4.post1 --no-build-isolation
python -m pip install -e .
Run from the VLAct repository root:
hf download StarVLA/VLAct_Qwen3GR00T_Robotwin_Finetune \
--local-dir playground/Pretrained_models/VLAct-Qwen3VL4B-GR00T-Robotwin
The checkpoint path is then:
playground/Pretrained_models/VLAct-Qwen3VL4B-GR00T-Robotwin/checkpoints/steps_50000_pytorch_model.pt
Keep the downloaded directory structure unchanged. StarVLA resolves config.yaml and
dataset_statistics.json from the run directory two levels above the checkpoint file.
The policy predicts actions normalized to roughly [-1, 1]. StarVLA maps them back to physical
units using the q01 / q99 / mask statistics stored in dataset_statistics.json, and the
unnorm_key selects which statistics block to use.
This run packages a single key, new_embodiment. StarVLA resolves it automatically when only one key is
present, so you normally do not need to set anything. If your evaluation config exposes an
unnorm_key field (for example DOMINO's examples/DOMINO/eval_files/deploy_policy.yml or the eval config generated by the RoboTwin launcher), set it to new_embodiment.
Changing the normalization statistics, camera ordering, state usage, action ordering, or execution horizon can materially change results.
Follow examples/Robotwin/README.md for evaluation setup.
Reproduce training with:
bash scripts/run_scripts/RoboTwin/train_robotwin_qwen3gr00t.sh
Reconstruct the policy with the matching StarVLA framework (QwenGR00T) and the packaged
configuration. The .pt file contains model parameters only; it does not package optimizer or
scheduler state.
This checkpoint is intended for evaluation or further fine-tuning on the same embodiment / action contract. Transferring it to a different robot, camera setup, or action space usually requires additional adaptation.
VLAct-Qwen3VL4B-GR00T-Robotwin/
├── README.md
├── config.yaml
├── training_config.original.yaml
├── dataset_statistics.json
├── summary.jsonl
└── checkpoints/
└── steps_50000_pytorch_model.pt
| File | Purpose |
|---|---|
checkpoints/steps_50000_pytorch_model.pt | Fine-tuned PyTorch state dict for the downstream policy |
config.yaml | Portable resolved configuration using the public base-model ID |
training_config.original.yaml | Original resolved run configuration as produced by training; it records the internal base-model ID used at training time and is kept for provenance only |
dataset_statistics.json | Dataset statistics used by StarVLA normalization utilities |
summary.jsonl | Saved-checkpoint step history |
Checkpoint SHA-256:
0609b879b09d51aeebd375f036cc24ca59a9c1d27de4b2cde12abd88048ba26d
VLAct's published RoboTwin 2.0 results:
| Setting | VLAct (OFT head) | Matched Qwen3-VL-OFT baseline |
|---|---|---|
| RoboTwin 2.0 Base, Clean | 80.5% | 61.7% |
| RoboTwin 2.0 Data Scaling, Clean / Random | 92.5% / 90.8% | 88.2% / 88.3% |
[!NOTE] The released artifact head can differ from the head used in the paper's headline table for the same benchmark. The numbers above are the published VLAct results for this benchmark; they are not a re-evaluation of this specific checkpoint.
The RoboTwin headline numbers above use the OFT head, while this checkpoint uses the GR00T head. No separate RoboTwin success rate is reported for this GR00T artifact.
This checkpoint is the VLAct-initialized GR00T RoboTwin policy for head / architecture
comparison. To reproduce the headline RoboTwin numbers, use
VLAct_Qwen3OFT_Robotwin_Finetune
(Base, Clean) or
VLAct_Qwen3OFT_Robotwin_all_Finetune
(Data Scaling).
This checkpoint is intended for research on VLA representation transfer and benchmark evaluation on RoboTwin 2.0 Clean.
@article{yang2026beyond,
title={Beyond Data Scaling: Representation-Centric Continued Pre-training for Vision-Language-Action Models},
author={Yang, Senqiao and Wang, Chengyao and Chen, Yuxin and Wang, Zixuan and Tang, Longxiang and Gui, Haokun and Ye, Jinhui and Lu, Changsheng and Wu, Xiaoyang and Zhu, Mingkang and others},
journal={arXiv preprint arXiv:2608.27550},
year={2026}
}
The checkpoint is released under the Apache License 2.0. The VLAct code repository is released separately under the MIT License. Users must also comply with the licenses and terms of the base model, the VLAct pretraining checkpoint, and the training / evaluation datasets.
VLAct builds on StarVLA, LeRobot, GR00T, and Qwen3-VL.
For questions, email yangsenqiao.ai@gmail.com or open an issue in the VLAct repository.