11system :
2- batch_size : 16
2+ batch_size : 8
33 train_steps : 30000
44 log_freq : 1
55 grad_clip_norm : 1.0
66 use_amp : true
77 shuffle : true
88 num_workers : 4
9+ # Weight applied to VLM language modelling loss when co-training with vlm_data_path.
10+ # Set to 0 or omit vlm_data_path to disable co-training.
11+ vlm_loss_scale : 0.1
912
1013 checkpoint :
1114 output_directory : ${experiment.exp_dir}
1215 # Whether to save checkpoint
1316 save_checkpoint : true
1417 # Number of steps between checkpoints
15- save_freq : 1000
16- # TODO(yupu): Support resuming from checkpoint
18+ save_freq : 10000
19+ # Path to a checkpoint directory to resume training from (e.g. /path/to/checkpoints/005000)
20+ # resume_from:
1721
1822model :
19- # TODO: (yupu) the config layout is still a mess
2023 model_name : qwen_gr00t
21- # Path to the checkpoint of the pretrained base VLM model, e.g. Qwen3-VL-4B-Instruct
22- checkpoint_dir : /workspace/models/Qwen/Qwen3-VL-4B-Instruct/
2324 vlm :
2425 type : qwen3-vl
25- qwenvl :
2626 base_vlm : /workspace/models/Qwen/Qwen3-VL-4B-Instruct/
2727 attn_implementation : flash_attention_2
28- vl_hidden_dim : 2048
29- dino :
30- dino_backbone : dinov2_vits14
3128 action_model :
3229 # Whether to condition the action model on proprioceptive state (observation.state)
3330 use_state : false
34- type : flow_matching
31+ type : gr00t_action_head
3532 action_model_type : DiT-B
36- action_hidden_dim : 1024
3733 hidden_size : 1024
3834 add_pos_embed : True
3935 max_seq_len : 1024
4036 action_dim : 7
4137 state_dim : 7
4238 future_action_window_size : 7
4339 action_horizon : 8
44- past_action_window_size : 0
4540 repeated_diffusion_steps : 4
4641 noise_beta_alpha : 1.5
4742 noise_beta_beta : 1.0
@@ -58,7 +53,13 @@ model:
5853 num_layers : 16
5954 output_dim : 1024
6055 positional_embeddings : None
61- reduce_in_full_precision : True
56+
57+ prompt_template : " Your task is {instruction}. To identify the key objects for your task. Locate their bounding boxes in [x1,y1,x2,y2] format."
58+
59+ normalization_mapping :
60+ VISUAL : IDENTITY
61+ STATE : MIN_MAX
62+ ACTION : MIN_MAX
6263
6364 optimizer :
6465 name : AdamW
@@ -117,24 +118,11 @@ data:
117118 vision_root : " "
118119 action_key : eepose
119120 state_key : eepose
120- # TODO: (yupu) Remove this once we have a proper dataset config
121- vla_data :
122- dataset_py : lerobot_datasets
123- data_root_dir : playground/Datasets/
124- data_mix : libero_goal_old
125- action_type : delta_qpos
126- CoT_prompt : Your task is {instruction}. To identify the key objects for your task. Locate their bounding boxes in [x1,y1,x2,y2] format.
127- CoT_answer : bbox
128- default_image_resolution : [3, 224, 224]
129- load_all_data_for_training : True
130- obs : ["image_0"]
131- video_backend : torchvision_av
132121 # Path to the training data
133122 data_path : /workspace/datasets/IPEC-COMMUNITY/libero_goal_no_noops_1.0.0_lerobot/
123+ # Path to VLM co-training data (WDS/Energon format). Leave unset to disable co-training.
124+ # vlm_data_path: /workspace/datasets/vlm_cotrain/
134125 tolerance_s : 0.0001
135- # TODO: (yupu) I think these indices should belong to the policy config, maybe put it in the model config?
136- observation_delta_indices : [0]
137- action_delta_indices : [0,1,2,3,4,5,6,7]
138126 preprocessor :
139127 name : policy_preprocessor
140128 steps :
@@ -151,18 +139,12 @@ data:
151139 config :
152140 eps : 1e-8
153141 features : {}
154- norm_map :
155- VISUAL : IDENTITY
156- STATE : MIN_MAX
157- ACTION : MIN_MAX
142+ # norm_map is injected at runtime from model.normalization_mapping
158143 postprocessor :
159144 name : policy_postprocessor
160145 steps :
161146 - registry_name : unnormalizer_processor
162147 config :
163148 eps : 1e-8
164149 features : {}
165- norm_map :
166- VISUAL : IDENTITY
167- STATE : MIN_MAX
168- ACTION : MIN_MAX
150+ # norm_map is injected at runtime from model.normalization_mapping
0 commit comments