Index
2026-05-13 · progress

Tier-1 RoboCasa LoRA 데이터 빌더 + 학습 entry 작성

plan의 P0 액션 실행 — 자매 repo 인프라 재사용 + smoke test 통과

TL;DR

410
episodes
252
atomic tasks
3,519
samples (실측)
280
builder L
50
finetune L
5
P0 tasks done

1배경 / 목적

오전 probe (vocab lock-in) → plan 확정. 오후 plan의 P0 액션을 일괄 실행:

2환경 분리

VenvPython용도주요 package
memer3.11data builder, LoRA 학습 (ms-swift)pyarrow 24.0.0, swift 3.12.6, transformers 5.6.2, torch 2.11+cu130
robomme_policy_learning/.venv3.12Pi0.5 JAX 추론, eval driverjax 0.5.3, flax 0.10.2, orbax, openpi (local pkg), torch 2.7.1+cu126
REFERENCE의 "2-venv IPC" 설계가 자매 repo 인프라 그대로 실현됨. 별도 pi05 venv 셋업 불필요.

3Dataset 분석 + subset 선정

daixianjie/robocasa_human_lerobot: 1382 ep, 252 atomic tasks, 372K frames, LeRobot v2.0, 10fps, image 128×128×3 cams, state[25] actions[12].

episodes.jsonl에는 episode_index, tasks[1], length만 — scene/layout/style 메타 없음. 따라서 "scene-coherent" compound 불가 → Tier-1 single-atomic로 진행.

Subset 선정

SubsetEpisodesFramesParquet 디스크비고
1 ep / task25274K~3.6 GB최소 커버리지
2 ep / task (채택)410118K~5.8 GB모든 252 task 2× augmentation
Full1382372K~19 GB과잉 (Tier-1엔 불필요)

4데이터 빌더 설계 (`build_robocasa_subgoal_tier1.py`)

Sister repo build_vlm_subgoal_dataset_memer.py 패턴 그대로 + RoboCasa 특수성:

출력 (ms-swift JSON, sister repo와 동일 schema)

{ "messages": [ {"role": "system", "content": "...predict subtask + keyframe..."}, {"role": "user", "content": "task goal + memory[<image>...] + execution[<image>...]"}, {"role": "assistant", "content": "{\"current_subtask\": \"...\", \"keyframe_positions\": [N]}"} ], "images": [...paths in order...] }

5Smoke test (ep 0)

Episode 0 ("turn the sink spout to the right", 115 frames) → builder 실행 → 3초에 완료.

samplestepraw_framekeyframe_positionsmemory_frame_idxsexecution_frame_idxs
000[1][][0]
1840[][0][5,10,15,20,25,30,35,40]
21680[][0][45,50,55,60,65,70,75,80]
322110[][0][75,80,85,90,95,100,105,110]

Assistant target: {"current_subtask": "turn the sink spout to the right", "keyframe_positions": [1]}

✅ RoboCasa atomic 어휘 정확히 emit. ✅ 첫 emit에 keyframe=[1], 이후 memory FIFO에 들어감. ✅ 320×360 image 23개 (115 frames / stride 5).

6LoRA 학습 entry (`finetune_robocasa_memer_tier1.sh`)

Sister repo finetune_vlm_subgoal_predictor.sh adapt. 변경 최소:

Hyperparameter값
Base modelQwen/Qwen3-VL-4B-Instruct (dusting ckpt 시작 안 함 — vocab 간섭 회피)
LoRArank=16, alpha=32, target=all-linear, freeze ViT + aligner
OptimBF16, sdpa, deepspeed ZeRO-2, lr=1e-4
Batchper_device=4 × grad_accum=4 × 4 GPU = effective 64
Epochs / steps2 epoch (예상 ~625 step at 10K samples)
Tokenmax_length=3200, IMAGE_MAX_TOKEN_NUM=256

제출 명령

conda activate memer sbm "bash scripts/finetune_robocasa_memer_tier1.sh" --gres=gpu:4 -c 32 --mem 800GB --qos=extra

7Takeaway

자매 repo 인프라 재사용은 거의 100% 작동 — venv, src/openpi, build pattern, finetune pattern, ms-swift, prompt schema 다 그대로 또는 minor adapt만으로 사용 가능. REFERENCE가 "scratch부터 짜라"고 한 작업의 실제 코딩 분량은 builder 280L + finetune 50L = 330L뿐.
Tier-1 결정이 옳음 — episodes.jsonl에 scene metadata 없는 것 확인했고, single-atomic trajectory로도 vocab swap 가능한 schema가 자연스럽게 떨어짐 (keyframe=[0]).

의견

다음 세션 시작 액션은 단순 — 다운로드 완료 검증 → 전체 빌드 (5분) → SLURM 학습 제출 (sbm wrapper). 학습 시간이 가장 큰 변수 (예상 4-8시간 on 4 B200).

8Next

다음 세션 (P0)

  1. SLURM submit (sbm 4 GPU)
  2. 학습 모니터링 (eval_loss curve)
  3. 학습 끝나면 #7 vocab sanity check — combo_002 다시 probe

미해결 위험

ms-swift max_length=3200 — 9 image × ~360 token = ~3240. 임시값. 학습 시 OOM 또는 silent truncation 가능
Tier-1 학습이 keyframe selection 개선시킬지 미확정 — Tier-1 데이터는 keyframe_positions=[1] 1회만 emit. Tier-2 (compound) 가야 instruction-aware keyframe 가능
Pi0.5 cascade에서 어휘 매칭 — LoRA가 RoboCasa primitive 학습해도 Pi0.5가 그 정확한 문자열을 받기를 기대할지 미검증

9산출물

경로내용
~/ckpts/pi05_robocasa_pretrain_human300_step75000/Pi0.5 ckpt (44 file, 다운 완료)
~/Dataset/robocasa_human_lerobot/meta/*LeRobot v2 메타
~/Dataset/robocasa_human_lerobot/data/chunk-00{0,1}/410 ep parquet (완료)
data/robocasa_memer_tier1/train.jsonl3,519 학습 sample (ms-swift JSON, 6.3 MB)
data/robocasa_memer_tier1/images/ep*/410 episode JPEG dirs (각 ~23 image @ 320×360)
tmp/robocasa_subset_2ep.json410 episode subset 리스트
scripts/build_robocasa_subgoal_tier1.pyLeRobot v2 → ms-swift JSONL 빌더 (280 L)
scripts/finetune_robocasa_memer_tier1.shLoRA 학습 entry (50 L)
eval_outputs/robocasa_tier1_smoke/ep 0 smoke test 산출물
claude/260513/progress-robocasa_tier1_setup.mdmd 진척 로그