Index
2026-05-13 · handoff / plan

다음 세션 Runbook — Tier-1 LoRA 후속 작업

Job 2448 LoRA 학습 → vocab sanity → cascade adapter. copy-paste 명령 준비됨

TL;DR

5/12
tasks done
3,519
train samples
252
atomic tasks
2448
SLURM job ID
3
venvs (cascade)

1Status check (P0)

squeue -u taewoongkang -j 2448 sjob 2448 sacct -j 2448 --format=JobID,JobName,State,Elapsed,ExitCode tail -50 /home/nas_main/taewoongkang/repos/Robotics/memer/slurms/robocasa_memer_tier1_lora_2448.out
상태다음 액션
COMPLETEDP1 ckpt 위치 → P2 merge → P3 probe
RUNNINGeval_loss 추이 보고 조기 stop 결정. 2 epoch ≈ 625 step
FAILEDout 디버그. 알려진 위험: max_length=3200 부족, OOM
PREEMPTEDextra QOS 자동 재제출 안 됨. 다시 sbm

2LoRA ckpt 위치 + merge (P1, P2)

LATEST=$(ls -td /home/nas_main/taewoongkang/repos/Robotics/memer/runs/ckpts/robocasa_memer_tier1_lora_*/checkpoint-* 2>/dev/null | head -1) echo "Latest LoRA ckpt: $LATEST" conda activate memer swift export --adapters $LATEST --merge_lora true \ --output_dir /home/nas_main/taewoongkang/ckpts/robocasa-memer-tier1-merged

merge가 실패하면 직접 peft로: PeftModel.from_pretrained(base, lora_dir).merge_and_unload() → save_pretrained().

3Vocab sanity check (P3 / task #7)

cd /home/nas_main/taewoongkang/repos/Robotics/memer CUDA_VISIBLE_DEVICES=0 timeout 1800 python scripts/eval_scene_mem_one_scenario.py \ --scenario-dir ~/Dataset/scene-mem-benchmark/data/combo_002_L29_S48_0006 \ --model-path /home/nas_main/taewoongkang/ckpts/robocasa-memer-tier1-merged \ --output-dir eval_outputs/robocasa_tier1_combo_002_ep0006 \ --stride 100 --attn-implementation sdpa --save-raw-text

기대치 비교 (오전 dusting probe vs RoboCasa LoRA):

metricdustingRoboCasa LoRA (목표)
top subtask vocab"place X on top/bottom shelf""navigate to X" / "open X" / "pick X place Y"
object recognition정확 ✅정확 ✅ (유지 기대)
keyframe pickupinstruction-blind제한적 개선 (Tier-1은 keyframe[0]만 학습)

4Cascade adapter (P4 / task #8) — 3-venv 설계

컴포넌트venv역할
eval_runner orchestratorrobocasa (3.11)scene-mem env 로드 + BasePolicy 루프
MemerPi05Policy wrapperrobocasareset / get_action 구현, subprocess RPC
MemER inference subprocessmemer (3.11)LoRA merged ckpt + Qwen3-VL infer
Pi0.5 inference subprocessrobomme_policy_learning/.venv (3.12)JAX/openpi action chunk emit

IPC 프로토콜 (subprocess + stdin/stdout JSON, websocket 없이)

# memer_worker.py stdin: {"op": "reset"/"step", "images": [...], "instruction": "..."} # stdout: {"current_subtask": "...", "keyframe_positions": [...]} # pi05_worker.py stdin: {"op": "infer", "images": {...}, "state": [...], "prompt": "..."} # stdout: {"action": [a0...a31]}

검증 항목 5개 (REFERENCE 명시, 다음 세션 1순위)

  1. Subtask vocab matching — LoRA 출력 vs Pi0.5 학습 분포 prompt
  2. Camera obs key — 비디오 robot0_agentview_left.mp4 vs robosuite live obs *_image
  3. Camera resolution — 비디오 256×256, MemER 320×180, Pi0.5 openpi config
  4. Action chunking — Pi0.5 action_horizon=50, 매 step vs chunk reuse
  5. State padding — PandaOmron 11 active dim → 32-dim padded 슬롯 매핑

5알려진 위험

swift export merge_lora 실패 가능 — fallback: peft로 직접 merge_and_unload
max_length=3200 silent truncation — 9 image × ~360 token ≈ 3240. 필요 시 4096
3-venv IPC 지연 — 1500 step × 100ms 목표
cascade 첫 시도 vocab mismatch — dusting LoRA placeholder로 cascade 동작 검증 → 그 다음 RoboCasa LoRA prompt 매칭 디버그

6핵심 파일 위치

파일경로
Pi0.5 ckpt~/ckpts/pi05_robocasa_pretrain_human300_step75000/pi05_pretrain_human300/multitask_learning/75000/
RoboCasa dataset~/Dataset/robocasa_human_lerobot/ (410 ep)
Tier-1 학습 데이터~/repos/Robotics/memer/data/robocasa_memer_tier1/ (3,519 sample)
데이터 빌더~/repos/Robotics/memer/scripts/build_robocasa_subgoal_tier1.py
학습 entry~/repos/Robotics/memer/scripts/finetune_robocasa_memer_tier1.sh
Dusting ckpt (비교용)~/ckpts/memer-dusting-qwen3vl-4b-step-1500/
scene-mem eval/~/Dataset/scene-mem-benchmark/eval/
scene-mem data (1 scenario)~/Dataset/scene-mem-benchmark/data/combo_002_L29_S48_0006/
자매 repo~/repos/Robotics/robomme_policy_learning/