# SO-101 PickOrange — StarVLA QwenGR00T (Qwen3-VL-4B vision + GR00T flow-matching head) # LeIsaac SO-101 single-arm, 6-DOF joints, LeRobot v2.1 (read via v2.0 path). # Run 1 recipe: freeze the whole VLM, train only the action head (GR00T-N1.7-style, # fits 32G, leverages pretrained Qwen3-VL vision as-is = the "vision dividend"). run_id: so101_pickorange_qwengr00t run_root_dir: /root/autodl-tmp/starvla-outputs seed: 42 wandb_entity: "" wandb_project: starVLA_SO101 is_debug: false version_id: "0.21" framework: name: QwenGR00T qwenvl: base_vlm: /root/autodl-tmp/models/Qwen3-VL-4B-Instruct attn_implementation: flash_attention_2 vl_hidden_dim: 2048 action_model: action_dim: 6 state_dim: 6 action_horizon: 16 datasets: vla_data: dataset_py: lerobot_datasets data_root_dir: /root/autodl-tmp/datasets data_mix: so101_pickorange lerobot_version: v2.0 # our dataset is v2.1 -> read via v2.0 file layout sequential_step_sampling: false per_device_batch_size: 8 load_all_data_for_training: true video_backend: torchvision_av trainer: max_train_steps: 30000 num_warmup_steps: 1500 save_interval: 3000 eval_interval: 100000 # no in-train sim eval here -> effectively off learning_rate: base: 2.5e-05 qwen_vl_interface: 1.0e-05 action_model: 1.0e-04 lr_scheduler_type: cosine_with_min_lr scheduler_specific_kwargs: min_lr: 1.0e-06 freeze_modules: 'qwen_vl_interface' loss_scale: vla: 1.0 vlm: 0.1 max_grad_norm: 1.0 weight_decay: 0.0 logging_frequency: 10 gradient_clipping: 1.0 gradient_accumulation_steps: 1 # must match ds_config.yaml (deepspeed hardcodes 1) gradient_checkpointing: true optimizer: name: AdamW betas: [0.9, 0.95] eps: 1.0e-08 weight_decay: 1.0e-08