TL;DR
- 질의 프레임에 정답이 보이면(seen) 메모리는 거의 안 도와줌: blind 0.48 ≈ 메모리 전략 0.46–0.58 (Δ −0.03~+0.10)
- 안 보이면(unseen) 메모리 이득이 확 벌어짐: blind 0.15(chance 0.287 아래) → 메모리 전략 0.33–0.51 (Δ +0.18~+0.36, vis-pure 최대)
- 가시 효과는 최근성과 독립: 마지막 이벤트 물체가 아니어도 보이면 blind가 똑같이 맞힘(seen·last 0.48 vs seen·not-last 0.49)
- 오픈 8B는 가시 보너스도 메모리 이득도 미미 — seen 0.33–0.38 / unseen 0.31(blind), G1 붕괴의 또 다른 얼굴
+0.36
unseen 최대 이득(vis-pure)
+0.10
seen 최대 이득(vis-pure)
1 배경 / 목적
SceneMem-Bench의 핵심 공리 A1은 "모든 질의는 현재 관측에 없는 정보를 채워야 한다"이다. 그런데 데이터 검수(260902, 260902-data_inspector.html)에서
질의 프레임(정책 입력과 동일한 마지막 exo_camera_1 프레임)에 정답 물체가 이미 보이는 행이 find 645답 중 141개(≥50px, 22%)나 있다는 게 드러났다.
이 행들은 원칙적으로 "지각만으로" 풀리므로 A1을 위반할 잠재적 후보다.
확인해야 할 것: 이 141행이 실제로 blind 전략의 성적을 부풀리고 있는가, 아니면 우연히 섞여 있어도 메모리 전략과의 격차엔 영향이 없는가.
논문 §6 Analysis에 넣을 정량적 근거가 필요했다.
2 작업 내용
find e987b40f 데이터셋의 open 526행(hidden 63행 제외, 본표와 동일 범위)을 질의 프레임 가시 여부로 이분해 같은 격자 결과를 재집계했다.
재측정이 아니라 기존 7모델×7전략 결과를 행 단위로 재분할하는 순수 분석 작업이다.
스크립트: tmp/hf_check/ablation_visibility.py → ablation_visibility.{tex,md,csv,json}
seen 정의(pseudo-label): 시뮬레이터 GT 세그멘테이션 물체 픽셀 수(traj.h5 obs/extra/tracked_obj_pixels, 5프레임마다 계산)가
질의 프레임(steps_emitted-1, exo_camera_1)에서 ≥50px(640×480 기준 ≈7×7, 데이터셋 README observed 기준과 동일)
→ seen n=139 / unseen n=387. multi 행은 답 중 최댓값.
집단: API4 = Gemini 3.6-flash · 3.7-flash · Claude Sonnet 5 · GPT-5.6-luna(게이트웨이 기본 디코딩) 평균
Open 8B = Qwen3-VL-8B · Cosmos-Reason2-8B · Molmo2-8B(자체 서빙 greedy)
민감도: 200px 임계(50~199px 94행 회색지대 제외) 재계산 → 전 셀 Δ0.04 이내, 결론 동일
보조 분해: kind별(target/distractor), 최근성 2×2(마지막 이벤트 물체 여부 × seen/unseen)
3 결과 (수치)
API4 평균 loc — seen vs unseen (blind 대비 이득)
| 전략 | seen (n=139) | unseen (n=387) | Δ seen | Δ unseen | Open 8B seen | Open 8B unseen |
| blind | 0.48 | 0.15 | – | – | 0.38 | 0.31 |
| textlog (oracle) | 0.77 | 0.37 | +0.29 | +0.22 | 0.59 | 0.37 |
| frames-uniform | 0.56 | 0.44 | +0.08 | +0.29 | 0.38 | 0.36 |
| rf-v2 (naive) | 0.46 | 0.33 | −0.03 | +0.18 | 0.23 | 0.14 |
| rf-v3 (MEM-style) | 0.49 | 0.38 | 0.00 | +0.23 | 0.26 | 0.13 |
| vis-pure (MemER-style) | 0.58 | 0.51 | +0.10 | +0.36 | 0.45 | 0.29 |
| tagmem-r3 (ours) | 0.55 | 0.39 | +0.07 | +0.24 | 0.26 | 0.09 |
핵심 발견: seen 행에서는 blind(0.48)가 오라클(0.77)만 빼면 모든 예측 메모리 전략(0.46–0.58)과 사실상 동급이다.
메모리가 갈리는 건 unseen 행뿐 — blind는 chance(0.287) 아래로 떨어지는데(0.15) 메모리 전략은 0.33–0.51을 유지한다. A1이 실제로 작동하는 구간을 정확히 짚어낸 수치.
보조 분해
kind별(API4): blind target seen/unseen 0.40/0.15 · distractor 0.55/0.16. 오라클 target은 0.87/0.84로 가시 무관(정의상),
distractor는 0.60/0.07(로그에 없어 기권) → 오라클의 unseen 0.37은 distractor 기권 때문이므로 본문에는 "target 오라클 0.84"로 병기 필요.
최근성 2×2(API4): blind seen·last 0.48 vs seen·not-last 0.49 → 가시 효과는 최근성과 독립. unseen·last는 n=14라 인용 부적합, unseen·not-last(n=373)가 사실상 unseen 전체.
모델별 blind(seen/unseen): flash-3.6 0.49/0.20 · flash-3.7 0.53/0.14 · sonnet 0.43/0.10 · luna 0.48/0.18 · qwen 0.40/0.24 · cosmos 0.41/0.38 · molmo2 0.35/0.31.
API 모델은 seen에서 대체로 unseen보다 2–5배 잘 맞히는데 오픈 8B(qwen/cosmos/molmo2)는 그 격차가 훨씬 작다 — 지각 보너스 자체가 모델 스케일에 종속.
4 Takeaway
의미
이 ablation은 벤치 설계 공리(A1)가 말뿐이 아니라 실측으로 확인된다는 걸 보여주는, 논문 §6 Analysis의 핵심 증거 후보다.
"메모리는 지각이 실패할 때만 값어치가 있다"는 직관을 재는 하나의 정량 지표(seen/unseen 분할 loc)로 환원했고,
이는 벤치 전체 서사(총점 하나로는 안 보이던 구조가 층별 분해에서 드러난다)의 축소판이기도 하다.
또한 오픈 8B의 G1 실패(cosmos/molmo2가 blind에서 chance를 이김)가 "가시 보너스가 애초에 작아서 메모리 이득이 거의 없다"는 형태로도 재확인됐다 —
같은 현상을 다른 각도에서 두 번 검증한 셈.
5 Next Steps
미해결 한계
현재 seen/unseen 라벨은 시뮬레이터 GT 픽셀 수 기반 pseudo-label이다. 사용자 결정(260831~260902)에 따라 데이터 팀이 정식 가시 라벨(사람 판정 또는 별도 기준)을
제공하기로 했고, 그 전까지는 논문에 인용 가능하지만 "확정"으로 못 박을 수는 없다. 또한 보임 141답 중 79개가 마지막 이벤트 물체라 최근성과 일부 혼재되어 있다 —
2×2 분해로 통제했지만 unseen·last 셀은 표본이 작아(n=14) 완전히 분리되지는 않았다.
다음 실험
① 데이터 팀 정식 라벨 수령 시 tmp/hf_check/ablation_visibility.py --labels <labels.jsonl>로 같은 스크립트 재실행 — 표 파일이 통째로 교체되도록 이미 배선해 둠.
② §6 본문 삽입 초안(LaTeX 표+문단)은 claude/260903/progress-paper_handoff_visibility_ablation.md §5에 이미 작성돼 있음 — 정식 라벨 확정 후 값만 갱신.
③ restore 가족에도 동일 ablation 적용 여부 검토(restore는 now/orig 양면 채점이라 가시성 정의를 어느 면 기준으로 할지 결정 필요).