m1b commited on
Commit
f08119f
·
verified ·
1 Parent(s): 71d8e46

Upload train_args.json with huggingface_hub

Browse files
Files changed (1) hide show
  1. 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
+ }