Views
No views yet
pi05-b1kpt50-cs32 with an added
point-cloud (PCD) input modality for the BEHAVIOR-1K 2025 Challenge.Input:
- 3× RGB (head + L/R wrist, 224×224)
- Proprioception (23-dim joint state)
- Point cloud (16 × 400 × 3, from head depth)
- Task prompt
Backbone:
- PaliGemma-2B (Vision-Language) ← trainable, bf16
- PointNet PCD encoder (~30 MB) ← new, trainable, bf16
- Flow-matching Action Expert (~300 MB) ← trainable, bf16
Output:
- 32-step action horizon × 23-dim| Hyperparameter | Value |
|---|---|
| Initialization | openpi-comet pi05-b1kpt50-cs32 (B1K 50-task pretraining) |
| Tasks | 6 challenge tasks: sorting_household_items, clean_up_your_desk, picking_up_trash, picking_up_toys, tidying_bedroom, collecting_childrens_toys |
| Episodes / task | 200 (official human demonstrations) |
| Total episodes | 1,200 |
| Action horizon | 32 |
| Batch size | 4 (2 GPU × 2 per device) |
| Optimizer | AdamW |
| Learning rate | 2.5e-6, cosine decay to 20k steps |
| Noise (training) | Gaussian |
| Steps (this checkpoint) | 10,000 / 20,000 |
| Wall time | ~14 hours on 2× A6000 |
| Precision | bf16 (incl. trainable Action Expert) |
| Distributed | FSDP |
obs_modalities=["proprio", "rgb", "depth"]
(critical — without "depth" the env never emits depth obs and the policy falls back to zero PCD).| Task | Baseline pi05-b1kpt50-cs32 Q | This ckpt (gaussian) | N | Notes |
|---|---|---|---|---|
picking_up_trash | 0.000 | 0.100 | 10 | 1/10 success (Q=1.0 on instance 196) |
sorting_household_items | 0.125 | 0.125 | 10 | 10/10 partial credit (subtask 1/8) |
docs/RESULTS.md..
├── _CHECKPOINT_METADATA # Orbax metadata
├── assets/ # norm stats (per-task)
├── params/ # Model weights (~4.9 GB, OCDBT format)
└── train_state/ # Optimizer + RNG state (~8 GB, for resume)_CHECKPOINT_METADATA + assets/ + params/ (~5 GB).
train_state/ is for resuming the SFT run.1# Inference only (~5 GB)
2huggingface-cli download Shawn3636/pi05-pcd-sft-step10k \
3 --exclude "train_state/*" \
4 --local-dir ./pi05-pcd-sft-step10k
5
6# Full (~13 GB), needed for resuming training
7huggingface-cli download Shawn3636/pi05-pcd-sft-step10k \
8 --local-dir ./pi05-pcd-sft-step10k1# 1) Clone code & patch upstream openpi-comet (see code repo README)
2git clone https://github.com/Sunliu36/Behavior1KChallenge_minor_Solution_by_SHAWN
3
4# 2) Start policy server (single GPU)
5CUDA_VISIBLE_DEVICES=0 XLA_FLAGS="--xla_gpu_autotune_level=0" \
6python scripts/serve_b1k.py \
7 --task_name=picking_up_trash \
8 --control_mode=receeding_horizon --max_len=32 --port=8000 \
9 policy:checkpoint \
10 --policy.config=pi05_b1k-6task_sft_gauss_lr2.5e-6_step20k \
11 --policy.dir=./pi05-pcd-sft-step10k
12
13# 3) Run eval via OmniGibson (see code repo evaluation/run_eval.sh)openpi-comet/openpi/10000/ and run:python scripts/train.py pi05_b1k-6task_sft_gauss_lr2.5e-6_step20k --resumekeep_period=5000, the run will keep step 10k + 15k + 20k = 39 GB.
Set keep_period=20000 in config.py before resuming to keep only the final checkpoint.obs_modalities to include "depth" turned the gaussian
picking_up_trash average Q from 0.0 → 0.1 (with one Q=1.0 success).1@misc{shawn2026pi05pcdsft,
2 author = {Lee, Shawn},
3 title = {Pi0.5 + PointCloud SFT for BEHAVIOR-1K},
4 year = {2026},
5 url = {https://github.com/Sunliu36/Behavior1kChallenge_Solution_by_SHAWN}
6}