File size: 4,819 Bytes
4c9e0f0 a123db3 4c9e0f0 f3cb490 a123db3 4c9e0f0 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | ---
license: apache-2.0
tags:
- robotics
- behavior-1k
base_model: IliaLarchenko/behavior_50t_checkpoint
---
# b1k single-task checkpoints
Params-only checkpoints for offline evaluation. `train_state` is **not** included, so these
cannot be resumed from — inference/eval only.
## `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`](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`.
|