StarVLA Qwen RoboTwin inference bundle
This release contains the StarVLA code snapshot used for training and six RoboTwin policy checkpoints. Training logs, W&B files, optimizer states, other intermediate checkpoints, datasets, caches, local credentials, and local absolute paths are excluded.
Models
| Directory | VLM backbone | Training | Action checkpoint |
|---|---|---|---|
checkpoints/qwen35-2b-robotwin |
Qwen/Qwen3.5-2B |
150,000 optimizer steps | about 6.27 GB |
checkpoints/qwen35-4b-robotwin |
Qwen/Qwen3.5-4B |
150,000 optimizer steps | about 11.48 GB |
checkpoints/qwen3vl-4b-robotwin |
Qwen/Qwen3-VL-4B-Instruct |
150,000 optimizer steps | about 10.92 GB |
checkpoints/smolvlm2-2b-robotwin-step150000 |
HuggingFaceTB/SmolVLM2-2.2B-Instruct |
checkpoint at 150,000 optimizer steps | about 5.32 GB |
checkpoints/qwen35-9b-robotwin-step150000 |
Qwen/Qwen3.5-9B |
checkpoint at 150,000 optimizer steps | about 20.05 GB |
checkpoints/qwen35-9b-pelican-robotwin-step150000 |
Pelican VLM-finetuned Qwen3.5-9B, then full VLA training |
checkpoint at 150,000 optimizer steps | about 20.05 GB |
Each checkpoint directory preserves the layout expected by StarVLA:
checkpoints/<model>/
βββ config.yaml
βββ config.full.yaml
βββ dataset_statistics.json
βββ final_model/
βββ pytorch_model.pt
The portable config.yaml files reference public upstream VLM repositories. The base VLM is downloaded on first use, and the complete trained VLA state dict is then loaded with strict key matching. The Pelican policy was initialized from the merged VLM checkpoint qwen35vl_lora_sft_60k_30k_15k_raw_v1_8gpu_merged/checkpoint-8500; its complete post-VLA-training state is contained in the uploaded policy checkpoint, so the public Qwen3.5-9B repository is sufficient to construct the architecture before strict state-dict loading.
Download on another server
python -m pip install -U "huggingface_hub[cli]"
huggingface-cli download kesnick/vlabench \
--repo-type model \
--local-dir starvla-qwen-robotwin
cd starvla-qwen-robotwin
For a private repository, run hf auth login first or export a read token as HF_TOKEN.
StarVLA environment
The tested environment uses Python 3.11, PyTorch 2.6.0+cu124, torchvision 0.21.0, Transformers 5.3.0, Accelerate 1.5.2, DeepSpeed 0.16.9, flash-linear-attention 0.3.2, causal-conv1d 1.5.0.post8, and Triton 3.2.0.
Create an environment compatible with the destination CUDA driver, then install the code and inference dependencies:
conda create -n starvla python=3.11 -y
conda activate starvla
# Install the matching CUDA build of torch/torchvision first.
pip install torch==2.6.0 torchvision==0.21.0 \
--index-url https://download.pytorch.org/whl/cu124
pip install -r requirements-inference.txt
pip install -e ./code --no-deps
If the destination server cannot build the linear-attention CUDA packages, clone the already tested conda environment with conda-pack instead. The environment must retain Transformers 5.3.0; the repository's historical code/requirements.txt pins 4.57.0 and must not be used for these Qwen3.5 checkpoints.
RoboTwin environment
Install RoboTwin 2.0 from its official repository in a separate robotwin environment. Then install the lightweight evaluation client dependencies:
conda activate robotwin
pip install -r code/examples/simBenchmarks/Robotwin/eval_files/requirements.txt
Apply the policy_ckpt_path patch documented in:
code/examples/simBenchmarks/Robotwin/README.md
The patch modifies only the external RoboTwin checkout so it forwards the selected StarVLA checkpoint to the policy client.
Smoke evaluation
The StarVLA policy server and RoboTwin simulator run in separate environments. The unified launcher starts both sides and cleans them up automatically:
export ROBOTWIN_PATH=/absolute/path/to/RoboTwin
export STARVLA_PYTHON=/absolute/path/to/envs/starvla/bin/python
export ROBOTWIN_PYTHON=/absolute/path/to/envs/robotwin/bin/python
export CUDA_VISIBLE_DEVICES=0
cd code
bash examples/simBenchmarks/Robotwin/eval_files/start_eval.sh \
-m demo_randomized \
-n qwen35_2b_smoke \
-c ../checkpoints/qwen35-2b-robotwin/final_model/pytorch_model.pt \
adjust_bottle
Replace the checkpoint directory with any entry in the model table to evaluate another policy.
Multi-GPU full evaluation
export ROBOTWIN_PATH=/absolute/path/to/RoboTwin
export STARVLA_PYTHON=/absolute/path/to/envs/starvla/bin/python
export ROBOTWIN_PYTHON=/absolute/path/to/envs/robotwin/bin/python
export CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7
cd code
bash examples/simBenchmarks/Robotwin/eval_files/start_eval.sh \
-m demo_randomized \
-n qwen35_4b_full_eval \
-c ../checkpoints/qwen35-4b-robotwin/final_model/pytorch_model.pt \
all
The formal observation contract is three RGB views in [head, left wrist, right wrist] order, resized to 224 x 224, with absolute 14-dimensional action chunks of horizon 50. dataset_statistics.json is used for action unnormalization.
Included and excluded files
Included:
- StarVLA source and RoboTwin evaluation scripts from commit
312fac890ab75b7651d2bc4f8f8c8dbb5e055184, including the local Qwen3.5 and evaluation compatibility changes. - Final model weights only.
- Portable runtime configuration and dataset normalization statistics.
- Reproduction configuration and environment requirements.
Excluded:
- Training and evaluation logs.
- W&B local data and API keys.
- Intermediate 10k-step checkpoints and optimizer/DeepSpeed state.
- RoboTwin datasets and videos.
- Base Qwen model weights already available from their upstream Hugging Face repositories.
- Git history, caches, editor settings, and Python bytecode.