b1k single-task checkpoints

Params-only checkpoints for offline evaluation. train_state is not included, so these cannot be resumed from β€” inference/eval only.

task1/ β€” picking_up_trash, human demos + recovery data

Single-task fine-tune of the 2025 winner's checkpoint_2 (the official checkpoint covering task 1) on task 1 = picking_up_trash, using the 200 human demos plus 788 scripted recovery episodes from fastwalker1118/B1k_Recovery (task1/Demo+Recovery). Planned 5 epochs; these are the checkpoints nearest the epoch boundaries (one epoch = 15,089 steps).

checkpoint step epochs action_loss at that step (train set)
task1/task1_demo_recovery_epoch1_15000 15,000 0.99 0.0635
task1/task1_demo_recovery_epoch2_30000 30,000 1.99 0.0461
task1/task1_demo_recovery_epoch3_45000 45,000 2.98 0.0368
init IliaLarchenko/behavior_submission checkpoint_2 (params)
config pi_behavior_b1k_fast (FSDP 4, EMA, FAST aux loss), B1K_TASK_SPACE=100
data 988 episodes (200 demos + 788 recoveries), 1,931,447 samples per epoch; source videos (head 720Β², wrists 480Β²) re-encoded to 224Γ—224 with lanczos + the upstream x265 option string (crf 28, keyint 8), frame alignment verified
batch 128 on 4Γ— H200
LR 2.5e-7 β†’ 2.5e-6 at step 500 β†’ cosine to 2.5e-7 at step 75,445 (5 epochs)
norm stats 2025 stats + robot-frame base_qvel fix (state dims 0–2) + trunk_3 un-frozen: action dim 6 / state trunk_3 mean 0, std 0.1315, measured on the recoveries (the 2025 stats have std β‰ˆ 0 because the demos never rotate the waist; the recoveries do)
targets normalized flow-matching action targets clipped to Β±10Οƒ (scripted-planner recoveries have rare far-out chunk starts)

Eval: load the norm stats shipped in each checkpoint's assets/, not the 2025 checkpoint_2 stats. With the 2025 stats the waist (trunk_3) input and output are mis-scaled.

action_loss is training-set loss only (no validation split, no rollouts yet).

task2/ β€” putting_away_Halloween_decorations, human demos + recovery data (round 0)

Single-task fine-tune of the 2025 winner's checkpoint_1 (the official checkpoint covering task 2) on task 2 = putting_away_Halloween_decorations, using the 200 human demos plus 543 scripted recovery episodes from fastwalker1118/B1k_Recovery (task2/Demo+Recovery_video_r0a). The recoveries start from failure frames that a video-only inspection found in checkpoint_1 rollouts, and from edited variants of those frames (no public-test instances). 2 epochs; one epoch = 31,262 steps.

checkpoint step epochs action_loss near that step (train set)
task2/task2_demo_recovery_video_r0a_epoch1_30000 30,000 0.96 0.0476
task2/task2_demo_recovery_video_r0a_epoch2_62523 62,523 2.00 0.0372
init IliaLarchenko/behavior_submission checkpoint_1 (params)
config pi_behavior_b1k_fast (FSDP 4, EMA, FAST aux loss), B1K_TASK_SPACE=100
data 743 episodes (200 demos + 543 recoveries), 4,001,658 samples per epoch; all videos re-encoded to 224Γ—224 with lanczos + the full upstream x265 option string (crf 28, keyint 8)
batch 128 on 4Γ— H200
LR 2.5e-7 β†’ 2.5e-6 at step 500 β†’ cosine to 2.5e-7 at step 62,524 (2 epochs)
norm stats 2025 checkpoint_1 stats + robot-frame base_qvel fix (state dims 0–2); trunk_3 stays frozen (the task-2 recoveries never rotate the waist)
targets normalized flow-matching action targets clipped to Β±10Οƒ

Eval: robot-frame base velocity in the state, and the norm stats shipped in each checkpoint's assets/.

action_loss is training-set loss only (no validation split).

task2/…_srcmeta_… β€” same round-0 fine-tune, with data-source metadata (pi0.7-style)

