pi05-button-order-status-d-lora-gbs4-pgb1-gpu4-r2-step5000
Second-round π0.5 LoRA fine-tuning for button_order, checkpoint 5,000.
Trained locally on 4 RTX A6000 GPUs, global batch 4, per-GPU batch 1,
without gradient accumulation. This checkpoint represents 20,000 sample exposures;
the run targets 12,500 optimizer updates / 50,000 sample exposures.
Checkpoints are saved every 1,000 updates and at the final 12,500.
r2 keeps these artifacts separate from the original 6,250-step experiment.
Warmup: 250 updates to 5e-5; cosine decay to 5e-6 at step 12,500.
EMA: 0.999^4 = 0.996005996001. AdamW, LoRA rank32, seed42.
Full settings are in training_config.json.
Status-D: 32 uniformly sampled frames over the complete observed episode prefix [0,t], plus one nullable Writer keyframe (528 visual tokens total), and a held Writer current subgoal. The Writer initializes at execution start and subsequently updates at Status events. Offline Writer timing is projected using coarse event estimates; this is teacher conditioning, not a claim of an online predicted-Status rollout. Status span positives use supported event brackets; endpoint and negative supervision comes only from explicitly reviewed windows. Unreviewed labels remain masked. Review provenance is agent/model review, not human ground truth. The 48-step Status context uses recorded pose commands and measured state. Its command-gripper feature is disabled consistently in training and inference; no missing gripper command is invented. Historical state embeddings are disabled.
Only robot execution rows supervise actions. Demonstration images, features and
original episode/frame coordinates remain available as history; execution start
does not reset the visual history. Episode splits and normalization use the
training split only. The recorded Cartesian end-effector/tool pose convention
must match the collection controller; do not apply an extra tool/flange offset.
Outputs have shape (20,8): absolute xyz, unit XYZW quaternion in the positive-qx
chart, and gripper command in [0,1]. Numeric state/actions use STD normalization;
state tokens use a separate bounded train-q01/q99 view.
Unknown action components remain NaN/false in the training dataset and are masked in both flow conditioning and loss. Entirely unsupervised components: []. In particular, Shuffle's gripper output has no command supervision and must not be interpreted as learned gripper control. Button Order has only limited verified closed-command labels.
This repository includes EMA serving weights, normalization/history assets, inference source, exact dependency versions, and full non-EMA/optimizer/RNG/sampler resume state. Intermediate publication is not a policy-quality evaluation. Offline evaluation, when included, does not establish real-robot success rate.
Load with from load_model import load, observe; policy = load() from this bundle.
For history models call observe(policy, base_rgb, state) for every observed frame,
including demonstrations, and reset between episodes. Status-D additionally requires
explicit history_keyframe_index (an observed frame or None), current_subgoal,
and causal transition_context_* inputs in policy.infer(...); its output includes
transition_status. Use the exported Writer schedule and matching control frame.