Index
2026-05-04 — Progress

Pi0.5 B1 Mid-Training Eval 0% + B0 Real Baseline 셋업

GR00T-Dreams | Phase 4 DreamGen Pi0.5 Fine-tuning

TL;DR

0%
B1 Mid-eval SR
0.018
B1 Loss (step 16K)
720 ep
B0 Dataset
1015 MB
B0 HF Size

1 배경 / 목적

Phase 4는 DreamGen P2 합성 데이터(1440 ep)로 Pi0.5 fine-tuning을 진행하고, real heldout 대비 synthetic data의 가치를 정량화하는 것이 목표다. 두 갈래가 동시에 진행됐다.

2 작업 내용

1. B1 ckpt-015500 4-task eval

Login 노드 4 GPU (0,1,2,3) 병렬 실행. 각 task 8 ep / batch 4.

env: /home/nas_main/taewoongkang/conda_envs/envs/robocasa script: scripts/launch_pi05_p2_eval.sh (CKPT_STEP / EVAL_TASK env var) tasks: CloseDoubleDoor / CloseDrawer / TurnOnSinkFaucet / OpenDoubleDoor (door 2종 + drawer + sink — 다양한 motion pattern)

2. heldout v3 변환

입력: /home/nas_main/taewoongkang/Dataset/robocasa/idm_heldout (LeRobot v2.1, 720 ep, 208053 fr, fps=20, 8-dim state, 12-dim action_eef) 변환: scripts/convert_to_lerobot_v3.py --aspect_mode crop --fps 20 - state 8 → 16 dim pad (P2와 동일 schema) - 128×128 av1 video re-encoding (svt-av1) 출력: outputs/baseline_heldout/lerobot_v3 (1015 MB)

3. HF push 인증 이슈 해결

403 Forbidden: cached HF token이 ~/.cache/huggingface/token에서 sungwon95 계정으로 덮어써져 Keh0t0 namespace 접근 불가.

해결: ~/envs/api_keys.txt에 HF token 추가 → awk -F': ' '/^HF/ {print $2}' ~/envs/api_keys.txt로 추출, HF_TOKEN env var 설정 후 hf auth whoami로 Keh0t0 (org=DAVIAN-Robotics) 확인. 재push 성공 → Keh0t0/robocasa_heldout_real (private).

4. B0 launch script + sbmr 제출

scripts/launch_pi05_b0_real_full.sh 신규 작성. B1과 완전히 동일 recipe — 차이는 dataset.repo_idoutput_dir만.

sbmr 20 "bash scripts/launch_pi05_b0_real_full.sh" \ --gres=gpu:4 -c 56 --mem 800GB \ --partition=sub --qos=core-on-sub \ --job-name=pi05_b0_real

3 결과

B1 ckpt-015500 4-task mid-eval (step 15500/20000 = 77.5%)

TaskSRFPSTotal Steps
CloseDoubleDoor0/8 (0%)45.65600
CloseDrawer0/8 (0%)44.14000
OpenDoubleDoor0/8 (0%)42.45600
TurnOnSinkFaucet0/8 (0%)41.44000
0/32 (0%) 전 태스크 실패. step 14500 ckpt 1-task 2 ep sanity (0/2) 이후 변동 없음. Loss는 1350→7050→16043 steps 기준 0.068→0.027→0.018로 잘 수렴하나 task SR은 전혀 없음 — distribution-match만으로는 closed-loop SR 안 나옴.

B0 heldout 변환 결과

720 ep / 208053 frames / 1015 MB / fps=20 16-dim state / 12-dim action / 3 cams (128×128 av1) 변환 시간: 2:11:00 (av1 encoding bottleneck, ~5.5 ep/min)
변환 파이프라인 1회 통과. 다음 dataset(B2 stitch 등)에도 동일하게 적용 가능.

Job 상태 (작업 완료 시점)

Job실험상태진행
5588B1 P2 syntheticRUNNING~80% (step 16000+/20000)
5889B0 real heldoutPENDINGPriority queue, sub partition

4 Takeaway

Synthetic-only (B1)는 mid-training에서 task transfer 없음

가능한 원인 3가지: (H1) 20K step 학습 자체가 부족 — 완료 후 재eval 필요. (H2) P2 state zero-pad vs simulator 실제 state mismatch — closed-loop에서 noisy obs에 취약. (H3) action chunk size mismatch (IDM 16-step vs eval 환경). B0 완료 후 real vs synthetic 결과 비교로 H1 우선 검증.

HF token 관리는 env var 기반으로 통일 필요

다수 계정이 공유 클러스터를 사용하는 환경에서 cached login은 언제든 덮어써질 수 있다. 모든 push/pull 스크립트에 HF_TOKEN env var 기반 인증으로 통일. ~/.cache/huggingface/token 의존 금지.

5 Next Steps

B1 step 20000 완료 후 24-task 전체 eval

4 tasks 0%가 H1(step 부족) 때문이라면 최종 ckpt에서 SR이 나올 것. 0% 유지면 H2/H3 본격 디버그 필요.

B0 (Job 5889) RUNNING 전환 모니터링

sub partition core-on-sub PENDING. RUNNING 전환 후 loss 추세 확인. B1과 동일 recipe이므로 20K step ETA ~6시간 (4 GPU, ~12s/step).

B2 (real + synthetic mix 50:50) 준비

B0/B1 step 20000 eval 결과를 보고 B2 launch 결정. LeRobot MultiLeRobotDataset 또는 WeightedRandomSampler 기반 multi-dataset 패치 필요. 설계: claude/260504/plan-pi05_b2_b3_mix_stitch.md.