seed_memory가 frames_uniform_indices(ep)를 cap 없이 호출해 기본값 16이 적용 — 온라인 frames-uniform의 t=0 이미지가 17장(수정 후 9장)으로 읽기 격자(--cap 8)의 2배였다. vis-pure/tagmem은 ingest kept가 이미 8이라 우연히 일치.중간 런 500플랜(260907-online_mid_find500.html) 심층 분석 도중 사용자가 "메모리 4장 아니야? vlm eval도 4장 아니야?"라고 질문. 실제 프롬프트에 들어가는 이미지 수를 한 번도 직접 세어본 적이 없었다는 뜻이라 즉시 실측했다.
읽기 격자 (--cap 8) | 온라인 t=0 (수정 전 → 후) | 온라인 t≥1 | |
|---|---|---|---|
| blind / textlog / rf-v3 | 0 | 1(현재 뷰) | 5(+직전 서브골 4) |
| rollforward-vis-pure | 8 (kept) | 9 → 9 | 13 |
| frames-uniform | 8 | 17 → 9 | 21 → 13 |
원인: seed_memory가 frames_uniform_indices(ep)를 cap 없이 호출해 기본값 16이 그대로 적용 — 온라인 frames-uniform만 읽기 예산의 2배를 받고 있었다. rollforward.VIS_MEM_CAP=16은 쓰기 단계 상한이지 이 런들의 읽기 예산이 아니라는 점도 이번에 명확해짐. 수정: READ_IMAGE_CAP=8, seed_memory(..., image_cap), CLI --image-cap, 행 필드 image_cap 추가. 테스트 232개 통과.
tmp/protocol_v2/frames16_mid_rows.jsonl로 보관. blind/textlog/rf-v3/vis-pure 400행은 예산 동일이라 영향 없음. 파일럿2/4의 frames 행도 같은 결함(탐색용이라 재측정 안 함, 각주 처리).읽기 트랙 writer는 청크(30s)마다 정확히 4장(rollforward_chunks(ep, images_per_chunk=4)). 온라인은 직전 서브골 4장 + 현재 뷰 1장 = 5장이었다 → 현재 뷰를 예산 안에 포함해 직전 3장 + 현재 1장 = 4장으로 정정(OBS_IMAGE_BUDGET=4, --obs-images, 행 필드 obs_budget). t=0에는 직전 프레임이 없어 현재 뷰 1장뿐이므로 첫 행동 적중 지표는 이 변경과 무관 — 영향은 턴≥1의 실행(SR@예산)뿐이다.
중간 런과 같은 컨텍스트·질의·전략을 obs 4로 재측정해 짝 비교(2컨텍스트 × 5전략 = 10플랜).
| 컨텍스트/전략 | 첫적중 (5→4) | 성공 | 턴 | 사용 스텝 | 비용 |
|---|---|---|---|---|---|
| 2169__1 blind | 0→0 | 0→0 | 20→6 | 1932→521 | .144→.029 |
| 2169__1 frames* | 0→0 | 0→0 | 5→20 | 532→2272 | .072→.359 |
| 2169__1 vis-pure | 0→0 | 0→0 | 20→20 | 2445→2452 | .391→.284 |
| 2788__2 rf-v3 | 0→0 | 0→0 | 3→13 | 232→1500 | .017→.072 |
| 2788__2 vis-pure | 0→0 | 0→0 | 12→3 | 1500→147 | .146→.034 |
| 합계 (10플랜) | 1→1 | 0→0 | 103→91 | – | $1.17→$0.97 |
`*` frames는 image_cap도 16→8로 함께 바뀌어 obs 단독 효과가 아님. 표는 대표 5행만 발췌(전체 10플랜 중).
first_action_hit)는 불변임이 확인됐다.함의: 실행 지표(SR·턴·스텝)는 플랜 단위 재현성이 낮아 큰 n이 필요하고, t=0 단일 결정인 first_action_hit가 훨씬 안정적인 주 지표다. 잡음 크기를 따로 재려면 동일 설정 반복(obs 5×2, ≈$1)이 필요 — 미실행.
계측 파라미터(이미지 개수)는 코드 리뷰로는 안 잡히고 "직접 세어보자"는 질문으로만 드러났다 — 온라인/읽기 두 트랙을 비교하는 실험은 프로토콜 파라미터(이미지 예산·관측 예산)가 일치하는지를 각 지표 도입 시점마다 명시적으로 검증해야 한다. 다행히 이번 결함은 frames-uniform 한 전략에만 영향을 줬고, 핵심 비교 지표(first_action_hit)가 t=0 단일 결정이라 obs 변경 자체에는 안정적이라는 점도 이번에 실증됐다.
중간 런 500행(obs 5)과 본 런을 같은 표에 못 섞는다. 선택지: (a) 본 런 589×5 전량을 obs 4로 재측정(추가 ≈$31, 표 전체 obs 4로 통일) (b) 본 런을 --obs-images 5로 돌려 중간 런과 재사용(읽기와는 +1 차이 유지). 사용자 결정 대기.
frames-uniform 재측정 여부 미결(승인 없이 제출했다가 취소된 건) — 본 런 계획에서 image_cap=8로 통일해 재산정할지 결정 필요.