Index
2026-09-25 · scene_bench · 실험 3 Oracle-plan

resume 최종 결과 + 4가족 보관소 완주 — 온라인 쓰기는 "끝을 알아야 하는" 가족에서만 이긴다

보관소 final_results/oracle_plan_v1_260923 ✅ find 750 · restore 740 · routine 615 · resume 805(161질의 × 5 arm, 원격 49조각, $83.59) · McNemar 짝비교 · 사전등록 층화 · 실패 사례

TL;DR

805 / 805
resume 행(완주, 검사 ①~⑧)
.304 vs .186
rf-v3 vs blind SR (p=.001)
.298
tagmem SR (21/3, p<.001)
.74 → .97
방문만 31칸 blind → rf-v3
90 / 161
5 arm 전부 실패 질의
$367
4가족 API 합

1배경 / 목적

실험 3 은 독립 실험: 5 arm 전부 GT 계획을 과제 지시 블록에 고정(--plan gt --plan-slot instruction), 시드 메모리 제거(--seed none), goal 이미지 없음. resume 은 발화된 과제 중 남은 단위(옮길 개수·누를 횟수·방문할 방)를 GT 로 계획에 넣되(resume_gt.gt_unfinished, 출발·목적지 가구 + 방 이름), 에피소드 안에서 "내가 얼마나 했는지"는 arm 이 스스로 추적해야 한다 — 시드 없는 온라인 쓰기가 값을 갖는지 보는 마지막 가족.

원격(5e) 8샤드 → 빈 GPU 마다 편 단위 sx 조각 분할(49행 파일) → 12회 회수 검사(①셀 ②조각 ③중복 ④조건·컷 복원 ⑤GT 계획 형식 ⑥episode.json + 컨테이너 navigate ≤2 m ⑦비용 ⑧진행) 전부 통과 → 06:12Z 로컬 병합(assert 파일명 충돌 0 · 키 중복 0 · 805 전부 · sm0 없음) → 엄격 검사 → 보관소.

실험 2 와 나란히 두지 말 것(셀·조건·계획 출처가 다름). 논문에는 별도 표. 사용자 지시로 804/805 잠정판을 먼저 final_results 에 올렸고(스테이징 뷰), 20분 뒤 완주판으로 덮었다.

2resume — 161질의 × 5 arm

armSRM1 Rep. (n)M2 false_doneM3 낭비턴 (n)M4 GCD1 (n칸)턴picknav$/칸분/칸final done / nav_loop / budget
blind.186.389 (70).180.551 (45).3521.000 (77)14.85.45.9.0919.548 / 45 / 38
frames-uniform.261.199 (79).280.405 (54).403.988 (83)12.75.34.4.1439.085 / 26 / 28
rollforward-v3.304.087 (83).348.331 (53).4781.000 (91)12.26.24.4.0726.9104 / 25 / 5
rollforward-vis-pure.211.311 (79).236.500 (47).365.997 (80)14.36.04.8.11610.266 / 36 / 31
tagmem-r3.298.085 (75).292.368 (52).4401.000 (91)11.85.64.6.0976.693 / 39 / 9

M1 Rep. = 충족된 과제 종류의 행동을 충족 뒤에 반복한 턴 / 전체 턴(충족 과제가 있는 칸만, n) · M2 false_done = done 선언인데 과제 미달(정정치 — 행의 원 값은 pick/place_on 답 기준이라 방문·누름 질의에서 전부 거짓 done 으로 셈, 06:13Z 표의 .298~.646 폐기) · M3 낭비턴 = 목표 도달 뒤 쓴 턴 / 전체 턴(목표 도달 칸만, n). 셋 다 turns/resume_progress_oracle.jsonl(과제별 진행 타임라인, plan_id 별 goal_met_turn·done_turn·overrun_turns·repeat_after_met) 에서 나온다.

blind 대비 짝비교(같은 161칸)

armSR b01/b10 pfalse_done b01/b10 pGC 우세/열세 p (부호검정)
frames-uniform18/6 p=.02325/9 p=.00935/21 p=.081
rollforward-v325/6 p=.00146/19 p=.00146/18 p=.001
rollforward-vis-pure12/8 p=.50319/10 p=.13624/28 p=.678
tagmem-r321/3 p<.00132/14 p=.01143/19 p=.003

층화(사전등록: pending 과제 수 × 유형) — SR

층칸blindframesrf-v3vis-puretagmem
Single(pending 1)100.270.340.420.300.410
Multi(pending 2)61.049.131.115.066.115
방문만31.742.935.968.774.935
누름만25.040.040.240.080.160
놓기만50.060.080.120.080.160
혼합55.055.145.127.073.127

3왜 이기나 — 완료 인지(방문·누름), 왜 못 이기나 — 파지(놓기)

