Robotics
Safetensors
English
psi
psi0
vla
vision-language-action
humanoid
imitation-learning
flow-matching
g1
inspire-rh56dftp
bimanual

Psi0 Fine-Tune v4 — G1 Sneaker-in-Box, Bimanual + Lateral + Recovery + Negative

v4 community fine-tune of Psi0 (paper) on a Unitree G1 humanoid with Inspire RH56DFTP hands.

Same task as the v1, v2 and v3 fine-tunes — "Pick up the sneaker and place it inside the box." — but trained on the 385-episode v4 dataset (psi0-g1-sneaker-385ep-v4) which extends the v3 base with +60 negative episodes (no shoe and/or no box). v4 closes the third item on v1 Phase 14's punch list (negative scenes / no-go cue) — the carryover that v2 never addressed and v3 only partially handled. Trained at the CloudWalk Robotics Lab (CW-RL), 2026-05.

Status

Trained 2026-05-10. 160 000 steps on 8× B200 in 14 h 35 m, 172 effective epochs, final eval/loss 0.209. Open-loop eval section reserved as Pending (mirror of v2 Phase 11.5; see the v4 runbook for the protocol).

Quick facts

Base Psi0 (Qwen3-VL-2B + flow-based MM-DiT action expert)
Pretrained pre.fast.1by1.2601091803.ckpt.ego200k.he30k + postpre.1by1.pad36.2601131206.ckpt.he30k
Training dataset cloudwalk-research/psi0-g1-sneaker-385ep-v4 (385 ep, 119 043 frames @ 30 Hz, 640×480 ego cam)
Episode composition 60 negative + 94 v1-RIGHT + 111 v2-LEFT + 60 lateral + 60 recovery
Predecessor (v3) cloudwalk-research/psi0-g1-sneaker-325ep-v3 (325 ep, all of the above minus negatives)
Robot target Unitree G1 + Inspire RH56DFTP (NOT Dex3-1)
Action space 36-D (6 hand + 1 pad / side, 14 arm, 4 torso, 4 locomotion)
State space 32-D (padded to 36-D for the model)
Action chunk 30
Hardware 8× NVIDIA B200 (sm_100 / Blackwell), system PyTorch 2.10 (NVIDIA build)
Mixed precision bf16
Optimizer AdamW, lr=1e-4 cosine + min_lr 5e-7, warmup 1000, betas=(0.95, 0.999), wd=1e-6, grad-clip 1.0
Steps / batch 160 000 / global batch 128 (16 per GPU × 8 GPUs)
Effective epochs ~172 (160 000 × 128 / 119 043)
Checkpointing every 10 000 steps; max_checkpoints_to_keep=20 so all 16 saves (ckpt_10000ckpt_160000) survive
RTC enabled, max_delay = 8
VLM frozen (only action header trained)
Wall-clock 14 h 35 m on 8× B200 (vs ~14.7 h prediction)
Final eval/loss 0.209 (vs v3 0.267 — 22% lower; details in Evaluation §)
W&B run i8asi0n2 (CW-RL internal)

Negatives — the v4-specific signal

v4 layers 60 negative episodes (no shoe and/or no box) onto the v3 base. The collection used the same task instruction as positives ("Pick up the sneaker and place it inside the box.") — the policy is meant to learn that the language instruction's target is missing from the visual scene and stay still. This directly attacks the v1-Phase-14 finding that "the policy moves identically when the shoe is removed" (uses time, not vision).

Frame-weighted vs episode-weighted exposure. Negatives are short by design (mean ~3 s vs ~11 s for positives), so 60 / 385 ≈ 16% by episode count but only ~5% by frame count. If real-robot behavior on v4 shows the policy still moves identically with the shoe absent, that's the load-bearing diagnostic — likely fix is to up-sample negatives at training time, lengthen them at collection time, or both. Tracked as a v4-specific open question.

