← 리포트 목록
TL;DR
- 메모리 전략은 blind와 확실히 분리된다. 첫 navigate 적중(탐색 전에 말한 방·가구가 정답): blind 0.22 vs 메모리 0.45–0.50, 차이 +0.23~+0.28, z 3.4–4.1. SR@예산: blind 0.20 vs 0.32–0.37. blind는 예산 초과 30%(메모리 9–15%), 도달까지 navigate 2.95회(메모리 1.4–1.8회).
- 메모리 전략끼리는 n=100에서 분리되지 않는다(rf-v3 0.50 ≈ textlog 0.49 ≥ frames 0.45 = vis-pure 0.45, 쌍별 z ≤ 0.7). 본 런(n=589)이면 CI ±0.04라 0.05 차이까지 볼 수 있다.
- 읽기 트랙 순서가 온라인에 그대로 옮겨지지 않는다. 읽기(flash-3.7, 위치 정확도): vis .657 > frames .554 > rf-v3 .440 > blind .226. 온라인: rf-v3 ≈ textlog ≥ frames ≈ vis. vis-pure의 읽기 우위(+0.22 vs rf-v3)가 온라인에선 사라진다.
- 하네스·ingest 사고 1건 수정(§5). 본 런 잔여 find 2,445플랜 ≈ $153·127 GPU·h(8샤드 ≈16 h, $80/일 기준 2일) — 진행 권장.
0.22 → 0.45–0.50
첫 navigate 적중 blind → 메모리
0.20 → 0.32–0.37
SR@예산 blind → 메모리
1구성
| 표본 | find v1.0 e987b40f 100컨텍스트 전부 × 컨텍스트당 1질의 × 5전략 = 500플랜. 질의는 --queries-seed 7로 컨텍스트별 결정론적 무작위(정렬 순 첫 질의는 "Navigate to…" 46%로 편향, 전체 8.5%). 선택된 100질의: pick 87 · navigate_only 7 · open_pick 6 · multi 10 · 바닥 2 · hidden 8. |
| 전략 | blind · textlog(GT 이동 로그) · frames-uniform(균등 프레임 16) · rollforward-v3(읽기 단계 MEM 요약) · rollforward-vis-pure(읽기 단계 보관 프레임 8). ingest = tmp/v1delta_flash37_merged.json(델타 갱신본). |
| 프로토콜·채점 | v2: strict 접지(틀린 방 폴백 없음) · pick 도달 반경 1.0 m · open/close 활성 · 데이터셋 budget_steps(1500/2500) 강제 · navigate_only = 종료 위치 + done · first_nav_hit(첫 navigate 도착이 GT ≤0.85 m). |
| VLA / 플래너 | π0.5 pi05_mlspaces_place_oc@20000(사용자 open/close·place 학습) / gemini-3.7-flash(Letsur). |
| 실행 | 8샤드 × 1 GPU extra, 각 62–63플랜, 약 3 h. 선점 1회(샤드 7, sbmr 자동 재제출) + ingest 사고 후 재제출(§5). 플랜당 평균 187 s · $0.0626. |
2결과 — 전략별 (n=100/전략)
| 전략 | 첫 navigate 적중 [95% CI] | SR@예산 [CI] | 도달≤0.85 m(어느 시점) | 예산 초과 | navigate→도달(성공 평균) | lift/pick 시도 | 턴 | $/플랜 |
| blind | 22/100 0.22 [.15,.31] | 20/100 0.20 [.13,.29] | 47/100 | 30/100 | 2.95 | 23/159 | 6.5 | 0.049 |
| textlog | 49/100 0.49 [.39,.59] | 37/100 0.37 [.28,.47] | 75/100 | 12/100 | 1.74 | 40/233 | 6.1 | 0.043 |
| frames-uniform | 45/100 0.45 [.36,.55] | 35/100 0.35 [.26,.45] | 67/100 | 9/100 | 1.44 | 38/214 | 5.9 | 0.087 |
| rollforward-v3 | 50/100 0.50 [.40,.60] | 37/100 0.37 [.28,.47] | 70/100 | 9/100 | 1.76 | 38/169 | 5.7 | 0.044 |
| rollforward-vis-pure | 45/100 0.45 [.36,.55] | 32/100 0.32 [.24,.42] | 67/100 | 15/100 | 1.83 | 35/221 | 5.8 | 0.090 |
첫 navigate 적중 Δ(vs blind): textlog +0.27 (z 3.99) · frames +0.23 (3.45) · rf-v3 +0.28 (4.12) · vis +0.23 (3.45). 메모리 전략 쌍별: rf-v3 vs vis z 0.71 · textlog vs frames 0.57 · rf-v3 vs frames 0.71. hidden 8편 제외(본표 기준 n=92)해도 수치·결론 동일(blind .23, textlog .48, frames .46, rf-v3 .51, vis .46).
층화
| 부분집합 | n/전략 | blind | textlog | frames | rf-v3 | vis | 비고 |
| pick (첫 적중 / SR@예산) | 87 | .23 / .22 | .47 / .37 | .47 / .37 | .49 / .37 | .46 / .33 | 본체. SR은 VLA pick(시도당 lift 15–22%)이 상한 |
| navigate_only (첫 적중 = SR) | 7 | 1/7 | 5/7 | 3/7 | 5/7 | 3/7 | VLA 무관 순수 기억; n 작음 |
| open_pick (SR@예산) | 6 | 0/6 | 0/6 | 0/6 | 0/6 | 0/6 | open VLA 상한(파일럿4 1/55). 첫 적중은 textlog 3/6, rf-v3·vis 2/6, blind·frames 1/6 |
예산·탐색 비용이 blind를 갈라낸다. blind는 100플랜 중 35가 budget_exhausted(메모리 19–24), reach 재질의 138회(메모리 60–80), 도달까지 평균 2.95회 navigate. "찍어서 가 보기"의 비용이 그대로 드러난다.
3읽기 트랙과의 대조
| 전략 | 읽기 위치 정확도 (flash-3.7, e987b40f, open) | 온라인 첫 navigate 적중 (n=100) | 온라인 SR@예산 |
| blind | .226 | .22 | .20 |
| rollforward-v3 | .440 | .50 | .37 |
| frames-uniform | .554 | .45 | .35 |
| rollforward-vis-pure | .657 | .45 | .32 |
| textlog | (target ≈.90; 전체 행은 로그에 없는 물체 포함) | .49 | .37 |
해석
blind는 두 트랙에서 같은 값(.22)이라 온라인 첫 navigate 적중이 읽기 위치 정확도와 같은 눈금으로 읽힌다. 그런데 vis-pure의 읽기 우위(.657)가 온라인(.45)에서 사라지고 rf-v3는 오히려 오른다(.44→.50). 후보 원인: ① 온라인은 t=0에 행동 가능한 (방, 가구) 한 쌍을 내야 하는데, 보관 프레임 8장은 "어느 프레임이 답인가"를 현재 뷰·직전 프레임과 함께 다시 판독해야 해서(이미지 24장 이상이 한 프롬프트에) 텍스트 요약보다 불리; ② 읽기 채점은 답 문장의 방·가구 정확도, 온라인은 하네스 접지(strict)가 걸리므로 vis의 답이 접지 가능한 이름으로 나오지 않으면 재질의·anchor로 흐름; ③ n=100 잡음(vis CI [.36,.55]는 .657을 포함하지 않으므로 잡음만으로 설명되진 않음). 본 런에서 ②를 requery·nav_modes로 검증 예정.
4실패 사례 (textlog 첫 navigate 실패 51건 분류)
GT 이동 로그를 가진 textlog가 첫 navigate에 실패한 51건: anchor 도착 25(말한 가구에 물체 없음) · instance 도착 11(같은 카테고리 쌍둥이 옆으로) · navigate 없이 done/abort 13 · GT 접지 불가 1. 대부분 로봇이 옮기지 않은 물체("Pick up the ladle/knife/mug": 로그에 없음 → 사전지식 찍기)와 쌍둥이 혼동으로, 읽기 트랙에서 textlog 전체 정확도가 target(.9)보다 낮은 것과 같은 구조.
| # | 플랜 | VLM 첫 navigate(원문 next) | GT | 원인 | 교훈 |
| 1 | 188__2 textlog "Pick up the ladle" | kitchen / countertop / ladle → instance(다른 국자 옆), min_d 5.25 m | kitchen dining table | 로그에 국자 이동 없음 → 조리대 추측; 조리대에 쌍둥이 국자가 있어 하네스가 그 옆에 세움 | 쌍둥이가 있는 집에서 "찍기"는 instance 모드로도 실패한다 — 채점은 GT uid 기준이라 정확 |
| 2 | 3058__1 textlog "Pick up the mug" | kitchen / dining table → anchor, 재질의 5 | room 2(침실) dining table | 같은 종류 가구(식탁)가 두 방에 있고 로그는 방을 특정하지 않음 → 재질의 반복 | strict 접지에서 방이 틀리면 고쳐주지 않음(설계대로) |
| 3 | 6659__1 textlog "Pick up the pepper shaker" | kitchen / dining table → anchor(도착 3.12 m) → 2번째 navigate에서 countertop 0.32 m | kitchen countertop | 로그에 후추통 이동 없음 → 식탁 추측 → 프레임에 없음 → 조리대로 정정(2회 만에 도달, navs_to_reach=2) | 첫 적중은 첫 navigate 도착만 본다(min_d는 모든 도착점 최소) — 지표 정의를 표에 명시 |
| 4 | 2224__0 textlog "Pick up the watch" | bedroom / (surface 없음) → room 앵커, 재질의 3 | bedroom dining table | 가구를 못 대고 방만 말함 → 방 앵커(0.65 m 옆까지 우연히 근접) | room 모드 도착은 첫 적중으로 잡히기도 함 — 본 런에서 mode별로 분리 집계 |
5실행 사고·수정
- ingest 소스 오류: 첫 제출(112423–112430)이
tmp/v1final_flash37_merged.json을 썼는데 이는 델타 이전 컨텍스트 집합 — e987b40f 신규 5편 없음(rf-v3 시드 assertion으로 샤드 6 사망), 재시뮬 10편 stale. 전부 취소 → stale rf-v3/vis 7행 제거(91행 보존) → tmp/v1delta_flash37_merged.json으로 재제출(112483–112490, done-glob 재개). 메모리 find-ingest-use-v1delta-merged. 파일럿2/4의 2102__1·2159__2 rf-v3/vis 행도 stale 시드였음(탐색용).
- 선점 1회(샤드 7, 19분, 5행) → sbmr 데몬이 자동 재제출.
- 크래시 0(재제출 후), 총 $31.30, 26 GPU·h.
7왜 메모리 전략끼리 비슷한가 — 심층 분석 (reasoning·메모리 원문)
7.1 질의 종류가 순위를 뒤집는다
선택 100질의 = find_target 45(로봇이 옮긴 물체, "I moved earlier") + find_distractor 55(로봇이 스쳐 본 물체, 제자리). 보정 첫 행동 적중(첫 navigate 적중 ∪ t=0에 GT를 대상으로 pick 실행):
| kind | blind | textlog | frames | rf-v3 | vis-pure | 유의 |
| find_target (45) | .20 | .80 | .51 | .56 | .44 | textlog − vis +.36 (z 3.5), textlog − rf-v3 +.24 (z 2.5) |
| find_distractor (55) | .35 | .40 | .56 | .56 | .62 | vis − textlog +.22 (z 2.3), vis − blind +.27 (z 2.9) |
| 전체 (100) | .28 | .58 | .54 | .56 | .54 | textlog − vis +.04 (z 0.6) |
텍스트 행동 로그는 "내가 옮긴 것"에 강하고 "스쳐 본 것"엔 blind 수준(.40 vs .35). 이미지 메모리는 정반대. 45/55 혼합이 상쇄해 전부 ~.55로 보인다. 읽기 트랙 논문 표의 Direct ①(내 행동 기록)/②(수동 관찰) 축과 같은 구조 — 온라인 표도 kind별로 분리해야 한다.
7.2 메모리에 답이 있어도 못 읽는다
텍스트 시드 한 줄에 (category+방+가구)가 있었는가 × 적중: textlog target 답 보유 35 → 적중 31(.89), distractor 답 보유 1(로그는 이동만 기록). rf-v3 target 보유 32 → 20(.62), distractor 보유 38 → 23(.61) — rf-v3는 커버리지가 가장 넓지만(70/100) 읽기 성공이 6할.
| 원인 | t=0 reasoning 원문(발췌) | 메모리/GT |
| ① 현재 뷰의 같은 카테고리 쌍둥이를 믿음 (t=0 대상이 GT 아닌 동종: vis 16 · frames 17 · rf-v3 12 · blind 10 · textlog 9) | rf-v3 2738__0 "The cup is on the table in the bedroom but currently out of reach on the far left. Need to navigate closer…" | 메모리·GT: kitchen countertop |
| ② 방·가구 이름 오기 → strict 접지 실패 → 재질의 | vis 8287__1 "The tissue box was placed in the sink, which is located in the bedroom." | GT: bedroom desk (sink는 bathroom) |
| ③ 메모리의 다른 언급을 집음 | rf-v3 4136__1 "The remote control is located in the living room on the desk/table according to prior context." | 메모리: bathroom sink = GT |
| ④ 요약에 이동 자체가 없음(쓰기 누락) | rf-v3 5902__2 "according to the prior notes, only a fork was moved earlier (not a bowl)… aborting." | GT: bedroom desk |
| ⑤ 프레임 오독 | vis 3426__1 "The spatula was placed on the white table in the living room." | GT: kitchen countertop |
7.3 천장·바닥 겹침
질의별 메모리 4전략 첫 적중 수: 0개 25 · 1개 11 · 2개 28 · 3개 22 · 4개 14. 전부 실패 25(쌍둥이·hidden·가구 이름 모호·쓰기 누락; blind도 3만 적중), 전부 적중 14(전형적 자리; blind 9/14). 변별력 있는 질의는 ~60개뿐이고 그 안에서 target/distractor로 갈린다.
7.4 지표 사각지대와 reasoning 근거
- 시작 위치가 컨텍스트의 마지막 행동 지점이라 t=0에 목표가 이미 손 닿는 곳이면 VLM이 navigate 없이 pick →
first_nav_hit=False로 집계(전략당 8–13건, GT 대상 실행 7–11). 보정 first_action_hit: textlog .58 · rf-v3 .56 · frames .54 · vis .54 · blind .28.
- reasoning 근거 × 적중: vis-pure 보관 프레임 인용 32건 중 21(.66) vs 인용 없음 61건 중 22(.36) · frames-uniform 프레임 인용 20(8) 나머지 근거 불명 · rf-v3 노트 인용 54(31, .57) · textlog 노트 37(23, .62)+사전지식 32(12, .38). 이미지 전략은 "기억을 실제로 꺼내 쓴" 턴에서만 텍스트만큼 맞춘다.
결론
"비슷하다"는 질의 혼합의 착시다. 본 런(target 294 · distractor 295)은 두 축을 분리해 보고하고, 행 필드에 first_action_hit를 추가한다. 온라인 특유의 실패(현재 뷰의 쌍둥이 유혹, strict 접지에서의 이름 오기)는 프롬프트로 고치지 않고 지표로 드러낸다.
8읽기 트랙 vs 온라인 — 같은 100질의, 같은 모델, 같은 메모리
읽기 = v1delta_flash37_merged.json의 loc_set(flash-3.7), 온라인 = first_action_hit. 읽기 쪽도 이 100질의에서 target/distractor 뒤집힘이 이미 있다(textlog .80/.15, vis .49/.71). 온라인은 텍스트 전략을 올리고 이미지 전략을 내려 가운데로 압축한다.
| kind | blind | textlog | frames | rf-v3 | vis-pure |
| target 45 (read → online) | .27 → .20 | .80 → .80 | .40 → .51 | .40 → .56 | .49 → .44 |
| distractor 55 | .24 → .35 | .15 → .40 | .64 → .56 | .51 → .56 | .71 → .62 |
| 전체 100 | .25 → .28 | .44 → .58 | .53 → .54 | .46 → .56 | .61 → .54 |
메커니즘 3가지
| # | 메커니즘 | 증거 | 영향 |
| 1 | 기권 비대칭: 읽기는 "기록 없음 → 기권(0점)", 온라인은 기권 없이 사전지식·탐색으로 찍는다 | 읽기 기권 textlog 39 · rf-v3 35 · blind 45 / vis 1 · frames 4. 읽기 오답→온라인 적중(onlineOnly) textlog 22건 중 13, rf-v3 20건 중 11이 읽기 기권 건 | textlog +.14, rf-v3 +.10 (distractor textlog .15→.40) |
| 2 | 시작 위치 이점: 시작 = 컨텍스트 마지막 행동 지점 | 21/100 질의가 목표 1.5 m 안(d_base_end) — 그 구간 온라인 적중 .62–.90 vs 읽기 .52–.76. >4 m(67) online/read: blind .19/.15 · textlog .48/.30 · frames .46/.52 · rf-v3 .57/.43 · vis .49/.63 | 전 전략 +, 특히 t=0 pick |
| 3 | 이미지 메모리의 답 불안정: 같은 메모리·같은 모델인데 온라인 t=0 답이 읽기 답과 다름 | 읽기 정답·온라인 오답(readOnly) frames 22 · vis 21 vs textlog 8 · rf-v3 10. frames "방 맞고 가구 틀림" 12/22, vis 방 틀림 7·가구 틀림 8. 읽기 답과 (방, 가구) 일치율: frames 34% · vis 51% · textlog 54% · rf-v3 71% | vis −.07, frames 상쇄. 원인 후보: 프롬프트의 이미지 수(보관/균등 프레임 + 직전 4 + 현재 뷰), 현재 뷰 쌍둥이, JSON 행동 스키마 |
해석
"frames ≈ rf-v3"는 서로 다른 이유의 합이다. rf-v3는 읽기에서 기권하던 35건을 온라인에선 찍어 11건을 건지고 시작 위치 이점도 얻어 오르고, frames는 온라인 프롬프트에서 답이 흔들려(가구 오답 12건) 내려온다. 읽기 순서 vis > frames > rf-v3가 온라인에서 vis ≈ rf-v3 ≈ frames로 압축되는 이유가 이 셋이다. 온라인 첫 행동 적중은 "기억 + 찍기"라 읽기 loc(기권 0점)보다 관대하므로 비교 가능성을 위해 (a) 시작 근접 ≤1.5 m 제외 또는 중립 시작, (b) blind 대비 이득, (c) reasoning이 메모리를 인용한 턴만의 적중 — 셋 중 무엇을 헤드라인으로 할지 결정이 필요하다.
6다음 — 본 런
| 단계 | 플랜 | API(단가 $0.0626) | GPU·h(단가 187 s) | 8샤드 wall | $80/일 |
| find 잔여 489질의 × 5 | 2,445 | ≈ $153 | ≈ 127 | ≈ 16 h | ≈ 2일 |
| restore 518 × 5 | 2,590 | ≈ $308 | ≈ 234 | ≈ 29 h | ≈ 3.9일 |
권장: find 잔여를 바로 진행(메모리 vs blind 분리는 확정, 메모리 전략 간 차이는 n=589에서만 결정 가능). 이 500플랜은 같은 plan_id라 --done-glob tmp/exec_online/online_mid_v1final_find_s*.jsonl로 그대로 재사용. restore는 find 완료 후.