방문만 31칸 · arm 별 성공/final/nav 횟수 blind 23/31 done 16 · nav_loop 11 · budget 3 · stalled 1 nav 3.7/칸 turns 4.3 ← 방은 다 갔는데(done/need 3/3) 끝을 몰라 계속 navigate → 6연속 가드 frames 29/31 done 28 · nav_loop 3 nav 2.5 turns 3.4 rf-v3 30/31 done 29 · stalled 1 · nav_loop 1 nav 2.4 turns 3.3 ← notes: "Visited kitchen. Visited bathroom." → done vis-pure 24/31 done 20 · nav_loop 9 · budget 1 · stalled 1 nav 3.4 turns 4.1 ← 이미지엔 '갔다'가 안 남는다 tagmem 29/31 done 29 · nav_loop 2 nav 2.3 turns 3.2 ← [t=k] 노트 + [now] 누름만 25칸 · 누른 횟수 done<need 인 칸: blind 24 · frames 24 · rf-v3 19 · vis 23 · tagmem 21 (전 arm 부족) blind/frames/vis: budget_exhausted 19~21/25 (12.8·11.6·10.6턴, 도달 칸 낭비턴 .78/.64/.65 — 누른 뒤에도 계속 누름 Rep. .78/.64/.64) · rf-v3: done 21/25 5.2턴(false_done .52, Rep. .06) · tagmem: done 16/25 5.8턴(.36, Rep. .13) 놓기만 50칸 · lifted 0 인 칸: blind 45 · frames 49 · rf-v3 50 · vis 49 · tagmem 50 → SR 3~8/50 (파지 천장)
v1_train_6049__2000 "Go back and finish what you were doing." 계획: Visit kitchen · living room · bedroom (각 remaining 1/1) blind budget 6턴 nav 6 done/need 3/3 (성공 아님) · frames done 4턴 nav 3 · rf-v3 done 4턴 nav 3 · vis done 4턴 · tagmem done 4턴 v1_train_1543__2000 감자 5개 dresser → … (놓기만, 5 arm 전부 실패) 5 arm 전부 nav_loop · pick 3~15회 · lifted 0 · gc 0~.25 v1_train_4998__2000 달걀 4 + 사과 3 (놓기만) blind done 34턴 pick 20 gc .67(실제 미완) · vis done 13턴 gc .67 · frames/rf-v3/tagmem 7턴 stalled gc 0 — lifted 전부 0

5 arm 전부 실패 90/161 = 놓기만 39 · 놓기+누름 21 · 누름만 15 · 놓기+방문 15(방문만 0), 전부 성공 20. 메모리는 "얼마나 했나"의 답을 바꾸지 "잡히나"를 바꾸지 못한다 — find·restore·routine 과 같은 천장.

44가족 종합 — 실험 3 최종

가족칸blindframesrf-v3vis-puretagmemblind 대비 유의(SR McNemar)API
find150×5.367.387.353.327.367*없음(p≥.26)$52
restore148×5 (rr 149 대체).108.142.196.162.176*rf-v3 p=.011 · tagmem p=.052(GC 부호검정 p=.012)$140
routine123×5 (rc 185 대체).154.122.163.154.179없음(p≥.50)$91
resume161×5.186.261.304.211.298frames p=.023 · rf-v3 p=.001 · tagmem p<.001$84

* find·restore 의 tagmem-r3 행은 260925 사용자 결정으로 카메라 수정판 재현 런(tmrep, src_main14 strict_policy_camera, 두 번째 추첨)으로 교체된 값(교체 전 .360 · .142). 다른 4 arm 과 카메라 규칙이 다르다 — 상세 260925-oracle_tmrep_tagmem_replicate.html.

해석

GT 계획이 주어지면 "어디로 가서 무엇을 잡을지"는 정해지고, 남는 미지수는 두 가지다: (a) 잡히느냐(VLA 파지)와 (b) 끝났느냐(완료 인지). find·routine 은 (b) 가 계획에서 바로 읽히므로 arm 차이가 없고, restore 는 운반·놓기 단계가 길어 rf-v3 만 살짝, resume 은 (b) 가 에피소드 안 상태(방문·누름 횟수)에 달려 있어 텍스트 노트 두 arm 과 frames 가 유의하게 이긴다. 이미지만 쓰는 vis-pure 는 어느 가족에서도 못 이긴다 — 세는 것은 텍스트다. resume 의 메모리 효과는 한 쌍이다: "끝난 걸 안다"(도달 뒤 낭비턴 .55 → .33, 완료 뒤 반복 .39 → .09, 도달하고도 done 안 한 칸 26 → 5) 와 "안 끝났는데 끝났다고 한다"(false_done .18 → .35).

5출처 · 함정