Step-budget rationale (160 k vs v2's 40 k)

Same recipe as v3 — 4× v2's step count on a 1.9× larger and substantially more diverse dataset, with the 16-checkpoint ladder retained as the diagnostic input for post-hoc OOD-optimum location. See the v3 model card for the full rationale; v4 inherits it unchanged.

Repository contents

This repo carries 3 diagnostic checkpoints (storage-cap-aware decision, carry-over from v3):

  • checkpoints/ckpt_30000/model.safetensors (~5.9 GB) — early plateau, post-warmup
  • checkpoints/ckpt_90000/model.safetensors (~5.9 GB) — mid-training reference
  • checkpoints/ckpt_160000/model.safetensors (~5.9 GB) — final
  • run_config.json (tyro-serialized launch config)
  • argv.txt (full command line)
  • README.md (this file)

Optimizer / scheduler / sampler / random-state files are intentionally omitted — training-resume only.

Storage-cap-aware retention. v3's first HF upload attempt with all 16 ckpts hit the cloudwalk-research private-storage cap. v4 follows the same 3-checkpoint reduction. Finer-grained ckpts (10k / 20k / 40k / 50k / 60k / 70k / 80k / 100k / 110k / 120k / 130k / 140k / 150k) for Phase 11.5 follow-up may be available internally at CW-RL on request.

Evaluation

In-process (training-time eval/loss, in-distribution)

Metric v2 (199ep, 40k) v3 (325ep, 160k) v4 (385ep, 160k)
eval/loss 0.0816 0.267 0.209
eval/err_l1_arm_joints 0.114 0.0834 0.0821
eval/err_l1_hand_joints 0.0117 0.0123 0.0124
eval/err_l1_height small small 1e-5
eval/err_l1_target_yaw small small 6.3e-4
Wall-clock 3 h 42 m 14 h 46 m 14 h 35 m
Effective epochs 84 184 172

The eval/loss drop from v3. v4's headline eval/loss is 22% lower than v3 despite 1.9× the dataset and broader scene mix. The big driver is exactly the prediction in the v4 runbook: negatives are short (~3 s vs ~11 s for positives) and their ground-truth action is approximately constant — those frames have a much lower per-frame loss floor than positives, and they make up ~5% of frames. So part of the eval/loss reduction is "more easy frames in the average," not pure quality gain on positives. The clean per-axis comparison (arm / hand) shows: arm_joints ≈ flat vs v3 (0.082 vs 0.083), hand_joints ≈ flat (0.0124 vs 0.0123). The v4-specific signal is whether the policy stays still under negatives — that lives in the open-loop section below, not in eval/loss.

Open-loop evaluation (ID + OOD)

Pending — to be done in a follow-up session, mirror of v2 Phase 11.5. Recommended ckpts: 30 k, 60 k, 90 k, 120 k, 160 k. Two precondition options for the held-out probe:

  1. Reuse v2's eval set (psi0-g1-sneaker-6ep-v2-eval) — its 6 episodes are by orig_episode_index not in v4 (the v4 base is the 205ep canonical without the 6 held-out, plus lateral / recovery / negative collections). Same OOD probe used for v2 / v3 → same comparable axis.
  2. Build a v4-specific held-out set — carve a few episodes from each new collection class (negative, lateral, recovery) so the probe exercises v4-specific scene types. Stronger signal but a small dataset-engineering follow-up.

The v4-specific eval that matters most for behavioral correctness is the negative-scene check: with shoe and/or box absent, does the policy stay still? Open-loop L1 error against held-out negative episodes (where the ground-truth action is "stay still") is the cleanest measurable proxy.

How to download

import os
from huggingface_hub import hf_hub_download

repo = "cloudwalk-research/psi0-g1-sneaker-385ep-v4-finetune"
local_dir = ".runs/finetune/sneaker-real-v4"
for f in [
    "run_config.json",
    "argv.txt",
    "checkpoints/ckpt_160000/model.safetensors",  # one of {ckpt_30000, ckpt_90000, ckpt_160000}
]:
    hf_hub_download(repo_id=repo, filename=f, repo_type="model",
                    local_dir=local_dir)

How to evaluate (closed-loop sim)

bash sim/scripts/run_closed_loop.sh \
  "Pick up the sneaker and place it inside the box." \
  .runs/finetune/sneaker-real-v4 160000 \
  --fixed_base --live_viewer

For v4, watch (on top of v3's bimanual + recovery signals): does the policy stay still when the rendered scene is missing the shoe or the box? The most behaviorally-indicative test of the v4-specific intervention.

Known caveats

  1. Generalization is not yet validated. Trained but not evaluated open-loop or on the robot; numbers and decisions land post-eval.
  2. Hand commands are still lockstep across the 6 active Inspire DoF (per side). Unchanged from v2 / v3; a teleop-modality limitation, not a fine-tune limitation.
  3. Task is bimanual but stationary on positives, fully stationary on negatives. Action dims for locomotion (vx/vy/vyaw/target_yaw) and torso RPY are constant in the dataset.
  4. In-process eval/loss is in-distribution. Psi0 default; the real generalization signal lives in the open-loop section above.
  5. Inspire deploy bridge is required (resolved in v1, inherited in v2/v3/v4).
  6. Negative episodes under-weighted at the chunk level. ~5% of frames despite ~16% of episodes; if the policy still moves blindly with shoe absent post-train, this is the first thing to investigate.

Lineage

Item Repo
v1 fine-tune (RIGHT-hand only) cloudwalk-research/psi0-g1-sneaker-94ep-v1-finetune
v2 fine-tune (bimanual) cloudwalk-research/psi0-g1-sneaker-199ep-v2-finetune
v3 fine-tune (+lateral +recovery) cloudwalk-research/psi0-g1-sneaker-325ep-v3-finetune
v4 fine-tune (this repo, +negative) cloudwalk-research/psi0-g1-sneaker-385ep-v4-finetune
v4 training dataset (385 ep) cloudwalk-research/psi0-g1-sneaker-385ep-v4
v3 training dataset (325 ep) cloudwalk-research/psi0-g1-sneaker-325ep-v3

References

Attribution

Developed by cloudwalk-research in the CloudWalk Robotics Lab (CW-RL). Part of the Psi0 collection. Fine-tuned from the Psi0 base model; integrates with the LeRobot framework.

Citation

@misc{cwrl_psi0_sneaker_v4_2026,
  title        = {Psi0 Fine-Tune v4 --- G1 Sneaker-in-Box, Bimanual + Lateral + Recovery + Negative (Inspire RH56DFTP)},
  author       = {{CloudWalk Robotics Lab}},
  year         = {2026},
  howpublished = {Hugging Face model repository},
  url          = {https://huggingface.co/cloudwalk-research/psi0-g1-sneaker-385ep-v4-finetune}
}

@article{psi0_2026,
  title         = {Psi0: A Generalist Vision-Language-Action Model for Humanoid Robots},
  author        = {Wei, Songlin and others},
  year          = {2026},
  eprint        = {2603.12263},
  archivePrefix = {arXiv},
  url           = {https://arxiv.org/abs/2603.12263}
}

@article{black2024pi0,
  title   = {{$\pi_0$}: A Vision-Language-Action Flow Model for General Robot Control},
  author  = {Black, Kevin and Brown, Noah and Driess, Danny and others},
  journal = {arXiv preprint arXiv:2410.24164},
  year    = {2024}
}

@software{lerobot2024,
  title  = {{LeRobot}: State-of-the-art Machine Learning for Real-World Robotics in {PyTorch}},
  author = {{Hugging Face}},
  url    = {https://github.com/huggingface/lerobot},
  year   = {2024}
}

License

Released under Apache-2.0. This is a research preview: not intended for safety-critical use; closed-loop deployment on a physical humanoid requires human oversight.

Downloads last month

-

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

Datasets used to train cloudwalk-research/psi0-g1-sneaker-385ep-v4-finetune

Collection including cloudwalk-research/psi0-g1-sneaker-385ep-v4-finetune

Papers for cloudwalk-research/psi0-g1-sneaker-385ep-v4-finetune