Upload train_args.json with huggingface_hub
Browse files- train_args.json +239 -0
train_args.json
ADDED
|
@@ -0,0 +1,239 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"dataset": "data/rmbench_lerobot_full/battery_try",
|
| 3 |
+
"checkpoint_dir": "training/models/Wan2.2-TI2V-5B",
|
| 4 |
+
"action_dit_pretrained_path": "none",
|
| 5 |
+
"prompt_cache": null,
|
| 6 |
+
"output_dir": "training/experiments/rmbench_kairos_wam_v15_gist4_gated_r4_pointwise_full_kv_d640_battery_try_nextstate_1x8_50k_run1/outputs",
|
| 7 |
+
"resume": "none",
|
| 8 |
+
"required_cameras": "mosaic",
|
| 9 |
+
"device": "cuda",
|
| 10 |
+
"dtype": "bfloat16",
|
| 11 |
+
"mixed_precision": "bf16",
|
| 12 |
+
"batch_size": 1,
|
| 13 |
+
"gradient_accumulation_steps": 1,
|
| 14 |
+
"num_workers": 4,
|
| 15 |
+
"learning_rate": 0.0002,
|
| 16 |
+
"weight_decay": 0.01,
|
| 17 |
+
"beta1": 0.9,
|
| 18 |
+
"beta2": 0.95,
|
| 19 |
+
"optimizer_fused": false,
|
| 20 |
+
"optimizer_foreach": "auto",
|
| 21 |
+
"max_grad_norm": 1.0,
|
| 22 |
+
"num_epochs": 1000,
|
| 23 |
+
"max_steps": 50000,
|
| 24 |
+
"warmup_ratio": 0.05,
|
| 25 |
+
"log_every": 10,
|
| 26 |
+
"save_every": 1000,
|
| 27 |
+
"keep_last": 10,
|
| 28 |
+
"skip_final_checkpoint": false,
|
| 29 |
+
"skip_trainer_state_checkpoint": false,
|
| 30 |
+
"profile_timings": false,
|
| 31 |
+
"profile_microbatches": false,
|
| 32 |
+
"profile_all_ranks": false,
|
| 33 |
+
"profile_warmup_steps": 3,
|
| 34 |
+
"profile_log_every": 1,
|
| 35 |
+
"torch_profile_dir": null,
|
| 36 |
+
"torch_profile_wait": 1,
|
| 37 |
+
"torch_profile_warmup": 1,
|
| 38 |
+
"torch_profile_active": 3,
|
| 39 |
+
"torch_profile_repeat": 1,
|
| 40 |
+
"torch_profile_record_shapes": false,
|
| 41 |
+
"torch_profile_memory": false,
|
| 42 |
+
"torch_profile_with_stack": false,
|
| 43 |
+
"seed": 42,
|
| 44 |
+
"tokenizer_max_len": 128,
|
| 45 |
+
"keep_text_encoder_loaded": false,
|
| 46 |
+
"image_size": "160,192",
|
| 47 |
+
"disable_mot_checkpoint_mixed_attn": false,
|
| 48 |
+
"noise_beta_alpha": 0.0,
|
| 49 |
+
"noise_beta_beta": 1.0,
|
| 50 |
+
"proprio_mode": "native",
|
| 51 |
+
"action_space": "aloha_agilex_absolute",
|
| 52 |
+
"model_variant": "wam",
|
| 53 |
+
"video_backbone": "kairos",
|
| 54 |
+
"kairos_video_pretrained": "training/kairos/step-4500.safetensors",
|
| 55 |
+
"kairos_action_pretrained": "training/checkpoints/KairosActionDiT_from_video_step4500_alphascale_14dim_d640_ffn2560_attn2560.safetensors",
|
| 56 |
+
"kairos_action_model_dim": 640,
|
| 57 |
+
"kairos_action_ffn_dim": 2560,
|
| 58 |
+
"kairos_action_attn_hidden_dim": 2560,
|
| 59 |
+
"allow_random_kairos_action_init": false,
|
| 60 |
+
"kairos_vae_pretrained": "training/pretrained/Wan-AI/Wan2.1-T2V-1.3B/Wan2.1_VAE.pth",
|
| 61 |
+
"kairos_text_encoder_path": "training/pretrained/Qwen/Qwen2.5-VL-7B-Instruct",
|
| 62 |
+
"wandb": false,
|
| 63 |
+
"wandb_project": "little-wam",
|
| 64 |
+
"wandb_entity": null,
|
| 65 |
+
"wandb_name": null,
|
| 66 |
+
"wandb_group": null,
|
| 67 |
+
"eval_every": 0,
|
| 68 |
+
"eval_num_inference_steps": 10,
|
| 69 |
+
"faithfulness": {
|
| 70 |
+
"spec": "memorywam_kairos",
|
| 71 |
+
"spec_doc": "docs/memorywam-kairos-design.md#7c-faithfulness-deviation-ledger",
|
| 72 |
+
"contract_lineage": "v15",
|
| 73 |
+
"contract_version": "v15_gist4_gated_episode_d640_0init_4recent_pointwise_adaptive_full",
|
| 74 |
+
"memory_bootstrap_opt_in": true,
|
| 75 |
+
"runtime_debug": {
|
| 76 |
+
"zero_optimizer_offload_device": "none",
|
| 77 |
+
"speed_comparable_to_standard_gpu_training": true
|
| 78 |
+
},
|
| 79 |
+
"backbone_provenance": "Kairos 3.1-pre WAM/Libero config (2560/32/20), not the G1-robot 1024/28/484 config",
|
| 80 |
+
"train_infer_fix": "absolute_video_rope_with_full_video3d_action_rope",
|
| 81 |
+
"train_infer_fix_components": [
|
| 82 |
+
"per_query_role_routing",
|
| 83 |
+
"absolute_pinned_3d_rope_video_cache",
|
| 84 |
+
"full_video3d_temporal_fraction_marker_action_rope"
|
| 85 |
+
],
|
| 86 |
+
"rope_basis": "video3d_absolute_pinned",
|
| 87 |
+
"action_rope": "video3d_temporal_fraction_marker",
|
| 88 |
+
"rope_cache_append_only": false,
|
| 89 |
+
"surviving_kv_immutable": true,
|
| 90 |
+
"cache_update": "append_new_delete_expired_full_no_recompute",
|
| 91 |
+
"geometry": {
|
| 92 |
+
"video_chunk_frames": 1,
|
| 93 |
+
"latent_frames_per_chunk": 1,
|
| 94 |
+
"action_horizon": 16,
|
| 95 |
+
"chunk_stride": 16,
|
| 96 |
+
"video_objective": "per_frame_autoregressive_F1"
|
| 97 |
+
},
|
| 98 |
+
"memory_policy": {
|
| 99 |
+
"n_init": 0,
|
| 100 |
+
"n_recent": 4,
|
| 101 |
+
"mv": 4,
|
| 102 |
+
"gist_tokens": 4,
|
| 103 |
+
"min_target_chunk": 0,
|
| 104 |
+
"clean_aug_prob": 1.0,
|
| 105 |
+
"max_prefix_frames": 128,
|
| 106 |
+
"compressed_repr": "gist_only",
|
| 107 |
+
"gated_memory": "episode",
|
| 108 |
+
"router_mode": "delta_pointwise_threshold",
|
| 109 |
+
"delta_threshold": 1.5,
|
| 110 |
+
"physical_evict_full": true,
|
| 111 |
+
"physical_memory_unit": "observed_latent_frame",
|
| 112 |
+
"latent_gid": "chunk_idx"
|
| 113 |
+
},
|
| 114 |
+
"compressed_memory": {
|
| 115 |
+
"representation": "gist_only",
|
| 116 |
+
"gist_tokens": 4,
|
| 117 |
+
"materialized_levels": [
|
| 118 |
+
"gist"
|
| 119 |
+
],
|
| 120 |
+
"router": {
|
| 121 |
+
"mode": "delta_pointwise_threshold",
|
| 122 |
+
"enabled": true,
|
| 123 |
+
"selection_signal": "positive_raw_dt",
|
| 124 |
+
"token_filter": "clean_committed_full_only",
|
| 125 |
+
"patch_pool": "mean",
|
| 126 |
+
"head_reduce": "raw_l2",
|
| 127 |
+
"threshold": 1.5,
|
| 128 |
+
"pass1": "no_grad_streaming",
|
| 129 |
+
"pass2": "monolithic_frozen_route_no_delta_capture",
|
| 130 |
+
"dynamic_anchor_cap": null,
|
| 131 |
+
"selected_anchor_demotion": false,
|
| 132 |
+
"decision_rule": "frame_score_gte_threshold",
|
| 133 |
+
"score_scope": "single_expiring_frame",
|
| 134 |
+
"accumulator": false,
|
| 135 |
+
"pending_capacity": 0,
|
| 136 |
+
"delta_layer_resolution": "pending_model_init"
|
| 137 |
+
},
|
| 138 |
+
"physical_evict_full": true
|
| 139 |
+
},
|
| 140 |
+
"action_representation": {
|
| 141 |
+
"status": "fixed",
|
| 142 |
+
"ours": "absolute_joint_14d",
|
| 143 |
+
"paper": "absolute_joint_14d",
|
| 144 |
+
"action_space_name": "aloha_agilex_absolute",
|
| 145 |
+
"action_space_tag": "aloha_agilex_absolute_joint_14d",
|
| 146 |
+
"fail_loud_on_resume": true,
|
| 147 |
+
"note": "ACTION_SPACE=aloha_agilex_absolute is the canonical paper-faithful RMBench 14D joint action representation; ACTION_SPACE=aloha_agilex remains a legacy chunk-delta ablation."
|
| 148 |
+
},
|
| 149 |
+
"memory_window": {
|
| 150 |
+
"status": "fixed",
|
| 151 |
+
"ours": "no permanent anchors; recent window has 4 FULL chunks including current; older frames use learned gist tokens only; video GATED state persists across clean commits and noisy targets read clock-correct state without committing",
|
| 152 |
+
"paper": "V15-baseline-derived GIST-only static retention",
|
| 153 |
+
"n_init": 0,
|
| 154 |
+
"n_recent": 4,
|
| 155 |
+
"clean_full_attended": 4,
|
| 156 |
+
"wam_only": true,
|
| 157 |
+
"note": "V15 GIST4/GATED-R4 has n_init=0 and n_recent=4 by default. The exact resolved values are recorded here and in checkpoint metadata; streaming physically removes expired FULL KV after verifying that its GIST KV exists. No L1 representation is constructed or retained."
|
| 158 |
+
},
|
| 159 |
+
"kairos_forced_deviations": [
|
| 160 |
+
"8 GATED (linear-attn) layers in the 32-block schedule (Kairos arch, not paper's 30 uniform softmax)",
|
| 161 |
+
"decomposed video/action two-tower forward (consequence of the 8 GATED layers)",
|
| 162 |
+
"Wan2.1 16-ch VAE vs paper Wan2.2 48-ch latent",
|
| 163 |
+
"Qwen2.5-VL text encoder vs paper T5"
|
| 164 |
+
],
|
| 165 |
+
"noise_schedule": {
|
| 166 |
+
"objective": "continuous flow-matching, 1000 steps (paper-faithful)",
|
| 167 |
+
"timestep_sampling": {
|
| 168 |
+
"status": "fixed",
|
| 169 |
+
"ours": "shifted logit-normal (SD3-style: u~N(0,1) -> sigmoid -> phi-shift)",
|
| 170 |
+
"paper": "shifted logit-normal",
|
| 171 |
+
"wam_only": true,
|
| 172 |
+
"note": "memwam loss only; idm/joint/base keep uniform+phi-shift (untouched)"
|
| 173 |
+
},
|
| 174 |
+
"video_flow_shift": {
|
| 175 |
+
"status": "fixed",
|
| 176 |
+
"ours": 5.0,
|
| 177 |
+
"paper": 5.0,
|
| 178 |
+
"wam_only": true,
|
| 179 |
+
"fail_loud_on_resume": true,
|
| 180 |
+
"note": "was dynamic kairos_shift_from_shape ~1.67 at 480-token F=1 latent; now fixed (resolved from KAIROS_WAM_VIDEO_SHIFT, default 5.0)"
|
| 181 |
+
},
|
| 182 |
+
"action_flow_shift": {
|
| 183 |
+
"status": "fixed",
|
| 184 |
+
"ours": 1.0,
|
| 185 |
+
"paper": 1.0,
|
| 186 |
+
"fail_loud_on_resume": true,
|
| 187 |
+
"note": "already 1.0; kept and now sampled via the logit-normal schedule (resolved from KAIROS_WAM_ACTION_SHIFT, default 1.0)"
|
| 188 |
+
},
|
| 189 |
+
"loss_reweight": {
|
| 190 |
+
"status": "fixed",
|
| 191 |
+
"ours": "unit weight (1.0); emphasis carried once by logit-normal sampling (SD3 single-application)",
|
| 192 |
+
"paper": "\u00a74.1 'reweighted by the scheduler's logit-normal training weight' (prose names the schedule = the sampling; no explicit weighting equation)",
|
| 193 |
+
"wam_only": true,
|
| 194 |
+
"metadata_value": "scheduler_logit_normal_single",
|
| 195 |
+
"flag": "KAIROS_WAM_LOSS_REWEIGHT={scheduler_logit_normal|unit} (default scheduler_logit_normal; unit = compat/debug, NOT paper-faithful)",
|
| 196 |
+
"note": "PAPER AMBIGUITY (no equation; \u00a74.1 only NAMES the logit-normal training weight): we follow SD3 single-application. \u00a74.1 'reweighted by the scheduler's logit-normal weight' and 'unit weight' are the SAME single application \u2014 the emphasis lives in the logit-normal SAMPLING, not a SECOND density multiply. The blueprint STEP-6 'non-constant training_weight ON TOP of logit-normal sampling' would DOUBLE-apply the emphasis (\u221d \u03c0_ln\u00b2, mean \u22481.29) \u2014 the v8 bug G1 fixed \u2014 so we keep single-application (unit weight). idm/joint/base keep the centred Gaussian bump (untouched)."
|
| 197 |
+
}
|
| 198 |
+
},
|
| 199 |
+
"observation_window": {
|
| 200 |
+
"status": "fixed",
|
| 201 |
+
"ours": "4-raw-frame window {3,7,11,15} of the PREVIOUS segment (anchor + {-12,-8,-4,0}) VAE-encoded into one F=1 latent; chunk 0 seeded from the repeated initial mosaic",
|
| 202 |
+
"paper": "appendix A.1 4-raw-frame window {3,7,11,15} aggregated into one latent frame",
|
| 203 |
+
"causal_alignment": "train_obs(chunk_i) == deploy_obs(chunk_i); conditioned on frames <= start_i (offset 0 = anchor, the pre-action obs)",
|
| 204 |
+
"ledger": "docs/memorywam-kairos-design.md \u00a77c C (Latent temporal window) + \u00a77c F1",
|
| 205 |
+
"gate": "tests/test_kairos_obs_window_causal_alignment.py (train obs == deploy obs per chunk, no future leak)",
|
| 206 |
+
"load_fail_loud_keys": [
|
| 207 |
+
"action_horizon",
|
| 208 |
+
"obs_window_mode",
|
| 209 |
+
"obs_window_substep_offsets",
|
| 210 |
+
"obs_window_prev_segment",
|
| 211 |
+
"obs_window_prev_window_offsets"
|
| 212 |
+
],
|
| 213 |
+
"wam_only": true,
|
| 214 |
+
"note": "supersedes the earlier 'single conditioning latent frame' deviation AND the earlier same-chunk {3,7,11,15} leak (v5); requires the v6 re-train (v5 trained the leaky alignment)"
|
| 215 |
+
},
|
| 216 |
+
"sim_deploy_denoise_steps": {
|
| 217 |
+
"status": "fixed",
|
| 218 |
+
"ours_realworld_default": 10,
|
| 219 |
+
"ours_sim": 50,
|
| 220 |
+
"paper_sim": 50,
|
| 221 |
+
"paper_realworld": 10,
|
| 222 |
+
"control": "robot.deployment.policy_server --num-inference-steps/--sim-denoise-steps (per-request params.num_inference_steps overrides)",
|
| 223 |
+
"note": "sim closed-loop eval pins the SERVER's resolved default to 50 via the deploy recipe (03_deploy_server.sh --num-inference-steps 50, SIM_NUM_INFERENCE_STEPS), not relying solely on the RMBench client's per-request value; per-request params.num_inference_steps still overrides"
|
| 224 |
+
},
|
| 225 |
+
"open_deviations": [],
|
| 226 |
+
"resolved_deviations": [
|
| 227 |
+
{
|
| 228 |
+
"aspect": "action_rope_basis",
|
| 229 |
+
"ours": "full video 3-D temporal-fraction action RoPE: action tokens use f=c+(p+1)/(T+1) and one constant non-pixel h/w marker from the video's f/h/w RoPE basis",
|
| 230 |
+
"paper": "action queries share the video's full 3-D (f,h,w) RoPE basis",
|
| 231 |
+
"deviation": "none; temporal fractional action slots and the non-pixel h/w marker follow the LingBot-VA released-code convention for action coordinates",
|
| 232 |
+
"action_video_spatial_cross_term": "R_f(c+frac_p-gid) * R_h(marker_h-i) * R_w(marker_w-j)",
|
| 233 |
+
"train_infer_consistent": true,
|
| 234 |
+
"class": "F",
|
| 235 |
+
"ledger": "docs/memorywam-kairos-design.md#7c-faithfulness-deviation-ledger (C + F3)"
|
| 236 |
+
}
|
| 237 |
+
]
|
| 238 |
+
}
|
| 239 |
+
}
|