Identical to the task2/ round-0 fine-tune above (same data, init, recipe, seed, norm stats) except that every training example carries its data source as prompt metadata, following Ο€0.7 (arXiv 2604.15483, Sec. V-C/V-E): Data source: human teleoperation. for the 200 human demos, Data source: scripted motion planner. for the 543 recovery episodes. The label is 7 Gemma text tokens embedded with the VLM's own token-embedding table and appended to the prefix after the state tokens as a causal block (the image/task/stage/state tokens do not attend to it; the action expert and FAST tokens do); no parameters are added. As in Ο€0.7 the metadata is dropped entirely 15% of the time and per component 5% of the time. At inference set the label (we evaluate human; planner for comparison) β€” the patch is task2/source_meta.py; unpatched code runs these weights with no label block at all. Recoveries come from fastwalker1118/B1k_Recovery (task2/Demo+Recovery_video_r0a). The recoveries start from failure frames that a video-only inspection found in checkpoint_1 rollouts, and from edited variants of those frames (no public-test instances). 2 epochs; one epoch = 31,262 steps.

checkpoint step epochs action_loss near that step (train set)
task2/task2_demo_recovery_video_r0a_srcmeta_epoch1_30000 30,000 0.96 0.0476
task2/task2_demo_recovery_video_r0a_srcmeta_epoch2_62523 62,523 2.00 0.0358
init IliaLarchenko/behavior_submission checkpoint_1 (params)
config pi_behavior_b1k_fast (FSDP 4, EMA, FAST aux loss), B1K_TASK_SPACE=100
data 743 episodes (200 demos + 543 recoveries), 4,001,658 samples per epoch; all videos re-encoded to 224Γ—224 with lanczos + the full upstream x265 option string (crf 28, keyint 8)
batch 128 on 4Γ— H200
LR 2.5e-7 β†’ 2.5e-6 at step 500 β†’ cosine to 2.5e-7 at step 62,524 (2 epochs)
norm stats 2025 checkpoint_1 stats + robot-frame base_qvel fix (state dims 0–2); trunk_3 stays frozen (the task-2 recoveries never rotate the waist)
targets normalized flow-matching action targets clipped to Β±10Οƒ

Eval: robot-frame base velocity in the state, and the norm stats shipped in each checkpoint's assets/.

action_loss is training-set loss only (no validation split).

task2/task2_demo_only_… β€” human-demos-only baseline (no recoveries)

Control for the task2/ round-0 recovery fine-tunes above: the same init, recipe, seed and norm stats, trained for one epoch on the 200 task-2 human demos only (the demo half of task2/Demo+Recovery_video_r0a, read from the same 224Γ—224 files). It measures how much of the round-0 gain comes from the recoveries rather than from fine-tuning checkpoint_1 on the 2026 demos.

checkpoint step epochs action_loss near that step (train set)
task2/task2_demo_only_ckpt1_1epoch_21495 21,495 1.00 0.0555
init IliaLarchenko/behavior_submission checkpoint_1 (params)
config pi_behavior_b1k_fast (FSDP 4, EMA, FAST aux loss), B1K_TASK_SPACE=100
data 200 human demos, 2,751,612 samples per epoch
batch 128 on 4Γ— H200
LR 2.5e-7 β†’ 2.5e-6 at step 500 β†’ cosine to 2.5e-7 at step 21,496 (1 epoch)
norm stats 2025 checkpoint_1 stats + robot-frame base_qvel fix (state dims 0–2)

Eval: robot-frame base velocity in the state, and the norm stats shipped in each checkpoint's assets/.

action_loss is training-set loss only (no validation split).

task5_human_only_21k

Single-task fine-tune of the 50-task meta checkpoint on task 5 = setting_mousetraps, using the 200 human demonstrations from the 2026 BEHAVIOR-1K challenge set and nothing else.

