Index
2026-09-10 — Analysis

단계별 깔때기 — 도달·픽으로 쪼갠 온라인 트랙

scene_bench | D1·D2·D3 = 670행 런 · S1·S2 = 예산 규칙 v3 재측정 · Rsupport = 0.85 m

TL;DR

0.87
D1 textlog 도달
0.35
D1 blind 도달
0.58
S1 textlog 2개 도달
0.00
S1 frames·rf-v3 2개 도달
58/86
예산 남기고 done

1 왜 단계로 쪼개나

SR 하나로는 "기억이 어디로 갈지 알려줬는가"와 "VLA가 집을 수 있었는가"가 곱해져 있다. 둘을 나누면 두 축을 따로 볼 수 있다.

① 도달 navigate 도착점이 GT 원위치 ≤ 0.85 m ② 픽 그 GT를 실제로 들어올림(lift 프로브) 전환 ② ÷ ① — "거기까지 갔을 때 집어내는 비율" = VLA 단계 SR 채점 규칙 v2(픽 또는 navigate_only 종료위치+done) + 예산 내

multi(S1·S2)는 답이 2개(42/43) 또는 3개(1/43)라 ① 1개 도달 → ② 1개 픽 → ③ 2개 도달 → ④ 2개 픽의 4단계로 본다. 순서는 무관하다(어느 물체를 먼저 하든 무방).

2 D1 · D2 · D3 — 전량 포함

쌍둥이·변위·pickable=False를 전부 포함한 표다.

셀전략n① 도달② 픽전환 ①→②SR
D1blind310.35 11/310.19 6/310.550.19 6/31
textlog310.87 27/310.45 14/310.520.52 16/31
frames-uniform310.61 19/310.32 10/310.530.32 10/31
rf-v3310.68 21/310.29 9/310.430.35 11/31
rf-vis-pure310.65 20/310.23 7/310.350.29 9/31
D2blind520.46 24/520.25 13/520.540.25 13/52
textlog520.54 28/520.42 22/520.790.44 23/52
frames-uniform520.63 33/520.33 17/520.520.35 18/52
rf-v3520.71 37/520.44 23/520.620.46 24/52
rf-vis-pure520.65 34/520.42 22/520.650.42 22/52
D3blind80.50 4/80.00 0/80.000.00 0/8
textlog80.62 5/80.00 0/80.000.25 2/8
frames-uniform80.12 1/80.00 0/80.000.00 0/8
rf-v380.62 5/80.12 1/80.200.12 1/8
rf-vis-pure80.62 5/80.12 1/80.200.12 1/8
기억 축은 ① 도달에서 가장 선명하다. D1에서 textlog 0.87 vs blind 0.35 — SR 격차(0.33)보다 크다. 기억을 재려면 도달이 더 깨끗한 지표다.
전환률이 셀마다 다르다. D1 0.35~0.55 vs D2 0.52~0.79. 같은 로봇·같은 VLA인데 D1에서만 잡기가 어렵다 — 다음 절.
D3는 ①은 되는데 ②가 0이다. blind·textlog·frames는 도달 0.12~0.62인데 픽 0/8. 닫힌 곳까지 가서 열지를 못한다(open 실성공률 1/55, 파일럿4). textlog D3의 SR 0.25는 navigate_only 질의 2건에서 나온 값이다.

navigate_only 질의를 뺀 경우 (pick 채점만)

D1 31→28 · D2 52→50. 결론은 바뀌지 않는다.

셀전략n① 도달② 픽전환 ①→②SR
D1blind280.39 11/280.21 6/280.550.21 6/28
textlog280.89 25/280.50 14/280.560.50 14/28
frames-uniform280.68 19/280.36 10/280.530.36 10/28
rf-v3280.68 19/280.32 9/280.470.32 9/28
rf-vis-pure280.64 18/280.25 7/280.390.25 7/28
D2blind500.46 23/500.26 13/500.570.26 13/50
textlog500.54 27/500.44 22/500.810.44 22/50
frames-uniform500.64 32/500.34 17/500.530.34 17/50
rf-v3500.70 35/500.46 23/500.660.46 23/50
rf-vis-pure500.68 34/500.44 22/500.650.44 22/50

3 D1의 낮은 전환은 기억이 아니라 잡기다

부분집합질의도달전환 ①→②
D1 전량310.630.47
D1 쌍둥이 제외220.620.53
D1 쌍둥이+물리문제 제외170.660.59
D2 전량520.600.62
D2 쌍둥이+물리문제 제외470.630.64

