ccwatson commited on
Commit
5c0ec0f
·
verified ·
1 Parent(s): 1d47c1f

Add step-10000 model card, config, normalization, and provenance

Browse files
README.md ADDED
@@ -0,0 +1,181 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: apache-2.0
3
+ language:
4
+ - en
5
+ pipeline_tag: robotics
6
+ library_name: molmobot
7
+ base_model: allenai/MolmoBot-DROID
8
+ datasets:
9
+ - ccwatson/directional_pick_place_simpledesk_diverse_targets_tested40_200demos_20260716_molmobot
10
+ tags:
11
+ - molmobot
12
+ - robotics
13
+ - manipulation
14
+ - franka
15
+ - droid
16
+ - pick-and-place
17
+ - spatial-reasoning
18
+ - left-right
19
+ - molmospaces
20
+ - 10000-steps
21
+ model-index:
22
+ - name: MolmoBot-DROID Directional Pick/Place SimpleDesk Step 10000
23
+ results:
24
+ - task:
25
+ type: robotics
26
+ name: Franka pick-and-place relative left/right
27
+ dataset:
28
+ type: ccwatson/FrankaPickAndPlaceRelativeNextToSimpleDeskDiverseTargetsTested40Bench
29
+ name: MolmoSpaces SimpleDesk Diverse Targets Tested40
30
+ split: 40 benchmark episodes
31
+ metrics:
32
+ - type: success_rate
33
+ name: Strict success rate
34
+ value: 0.625
35
+ - type: lax_success_rate
36
+ name: Lax success rate
37
+ value: 0.65
38
+ ---
39
+
40
+ # MolmoBot-DROID Directional Pick/Place SimpleDesk — Step 10,000
41
+
42
+ This repository contains the **10,000-step intermediate checkpoint** from the
43
+ `lr_custom_16k` MolmoBot finetuning run. It was finetuned from
44
+ [`allenai/MolmoBot-DROID`](https://huggingface.co/allenai/MolmoBot-DROID) for
45
+ Franka/FR3 tabletop pick-and-place commands that require placing one object to
46
+ the **left or right of another object**.
47
+
48
+ The root `config.yaml` and `model.pt` form the unsharded MolmoBot checkpoint
49
+ expected by the MolmoBot server. This is not the final 16,000-step checkpoint;
50
+ the step is deliberately included in both the repository name and this model
51
+ card.
52
+
53
+ ## Checkpoint identity
54
+
55
+ | Field | Value |
56
+ | --- | --- |
57
+ | Checkpoint step | **10,000** |
58
+ | Training run | `lr_custom_16k` |
59
+ | Checkpoint format | MolmoBot unsharded (`config.yaml` + `model.pt`) |
60
+ | Base model | `allenai/MolmoBot-DROID` |
61
+ | Base model revision | `cbe6ec358958d07ddfb20d3aa54e560e9e1b18c9` |
62
+ | Training W&B run | [`ccwatson/molmobot_finetune/ouuzdjlg`](https://wandb.ai/ccwatson/molmobot_finetune/runs/ouuzdjlg) |
63
+ | Training Slurm job | `7107997` (`lr-custom-ie-fe-16k-b16-32`) |
64
+ | Checkpoint created | 2026-07-17 12:11 UTC |
65
+ | `model.pt` size | 19,992,166,548 bytes |
66
+ | `config.yaml` SHA-256 | `7eeb51134b93fc17955f3bd850240074d6b9faf3dcf527177861940c7c098400` |
67
+
68
+ The complete resolved model/trainer configuration is in `config.yaml`. The
69
+ submission-time environment is preserved as `metadata/training_launch.env`, and
70
+ machine-readable provenance is in `metadata/provenance.json`.
71
+
72
+ ## Training data
73
+
74
+ Training used
75
+ [`ccwatson/directional_pick_place_simpledesk_diverse_targets_tested40_200demos_20260716_molmobot`](https://huggingface.co/datasets/ccwatson/directional_pick_place_simpledesk_diverse_targets_tested40_200demos_20260716_molmobot)
76
+ at dataset revision `5446191605f7eb3020983d83f707153d9719ecfb`.
77
+
78
+ The dataset contains 200 successful scripted trajectories derived from 40
79
+ valid benchmark episodes, with five attempts per episode:
80
+
81
+ | Split | Source episodes | Trajectories | HDF5 files | Videos |
82
+ | --- | ---: | ---: | ---: | ---: |
83
+ | Train | 36 | 180 | 180 | 360 |
84
+ | Validation | 4 | 20 | 20 | 40 |
85
+
86
+ The two cameras are `droid_shoulder_light_randomization` and
87
+ `wrist_camera_zed_mini`. Prompts were **not randomized** during training.
88
+ Normalization was computed from the train split using action quantiles and
89
+ state min/max statistics for the eight-dimensional Franka action and state
90
+ vectors. The exact statistics are included as `normalization_stats.yaml`
91
+ (SHA-256 `972a88e10f02976ce5a4d1c90a2070a62e4daa08a5fe1cecb4ca00e8216eb15d`).
92
+
93
+ ## Main training settings
94
+
95
+ | Setting | Value |
96
+ | --- | --- |
97
+ | Intended run length | 16,000 steps |
98
+ | This checkpoint | 10,000 steps |
99
+ | Device / global batch size | 16 / 32 |
100
+ | Sequence length | 928 |
101
+ | Observation frames | 2 |
102
+ | Observation step delta | 8 |
103
+ | Maximum images | 4 |
104
+ | Maximum frames | 1 |
105
+ | Single-frame preprocessing | false |
106
+ | Action preset | `franka_joint` |
107
+ | Camera preset | `franka_droid` |
108
+ | Action horizon in data | 16 × 8 |
109
+ | Weighted sampling | enabled |
110
+ | Prompt randomization | disabled |
111
+ | Image augmentation | enabled |
112
+ | LLM finetuning | enabled |
113
+ | Embedding finetuning mode | `ae` |
114
+ | Flow timestamps | 8 |
115
+ | Connector learning rate | `5e-6` |
116
+ | Vision encoder learning rate | `5e-6` |
117
+ | LLM learning rate | `1e-5` |
118
+ | Action expert learning rate | `1e-4` |
119
+ | Validation interval / max examples | 200 / 200 |
120
+ | Save and external-eval interval | 2,000 steps |
121
+ | Trainer and optimizer state | reset from base model |
122
+ | Hardware | 1× NVIDIA B200, 28 CPUs, 224 GiB host memory |
123
+
124
+ ## Closed-loop evaluation
125
+
126
+ This checkpoint was evaluated on all 40 episodes of
127
+ `FrankaPickAndPlaceRelativeNextToSimpleDeskDiverseTargetsTested40Bench` (20
128
+ left and 20 right tasks) through the VLA evaluation harness and MolmoSpaces.
129
+ The evaluation used natural-language prompts, Filament rendering, 10 parallel
130
+ shards, a 500-step task horizon, and both DROID cameras.
131
+
132
+ Server action settings were:
133
+
134
+ - execution horizon: 8
135
+ - state mode: `cross_attn`
136
+ - maximum joint delta: 0.2
137
+
138
+ | Metric | Result |
139
+ | --- | ---: |
140
+ | Strict success | **25 / 40 (62.5%)** |
141
+ | Lax success | 26 / 40 (65.0%) |
142
+ | Strict oracle-done rate | 25 / 40 (62.5%) |
143
+ | Lax oracle-done rate | 27 / 40 (67.5%) |
144
+ | Average episode length | 274.675 steps |
145
+ | Average successful episode length | 140.08 steps |
146
+ | Min / max episode length | 32 / 499 steps |
147
+ | Failed shards | 0 |
148
+ | Missing / duplicate / unexpected episodes | 0 / 0 / 0 |
149
+
150
+ The eval completed successfully (`eval_returncode=0`) in 2,016.92 seconds.
151
+ See the [evaluation W&B run](https://wandb.ai/ccwatson/mlspaces-json-eval/runs/external-eval-lr_custom_16k-step10000),
152
+ `metadata/external_eval_request.json`, and
153
+ `metadata/external_eval_result.json` for the complete recorded configuration
154
+ and result.
155
+
156
+ ## Repository files
157
+
158
+ - `model.pt`: unsharded MolmoBot weights.
159
+ - `config.yaml`: complete resolved model and trainer configuration.
160
+ - `normalization_stats.yaml`: exact state/action normalization statistics.
161
+ - `metadata/training_launch.env`: exact experiment launch configuration.
162
+ - `metadata/external_eval_request.json`: checkpoint identity and requested eval settings.
163
+ - `metadata/external_eval_result.json`: complete eval result and coverage accounting.
164
+ - `metadata/provenance.json`: source revisions, hashes, run identity, and artifact inventory.
165
+
166
+ ## Intended use and limitations
167
+
168
+ This checkpoint is intended for research evaluation of the matching
169
+ Franka/FR3 DROID-camera setup and directional SimpleDesk tasks. It should be
170
+ served with the MolmoBot inference stack and the included normalization stats.
171
+ It has only been measured on the 40-episode simulated benchmark described
172
+ above. The 62.5% result is a single benchmark evaluation, not a claim of broad
173
+ robotic capability or real-world safety. Validate action scaling, cameras,
174
+ workspace limits, collision handling, and emergency-stop behavior before any
175
+ physical-robot use.
176
+
177
+ ## License
178
+
179
+ This derivative checkpoint follows the Apache-2.0 license declared by the base
180
+ `allenai/MolmoBot-DROID` model. Users remain responsible for the terms of the
181
+ base model, training dataset, simulator assets, and other dependencies.
config.yaml ADDED
@@ -0,0 +1,705 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ run_name: lr_custom_16k
2
+ model:
3
+ model_name: molmobot
4
+ data_formatter:
5
+ prompt_templates: uber_model_v2
6
+ message_format: qwen3
7
+ system_prompt: demo_or_style_v2
8
+ always_start_with_space: false
9
+ default_inference_len: 65
10
+ select_answer: best
11
+ debug: false
12
+ image_last: false
13
+ format_message_list: null
14
+ p_one_message: 0.0
15
+ eval_system_prompt_mapping: null
16
+ p_choice_content_in_mc: 1.0
17
+ template_video_mc_questions: true
18
+ pointing_format: html-v2
19
+ points_decimal_places: 1
20
+ use_seperate_non_pointing_qa_style: false
21
+ timestamp_mode: 50-percent-seconds
22
+ output_timestamp_mode: seconds
23
+ seconds_decimal_places: 1
24
+ p_multi_point_all_image: 0.5
25
+ use_seperate_count_without_pointing_style: false
26
+ sample_random_initial_point: true
27
+ llm:
28
+ d_model: 2560
29
+ n_heads: 32
30
+ n_kv_heads: 8
31
+ head_dim: 128
32
+ qkv_bias: false
33
+ clip_qkv: null
34
+ n_layers: 36
35
+ mlp_ratio: 4
36
+ mlp_hidden_size: 19456
37
+ activation_type: swiglu
38
+ block_type: sequential
39
+ rope: true
40
+ rope_full_precision: true
41
+ rope_theta: 5000000.0
42
+ rope_type: default
43
+ rope_factor: null
44
+ rope_high_freq_factor: null
45
+ rope_low_freq_factor: null
46
+ rope_original_max_position_embeddings: null
47
+ rope_attention_factor: null
48
+ rope_beta_fast: null
49
+ rope_beta_slow: null
50
+ rope_mscale: null
51
+ rope_mscale_all_dim: null
52
+ rope_truncate: null
53
+ attention_type: sdpa
54
+ full_attention_layers: null
55
+ sliding_attention_rope_scaling: false
56
+ float32_attention: true
57
+ attention_dropout: 0.0
58
+ attention_layer_norm: true
59
+ attention_layer_norm_type: qwen3
60
+ residual_dropout: 0.1
61
+ response_residual_dropout: 0.0
62
+ layer_norm_type: rms
63
+ layer_norm_with_affine: true
64
+ layer_norm_eps: 1.0e-06
65
+ attention_layer_norm_with_affine: true
66
+ max_sequence_length: 8192
67
+ max_position_embeddings: null
68
+ include_bias: false
69
+ bias_for_layer_norm: null
70
+ norm_after: false
71
+ moe_num_experts: 8
72
+ moe_top_k: 2
73
+ moe_mlp_impl: sparse
74
+ moe_log_expert_assignment: false
75
+ moe_shared_expert: false
76
+ moe_lbl_in_fp32: false
77
+ moe_interleave: false
78
+ moe_loss_weight: 0.1
79
+ moe_zloss_weight: null
80
+ moe_dropless: true
81
+ moe_capacity_factor: 1.25
82
+ embedding_dropout: 0.0
83
+ scale_logits: false
84
+ vocab_size: 151936
85
+ additional_vocab_size: 128
86
+ weight_tying: true
87
+ embedding_size: 151936
88
+ use_position_ids: true
89
+ tokenizer:
90
+ identifier: Qwen/Qwen3-4B-Instruct-2507
91
+ tokenizer_dir: null
92
+ init_path: /weka/oe-training-default/mm-olmo/pretrained_llms/qwen3-4b-instruct.pt
93
+ init_incremental: null
94
+ new_embedding_init_range: 0.02
95
+ initializer_range: 0.02
96
+ normalize_input_embeds: false
97
+ activation_checkpoint: whole_layer
98
+ compile: blocks
99
+ fix_pad_tokenizer: false
100
+ init_std: 0.02
101
+ init_fn: normal
102
+ init_cutoff_factor: null
103
+ vision_backbone:
104
+ vit:
105
+ image_model_type: siglip
106
+ image_default_input_size:
107
+ - 378
108
+ - 378
109
+ image_patch_size: 14
110
+ image_pos_patch_size: 14
111
+ image_emb_dim: 1152
112
+ image_num_heads: 16
113
+ image_num_key_value_heads: 16
114
+ image_num_layers: 27
115
+ image_head_dim: 72
116
+ image_mlp_dim: 4304
117
+ image_mlp_activations: gelu_pytorch_tanh
118
+ image_dropout_rate: 0.0
119
+ image_num_pos: 729
120
+ image_norm_eps: 1.0e-06
121
+ attention_dropout: 0.0
122
+ residual_dropout: 0.0
123
+ initializer_range: 0.02
124
+ float32_attention: true
125
+ attention_type: sdpa
126
+ sdpa_backend: all
127
+ activation_checkpointing: true
128
+ init_path: /weka/oe-training-default/mm-olmo/pretrained_image_encoders/siglip2-so400m-14-384.pt
129
+ resize_mode: siglip
130
+ pad_value: 0.0
131
+ normalize: siglip
132
+ image_pooling_2d: attention_meanq
133
+ pooling_attention_mask: true
134
+ image_projector: mlp
135
+ image_padding_embed: null
136
+ vit_layers:
137
+ - -3
138
+ - -9
139
+ skip_unused_layers: true
140
+ use_deepstack: false
141
+ share_connector: false
142
+ image_feature_dropout: 0.0
143
+ connector_activation_checkpointing: true
144
+ compile_vit: blocks
145
+ pool_size_embeds: null
146
+ compile_connector: null
147
+ normalize_on_gpu: true
148
+ use_image_augmentation: true
149
+ use_resize_bottleneck: false
150
+ mm_preprocessor:
151
+ max_answer_len: null
152
+ last_message_loss_only: false
153
+ max_text_tokens: null
154
+ loss_token_weighting: root_subsegments_root_tokens
155
+ max_frames: 1
156
+ frame_sample_mode: uniform_last_frame
157
+ candidate_sampling_fps:
158
+ - 0.25
159
+ - 0.5
160
+ - 1.0
161
+ - 2.0
162
+ - 4.0
163
+ - 6.0
164
+ - 8.0
165
+ - 16.0
166
+ cache_videos: true
167
+ loading_method: torchcodec_exact
168
+ max_fps:
169
+ - 2.0
170
+ time_sampling: true
171
+ time_mode: per-frame-compact
172
+ subtitle_mode: frame_1
173
+ max_crops: 1
174
+ overlap_margins:
175
+ - 4.0
176
+ - 4.0
177
+ use_col_tokens: false
178
+ periodic_high_res_frame: null
179
+ high_low_train_mode: local_rnd
180
+ high_res_frame_sample_options: null
181
+ periodic_sample_rate_training:
182
+ 4:
183
+ - 0.9
184
+ - 0.03
185
+ - 0.03
186
+ - 0.04
187
+ 3:
188
+ - 0.6
189
+ - 0.2
190
+ - 0.2
191
+ skip_low_res_in_high_low: false
192
+ pooling_w: 3
193
+ pooling_h: 3
194
+ high_res_pooling_w: null
195
+ high_res_pooling_h: null
196
+ query_based_resolution_selection: false
197
+ max_queries_for_resolution_selection: 8
198
+ use_frame_special_tokens: true
199
+ frame_sel_clip_identifier: google/siglip2-so400m-patch14-384
200
+ image_padding_mask: false
201
+ max_subtitle_tokens: null
202
+ image:
203
+ crop_mode: resize
204
+ use_col_tokens: true
205
+ max_crops: 8
206
+ high_res_max_crops: 24
207
+ p_high_res: 0.0
208
+ pooling_w: 2
209
+ pooling_h: 2
210
+ overlap_margins:
211
+ - 4
212
+ - 4
213
+ max_images: 4
214
+ max_multi_image_crops: 1
215
+ multi_image_pooling_w: 2
216
+ multi_image_pooling_h: 2
217
+ use_single_crop_col_tokens: false
218
+ use_single_crop_start_token: true
219
+ single_frame: false
220
+ topk: null
221
+ prune_from_frame: 0
222
+ bi_directional_attn: image_tokens
223
+ shared_low_high_embedding: true
224
+ debug: null
225
+ cp_enabled: false
226
+ apply_cp_to_vision_backbone: false
227
+ action_dim: 8
228
+ action_horizon: 16
229
+ n_action_steps: 8
230
+ n_obs_steps: 2
231
+ obs_step_delta: 8
232
+ action_expert:
233
+ max_horizon: 32
234
+ action_dim: 8
235
+ hidden_size: 768
236
+ num_layers: 36
237
+ num_heads: 8
238
+ mlp_ratio: 4.0
239
+ timestep_embed_dim: 256
240
+ dropout: 0.0
241
+ attn_dropout: 0.0
242
+ context_layer_norm: true
243
+ action_expert_layer_mode: per_layer
244
+ flow_matching_num_steps: 10
245
+ flow_matching_cutoff: 0.999
246
+ flow_matching_beta_alpha: 1.0
247
+ flow_matching_beta_beta: 1.5
248
+ num_flow_timestamps: 8
249
+ same_noise_per_time: false
250
+ states_mode: cross_attn
251
+ robot_preprocessor:
252
+ stats_by_repo:
253
+ synthmanip:
254
+ observation.state:
255
+ min:
256
+ - -2.2766549587249756
257
+ - -1.7608288526535034
258
+ - -1.7191452980041504
259
+ - -2.8627865314483643
260
+ - -0.9076813459396362
261
+ - 0.8232163190841675
262
+ - -2.4616048336029053
263
+ - -0.0008297820459119976
264
+ max:
265
+ - 2.080810546875
266
+ - 0.6704062223434448
267
+ - 1.9463512897491455
268
+ - -0.6767909526824951
269
+ - 0.8670341372489929
270
+ - 2.381640672683716
271
+ - 0.4024277329444885
272
+ - 0.8239965438842773
273
+ action:
274
+ q01:
275
+ - -1.3642053604125977
276
+ - -1.5828913450241089
277
+ - -0.7952697277069092
278
+ - -2.813814878463745
279
+ - -0.8428052663803101
280
+ - 1.053465485572815
281
+ - -2.1978600025177
282
+ - 0.0
283
+ q99:
284
+ - 0.7378915548324585
285
+ - 0.468648225069046
286
+ - 1.7082799673080444
287
+ - -0.9352492094039917
288
+ - 0.7082295417785645
289
+ - 2.1873221397399902
290
+ - 0.3892104923725128
291
+ - 255.0
292
+ default_repo_id: synthmanip
293
+ action_key: action
294
+ state_keys:
295
+ - observation.state
296
+ action_norm_mode: quantiles
297
+ state_norm_mode: min_max
298
+ robot_postprocessor:
299
+ stats_by_repo:
300
+ synthmanip:
301
+ observation.state:
302
+ min:
303
+ - -2.2766549587249756
304
+ - -1.7608288526535034
305
+ - -1.7191452980041504
306
+ - -2.8627865314483643
307
+ - -0.9076813459396362
308
+ - 0.8232163190841675
309
+ - -2.4616048336029053
310
+ - -0.0008297820459119976
311
+ max:
312
+ - 2.080810546875
313
+ - 0.6704062223434448
314
+ - 1.9463512897491455
315
+ - -0.6767909526824951
316
+ - 0.8670341372489929
317
+ - 2.381640672683716
318
+ - 0.4024277329444885
319
+ - 0.8239965438842773
320
+ action:
321
+ q01:
322
+ - -1.3642053604125977
323
+ - -1.5828913450241089
324
+ - -0.7952697277069092
325
+ - -2.813814878463745
326
+ - -0.8428052663803101
327
+ - 1.053465485572815
328
+ - -2.1978600025177
329
+ - 0.0
330
+ q99:
331
+ - 0.7378915548324585
332
+ - 0.468648225069046
333
+ - 1.7082799673080444
334
+ - -0.9352492094039917
335
+ - 0.7082295417785645
336
+ - 2.1873221397399902
337
+ - 0.3892104923725128
338
+ - 255.0
339
+ default_repo_id: synthmanip
340
+ action_key: action
341
+ state_keys:
342
+ - observation.state
343
+ action_norm_mode: quantiles
344
+ state_norm_mode: min_max
345
+ parallelism:
346
+ data_parallel_replicate_degree: 1
347
+ enable_compiled_autograd: false
348
+ data_parallel_shard_degree: -1
349
+ fsdp_reshard_after_forward: default
350
+ context_parallel_config:
351
+ degree: 1
352
+ attention_type: ulysses
353
+ load_balancer: ulysses
354
+ head_stride: 1
355
+ tensor_parallel_config:
356
+ degree: 1
357
+ enable_async: false
358
+ data_parallel_config:
359
+ name: fsdp
360
+ param_dtype: null
361
+ reduce_dtype: float32
362
+ num_replicas: null
363
+ shard_degree: null
364
+ wrapping_strategy: full
365
+ prefetch_factor: 0
366
+ context_parallel_rotate_method: allgather
367
+ seed: 6198
368
+ epoch: null
369
+ dry_run: false
370
+ ft_llm: true
371
+ ft_vit: false
372
+ ft_connector: false
373
+ ft_embedding: ae
374
+ optimizer:
375
+ name: adamw
376
+ learning_rate: 0.0001
377
+ weight_decay: 0.01
378
+ betas:
379
+ - 0.9
380
+ - 0.95
381
+ eps: 1.0e-05
382
+ connector_learning_rate: 5.0e-06
383
+ vit_learning_rate: 5.0e-06
384
+ llm_learning_rate: 1.0e-05
385
+ frame_selector_learning_rate: 0.0001
386
+ temporal_token_scorer_learning_rate: 0.0001
387
+ action_expert_learning_rate: 0.0001
388
+ connector_weight_decay: 0.0
389
+ vit_weight_decay: 0.0
390
+ llm_weight_decay: 0.0
391
+ frame_selector_weight_decay: 0.01
392
+ temporal_token_scorer_weight_decay: 0.01
393
+ action_expert_weight_decay: 0.0
394
+ connector_betas:
395
+ - 0.9
396
+ - 0.95
397
+ vit_betas:
398
+ - 0.9
399
+ - 0.95
400
+ llm_betas:
401
+ - 0.9
402
+ - 0.95
403
+ frame_selector_betas:
404
+ - 0.9
405
+ - 0.95
406
+ temporal_token_scorer_betas:
407
+ - 0.9
408
+ - 0.95
409
+ action_expert_betas:
410
+ - 0.9
411
+ - 0.95
412
+ connector_eps: 1.0e-06
413
+ vit_eps: 1.0e-06
414
+ llm_eps: 1.0e-06
415
+ frame_selector_eps: 1.0e-06
416
+ temporal_token_scorer_eps: 1.0e-06
417
+ action_expert_eps: 1.0e-06
418
+ metrics_log_interval: -1
419
+ scheduler:
420
+ name: multimodal
421
+ units: steps
422
+ t_warmup: 100
423
+ t_max: null
424
+ alpha_f: 0.1
425
+ connector_t_warmup: 200
426
+ vit_t_warmup: 200
427
+ llm_t_warmup: 2000
428
+ frame_selector_t_warmup: 200
429
+ temporal_token_scorer_t_warmup: 200
430
+ action_expert_t_warmup: 200
431
+ grad_clip_warmup_steps: null
432
+ grad_clip_warmup_factor: null
433
+ warmup_min_lr: 0.0
434
+ data:
435
+ dataset: null
436
+ mixture:
437
+ synthmanip/task_0: 1.0
438
+ root_size_mixture: null
439
+ kwargs_mixture: null
440
+ split: train
441
+ seed: 50189
442
+ pad: to_max
443
+ sequence_length: 928
444
+ max_text_seq_len: null
445
+ shuffle: true
446
+ start_index: 0
447
+ packing: null
448
+ enable_variable_sized_token_pooling: true
449
+ num_workers: 4
450
+ drop_last: true
451
+ pin_memory: true
452
+ prefetch_factor: 4
453
+ persistent_workers: false
454
+ timeout: 300
455
+ action_data: null
456
+ action_loader_rate: null
457
+ action_batch_interval: 1
458
+ restore_dataloader: true
459
+ fast_forward_batches: null
460
+ evaluators:
461
+ - label: synthmanip_val
462
+ data:
463
+ dataset: synthmanip/task_0
464
+ mixture: null
465
+ root_size_mixture: null
466
+ kwargs_mixture: null
467
+ split: val
468
+ seed: 691203
469
+ pad: to_max
470
+ sequence_length: 928
471
+ max_text_seq_len: null
472
+ shuffle: false
473
+ start_index: 0
474
+ packing: null
475
+ enable_variable_sized_token_pooling: true
476
+ num_workers: 2
477
+ drop_last: false
478
+ pin_memory: true
479
+ prefetch_factor: 4
480
+ persistent_workers: false
481
+ timeout: 300
482
+ device_batch_size: 16
483
+ subset_num_batches: null
484
+ max_examples: 200
485
+ console_log_interval: 10
486
+ response_logits_only: true
487
+ reduce_loss_metrics_manually: false
488
+ eval_interval: 200
489
+ inf_evaluators: []
490
+ inf_eval_interval: 200
491
+ eval_on_last_step: true
492
+ eval_on_load: false
493
+ eval_on: []
494
+ save_folder: /ceph/projects/dineshj/lab/ccwatson/MolmoBot_runs/lr_custom_16k
495
+ checkpointer_config:
496
+ save_thread_count: null
497
+ load_thread_count: null
498
+ pre_download: false
499
+ work_dir: null
500
+ throttle_uploads: false
501
+ canceled_check_interval: 50
502
+ save_interval: 2000
503
+ save_at: null
504
+ save_final_optim: false
505
+ save_num_checkpoints_to_keep: 1
506
+ checkpoint_retention_frequency: null
507
+ save_final_unsharded_checkpoint: true
508
+ save_interval_ephemeral: null
509
+ save_overwrite: true
510
+ load_path: null
511
+ reset_optimizer_state: true
512
+ reset_trainer_state: true
513
+ initial_model_checkpoint: /vast/projects/dineshj/lab/ccwatson/Documents/MolmoBot/MolmoBot/ckpts/MolmoBot-DROID
514
+ allow_resume: true
515
+ max_duration: 16000
516
+ global_train_batch_size: 32
517
+ device_train_microbatch_size: 16
518
+ max_grad_norm: 1.0
519
+ multi_component_grad_norm: true
520
+ batch_divisor: global_batch
521
+ max_grad_norm_ratio: null
522
+ precision: amp_bf16
523
+ wandb:
524
+ project: molmobot_finetune
525
+ entity: ccwatson
526
+ group: null
527
+ name: lr_custom_16k
528
+ tags:
529
+ - watching
530
+ log_artifacts: false
531
+ rank_zero_only: true
532
+ log_interval: 20
533
+ allow_resume: true
534
+ finish_on_sigterm: true
535
+ beaker_log_interval: 50
536
+ speed_monitor:
537
+ window_size: 20
538
+ gpu_flops_available: null
539
+ console_log_interval: 20
540
+ enable_timing_logs: false
541
+ gen1_gc_interval: 1
542
+ compile:
543
+ mode: default
544
+ fullgraph: false
545
+ dynamic: false
546
+ backend: inductor
547
+ activation_checkpointing: true
548
+ fsdp:
549
+ fsdp2: true
550
+ precision: pure
551
+ use_orig_params: true
552
+ wrapping_strategy: null
553
+ sharding_strategy: FULL_SHARD
554
+ hybrid_sharding_num_model_replicas: null
555
+ softmax_auxiliary_loss: false
556
+ softmax_auxiliary_loss_scale: 0.0001
557
+ response_logits_only: true
558
+ saliency_score_loss_wt: null
559
+ frame_score_loss_wt: null
560
+ frame_score_loss_type: mse
561
+ frame_score_loss_target: 0.7
562
+ time_limit: null
563
+ extra_steps_after_cancel: 0
564
+ python_profiling: false
565
+ torch_profiling: false
566
+ stop_at: 16000
567
+ stop_after: null
568
+ fused_loss: false
569
+ compile_loss: true
570
+ runtime_data:
571
+ args: launch_scripts/train_molmobot.py /vast/projects/dineshj/lab/ccwatson/Documents/MolmoBot/MolmoBot/ckpts/MolmoBot-DROID
572
+ --data_paths /vast/projects/dineshj/lab/ccwatson/Documents/MolmoBot/MolmoBot/scratch/datasets/directional_pick_place_simpledesk_diverse_targets_tested40_200demos_20260716_molmobot
573
+ --stats_path=/vast/projects/dineshj/lab/ccwatson/Documents/molmo-robotics-stack/components/MolmoBot/MolmoBot/scratch/datasets/directional_pick_place_simpledesk_diverse_targets_tested40_200demos_20260716_molmobot/directional_pick_place_simpledesk_diverse_targets_tested40_200demos_20260716_norm_stats.yaml
574
+ --action_preset franka_joint --camera_preset franka_droid --seq_len=928 --n_obs_steps=2
575
+ --obs_step_delta=8 --model.mm_preprocessor.image.max_images=4 --model.mm_preprocessor.image.single_frame=False
576
+ --model.mm_preprocessor.max_frames=1 --ft_embedding=ae --model.num_flow_timestamps=8
577
+ --ft_llm=True --max_duration=16000 --device_batch_size=16 --global_batch_size=32
578
+ --num_workers=4 --prefetch_factor=4 --val_interval=200 --val_max_examples=200
579
+ --save_folder=/ceph/projects/dineshj/lab/ccwatson/MolmoBot_runs/lr_custom_16k
580
+ --save_interval=2000 --save_num_checkpoints_to_keep=1 --checkpoint_retention_frequency=null
581
+ --save_final_unsharded_checkpoint=True --save_final_optim=False --reset_trainer_state=True
582
+ --reset_optimizer_state=True --optimizer.name=adamw --optimizer.connector_learning_rate=5e-6
583
+ --optimizer.vit_learning_rate=5e-6 --optimizer.llm_learning_rate=1e-5 --optimizer.action_expert_learning_rate=1e-4
584
+ --optimizer.connector_weight_decay=0.0 --optimizer.vit_weight_decay=0.0 --optimizer.llm_weight_decay=0.0
585
+ --optimizer.action_expert_weight_decay=0.0 --optimizer.connector_betas=[0.9,0.95]
586
+ --optimizer.vit_betas=[0.9,0.95] --optimizer.llm_betas=[0.9,0.95] --optimizer.action_expert_betas=[0.9,0.95]
587
+ --optimizer.connector_eps=1e-6 --optimizer.vit_eps=1e-6 --optimizer.llm_eps=1e-6
588
+ --optimizer.action_expert_eps=1e-6 --scheduler.connector_t_warmup=200 --scheduler.vit_t_warmup=200
589
+ --scheduler.llm_t_warmup=2000 --scheduler.frame_selector_t_warmup=200 --scheduler.temporal_token_scorer_t_warmup=200
590
+ --scheduler.action_expert_t_warmup=200 --scheduler.alpha_f=0.1 --scheduler.warmup_min_lr=0.0
591
+ --max_grad_norm=1 --exp_name=lr_custom_16k --weighted_sampling --img_aug --external_closed_loop_eval
592
+ --external_eval.enabled=True --external_eval.interval=2000 --external_eval.num_checkpoints_to_keep=2
593
+ --external_eval.result_poll_interval_steps=50 --external_eval.final_result_wait_seconds=7200
594
+ --external_eval.metric_for_best=success_rate --external_eval.metric_mode=max --external_eval.benchmark_dir=/vast/projects/dineshj/lab/ccwatson/Documents/molmo-robotics-stack/components/molmospaces/benchmarks/custom/molmospaces-bench-v2/procthor-objaverse/FrankaPickAndPlaceRelativeNextToSimpleDeskDiverseTargetsTested40Bench/FrankaPickAndPlaceRelativeNextToSimpleDeskDiverseTargetsTested40Bench_20260716_json_benchmark
595
+ --external_eval.eval_config_cls=scripts.eval.vla_eval_harness_adapter:FrankaJointPosVlaHarnessEvalConfig
596
+ --external_eval.prompt_variant=natural_language --external_eval.num_workers=1
597
+ --external_eval.parallel_shards=10 --external_eval.camera_names=droid_shoulder_light_randomization
598
+ wrist_camera_zed_mini --external_eval.eval_renderer=filament --external_eval.eval_extra_args=--task_horizon_steps
599
+ 500 --external_eval.model_server_extra_args=--args.execute_horizon 8 --args.states_mode
600
+ cross_attn --args.max_joint_delta 0.2 --external_eval.model_server_python= --external_eval.model_server_pythonpath=
601
+ --external_eval.eval_wandb_enabled=1 --external_eval.eval_wandb_project=mlspaces-json-eval
602
+ --external_eval.eval_wandb_group=lr-custom-ie-16k-b16-32 --external_eval.eval_wandb_tags=betty,vla-harness,molmospaces,intermediate-eval,molmobot-droid,left-right-pick-place,simple-desk,relative-next-to,sharded-intermediate-eval,filament,10x
603
+ --external_eval.coordinator_poll_interval_seconds=30 --external_eval.final.enabled=True
604
+ --external_eval.final.required=1 --external_eval.final.wait_seconds=7200 --external_eval.final.upload_logs=1
605
+ --external_eval.final.eval_config_cls=scripts.eval.vla_eval_harness_adapter:FrankaJointPosVlaHarnessEvalConfig
606
+ --external_eval.final.prompt_variant=natural_language --external_eval.final.num_workers=1
607
+ --external_eval.final.parallel_shards=10 --external_eval.final.camera_names=droid_shoulder_light_randomization
608
+ wrist_camera_zed_mini --external_eval.final.eval_renderer=filament --external_eval.final.eval_extra_args=--task_horizon_steps
609
+ 500 --external_eval.final.model_server_extra_args=--args.execute_horizon 8 --args.states_mode
610
+ cross_attn --args.max_joint_delta 0.2 --external_eval.final.model_server_python=
611
+ --external_eval.final.model_server_pythonpath= --external_eval.final.eval_wandb_enabled=1
612
+ --external_eval.final.eval_wandb_project=mlspaces-json-eval --external_eval.final.eval_wandb_group=lr-custom-fe-16k-b16-32
613
+ --external_eval.final.eval_wandb_tags=betty,vla-harness,molmospaces,final-eval,molmobot-droid,left-right-pick-place,simple-desk,relative-next-to,sharded-final-eval,filament,10x
614
+ --external_eval.final.coordinator_poll_interval_seconds=30 --external_eval.final.server_port_base=38000
615
+ --external_eval.final.server_port_span=20000 --external_eval.final.repo_root=/vast/projects/dineshj/lab/ccwatson/Documents/MolmoBot
616
+ --external_eval.final.molmobot_root=/vast/projects/dineshj/lab/ccwatson/Documents/MolmoBot/MolmoBot
617
+ --external_eval.final.molmospaces_root=/vast/projects/dineshj/lab/ccwatson/Documents/molmospaces
618
+ --external_eval.final.vla_harness_root=/vast/projects/dineshj/lab/ccwatson/Documents/vla-evaluation-harness
619
+ --external_eval.final.benchmark_dir=/vast/projects/dineshj/lab/ccwatson/Documents/molmo-robotics-stack/components/molmospaces/benchmarks/custom/molmospaces-bench-v2/procthor-objaverse/FrankaPickAndPlaceRelativeNextToSimpleDeskDiverseTargetsTested40Bench/FrankaPickAndPlaceRelativeNextToSimpleDeskDiverseTargetsTested40Bench_20260716_json_benchmark
620
+ --external_eval.final.benchmarks=[{"benchmark_dir":"/vast/projects/dineshj/lab/ccwatson/Documents/molmo-robotics-stack/components/molmospaces/benchmarks/custom/molmospaces-bench-v2/procthor-objaverse/FrankaPickAndPlaceRelativeNextToSimpleDeskDiverseTargetsTested40Bench/FrankaPickAndPlaceRelativeNextToSimpleDeskDiverseTargetsTested40Bench_20260716_json_benchmark","name":"FrankaPickAndPlaceRelativeNextToSimpleDeskDiverseTargetsTested40Bench","eval_extra_args":"--task_horizon_steps
621
+ 500"}]
622
+ hostname: dgx001
623
+ date: 07/17/2026, 01:01
624
+ world_size: 1
625
+ resuming_from: null
626
+ beaker_experiment_id: null
627
+ beaker_experiment_url: null
628
+ wandb_id: ouuzdjlg
629
+ wandb_url: https://wandb.ai/ccwatson/molmobot_finetune/runs/ouuzdjlg
630
+ external_eval:
631
+ enabled: true
632
+ interval: 2000
633
+ request_dir: null
634
+ result_dir: null
635
+ run_root: null
636
+ log_root: null
637
+ result_poll_interval_steps: 50
638
+ final_result_wait_seconds: 7200
639
+ metric_for_best: success_rate
640
+ metric_mode: max
641
+ num_checkpoints_to_keep: 2
642
+ wait_for_results: false
643
+ benchmark_dir: /vast/projects/dineshj/lab/ccwatson/Documents/molmo-robotics-stack/components/molmospaces/benchmarks/custom/molmospaces-bench-v2/procthor-objaverse/FrankaPickAndPlaceRelativeNextToSimpleDeskDiverseTargetsTested40Bench/FrankaPickAndPlaceRelativeNextToSimpleDeskDiverseTargetsTested40Bench_20260716_json_benchmark
644
+ eval_config_cls: scripts.eval.vla_eval_harness_adapter:FrankaJointPosVlaHarnessEvalConfig
645
+ prompt_variant: natural_language
646
+ num_workers: 1
647
+ parallel_shards: 10
648
+ camera_names: droid_shoulder_light_randomization wrist_camera_zed_mini
649
+ eval_renderer: filament
650
+ eval_extra_args: --task_horizon_steps 500
651
+ model_server_extra_args: --args.execute_horizon 8 --args.states_mode cross_attn
652
+ --args.max_joint_delta 0.2
653
+ model_server_python: null
654
+ model_server_pythonpath: null
655
+ eval_wandb_enabled: true
656
+ eval_wandb_project: mlspaces-json-eval
657
+ eval_wandb_group: lr-custom-ie-16k-b16-32
658
+ eval_wandb_tags: betty,vla-harness,molmospaces,intermediate-eval,molmobot-droid,left-right-pick-place,simple-desk,relative-next-to,sharded-intermediate-eval,filament,10x
659
+ coordinator_poll_interval_seconds: 30
660
+ final:
661
+ enabled: true
662
+ required: true
663
+ wait_seconds: 7200
664
+ upload_logs: true
665
+ request_dir: null
666
+ result_dir: null
667
+ run_root: null
668
+ log_root: null
669
+ benchmarks:
670
+ - benchmark_dir: /vast/projects/dineshj/lab/ccwatson/Documents/molmo-robotics-stack/components/molmospaces/benchmarks/custom/molmospaces-bench-v2/procthor-objaverse/FrankaPickAndPlaceRelativeNextToSimpleDeskDiverseTargetsTested40Bench/FrankaPickAndPlaceRelativeNextToSimpleDeskDiverseTargetsTested40Bench_20260716_json_benchmark
671
+ name: FrankaPickAndPlaceRelativeNextToSimpleDeskDiverseTargetsTested40Bench
672
+ eval_config_cls: null
673
+ prompt_variant: null
674
+ num_workers: null
675
+ parallel_shards: null
676
+ camera_names: null
677
+ eval_renderer: null
678
+ eval_extra_args: --task_horizon_steps 500
679
+ model_server_extra_args: null
680
+ benchmark_dir: /vast/projects/dineshj/lab/ccwatson/Documents/molmo-robotics-stack/components/molmospaces/benchmarks/custom/molmospaces-bench-v2/procthor-objaverse/FrankaPickAndPlaceRelativeNextToSimpleDeskDiverseTargetsTested40Bench/FrankaPickAndPlaceRelativeNextToSimpleDeskDiverseTargetsTested40Bench_20260716_json_benchmark
681
+ eval_config_cls: scripts.eval.vla_eval_harness_adapter:FrankaJointPosVlaHarnessEvalConfig
682
+ prompt_variant: natural_language
683
+ num_workers: 1
684
+ parallel_shards: 10
685
+ camera_names: droid_shoulder_light_randomization wrist_camera_zed_mini
686
+ eval_renderer: filament
687
+ eval_extra_args: --task_horizon_steps 500
688
+ model_server_extra_args: --args.execute_horizon 8 --args.states_mode cross_attn
689
+ --args.max_joint_delta 0.2
690
+ eval_wandb_enabled: true
691
+ eval_wandb_project: mlspaces-json-eval
692
+ eval_wandb_group: lr-custom-fe-16k-b16-32
693
+ eval_wandb_tags: betty,vla-harness,molmospaces,final-eval,molmobot-droid,left-right-pick-place,simple-desk,relative-next-to,sharded-final-eval,filament,10x
694
+ coordinator_poll_interval_seconds: 30
695
+ repo_root: /vast/projects/dineshj/lab/ccwatson/Documents/MolmoBot
696
+ molmobot_root: /vast/projects/dineshj/lab/ccwatson/Documents/MolmoBot/MolmoBot
697
+ molmospaces_root: /vast/projects/dineshj/lab/ccwatson/Documents/molmospaces
698
+ vla_harness_root: /vast/projects/dineshj/lab/ccwatson/Documents/vla-evaluation-harness
699
+ molmospaces_python: null
700
+ model_server_script: null
701
+ model_server_python: null
702
+ model_server_pythonpath: null
703
+ server_port: null
704
+ server_port_base: 38000
705
+ server_port_span: 20000
metadata/external_eval_request.json ADDED
@@ -0,0 +1,92 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "checkpoint_dir": "/ceph/projects/dineshj/lab/ccwatson/MolmoBot_runs/lr_custom_16k/step10000-unsharded",
3
+ "created_at": "2026-07-17T12:11:48.152584+00:00",
4
+ "external_eval": {
5
+ "benchmark_dir": "/vast/projects/dineshj/lab/ccwatson/Documents/molmo-robotics-stack/components/molmospaces/benchmarks/custom/molmospaces-bench-v2/procthor-objaverse/FrankaPickAndPlaceRelativeNextToSimpleDeskDiverseTargetsTested40Bench/FrankaPickAndPlaceRelativeNextToSimpleDeskDiverseTargetsTested40Bench_20260716_json_benchmark",
6
+ "camera_names": "droid_shoulder_light_randomization wrist_camera_zed_mini",
7
+ "coordinator_poll_interval_seconds": 30,
8
+ "enabled": true,
9
+ "eval_config_cls": "scripts.eval.vla_eval_harness_adapter:FrankaJointPosVlaHarnessEvalConfig",
10
+ "eval_extra_args": "--task_horizon_steps 500",
11
+ "eval_renderer": "filament",
12
+ "eval_wandb_enabled": true,
13
+ "eval_wandb_group": "lr-custom-ie-16k-b16-32",
14
+ "eval_wandb_project": "mlspaces-json-eval",
15
+ "eval_wandb_tags": "betty,vla-harness,molmospaces,intermediate-eval,molmobot-droid,left-right-pick-place,simple-desk,relative-next-to,sharded-intermediate-eval,filament,10x",
16
+ "final": {
17
+ "benchmark_dir": "/vast/projects/dineshj/lab/ccwatson/Documents/molmo-robotics-stack/components/molmospaces/benchmarks/custom/molmospaces-bench-v2/procthor-objaverse/FrankaPickAndPlaceRelativeNextToSimpleDeskDiverseTargetsTested40Bench/FrankaPickAndPlaceRelativeNextToSimpleDeskDiverseTargetsTested40Bench_20260716_json_benchmark",
18
+ "benchmarks": [
19
+ {
20
+ "benchmark_dir": "/vast/projects/dineshj/lab/ccwatson/Documents/molmo-robotics-stack/components/molmospaces/benchmarks/custom/molmospaces-bench-v2/procthor-objaverse/FrankaPickAndPlaceRelativeNextToSimpleDeskDiverseTargetsTested40Bench/FrankaPickAndPlaceRelativeNextToSimpleDeskDiverseTargetsTested40Bench_20260716_json_benchmark",
21
+ "camera_names": null,
22
+ "eval_config_cls": null,
23
+ "eval_extra_args": "--task_horizon_steps 500",
24
+ "eval_renderer": null,
25
+ "model_server_extra_args": null,
26
+ "name": "FrankaPickAndPlaceRelativeNextToSimpleDeskDiverseTargetsTested40Bench",
27
+ "num_workers": null,
28
+ "parallel_shards": null,
29
+ "prompt_variant": null
30
+ }
31
+ ],
32
+ "camera_names": "droid_shoulder_light_randomization wrist_camera_zed_mini",
33
+ "coordinator_poll_interval_seconds": 30,
34
+ "enabled": true,
35
+ "eval_config_cls": "scripts.eval.vla_eval_harness_adapter:FrankaJointPosVlaHarnessEvalConfig",
36
+ "eval_extra_args": "--task_horizon_steps 500",
37
+ "eval_renderer": "filament",
38
+ "eval_wandb_enabled": true,
39
+ "eval_wandb_group": "lr-custom-fe-16k-b16-32",
40
+ "eval_wandb_project": "mlspaces-json-eval",
41
+ "eval_wandb_tags": "betty,vla-harness,molmospaces,final-eval,molmobot-droid,left-right-pick-place,simple-desk,relative-next-to,sharded-final-eval,filament,10x",
42
+ "log_root": null,
43
+ "model_server_extra_args": "--args.execute_horizon 8 --args.states_mode cross_attn --args.max_joint_delta 0.2",
44
+ "model_server_python": null,
45
+ "model_server_pythonpath": null,
46
+ "model_server_script": null,
47
+ "molmobot_root": "/vast/projects/dineshj/lab/ccwatson/Documents/MolmoBot/MolmoBot",
48
+ "molmospaces_python": null,
49
+ "molmospaces_root": "/vast/projects/dineshj/lab/ccwatson/Documents/molmospaces",
50
+ "num_workers": 1,
51
+ "parallel_shards": 10,
52
+ "prompt_variant": "natural_language",
53
+ "repo_root": "/vast/projects/dineshj/lab/ccwatson/Documents/MolmoBot",
54
+ "request_dir": null,
55
+ "required": true,
56
+ "result_dir": null,
57
+ "run_root": null,
58
+ "server_port": null,
59
+ "server_port_base": 38000,
60
+ "server_port_span": 20000,
61
+ "upload_logs": true,
62
+ "vla_harness_root": "/vast/projects/dineshj/lab/ccwatson/Documents/vla-evaluation-harness",
63
+ "wait_seconds": 7200
64
+ },
65
+ "final_result_wait_seconds": 7200,
66
+ "interval": 2000,
67
+ "log_root": null,
68
+ "metric_for_best": "success_rate",
69
+ "metric_mode": "max",
70
+ "model_server_extra_args": "--args.execute_horizon 8 --args.states_mode cross_attn --args.max_joint_delta 0.2",
71
+ "model_server_python": null,
72
+ "model_server_pythonpath": null,
73
+ "num_checkpoints_to_keep": 2,
74
+ "num_workers": 1,
75
+ "parallel_shards": 10,
76
+ "prompt_variant": "natural_language",
77
+ "request_dir": null,
78
+ "result_dir": null,
79
+ "result_poll_interval_steps": 50,
80
+ "run_root": null,
81
+ "wait_for_results": false
82
+ },
83
+ "run_name": "lr_custom_16k",
84
+ "save_folder": "/ceph/projects/dineshj/lab/ccwatson/MolmoBot_runs/lr_custom_16k",
85
+ "schema_version": 1,
86
+ "sharded_checkpoint_dir": "/ceph/projects/dineshj/lab/ccwatson/MolmoBot_runs/lr_custom_16k/step10000",
87
+ "step": 10000,
88
+ "training_wandb": {
89
+ "id": "ouuzdjlg",
90
+ "url": "https://wandb.ai/ccwatson/molmobot_finetune/runs/ouuzdjlg"
91
+ }
92
+ }
metadata/external_eval_result.json ADDED
@@ -0,0 +1,168 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "aggregate_results_path": "/ceph/projects/dineshj/lab/ccwatson/MolmoBot_runs/lr_custom_16k/external_eval/runs/step10000/FrankaJointPosVlaHarnessEvalConfig/external-eval-lr_custom_16k-step10000/aggregate_results.json",
3
+ "benchmark_dir": "/vast/projects/dineshj/lab/ccwatson/Documents/molmo-robotics-stack/components/molmospaces/benchmarks/custom/molmospaces-bench-v2/procthor-objaverse/FrankaPickAndPlaceRelativeNextToSimpleDeskDiverseTargetsTested40Bench/FrankaPickAndPlaceRelativeNextToSimpleDeskDiverseTargetsTested40Bench_20260716_json_benchmark",
4
+ "benchmark_name": null,
5
+ "checkpoint_dir": "/ceph/projects/dineshj/lab/ccwatson/MolmoBot_runs/lr_custom_16k/step10000-unsharded",
6
+ "checkpoint_format": "molmobot_unsharded",
7
+ "checkpoint_path": "/ceph/projects/dineshj/lab/ccwatson/MolmoBot_runs/lr_custom_16k/step10000-unsharded",
8
+ "duration_seconds": 2016.921890544938,
9
+ "episode_count": 40,
10
+ "eval_kind": "intermediate",
11
+ "eval_returncode": 0,
12
+ "final_eval_index": null,
13
+ "final_eval_label": null,
14
+ "final_eval_name": null,
15
+ "final_eval_wandb_prefix": null,
16
+ "finished_at": "2026-07-17T12:45:30.410588+00:00",
17
+ "logs": {
18
+ "eval_driver": "/ceph/projects/dineshj/lab/ccwatson/MolmoBot_runs/lr_custom_16k/external_eval/logs/step10000/eval_driver.log",
19
+ "model_server": "/ceph/projects/dineshj/lab/ccwatson/MolmoBot_runs/lr_custom_16k/external_eval/logs/step10000/model_server.log"
20
+ },
21
+ "metrics": {
22
+ "avg_episode_length": 274.675,
23
+ "avg_successful_episode_length": 140.08,
24
+ "completed_episode_count": 40,
25
+ "coverage_adjusted_success_rate": 0.625,
26
+ "duplicate_episode_count": 0,
27
+ "episode_count": 40,
28
+ "expected_episode_count": 40,
29
+ "failed_shard_count": 0,
30
+ "failure_count": 15,
31
+ "house_success_rates": {
32
+ "house_1088": 0.625
33
+ },
34
+ "lax_failure_count": 14,
35
+ "lax_house_success_rates": {
36
+ "house_1088": 0.65
37
+ },
38
+ "lax_oracle_done_count": 27,
39
+ "lax_oracle_done_rate": 0.675,
40
+ "lax_oracle_done_total_episodes": 40,
41
+ "lax_success_count": 26,
42
+ "lax_success_rate": 0.65,
43
+ "lax_total_episodes": 40,
44
+ "max_episode_length": 499,
45
+ "min_episode_length": 32,
46
+ "missing_episode_count": 0,
47
+ "num_houses": 1,
48
+ "oracle_done_count": 25,
49
+ "oracle_done_rate": 0.625,
50
+ "success_count": 25,
51
+ "success_rate": 0.625,
52
+ "total_episodes": 40,
53
+ "unexpected_result_count": 0
54
+ },
55
+ "output_root": "/ceph/projects/dineshj/lab/ccwatson/MolmoBot_runs/lr_custom_16k/external_eval/runs/step10000",
56
+ "request": {
57
+ "checkpoint_dir": "/ceph/projects/dineshj/lab/ccwatson/MolmoBot_runs/lr_custom_16k/step10000-unsharded",
58
+ "created_at": "2026-07-17T12:11:48.152584+00:00",
59
+ "external_eval": {
60
+ "benchmark_dir": "/vast/projects/dineshj/lab/ccwatson/Documents/molmo-robotics-stack/components/molmospaces/benchmarks/custom/molmospaces-bench-v2/procthor-objaverse/FrankaPickAndPlaceRelativeNextToSimpleDeskDiverseTargetsTested40Bench/FrankaPickAndPlaceRelativeNextToSimpleDeskDiverseTargetsTested40Bench_20260716_json_benchmark",
61
+ "camera_names": "droid_shoulder_light_randomization wrist_camera_zed_mini",
62
+ "coordinator_poll_interval_seconds": 30,
63
+ "enabled": true,
64
+ "eval_config_cls": "scripts.eval.vla_eval_harness_adapter:FrankaJointPosVlaHarnessEvalConfig",
65
+ "eval_extra_args": "--task_horizon_steps 500",
66
+ "eval_renderer": "filament",
67
+ "eval_wandb_enabled": true,
68
+ "eval_wandb_group": "lr-custom-ie-16k-b16-32",
69
+ "eval_wandb_project": "mlspaces-json-eval",
70
+ "eval_wandb_tags": "betty,vla-harness,molmospaces,intermediate-eval,molmobot-droid,left-right-pick-place,simple-desk,relative-next-to,sharded-intermediate-eval,filament,10x",
71
+ "final": {
72
+ "benchmark_dir": "/vast/projects/dineshj/lab/ccwatson/Documents/molmo-robotics-stack/components/molmospaces/benchmarks/custom/molmospaces-bench-v2/procthor-objaverse/FrankaPickAndPlaceRelativeNextToSimpleDeskDiverseTargetsTested40Bench/FrankaPickAndPlaceRelativeNextToSimpleDeskDiverseTargetsTested40Bench_20260716_json_benchmark",
73
+ "benchmarks": [
74
+ {
75
+ "benchmark_dir": "/vast/projects/dineshj/lab/ccwatson/Documents/molmo-robotics-stack/components/molmospaces/benchmarks/custom/molmospaces-bench-v2/procthor-objaverse/FrankaPickAndPlaceRelativeNextToSimpleDeskDiverseTargetsTested40Bench/FrankaPickAndPlaceRelativeNextToSimpleDeskDiverseTargetsTested40Bench_20260716_json_benchmark",
76
+ "camera_names": null,
77
+ "eval_config_cls": null,
78
+ "eval_extra_args": "--task_horizon_steps 500",
79
+ "eval_renderer": null,
80
+ "model_server_extra_args": null,
81
+ "name": "FrankaPickAndPlaceRelativeNextToSimpleDeskDiverseTargetsTested40Bench",
82
+ "num_workers": null,
83
+ "parallel_shards": null,
84
+ "prompt_variant": null
85
+ }
86
+ ],
87
+ "camera_names": "droid_shoulder_light_randomization wrist_camera_zed_mini",
88
+ "coordinator_poll_interval_seconds": 30,
89
+ "enabled": true,
90
+ "eval_config_cls": "scripts.eval.vla_eval_harness_adapter:FrankaJointPosVlaHarnessEvalConfig",
91
+ "eval_extra_args": "--task_horizon_steps 500",
92
+ "eval_renderer": "filament",
93
+ "eval_wandb_enabled": true,
94
+ "eval_wandb_group": "lr-custom-fe-16k-b16-32",
95
+ "eval_wandb_project": "mlspaces-json-eval",
96
+ "eval_wandb_tags": "betty,vla-harness,molmospaces,final-eval,molmobot-droid,left-right-pick-place,simple-desk,relative-next-to,sharded-final-eval,filament,10x",
97
+ "log_root": null,
98
+ "model_server_extra_args": "--args.execute_horizon 8 --args.states_mode cross_attn --args.max_joint_delta 0.2",
99
+ "model_server_python": null,
100
+ "model_server_pythonpath": null,
101
+ "model_server_script": null,
102
+ "molmobot_root": "/vast/projects/dineshj/lab/ccwatson/Documents/MolmoBot/MolmoBot",
103
+ "molmospaces_python": null,
104
+ "molmospaces_root": "/vast/projects/dineshj/lab/ccwatson/Documents/molmospaces",
105
+ "num_workers": 1,
106
+ "parallel_shards": 10,
107
+ "prompt_variant": "natural_language",
108
+ "repo_root": "/vast/projects/dineshj/lab/ccwatson/Documents/MolmoBot",
109
+ "request_dir": null,
110
+ "required": true,
111
+ "result_dir": null,
112
+ "run_root": null,
113
+ "server_port": null,
114
+ "server_port_base": 38000,
115
+ "server_port_span": 20000,
116
+ "upload_logs": true,
117
+ "vla_harness_root": "/vast/projects/dineshj/lab/ccwatson/Documents/vla-evaluation-harness",
118
+ "wait_seconds": 7200
119
+ },
120
+ "final_result_wait_seconds": 7200,
121
+ "interval": 2000,
122
+ "log_root": null,
123
+ "metric_for_best": "success_rate",
124
+ "metric_mode": "max",
125
+ "model_server_extra_args": "--args.execute_horizon 8 --args.states_mode cross_attn --args.max_joint_delta 0.2",
126
+ "model_server_python": null,
127
+ "model_server_pythonpath": null,
128
+ "num_checkpoints_to_keep": 2,
129
+ "num_workers": 1,
130
+ "parallel_shards": 10,
131
+ "prompt_variant": "natural_language",
132
+ "request_dir": null,
133
+ "result_dir": null,
134
+ "result_poll_interval_steps": 50,
135
+ "run_root": null,
136
+ "wait_for_results": false
137
+ },
138
+ "run_name": "lr_custom_16k",
139
+ "save_folder": "/ceph/projects/dineshj/lab/ccwatson/MolmoBot_runs/lr_custom_16k",
140
+ "schema_version": 1,
141
+ "sharded_checkpoint_dir": "/ceph/projects/dineshj/lab/ccwatson/MolmoBot_runs/lr_custom_16k/step10000",
142
+ "step": 10000,
143
+ "training_wandb": {
144
+ "id": "ouuzdjlg",
145
+ "url": "https://wandb.ai/ccwatson/molmobot_finetune/runs/ouuzdjlg"
146
+ }
147
+ },
148
+ "resolved_output_dir": "/ceph/projects/dineshj/lab/ccwatson/MolmoBot_runs/lr_custom_16k/external_eval/runs/step10000/FrankaJointPosVlaHarnessEvalConfig/external-eval-lr_custom_16k-step10000",
149
+ "schema_version": 1,
150
+ "server": {
151
+ "host": "127.0.0.1",
152
+ "port": 29253,
153
+ "port_base": 18000,
154
+ "port_span": 20000
155
+ },
156
+ "started_at": "2026-07-17T12:11:53.488701+00:00",
157
+ "status": "succeeded",
158
+ "step": 10000,
159
+ "summary_source": "aggregate_results_json",
160
+ "wandb": {
161
+ "enabled": true,
162
+ "group": "lr-custom-ie-16k-b16-32",
163
+ "name": "lr_custom_16k external eval step 10000",
164
+ "project": "mlspaces-json-eval",
165
+ "run_id": "external-eval-lr_custom_16k-step10000",
166
+ "tags": "betty,vla-harness,molmospaces,intermediate-eval,molmobot-droid,left-right-pick-place,simple-desk,relative-next-to,sharded-intermediate-eval,filament,10x"
167
+ }
168
+ }
metadata/provenance.json ADDED
@@ -0,0 +1,150 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "schema_version": 1,
3
+ "model_repo": "ccwatson/MolmoBot-DROID-Directional-PickPlace-SimpleDesk-Step-10000",
4
+ "checkpoint": {
5
+ "run_name": "lr_custom_16k",
6
+ "step": 10000,
7
+ "intended_final_step": 16000,
8
+ "format": "molmobot_unsharded",
9
+ "files": {
10
+ "model.pt": {
11
+ "size_bytes": 19992166548,
12
+ "sha256": null,
13
+ "hash_note": "The authoritative content hash is recorded by Hugging Face after upload."
14
+ },
15
+ "config.yaml": {
16
+ "size_bytes": 25063,
17
+ "sha256": "7eeb51134b93fc17955f3bd850240074d6b9faf3dcf527177861940c7c098400"
18
+ },
19
+ "normalization_stats.yaml": {
20
+ "size_bytes": 1083,
21
+ "sha256": "972a88e10f02976ce5a4d1c90a2070a62e4daa08a5fe1cecb4ca00e8216eb15d"
22
+ }
23
+ },
24
+ "created_at_utc": "2026-07-17T12:11:48.152584+00:00"
25
+ },
26
+ "base_model": {
27
+ "repo_id": "allenai/MolmoBot-DROID",
28
+ "revision": "cbe6ec358958d07ddfb20d3aa54e560e9e1b18c9",
29
+ "license": "apache-2.0"
30
+ },
31
+ "dataset": {
32
+ "repo_id": "ccwatson/directional_pick_place_simpledesk_diverse_targets_tested40_200demos_20260716_molmobot",
33
+ "revision": "5446191605f7eb3020983d83f707153d9719ecfb",
34
+ "source_valid_episode_count": 40,
35
+ "train_episode_count": 36,
36
+ "train_trajectory_count": 180,
37
+ "val_episode_count": 4,
38
+ "val_trajectory_count": 20,
39
+ "attempts_per_episode": 5,
40
+ "cameras": [
41
+ "droid_shoulder_light_randomization",
42
+ "wrist_camera_zed_mini"
43
+ ],
44
+ "normalization": {
45
+ "computed_from_split": "train",
46
+ "action_norm_mode": "quantiles",
47
+ "state_norm_mode": "min_max",
48
+ "action_dim": 8,
49
+ "state_dim": 8
50
+ }
51
+ },
52
+ "training": {
53
+ "wandb_entity": "ccwatson",
54
+ "wandb_project": "molmobot_finetune",
55
+ "wandb_run_id": "ouuzdjlg",
56
+ "wandb_url": "https://wandb.ai/ccwatson/molmobot_finetune/runs/ouuzdjlg",
57
+ "slurm_job_id": "7107997",
58
+ "slurm_job_name": "lr-custom-ie-fe-16k-b16-32",
59
+ "slurm_partition": "dgx-b200",
60
+ "slurm_start_time": "2026-07-17T00:59:31-04:00",
61
+ "resources": {
62
+ "nodes": 1,
63
+ "gpus": 1,
64
+ "gpu_type": "NVIDIA B200",
65
+ "cpus": 28,
66
+ "host_memory_gib": 224
67
+ },
68
+ "device_batch_size": 16,
69
+ "global_batch_size": 32,
70
+ "sequence_length": 928,
71
+ "observation_steps": 2,
72
+ "observation_step_delta": 8,
73
+ "max_images": 4,
74
+ "max_frames": 1,
75
+ "single_frame": false,
76
+ "weighted_sampling": true,
77
+ "randomize_prompts": false,
78
+ "image_augmentation": true,
79
+ "finetune_llm": true,
80
+ "finetune_embedding": "ae",
81
+ "num_flow_timestamps": 8,
82
+ "action_preset": "franka_joint",
83
+ "camera_preset": "franka_droid",
84
+ "learning_rates": {
85
+ "connector": 5e-6,
86
+ "vit": 5e-6,
87
+ "llm": 1e-5,
88
+ "action_expert": 1e-4
89
+ },
90
+ "validation_interval_steps": 200,
91
+ "validation_max_examples": 200,
92
+ "checkpoint_interval_steps": 2000,
93
+ "external_eval_interval_steps": 2000,
94
+ "reset_trainer_state": true,
95
+ "reset_optimizer_state": true
96
+ },
97
+ "evaluation": {
98
+ "kind": "intermediate",
99
+ "status": "succeeded",
100
+ "benchmark": "FrankaPickAndPlaceRelativeNextToSimpleDeskDiverseTargetsTested40Bench",
101
+ "episode_count": 40,
102
+ "left_episode_count": 20,
103
+ "right_episode_count": 20,
104
+ "prompt_variant": "natural_language",
105
+ "renderer": "filament",
106
+ "parallel_shards": 10,
107
+ "task_horizon_steps": 500,
108
+ "execute_horizon": 8,
109
+ "states_mode": "cross_attn",
110
+ "max_joint_delta": 0.2,
111
+ "strict_success_count": 25,
112
+ "strict_success_rate": 0.625,
113
+ "lax_success_count": 26,
114
+ "lax_success_rate": 0.65,
115
+ "oracle_done_count": 25,
116
+ "oracle_done_rate": 0.625,
117
+ "lax_oracle_done_count": 27,
118
+ "lax_oracle_done_rate": 0.675,
119
+ "average_episode_length": 274.675,
120
+ "average_successful_episode_length": 140.08,
121
+ "min_episode_length": 32,
122
+ "max_episode_length": 499,
123
+ "failed_shard_count": 0,
124
+ "missing_episode_count": 0,
125
+ "duplicate_episode_count": 0,
126
+ "unexpected_result_count": 0,
127
+ "eval_returncode": 0,
128
+ "duration_seconds": 2016.921890544938,
129
+ "started_at": "2026-07-17T12:11:53.488701+00:00",
130
+ "finished_at": "2026-07-17T12:45:30.410588+00:00",
131
+ "wandb_project": "mlspaces-json-eval",
132
+ "wandb_group": "lr-custom-ie-16k-b16-32",
133
+ "wandb_run_id": "external-eval-lr_custom_16k-step10000",
134
+ "wandb_url": "https://wandb.ai/ccwatson/mlspaces-json-eval/runs/external-eval-lr_custom_16k-step10000"
135
+ },
136
+ "source_revisions": {
137
+ "molmo_robotics_stack": "0363218a1b019c35a8155c9cfbb847a9cba98a6c",
138
+ "molmobot": "c68c5ad159c48f9fc45c6ef3de4d6ff39242f97b",
139
+ "molmospaces": "ba251a63d1e5dd9ee4b0200f897cf6e3c446d320",
140
+ "vla_evaluation_harness": "ee4949157c0aa7dbb5207a5800224f251207886a",
141
+ "molmobot_worktree_was_dirty": true,
142
+ "note": "The exact launch env and resolved config are included because the MolmoBot worktree contained uncommitted orchestration/config changes."
143
+ },
144
+ "source_file_sha256": {
145
+ "train_molmobot.py": "4682dee5b6f8a2fb85c839f88108e2b2ce40a102077d1647c06d55a248983d64",
146
+ "slurm_train_molmobot_betty.sh": "c497cd4722352f4d1698ed578bd54a5a82342e3ab69d9307c8f5d131cd40f5ff",
147
+ "external_closed_loop_eval_coordinator.py": "64e2299ac78f50b0efa199a7a85368980d61731c421cd1716699e45dbed7a966",
148
+ "vla_eval_harness_adapter.py": "8407d8bc842584458de838c15beb563f5662f3699bb0be7ac54d6eaef4c904e9"
149
+ }
150
+ }
metadata/training_launch.env ADDED
@@ -0,0 +1,102 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # 16k MolmoBot-DROID finetune on the directional left/right SimpleDesk pick/place
2
+ # dataset (200 demos, tested40 target set). Sharded intermediate eval and one
3
+ # matching final eval on FrankaPickAndPlaceRelativeNextToSimpleDeskDiverseTargetsTested40Bench.
4
+ # No prompt randomization. FT_LLM=True. Eval uses 10 parent-managed MolmoSpaces shards.
5
+
6
+ RUN_NAME=lr_custom_16k
7
+ DATASET_ID=ccwatson/directional_pick_place_simpledesk_diverse_targets_tested40_200demos_20260716_molmobot
8
+ DATASET_LOCAL_NAME=directional_pick_place_simpledesk_diverse_targets_tested40_200demos_20260716_molmobot
9
+ BASE_MODEL_ID=allenai/MolmoBot-DROID
10
+
11
+ SAVE_ROOT=/ceph/projects/dineshj/lab/ccwatson/MolmoBot_runs
12
+ WANDB_DIR=${SAVE_ROOT}/${RUN_NAME}/wandb
13
+ WANDB_CACHE_DIR=${SAVE_ROOT}/${RUN_NAME}/.cache/wandb
14
+ WANDB_ARTIFACT_DIR=${SAVE_ROOT}/${RUN_NAME}/wandb/artifacts
15
+ WANDB_CONFIG_DIR=${SAVE_ROOT}/${RUN_NAME}/wandb/config
16
+ STATS_PATH=/vast/projects/dineshj/lab/ccwatson/Documents/molmo-robotics-stack/components/MolmoBot/MolmoBot/scratch/datasets/directional_pick_place_simpledesk_diverse_targets_tested40_200demos_20260716_molmobot/directional_pick_place_simpledesk_diverse_targets_tested40_200demos_20260716_norm_stats.yaml
17
+ RANDOMIZE_PROMPTS=0
18
+
19
+ RUN_STEPS=16000
20
+ DEVICE_BATCH_SIZE=16
21
+ GLOBAL_BATCH_SIZE=32
22
+ SAVE_INTERVAL=2000
23
+ SAVE_NUM_CHECKPOINTS_TO_KEEP=1
24
+ CHECKPOINT_RETENTION_FREQUENCY=null
25
+ SAVE_FINAL_UNSHARDED_CHECKPOINT=True
26
+ SAVE_FINAL_OPTIM=False
27
+ RESET_TRAINER_STATE=True
28
+ RESET_OPTIMIZER_STATE=True
29
+ HF_UPLOAD=0
30
+
31
+ ACTION_PRESET=franka_joint
32
+ CAMERA_PRESET=franka_droid
33
+ SEQ_LEN=928
34
+ N_OBS_STEPS=2
35
+ OBS_STEP_DELTA=8
36
+ MAX_IMAGES=4
37
+ MAX_FRAMES=1
38
+ SINGLE_FRAME=False
39
+ WEIGHTED_SAMPLING=1
40
+ FT_EMBEDDING=ae
41
+ NUM_FLOW_TIMESTAMPS=8
42
+ FT_LLM=True
43
+ IMG_AUG=1
44
+ CONNECTOR_LR=5e-6
45
+ VIT_LR=5e-6
46
+ LLM_LR=1e-5
47
+ ACTION_EXPERT_LR=1e-4
48
+ NO_VAL=0
49
+ VAL_INTERVAL=200
50
+ VAL_MAX_EXAMPLES=200
51
+ NUM_WORKERS=4
52
+ PREFETCH_FACTOR=4
53
+ WANDB_PROJECT=molmobot_finetune
54
+ WANDB_ENTITY=ccwatson
55
+ WANDB_MODE=online
56
+
57
+ # Intermediate eval on the left/right SimpleDesk relative-next-to benchmark.
58
+ EXTERNAL_EVAL_ENABLED=1
59
+ EXTERNAL_EVAL_INTERVAL=2000
60
+ EXTERNAL_EVAL_NUM_CHECKPOINTS_TO_KEEP=2
61
+ EXTERNAL_EVAL_RESULT_POLL_INTERVAL_STEPS=50
62
+ EXTERNAL_EVAL_FINAL_RESULT_WAIT_SECONDS=7200
63
+ EXTERNAL_EVAL_METRIC_FOR_BEST=success_rate
64
+ EXTERNAL_EVAL_METRIC_MODE=max
65
+
66
+ EXTERNAL_EVAL_BENCHMARK_DIR=/vast/projects/dineshj/lab/ccwatson/Documents/molmo-robotics-stack/components/molmospaces/benchmarks/custom/molmospaces-bench-v2/procthor-objaverse/FrankaPickAndPlaceRelativeNextToSimpleDeskDiverseTargetsTested40Bench/FrankaPickAndPlaceRelativeNextToSimpleDeskDiverseTargetsTested40Bench_20260716_json_benchmark
67
+ EXTERNAL_EVAL_EXTRA_ARGS="--task_horizon_steps 500"
68
+ EXTERNAL_EVAL_NUM_WORKERS=1
69
+ EXTERNAL_EVAL_PARALLEL_SHARDS=10
70
+ EXTERNAL_EVAL_RENDERER=filament
71
+ EXTERNAL_EVAL_CAMERA_NAMES="droid_shoulder_light_randomization wrist_camera_zed_mini"
72
+
73
+ EXTERNAL_EVAL_WANDB_ENABLED=1
74
+ EXTERNAL_EVAL_WANDB_PROJECT=mlspaces-json-eval
75
+ EXTERNAL_EVAL_WANDB_GROUP=lr-custom-ie-16k-b16-32
76
+ EXTERNAL_EVAL_WANDB_TAGS=betty,vla-harness,molmospaces,intermediate-eval,molmobot-droid,left-right-pick-place,simple-desk,relative-next-to,sharded-intermediate-eval,filament,10x
77
+
78
+ # Final eval on the same left/right SimpleDesk benchmark.
79
+ EXTERNAL_EVAL_FINAL_ENABLED=1
80
+ EXTERNAL_EVAL_FINAL_REQUIRED=1
81
+ EXTERNAL_EVAL_FINAL_WAIT_SECONDS=7200
82
+ EXTERNAL_EVAL_FINAL_UPLOAD_LOGS=1
83
+ EXTERNAL_EVAL_FINAL_NUM_WORKERS=1
84
+ EXTERNAL_EVAL_FINAL_PARALLEL_SHARDS=10
85
+ EXTERNAL_EVAL_FINAL_RENDERER=filament
86
+ EXTERNAL_EVAL_FINAL_CAMERA_NAMES="droid_shoulder_light_randomization wrist_camera_zed_mini"
87
+ EXTERNAL_EVAL_FINAL_EVAL_WANDB_ENABLED=1
88
+ EXTERNAL_EVAL_FINAL_EVAL_WANDB_PROJECT=mlspaces-json-eval
89
+ EXTERNAL_EVAL_FINAL_EVAL_WANDB_GROUP=lr-custom-fe-16k-b16-32
90
+ EXTERNAL_EVAL_FINAL_EVAL_WANDB_TAGS=betty,vla-harness,molmospaces,final-eval,molmobot-droid,left-right-pick-place,simple-desk,relative-next-to,sharded-final-eval,filament,10x
91
+
92
+ EXTERNAL_EVAL_FINAL_BENCHMARK_1_NAME=FrankaPickAndPlaceRelativeNextToSimpleDeskDiverseTargetsTested40Bench
93
+ EXTERNAL_EVAL_FINAL_BENCHMARK_1_DIR=/vast/projects/dineshj/lab/ccwatson/Documents/molmo-robotics-stack/components/molmospaces/benchmarks/custom/molmospaces-bench-v2/procthor-objaverse/FrankaPickAndPlaceRelativeNextToSimpleDeskDiverseTargetsTested40Bench/FrankaPickAndPlaceRelativeNextToSimpleDeskDiverseTargetsTested40Bench_20260716_json_benchmark
94
+ EXTERNAL_EVAL_FINAL_BENCHMARK_1_EXTRA_ARGS="--task_horizon_steps 500"
95
+
96
+ SLURM_JOB_NAME=lr-custom-ie-fe-16k-b16-32
97
+ SLURM_PARTITION=dgx-b200
98
+ SLURM_QOS=normal
99
+ SLURM_GRES=gpu:1
100
+ SLURM_CPUS=28
101
+ SLURM_MEM=224G
102
+ SLURM_TIME=20:00:00
normalization_stats.yaml ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ stats_by_repo:
2
+ synthmanip:
3
+ observation.state:
4
+ min:
5
+ - -2.2766549587249756
6
+ - -1.7608288526535034
7
+ - -1.7191452980041504
8
+ - -2.8627865314483643
9
+ - -0.9076813459396362
10
+ - 0.8232163190841675
11
+ - -2.4616048336029053
12
+ - -0.0008297820459119976
13
+ max:
14
+ - 2.080810546875
15
+ - 0.6704062223434448
16
+ - 1.9463512897491455
17
+ - -0.6767909526824951
18
+ - 0.8670341372489929
19
+ - 2.381640672683716
20
+ - 0.4024277329444885
21
+ - 0.8239965438842773
22
+ action:
23
+ q01:
24
+ - -1.3642053604125977
25
+ - -1.5828913450241089
26
+ - -0.7952697277069092
27
+ - -2.813814878463745
28
+ - -0.8428052663803101
29
+ - 1.053465485572815
30
+ - -2.1978600025177
31
+ - 0.0
32
+ q99:
33
+ - 0.7378915548324585
34
+ - 0.468648225069046
35
+ - 1.7082799673080444
36
+ - -0.9352492094039917
37
+ - 0.7082295417785645
38
+ - 2.1873221397399902
39
+ - 0.3892104923725128
40
+ - 255.0
41
+ default_repo_id: synthmanip
42
+ action_key: action
43
+ state_keys:
44
+ - observation.state
45
+ action_norm_mode: quantiles
46
+ state_norm_mode: min_max