init IliaLarchenko/behavior_50t_checkpoint (params)
data 2026-challenge-demos-224, activity setting_mousetraps, 200 episodes / 2,039,222 frames
step 21,000 of a planned 30,000 (run stopped early; resumable copy retained locally)
batch 224 (32/GPU Γ— 7Γ— H200), FSDP over 7 devices
LR 8.75e-7 β†’ 8.75e-5 β†’ 1.75e-6, 2,000-step warmup (linear rule off BS-128 / 5e-5)
norm stats norm-stats-fixed (sha256 2b42bdfb…), i.e. 2025 stats with the robot-frame base_qvel correction on state dims 0–2
task space B1K_TASK_SPACE=100; setting_mousetraps is index 5 in both the 2025 and 2026 tables, so its task/stage embeddings are pretrained, not randomly initialised
final logged action_loss = 0.0209 at step 21,775

task10_taskfinetune

Rollout evaluation: see task10_taskfinetune/EVAL_RESULTS.md β€” 0.0 % success / avg q 0.1917 over 20 public_test instances, vs 5.0 % / 0.1750 for the official checkpoint_1. The difference is not statistically significant (sign test p = 1.000).

Single-task fine-tune of the 50-task meta checkpoint on task 10 = set_up_a_coffee_station_in_your_kitchen, using the 200 human demonstrations from the 2026 BEHAVIOR-1K challenge set and nothing else. Run completed in full.

init IliaLarchenko/behavior_50t_checkpoint (params)
data 2026-challenge-demos-224, activity set_up_a_coffee_station_in_your_kitchen, 200 episodes / 1,253,243 frames
step 29,999 of 30,000 (completed, 16 h 54 m on 8Γ— H200)
batch 256 (32/GPU Γ— 8Γ— H200), FSDP over 8 devices
LR flat 5e-6 β€” init = peak = decay = 5e-6, so no warmup ramp and no cosine decay
norm stats 2025 stats with the robot-frame base_qvel correction on state dims 0–2 (same qvelfix stats as the task-5 runs)
task space B1K_TASK_SPACE=100; set_up_a_coffee_station_in_your_kitchen is index 10 in both the 2025 and 2026 tables, so its task/stage embeddings are pretrained, not randomly initialised
final logged action_loss = 0.0294, total_loss = 0.0565, fast_accuracy = 0.8208 at step 29,975

Because the LR is flat with no annealing, the final step is not necessarily the best checkpoint β€” there is no decay phase to settle into a minimum. Steps 4000/8000/.../28000 were retained locally and can be uploaded if you want to sweep across them.

Video encoding caveat for this checkpoint

Trained on the 2026-challenge-demos-224 build, whose bitstream reports x264 crf=20.0, keyint=250. Measured against b1k-224x224-gop8-fixed (x265 crf=28.0, keyint=8) on identical frames, this build is slightly softer: 0.886Γ— Laplacian variance, 0.933Γ— HF spectral energy. The downscaling filter is not recorded in the bitstream and is unverified. No task-success delta has been measured for this difference β€” it is an input-statistics observation only.

One video file in the source data (right_realsense .../chunk-010/file-002.mp4, backing 46 of the 200 episodes) had no moov atom and was unreadable; it was re-encoded from the intact 480Γ—480 HEVC original at x264 CRF 23 / GOP 250 to match its neighbours, verified at 43–50 dB PSNR against the source.

Reading the loss

action_loss here is training-set loss. There is no validation split and no rollout evaluation has been run, so it says nothing about task success or generalisation. It is also not comparable across tasks β€” episode length varies ~6Γ— between activities.

Reproducing the input pipeline

The model consumes a 23-dim state extracted from the 61-dim observation.state (base_qvel 0:3, arm_left 3:10, gripper_left 24:26, arm_right 28:35, gripper_right 49:51, trunk 53:57), and predicts 23-dim actions with the trunk and both arms as deltas relative to the current state (use_delta_joint_actions=True); base velocity and both grippers stay absolute. Action normalisation is per-timestamp (use_per_timestamp_norm=True) over a 30-step horizon β€” the scalar mean/std in norm_stats.json are not what the pipeline divides by for actions.

Cameras are 224Γ—224 h264: zed_link_camera_0 (head), left_realsense_link_camera_0, right_realsense_link_camera_0.

Downloads last month

-

Downloads are not tracked for this model. How to track
Video Preview
loading

Model tree for fastwalker1118/b1kcheckpoints

Finetuned
(1)
this model