쌍둥이와 데이터셋이 스스로 표시한 물리 문제(pickable=False, wrong_surface, on_floor)를 빼면 D1 전환이 0.47 → 0.59로 오르지만 D2의 0.64에는 못 미친다. 그리고 정제 후에도 도달은 D1과 D2가 사실상 같다(frames 0.65 vs 0.68, rf-v3 0.71 vs 0.72) — 남는 차이는 전부 잡기 단계다.

가설: D1 물체는 전부 로봇이 대본대로 옮겨 내려놓은 것이고 D2 물체는 씬 생성기가 원래 배치한 것이다. 로봇이 놓은 자세가 잡기 덜 좋을 가능성이 크다 — 데이터셋은 아예 실패한 것만 pickable=False로 표시하고 "어색하지만 가능"은 표시하지 않는다.

함의: D1과 D2의 SR을 나란히 놓고 "어느 쪽이 기억을 더 요구하나"로 읽으면 안 된다. 기억 축만 보려면 도달을 쓴다.

검증안(API 비용 0): 같은 물체를 같은 위치에서 (a) 로봇이 놓은 현재 자세 vs (b) 원래 배치 자세로 VLA pick만 반복. 순수 시뮬 GPU 잡 하나면 결론이 난다.

4 쌍둥이 — 기억이 아니라 표적 지정 채널이 없다

pick 액션이 싣는 것은 카테고리 하나다:

{"skill": "pick", "category": "remote control", "surface": null, "room": null} → resolve_name(도달 반경 내 후보, category, 로봇 위치) = 로봇에서 가장 가까운 것 (sbench_online/naming.py — "후보가 여럿이면 로봇 베이스 평면거리 최근접")

즉 VLM이 어느 개체인지 알아도 말할 방법이 없다. 그리고 쌍둥이는 바로 옆에 있다:

104
find 쌍둥이 총계
0.31 m
수평거리 중앙값
88%
1.0 m 이내
73%
같은 면 위(|Δz|≤2 cm)

도달 반경이 1.0 m이므로 GT 옆에 서면 쌍둥이도 같이 반경 안이다. 셀별 쌍둥이 비율:

셀쌍둥이 포함 질의비율
D161/21528%
D216/2686%
D32/633%
S19/2635%
S26/1735%

그 결과 조준 정확도(pick 시도 대상이 GT였나)가 무너진다:

전략D1 쌍둥이 없음D1 쌍둥이 있음
textlog41/47 = 87%7/12 = 58%
rf-v339/45 = 87%7/22 = 32%
blind10/29 = 34%4/24 = 17%
textlog는 쌍둥이가 없으면 87%로 정확히 조준한다. 쌍둥이가 끼면 58%로 떨어지는데 헷갈려서가 아니라 지정할 수 없어서다. 읽기 트랙의 답 계약은 {category, room, surface}이고 쌍둥이 73%는 같은 면 위라 그 형식으로 애초에 구분되지 않는다 — 온라인 트랙만 답 계약보다 엄격한 인스턴스 정밀도를 요구하고 있다.

5 S1 · S2 — 여기서 전략이 갈린다

예산 규칙 v3(base × 답 개수)로 재측정한 215행.

전략n① 1개 도달② 1개 픽③ 2개 도달④ 2개 픽SR
blind430.58 25/430.42 18/430.09 4/430.02 1/430.02 1/43
textlog430.95 41/430.81 35/430.42 18/430.16 7/430.14 6/43
frames-uniform430.56 24/430.40 17/430.19 8/430.05 2/430.02 1/43
rf-v3430.79 34/430.37 16/430.19 8/430.07 3/430.05 2/43
rf-vis-pure430.77 33/430.49 21/430.23 10/430.09 4/430.07 3/43

단계 전환율

전략①→②②→③ (첫 물체를 집은 뒤 두 번째로)③→④
blind0.720.220.25
textlog0.850.510.39
frames-uniform0.710.470.25
rf-v30.470.500.38
rf-vis-pure0.640.480.40
②→③에서 절반 이상이 죽는다. 첫 물체를 집은 뒤 두 번째로 가는 단계다. 첫 물체만 집은 86행의 종료 사유는 done 58 · 예산소진 22 · abort 5이고 평균 1580/3000 스텝 — 예산을 절반 이상 남기고 스스로 끝냈다. multi 바닥은 능력도 예산도 아닌 완료 판단이다.

S1 — "내가 옮긴 X를 전부 집어라" (26질의)

