Index
2026-05-11 — Progress

Pi0.5 B2 Mix 학습 Kickoff — DAVIAN ref config 정렬 + 3 variants 실행

GR00T-Dreams | Pi0.5 VLA | real+synth 5:5 mix / mg30_real_h50 + dreamgen_p3

TL;DR

3
variants RUNNING
0.75
DAVIAN target SR
~1.8
it/s (4 GPU bf16)
20K
steps / ~3.5h

1 배경/목적 — 왜

이전 Pi0.5 B0/B1/B2 학습은 reference 없이 추정으로 config을 짰다. DAVIAN H50 완료 run (pi05-robocasa-H50-lr=1e-4-bs=64-steps=20000-tune_all-chunk=50-correct-prep, eval/SR=0.75)과 비교하면 chunk_size 16 vs 50, n_action_steps 16 vs 25, disable_proprio True vs False, eff batch 256 vs 64 등 큰 차이가 있었다. 이 config 차이가 SR=0 의 원인 중 하나일 가능성이 높아 전면 재정렬 후 새 트랙 시작.

이전 B0/B1 학습 ckpt는 재학습 대상. 구 config 기반 트랙은 baseline으로만 보존.

2 작업 내용 — 어떻게

확정 Hyperparameter (DAVIAN 정렬)

항목이전 (추정)새 config (DAVIAN 정렬)
chunk_size1650
n_action_steps1625
eff batch256 (bs16 × grad_accum4)64 (bs16 × grad_accum1, 4 GPU)
disable_proprioTrueFalse (proprio 사용)
gradient_checkpointingTrueFalse (~30% 빠름)
scheduler_warmup_steps5001000
num_save_checkpoints35 (5K/10K/15K/20K 4점)
video_backenddecord (AV1 비호환)torchcodec

환경 Patch 3종 (launch script 필수 포함)

# 1. LD_LIBRARY_PATH — torchcodec CUDA 12 NPP (시스템은 CUDA 13만 노출) PI05_VENV=/home/nas_main/taewoongkang/conda_envs/envs/pi05 export LD_LIBRARY_PATH=$(ls -d $PI05_VENV/lib/python3.12/site-packages/nvidia/*/lib 2>/dev/null | tr '\n' ':')$LD_LIBRARY_PATH # 없으면: libnppicc.so.12: cannot open shared object file # 2. SSL_CERT_FILE — worker pod에 system CA bundle 없음 export SSL_CERT_FILE=$PI05_VENV/lib/python3.12/site-packages/certifi/cacert.pem export REQUESTS_CA_BUNDLE=$SSL_CERT_FILE ; export CURL_CA_BUNDLE=$SSL_CERT_FILE # 없으면: wandb x509: certificate signed by unknown authority # 3. HF_TOKEN — private dataset 접근 [ -z "$HF_TOKEN" ] && [ -r "$HOME/envs/api_keys.txt" ] && \ HF_TOKEN=$(awk -F': ' '/^HF/ {print $2}' "$HOME/envs/api_keys.txt") && \ export HF_TOKEN HUGGING_FACE_HUB_TOKEN="$HF_TOKEN"

Multi-dataset Mix (real + synth 5:5)

train_bc.py WeightedRandomSampler 기반. main_weight = (1-0.5)/n_main, aux_weight = 0.5/n_aux per sample. batch_size 16 + w=0.5 → 평균 8 main + 8 aux. aux_dataset_root 분리 패치 적용 (deepcopy 시 main root inherit 버그 수정).

B2 Mix 3 Variants (P3 init_frame 다양성)

Variantinit_frameJobQOS상태 (260511 02:45)
init0heldout demo frame 01198ownRUNNING, step 18+, mix logged
midep length/3 시점1199ownRUNNING
randomrobocasa random scene1200extraRUNNING

main: 206,570 frames (mg30_real_h50) + aux: ~535,680 frames (dreamgen_p3_{init0/mid/random}_v2)

3 결과 — 수치 (학습 초기 상태)

학습 정상 신호 확인: INFO Multi-dataset mix: main=206570 fr (w=0.50) + aux=535680 fr (w=0.50) / throughput ~1.8 it/s (4 GPU bf16 chunk=50) / 첫 ckpt @ step 1000 (~9분) / 첫 in-loop eval @ step 1000 (~12분, wandb eval/success_rate push 시작).

HF cache prefetch 완료 (multi-rank download race 방지): /home/nas_main/.cache/huggingface/lerobot/Keh0t0/dreamgen_robocasa_p3_{init0,mid,random}_v2/ — data/meta/videos 모두.

실제 학습 성능 (SR): 20K step 완료 후 24-task PoC eval로 측정 예정. In-loop eval은 mg30_real_h50/DAVIAN-H50 dataset에서만 valid (학습-sim 분포 매칭 시).

4 Takeaway

DAVIAN config 정렬이 핵심 — chunk=50 + n_action=25 + eff batch 64 + proprio=on + torchcodec + gradient_checkpointing=off. 이전 설정 대비 config 차이가 SR=0 원인 중 하나였을 가능성 높음.

DreamGen 효과 측정 설계

B2 mix (real+synth)의 SR을 B0_ref (real-only mg30_real_h50)와 비교하는 것이 DreamGen 효과의 핵심 메트릭. B0_ref는 아직 미제출 — 다음 우선순위. B2 3 variants (init0/mid/random)는 synth 데이터의 init_frame 다양성이 mix SR에 어떤 영향을 주는지 비교.

In-loop eval (CloseDoubleDoor, 20 ep, 매 1000 step)은 DAVIAN H50 target SR=0.75 달성 여부를 실시간으로 판단하는 proxy. 24-task PoC eval은 학습 완료 후 watcher 자동 제출.

5 Next Steps

현존 launch scripts: scripts/launch_pi05_b0_ref.sh — real heldout 4 GPU 20K scripts/launch_pi05_b0_davian.sh — DAVIAN H50 sanity (config 검증용) scripts/launch_pi05_b2_p3_mix.sh — B2 mix (P3_VARIANT=init0|mid|random) 24-task eval watcher: nohup bash scripts/run_pi05_eval_watch_chain.sh b2_p3_init0 \ > slurms/eval_watch_b2_p3_init0.log 2>&1 & disown # 60s 폴링, 5K/10K/15K/20K ckpt 자동 eval sbm + wandb push