읽기 트랙 답을 초기 계획([plan] 줄)으로 노트에 주입하고, 계획 갱신은 각 전략이
자기 메모리 방식으로 할 수 있는 만큼만 하게 한 조건이다. 실행은 VLM(서브골) + VLA(MolmoBot
place_oc@10000).
| 전략 | 자기 셀 SR (95% CI) | 칸 | 평균 턴 | $/칸 | done 비율 |
|---|---|---|---|---|---|
tagmem-r3 | 0.271 [0.196, 0.362] | 107 | 19.4 | $0.281 | 0.41 |
rollforward-vis-pure | 0.205 [0.133, 0.300] | 88 | 21.5 | $0.284 | 0.35 |
rollforward-v3 | 0.234 [0.147, 0.351] | 64 | 18.8 | $0.110 | 0.42 |
frames-uniform | 0.189 [0.106, 0.314] | 53 | 20.9 | $0.264 | 0.55 |
textlog | 0.125 [0.090, 0.170] | 257 | 28.5 | $0.168 | 0.23 |
blind 칸 부족 | 0.500 [0.095, 0.905] | 2 | 29.5 | $0.177 | 0.50 |
| 전략 | 자기 셀 SR (95% CI) | 칸 | 평균 턴 | $/칸 | done 비율 |
|---|---|---|---|---|---|
tagmem-r3 | 0.533 [0.479, 0.586] | 332 | 7.3 | $0.101 | 0.79 |
rollforward-vis-pure | 0.524 [0.469, 0.579] | 309 | 8.0 | $0.100 | 0.75 |
rollforward-v3 | 0.250 [0.127, 0.434] | 28 | 18.1 | $0.103 | 0.64 |
frames-uniform | 0.219 [0.110, 0.388] | 32 | 18.7 | $0.242 | 0.22 |
textlog | 0.052 [0.018, 0.141] | 58 | 29.3 | $0.172 | 0.24 |
blind 칸 부족 | 0.375 [0.137, 0.694] | 8 | 16.0 | $0.093 | 0.62 |
칸 부족 표시는 15칸 미만이라 수치가 있어도 읽지 말아야 하는 행이다
(blind restore 는 2칸 — 읽기 답이 맞은 칸이 그것뿐이다).
같은 칸을 돈 다른 전략들의 평균을 그 칸의 기대값으로 삼아, 셀 선택 차이를 상쇄한다.
Δ = 관측 − 기대. ✱ = |Δ| > 2·SE.
| 전략 | find ΔSR | restore ΔSR |
|---|---|---|
tagmem-r3 | +0.001 ±0.031 248칸 · 관측 0.504 / 기대 0.503 | +0.111 ±0.046 ✱ 91칸 · 관측 0.286 / 기대 0.175 |
rollforward-vis-pure | +0.001 ±0.031 247칸 · 관측 0.518 / 기대 0.518 | -0.017 ±0.056 80칸 · 관측 0.212 / 기대 0.229 |
rollforward-v3 | +0.035 ±0.065 26칸 · 관측 0.231 / 기대 0.196 | +0.020 ±0.053 62칸 · 관측 0.226 / 기대 0.206 |
frames-uniform | +0.003 ±0.062 30칸 · 관측 0.233 / 기대 0.231 | +0.022 ±0.059 49칸 · 관측 0.184 / 기대 0.162 |
textlog | +0.000 ±0.048 30칸 · 관측 0.100 / 기대 0.100 | -0.082 ±0.037 ✱ 123칸 · 관측 0.154 / 기대 0.236 |
blind | -0.177 ±0.145 8칸 · 관측 0.375 / 기대 0.552 | -0.500 ±0.500 2칸 · 관측 0.500 / 기대 1.000 |
find 는 "어디 있었지" — 단일 조회다. 읽기 답이 맞은 순간 기억의 역할은 끝나고 나머지는 찾아가서 집는 실행 문제다. restore 는 "원래 어땠지" — 과거 상태와 현재 상태를 둘 다 들고 대조해야 한다. 물체를 집은 뒤에도 "원래 어디였지"를 계속 참조하므로 실행 중에도 메모리가 일한다. 그래서 메모리 구조 차이가 SR 로 나타난다.
온라인 행에는 은폐 라벨이 없어 읽기 병합본과 조인했다(조인 실패 0).
| 가족 | 층 | SR | 칸 | open/close 시도/칸 | GT 근처 도달 | GT 듦 | 턴 |
|---|---|---|---|---|---|---|---|
| find | open | 0.527 | 664 | 0.00 | 0.91 | 0.57 | 8.4 |
| find | hidden | 0.087 | 103 | 6.19 | 0.92 | 0.17 | 22.2 |
| restore | open | 0.209 | 503 | 0.00 | 0.85 | 0.08 | 21.3 |
| restore | hidden | 0.000 | 68 | 9.26 | 0.96 | 0.01 | 43.5 |
읽기 본표는 260831 결정으로 hidden 을 별도 표로 뺐다. 온라인도 같은 처리가 필요하지만, 사용자 결정(260922)에 따라 본표는 현 구성을 유지하고 hidden 분리는 Online GT Eval 에서 다룬다.
| 실패 유형 | 칸 | 비율 |
|---|---|---|
| 도달했지만 못 듦(파지) | 374 | 80% |
| GT 근처 못 감 | 61 | 13% |
| 들었지만 못 놓음 | 31 | 7% |
| 합계 | 466 | 100% |
| 실패 유형 | 칸 | 비율 |
|---|---|---|
| 도달했지만 못 듦(파지) | 274 | 67% |
| GT 근처 못 감 | 65 | 16% |
| 그 외(종료·done 미달) | 61 | 15% |
| 예산 초과 | 8 | 2% |
| 합계 | 408 | 100% |
영상 사례: restore 파지 실패 — 5사례 30클립(exo+wrist). 273칸 중 다섯을 골라 첫 시도 · 중간 · 마지막 시도를 나란히 실었다 — 다섯 사례 전부 접근이 사실상 같다. 30~56회를 같은 방식으로 실패한다.
"읽기와 온라인이 같은 메모리"라는 주장을 성립시키려던 조건이다.
A(tagmem-r3)는 컨텍스트 장부를 시작 시 한 번 검색해 고정하고 온라인 노트는 예산 초과 시에만
따로 검색한다(실측 find 턴의 87.3% 에서 태그화 코드조차 안 돈다). B(tagmem-r3-ledger)는 컨텍스트와
온라인을 한 장부에 두고 매 턴 읽기 v8 과 같은 retrieve() 로 고른다.
쓰기 규칙은 글자 그대로 같아 "보여줄 것 고르기" 한 축만 가른다.
A tagmem-r3 | B ledger | |
|---|---|---|
| 성공 (짝 16칸) | 8/16 | 4/16 |
| 턴/칸 | 11.8 | 18.3 (+56%) |
| 비용/칸 | $0.188 | $0.272 (+44%) |
| 뒤집힌 칸 | 4개 — A만 성공 4 · B만 성공 0 | |
읽기 트랙과 동일한 검색을 온라인에 그대로 적용하는 변형도 측정했다(16칸 파일럿). 컨텍스트 엔트리가 온라인 기록에 밀려(69% 칸에서 0개) SR 이 떨어졌다(8/16 → 4/16). 온라인 메모리는 과거(원래 상태)와 현재(실행 중 변화)를 분리된 예산으로 두어야 한다.
파일럿 비용 $4.35 · 본 런(107칸 ≈ $29)은 제출하지 않았다.
상세: final_results/online_plan_v2_260921/additional_conditions/README.md
| # | 결함 | 결과 |
|---|---|---|
| 1 | 구 tagmem restore 런이 다른 하네스(src_w1) —
memory_block 이 notes 에서 곧바로 return 하던 260919 이전 코드라 Visual memory(KEEP/DROP) 블록이 통째로 없다.
출력 스키마엔 "keep" 필드만 남아 모델이 규칙을 모른 채 돌았다. |
KEEP 턴당 0.001 · 프레임 보유 2/107 → 214행 폐기·재측정 후 0.430 · 105/107, SR .215 → .271 |
| 2 | 본표 행 패턴이 옛 v1.0 파일을 지목 — find 가 main_find/vis2_find/tagmem_find 를 보고 있었다 |
그대로 뒀으면 find 본표가 구판을 집계. v12_* 로 교체 + 추가 조건 섞임 방지 가드 |
| 3 | restore 본표에 tagmem 누락 | tagmem_restore_off_s* 패턴 추가 |
| 4 | 파일명 규약 파손 — scan_online_turns·aggregate_online_efficiency 가
{prefix}_{family}_s* 하드코딩 | goal 조건이 이름에 든 런을 못 읽었다. 경로 명시 옵션 추가 |
| 5 | 비용캡 중단 — v12_tagmem_s0 가 CAP 18 에 $17.01 로 걸려 마지막 1칸을 못 돌았다 |
babysitter 는 설계상 OVER_COST_CAP 에서 재제출을 포기한다. CAP 25 로 올려 완주 |
| 6 | babysitter QOS 되돌림 — delta4 를 QOS=own 으로 띄웠는데 own 8장을 다른 세션이 점유 |
재제출마다 QOSMaxGRESPerUser 로 막혀 3시간 정체. QOS=extra 로 재기동 |
scripts/check_online_prompt_parity.py)와
$0 프리플라이트가 잡았다. 파일 diff 로는 안 보이는 결함이다 —
src_w2↔src 는 15파일이 달라도 프롬프트 48개가 바이트 동일한 반면,
구 tagmem 트리는 1파일 차이로 프롬프트가 1,072바이트 짧았다.bench_exo_L(VLM 입력)이고
VLA 는 그 화면을 본 적이 없다(droid_shoulder_light_randomization + wrist_camera_zed_mini).
파지 원인을 더 파려면 VLA 입력 프레임을 따로 저장해야 한다 — 재측정 필요