전략n① 1개 도달② 1개 픽③ 2개 도달④ 2개 픽SR
blind260.50 13/260.27 7/260.04 1/260.00 0/260.00 0/26
textlog261.00 26/260.85 22/260.58 15/260.27 7/260.23 6/26
frames-uniform260.42 11/260.27 7/260.00 0/260.00 0/260.00 0/26
rf-v3260.81 21/260.23 6/260.00 0/260.04 1/260.04 1/26
rf-vis-pure260.73 19/260.42 11/260.08 2/260.00 0/260.00 0/26

S2 — "X를 전부 집어라" (17질의)

전략n① 1개 도달② 1개 픽③ 2개 도달④ 2개 픽SR
blind170.71 12/170.65 11/170.18 3/170.06 1/170.06 1/17
textlog170.88 15/170.76 13/170.18 3/170.00 0/170.00 0/17
frames-uniform170.76 13/170.59 10/170.47 8/170.12 2/170.06 1/17
rf-v3170.76 13/170.59 10/170.47 8/170.12 2/170.06 1/17
rf-vis-pure170.82 14/170.59 10/170.47 8/170.24 4/170.18 3/17
타깃/디스트랙터 뒤집힘이 multi에서 훨씬 크다. S1에서 두 물체 모두 도달(③)은 textlog 0.58인데 frames·rf-v3는 0.00이다. S2에서는 정반대로 frames·rf-v3·vis-pure가 0.47, textlog가 0.18이다.

이유가 명확하다 — S1은 "내가 옮긴 것들의 목록"이 필요하고 그건 textlog에만 있다. S2는 "그 카테고리 전체가 어디 있는지"가 필요하고 그건 이미지·인벤토리 계열에만 있다. n이 26/17로 작지만 0.58 vs 0.00 같은 격차는 표본 크기로 설명되지 않는다.

6 각 전략이 실제로 무엇을 저장하는가 (원문)

같은 컨텍스트 train_3912__0, 질의 "Pick up the fork"(D2)의 실제 시드 메모리다.

textlog — 하네스가 쓴 행동 로그

[context] [ 0s– 68s] I picked up the candle from the tv stand in the living room and placed it on the desk in the living room. [context] [ 68s– 176s] I picked up the cell phone from the side table in the living room and placed it on the countertop in the kitchen. [context] [ 176s– 387s] I tried to move the spoon from the countertop in the kitchen to the drawer of the desk in the bedroom, but the attempt failed. [context] [ 387s– 487s] I picked up the cell phone from the countertop in the kitchen and placed it on the dining table in the kitchen. [context] [ 487s– 591s] I picked up the tennis racket from the dining table in the bedroom and placed it on the clothes dryer in the bathroom.

포크는 한 줄도 없다. D2 정답 카테고리가 textlog 시드에 등장하는 비율은 2/52 (4%)이고 그 2건은 둘 다 실패했다(D1은 31/31).

rollforward-v3 — VLM이 영상만 보고 쓴 요약 + 전체 인벤토리

I took a spoon from the kitchen countertop and placed it on the desk in the bedroom, took a cell phone from the kitchen countertop and placed it on the dining table near the kitchen, ... On the dining table near the kitchen, there is a wine bottle, a spoon, a pot, a toaster, a bowl, a boiler, lettuce, a fork, an irish potato, a tomato, and two cell phones. On the kitchen countertop, there is a tomato, a mug, a house plant, a CD, a soapdispenser, bread, a pen, a knife, a boiler, a spatula, and a pot. In the bedroom, on the floor there is a baseball bat; on the bed there is a pillow; ...

D2 정답인 fork가 그대로 적혀 있다. 프롬프트(prompts/rollforward_v3.txt)가 "Record what the robot did … and anything else you noticed that may matter later, such as objects you saw and where they were." 라고 요구하고, 모델이 방별·가구별 전체 인벤토리로 응답한다.

전략행동 기록관찰 물체 기록출처
textlog✔ 하네스가 GT로 작성✘대본
rollforward-v3✔ 영상에서 추론✔ 전체 인벤토리영상
frames-uniform / vis-pure이미지 그대로 (행동·관찰 구분 없음)영상
rf-v3가 D1·D2 양쪽에서 균형 잡힌 이유가 여기 있다 — 두 채널을 다 덮는 유일한 전략이다. 그리고 rf-v3는 하네스 행동 로그를 받지 않는다(프롬프트가 "a few frames from the current clip"). 행동조차 영상에서 추론해 쓴다.

발견된 표기 불일치: rf-v3 시드 블록 머리말이 "written by me while acting (subgoal by subgoal)"인데, rf-v3 메모리는 매 청크 통째로 재작성한 요약이지 서브골별 로그가 아니다. 고치는 것이 맞다.

7 결정 대기