plan-pi05_memer_integration의 P0 액션 (#3, #4, #5, #11, #12) 실행 — 환경 검증 + 데이터셋 분석 + 빌더 작성 + smoke testscripts/build_robocasa_subgoal_tier1.py 280L 작성. LeRobot v2 parquet → ms-swift JSONLscripts/finetune_robocasa_memer_tier1.sh 50L 작성. Base Qwen3-VL-4B-Instruct + LoRA r=16/α=32, ms-swift 4 GPU ZeRO-2오전 probe (vocab lock-in) → plan 확정. 오후 plan의 P0 액션을 일괄 실행:
| Venv | Python | 용도 | 주요 package |
|---|---|---|---|
memer | 3.11 | data builder, LoRA 학습 (ms-swift) | pyarrow 24.0.0, swift 3.12.6, transformers 5.6.2, torch 2.11+cu130 |
robomme_policy_learning/.venv | 3.12 | Pi0.5 JAX 추론, eval driver | jax 0.5.3, flax 0.10.2, orbax, openpi (local pkg), torch 2.7.1+cu126 |
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 | Episodes | Frames | Parquet 디스크 | 비고 |
|---|---|---|---|---|
| 1 ep / task | 252 | 74K | ~3.6 GB | 최소 커버리지 |
| 2 ep / task (채택) | 410 | 118K | ~5.8 GB | 모든 252 task 2× augmentation |
| Full | 1382 | 372K | ~19 GB | 과잉 (Tier-1엔 불필요) |
Sister repo build_vlm_subgoal_dataset_memer.py 패턴 그대로 + RoboCasa 특수성:
Episode 0 ("turn the sink spout to the right", 115 frames) → builder 실행 → 3초에 완료.
| sample | step | raw_frame | keyframe_positions | memory_frame_idxs | execution_frame_idxs |
|---|---|---|---|---|---|
| 0 | 0 | 0 | [1] | [] | [0] |
| 1 | 8 | 40 | [] | [0] | [5,10,15,20,25,30,35,40] |
| 2 | 16 | 80 | [] | [0] | [45,50,55,60,65,70,75,80] |
| 3 | 22 | 110 | [] | [0] | [75,80,85,90,95,100,105,110] |
Assistant target: {"current_subtask": "turn the sink spout to the right", "keyframe_positions": [1]}
Sister repo finetune_vlm_subgoal_predictor.sh adapt. 변경 최소:
| Hyperparameter | 값 |
|---|---|
| Base model | Qwen/Qwen3-VL-4B-Instruct (dusting ckpt 시작 안 함 — vocab 간섭 회피) |
| LoRA | rank=16, alpha=32, target=all-linear, freeze ViT + aligner |
| Optim | BF16, sdpa, deepspeed ZeRO-2, lr=1e-4 |
| Batch | per_device=4 × grad_accum=4 × 4 GPU = effective 64 |
| Epochs / steps | 2 epoch (예상 ~625 step at 10K samples) |
| Token | max_length=3200, IMAGE_MAX_TOKEN_NUM=256 |
다음 세션 시작 액션은 단순 — 다운로드 완료 검증 → 전체 빌드 (5분) → SLURM 학습 제출 (sbm wrapper). 학습 시간이 가장 큰 변수 (예상 4-8시간 on 4 B200).
| 경로 | 내용 |
|---|---|
~/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.jsonl | 3,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.json | 410 episode subset 리스트 |
scripts/build_robocasa_subgoal_tier1.py | LeRobot v2 → ms-swift JSONL 빌더 (280 L) |
scripts/finetune_robocasa_memer_tier1.sh | LoRA 학습 entry (50 L) |
eval_outputs/robocasa_tier1_smoke/ | ep 0 smoke test 산출물 |
claude/260513/progress-robocasa_tier1_setup.md | md 진척 로그 |