Index
2026-09-15 · scene_bench · VLM read eval

routine multi(테이블 비우기) — 0점의 원인과 물건 목록 질의로 교체

6모델 × 6전략, 같은 메모리 재사용 · API flash $5.76 · luna $0.73 · 오픈 $0
결정 (260915, 사용자): routine multi 본표 = 물건 목록 질의. bare 질의 결과는 측정 불능으로 기록만.

TL;DR

0 → 1.00
flash 오라클 (self-only)
57%
질의 이미지에 보인 정답 물건
.600
flash tagmem (self-only)
.133
flash MemER (self-only)
$6.5
API 총비용

1배경

사용자: "Routine S1, S2는 왜 다 0일까? Instruction이 잘못된건 아닌가?" — direct(D1)는 오라클 .83 인데 multi 는 오라클도 0 → 오라클 점검(A2) 실패.

2원인 — 세 겹

  1. 지시문(하네스): 규칙이 "질의에 적힌 물건마다 한 줄" — multi 질의는 물건을 하나도 적지 않는다. 답 수/정답 수 중앙 .33, 개수 일치 flash textlog 0/98, 선택 168개 중 68개가 "food" 같은 종류어.
  2. 목록을 알 수단 부재(데이터): 물건 이름은 행의 holdout_words 에만 있고(cue=bare), 질의 카메라에서 마지막 5 s 동안 보인 정답 물건 303/529(57%), 전부 보인 행 9/100. 아래는 실제 질의 이미지 — 팔이 테이블을 가린다.
  3. 채점: loc = 방 다중집합, place = (방, 가구) 다중집합이 개수까지 전부 일치해야 1(물건 이름 미사용). 정답 2~11개(중앙 5).
query frame
train_1102__7832 질의 이미지(exo_camera_1, 마지막 프레임) — 정답 5개 중 일부만, 팔에 가려 보임
질의(bare): "Clear the countertop." GT 5개: tomato·potato·apple·apple → living room side table, alarm clock → living room sofa flash textlog 답: [{"category": "food", "room": "living room", "surface": "side table"}] → 1개만, 점수 0

3수정 — 물건 목록 질의 (커밋 56da5e9)

run_eval_routine --multi-items --memory-from <merged>: 질의에 행의 holdout_words 를 그대로 나열 + 시스템 규칙 1줄("나열 항목마다 한 entry, 두 번이면 두 entry"). 기본 off 는 프롬프트 바이트 동일, 메모리는 본표와 같은 ingest 재사용(쓰기 호출 0). tagmem 은 최신판(쓰기 v7 그래프 + 읽기 v9, 이미지 8).

질의(목록): "Clear the countertop. Items on it: tomato, alarm clock, potato, apple, apple." flash textlog 답: tomato·potato·apple·apple → living room side table (alarm clock 은 관찰 규칙이라 생략) → 4/5, 점수 0 (부분 f1 .889)

4결과

multi · self-only 60행 (S1 격, loc/place)

전략flash-3.7lunaqwen3vl-8bcosmos-r2-8bmolmo2-8bqwen3vl-32b
textlog (oracle)1.000/1.000.983/.983.300/.267.133/.133.050/.017.933/.917
frames-uniform.483/.467.283/.250.050/.017.117/.033.017/.017.150/.150
rf-v3 (MEM).517/.500.317/.300.017/.000.033/.017.033/.000.083/.017
vis-pure (MemER).133/.083.117/.000.033/.000.017/.000.033/.000.083/.000
tagmem (ours, w7+r9).600/.600.183/.150.000/.000.033/.000.033/.000.083/.033

mixed 38행: 오라클 flash/luna .000, 비오라클 최고 loc .316(32B frames) · place ≤ .079.

routine 본표 314행 (multi = 목록 질의, 누출 제외)

전략flash-3.7lunaqwen3vl-8bcosmos-r2-8bmolmo2-8bqwen3vl-32b
blind.165/.074.165/.003.148/.003.206/.003.155/.003.174/.003
textlog (oracle).758/.758.761/.745.577/.539.345/.297.294/.242.761/.719
frames-uniform.523/.516.416/.374.310/.216.284/.165.184/.068.358/.255
rf-v3 (MEM).552/.542.403/.368.165/.019.210/.065.155/.035.213/.065
vis-pure (MemER).403/.287.290/.035.190/.013.139/.006.190/.003.274/.016
tagmem (ours).635/.606.329/.226.216/.119.210/.097.174/.045.297/.197

엄격 채점(물건 이름까지): place 는 전 칸 동일, loc 만 일부 칸 −.01. 쌍둥이 pair_ok: 오라클 .926/.907 · flash tagmem .537 > rf-v3 .398 > frames .380.

5실패 케이스 — 오픈 모델

qwen3vl-8b (목록 질의, 파싱 실패 131/600 중 126 = JSON 절단): "... The 'potato' is listed once, so I will create one entry for it. The 'tomato' is listed once, so I will create one entry for it. The 'apple' is listed twice, so I will create two entries ..." (raw 중앙 18,455자 → max_tokens 절단) molmo2-8b: {"category": "potato", "room": "kitchen", "surface": "kitchen shelf"} → 어휘 밖 수납처로 검증 실패

원인: 목록·중복 규칙이 추론 속 열거를 부추겨 반복 붕괴(qwen-8B·cosmos), 어휘 규칙 불이행(molmo2). 교훈: 프로토콜상 파싱 실패=오답 — 하네스는 고치지 않고 모델 한계로 기록. 파싱 성공 행만 봐도 8B 비오라클 ≤ .12 라 본체는 쓰기 한계.

6Takeaway / Next

multi 0점은 과제 형식 문제였고, 목록을 주면 tagmem(텍스트 사건 메모리)이 가장 강하다 — 규칙을 여러 물건에 동시에 적용하는 칸에서 MemER 식 이미지 보관은 크게 약하다.