derive_task_goal()로 분리260513 세션에서 Tier-1 데이터 빌더와 LoRA 학습 스크립트를 작성했지만, SLURM job은 queue에 PENDING 상태였다. 이번 세션의 목표는 세 가지였다:
V1 probe 결과: 모든 test에서 n_unique=1, 출력이 input query를 그대로 복사. 원인은 학습 데이터에서 task_goal == current_subtask로 동일 string이 들어간 것. 모델이 trivially copy를 학습한 것.
| Job | 소요 | 실패 원인 | Fix |
|---|---|---|---|
| 2448 | 1m49s | relative path — images/ep000175/... 못 찾음 | train.jsonl absolute path 변환 |
| 2435 | 1h+ | ModelScope 200kB/s 극단적으로 느림 | export USE_HF=1 |
| 2587 | 2m35s | torch.optim.lr_scheduler ValueError: zip() strict=True — torch 2.11 + transformers 4.57 + deepspeed combo bug | deepspeed 제거 (LoRA r=16엔 ZeRO-2 불필요) |
| 2589 | 4m55s | V1 — 학습은 성공하나 echo bug | V2 데이터 재빌드 |
| 2590 | 4m49s | ✅ V2 학습 완료 | — |
torch / jax / robocasa가 한 venv에 공존 불가 → 3-process 분리 설계:
{"ok":true,"worker":"memer","ready":true} ✅ / pi05_worker(stub) → {"ok":true,"worker":"pi05","stub_mode":true} ✅| Step | train_loss | token_acc |
|---|---|---|
| 1 | 2.145 | 0.763 |
| 25 | 0.509 | 0.917 |
| 50 | 0.043 | 0.985 |
| 100 | 0.011 | 0.996 |
| 108 (eval) | 0.0111 | 0.998 |
V1: train_loss 2.18e-6 (trivial copy). V2: 의미 있는 학습 진행.
| Test | 정답 fixture | top 출력 패턴 | unique 수 | format 정합 |
|---|---|---|---|---|
| steak | freezer | "pick the steak from the {cabinet/sink/pan} and place it in/on Y" | 20 | ✅ |
| bowl | cabinet | "pick the bowl from the {counter/cabinet} and place it in {sink/cabinet/counter}" | 11 | ✅ |
| fish | oven | "pick the fish from the {cabinet/counter} and place it on/in Y" | 17 | ✅ |
데이터 설계 시 user prompt와 assistant 출력이 너무 가까우면 모델이 copy를 학습한다. token_acc=1.0이 오히려 버그의 신호였다. derive_task_goal()로 task_goal ≠ current_subtask를 보장해야 진짜 학습이 가능.
torch 2.11 + transformers 4.57 + deepspeed 조합의 lr_scheduler.zip() strict=True 버그. LoRA r=16 4B 모델에는 ZeRO-2 없이 plain DDP(4 GPU, effective batch 16)로 충분하고 오히려 빠름.
torch / JAX / robocasa sim을 한 프로세스에 담는 것은 불가능하다. subprocess + line-delimited JSON RPC로 각 venv를 완전히 분리하고 orchestrator가 stdin/stdout으로 조율하는 패턴이 이 프로젝트의 기반 인프라가 됨.
이 세션 당시 objects_lightwheel.zip이 nvidia HF에서 404로 내려가 Stool013을 받지 못해 scene-mem env load가 90% 상태로 막혔다. utexas Box 대안이나 robocasa main branch 전환으로 해결 필요. → 후속 세션(260514 낮)에서 해결됨.
Tier-1은 single-atomic 1 episode → keyframe 1개라 scene 전체 memory recall이 불가능. compound trajectory + memory FIFO를 학습 데이터에 포함하는 Tier-2 builder + 학습 필요.
PI05_STUB=0으로 전환하면 실제 mme_vla_suite config 매핑, norm_stats 로딩, 32-dim action chunk → env.action_dim 트리밍 검증이 필요.