← Back to index
2026-05-15 · MEMER · TIER-3A NO-LEAK RESULTS

Tier-3a — 2-turn no-leak training → fixture accuracy 97.9%

GT leak 제거 + 2-turn watching/recall 분리. Tier-2 44.8% 대비 +53.1%p. 모든 rare fixture 100% 회복.

TL;DR

97.9%
fixture accuracy
95 / 97
tests correct (30 scen.)
+53.1 %p
vs Tier-2 (44.8%)
0.00470
final eval_loss
0.9983
eval_token_acc
22 min
train time (3 epoch)

1 Tier-2의 진단된 문제: GT leak

Tier-2 builder의 prior chunk supervision 코드:

for chunk_idx, seg in enumerate(all_segs): seg_test = test_for_task_idx.get(int(seg["task_idx"])) chunk_atomic = atomic_from_segment(seg, seg_test=seg_test) # ← LEAK

seg_test 매칭 시 atomic_from_test()로 떨어져 final answer GT를 prior chunk에서도 emit하게 학습됨. 매 chunk에서 model이 final query 답을 미리 알고 출력하는 분포. token_acc는 99.96%로 거의 완벽하지만 실제 fixture accuracy는 44.8%에 머무름 (cabinet bias).

사용자 직접 지적 (260515): "제공된 비디오가 끝나기 전까지 지금 쓰고 있는 GT는 나오면 안돼. ... 그러가다 그렇게 수행된 메모리를 가지고 마지막에 진짜 goal을 내뱉고 그걸 평가하는거지." → builder 재설계 결정.

2 Tier-3a 디자인: 2-turn watching → recall

{ "messages": [ {"role": "system", "content": "You are MemER, a video-language model..."}, {"role": "user", "content": "Watch this kitchen activity. Frames: [<image> × N]"}, {"role": "assistant", "content": "Observed sub-tasks:\n1. pick the steak from the fridge and place it on the freezer\n2. pick the bowls from the counter and place it in the cabinet\n3. pick the wooden spoons from the counter and place it in the cabinet"}, {"role": "user", "content": "Show me where the steak is placed."}, ← Final query enters HERE {"role": "assistant", "content": "place the steak in the freezer"} ], "images": [...44 frames in chronological order...] }

2.1 Dataset 분포 변화

FixtureTier-2 trainTier-3a train
cabinet47% (편향)21% (균형)
microwave9%29%
toaster_oven7%16%
freezer7%11%
fridge10%7%
oven5%6%
dishwasher~1%5%
sink3%5%

builder가 eval_spec.target.fixture (각 test마다) 그대로 사용 → 데이터셋 자체의 fixture 분포가 그대로 학습 분포가 됨.

3 학습 — `swift sft` LoRA

Resume from: ~/ckpts/robocasa-memer-tier1-v2-merged (vocab swap baseline) Dataset : data/scene_mem_tier3a/train.jsonl (2,713 samples / 858 scenarios) Hardware : SLURM job 3283, 4 GPU (n11), 32 CPU Hyperparams : LoRA r=16/α=32, max_length=16384, lr=5e-5, 3 epoch IMAGE_MAX_TOKEN_NUM=128 Elapsed : 22 min 06 sec ← Tier-2 (1h 6m) 대비 3× 빠름 (seq 17K → 7K) Final : eval_loss=0.00470, eval_token_acc=0.99832
Tier-3a train curve
학습 안정적 수렴. eval@249 (3 epoch 종료) loss=0.00470 / acc=0.9983.

Tier-2 (eval_loss 0.00171) 대비 약간 높은 loss는 task가 더 어렵기 때문 — Tier-2는 token copy로 떨어졌지만 Tier-3a는 진짜 video-grounded recall. Loss 절대값보다 downstream fixture accuracy가 의미 있음.

4 결과 — fixture accuracy 97.9%

4.1 Per-fixture recall comparison

Tier-3a vs Tier-2 per-fixture
회색 = Tier-2 (V1 probe, 1-turn). 초록 = Tier-3a (2-turn probe). Rare fixture 모두 100%로 회복.
FixtureTier-3a hitsRecallTier-2 RecallΔ
toaster_oven14/14100%50%+50%p
fridge10/10100%0%+100%p
dishwasher9/9100%0%+100%p
freezer8/8100%0%+100%p
oven8/8100%0%+100%p
sink4/4100%——
microwave24/2596%40%+56%p
cabinet18/1995%89%+6%p
Total95/9797.9%44.8%+53.1%p

4.2 Confusion matrix

Tier-3a confusion matrix
대각선 95개. Off-diagonal 단 2개. cabinet/microwave 컬럼에 fallback 거의 사라짐.

4.3 2 misses 상세

scenarioobjectGTPred비고
combo_035_L34_S41_0781chicken_drumstickmicrowaveoven둘 다 heating, semantic 인접
combo_040_L46_S16_0797sweet_potatocabinetfridgevegetable 예측 시 fridge로 일반화
Stage-1 list에서 해당 object가 없는 경우 (예: combo_002 test 2의 fish는 Stage-1에 enumerate 안 됨)에도 정답 emit. 즉 model이 단순 list lookup이 아니라 image evidence + memory를 결합해 recall하고 있음.

5 combo_002 walkthrough — 3 model 비교

Stage 1 (Tier-3a watching response): 1. pick the steak from the fridge and place it on the freezer 2. pick the bowls from the counter and place it in the cabinet 3. pick the wooden spoons from the counter and place it in the cabinet
Test (GT fixture)Tier-1 V2 (single-turn)Tier-2 (cascade)Tier-3a (2-turn)
steak → freezer...place it in the sink ❌place the steak in the cabinet ❌place the steak in the freezer ✅
bowl → cabinet...place it in the sink ❌place the bowl in the cabinet ✅place the bowl in the cabinet ✅
fish → oven...place it in the sink ❌place the fish in the freezer ❌place the fish in the oven ✅

fish의 경우 Stage-1 list에는 명시적으로 나오지 않음 (subtasks.json의 OvenBroilFish 자체가 PnP-form regex에 매칭되지 않아 enumerate 제외). 그럼에도 Test 2에서 oven 정확히 emit — image evidence + scene 이해.

6 Takeaway + Next

Takeaway

  • GT leak 제거 + 2-turn 분리가 핵심. Tier-2의 token-copy 학습이 fixture accuracy 한계를 만들었음.
  • 데이터 분포 자동 균형. 858 scenario × 평균 3 test에서 cabinet 21%만 차지 — Tier-2 builder의 prior-chunk-leak로 인한 47% 편향과 대조.
  • 학습 비용 절감 (1h 6m → 22m). seq 길이 17K → 7K로 절반 이하. 같은 결과면 더 빠르고 싸게.
  • memory_success 측정은 아직 미해결. cascade의 PI05_STUB=0 실제 Pi0.5 inference 필요.

Next priorities

  1. P0: 영상 시각화 — Stage 1 list overlay + per-test Q&A 표시 영상 렌더링
  2. P1: MemerPi05Policy에 2-turn 분기 추가 (memer_worker에 op: "watch" + op: "query") → 실제 cascade에서 Tier-3a 작동 검증
  3. P2: 진짜 Pi0.5 cascade (PI05_STUB=0) → memory_success 정량
  4. P3: 858 전체 sweep (SLURM batch, 4-8 worker)
  5. P4: 2 misses 분석 — chicken_drumstick/microwave vs sweet_potato/cabinet → 추가 augment 필요한지