val_136__0/val_290__0)을 그대로 소비해 VLM에 넣고 평가만 한다. 생성기 요청 항목 전부 제거.scene_bench의 측정 대상: "VLM이 write-phase context를 메모리로 받아, 질의 시점에 현재 관측에 없는 정보를 담은 올바른 instruction을 뽑아낼 수 있는가". 실행 하네스(T1~T3 통과)와 샘플 데이터 검증은 완료 상태였고, 메모리 주입·prompt·채점이 코드 0줄이었다.
사용자 스코프 재정의(260813): ① 데이터 생성은 다른 쪽 담당 — 있는 샘플에 맞춰 평가만 ② 메모리 획득 방식은 실험 단계라 자유(영상 전체든 텍스트든), 실로봇식 turn-based(50 timestep 청크 + 다음 action 예측)는 추후 옵션 ③ 마지막에 최종 질의에 대한 instruction만 뽑으면 됨 ④ prompt 세팅이 핵심 산출물 ⑤ 최종 eval은 task 유형/물체/장소를 리스트를 주고 뽑게 해서 필드별 채점.
eval_fixes)로 정화해서 소비한다 — 안 그러면 진짜 bowl을 찾은 모델이 오답 처리된다.| 결정 | 선택 | 파생 효과 |
|---|---|---|
| 평가 형태 | Tier A 심볼릭 | 시뮬 out-of-loop. VLM 답을 eval_spec_v2와 대조 채점. R1·embodiment 불일치는 무관해짐 |
| 질의 시작 상태 | 종료 상태 그대로 | 질의 시점 관측 = 마지막 프레임. 정답 가시 질의는 자동 제외 필터(마지막 5s 가시 or 로봇↔정답 <1.5m) |
| 파일럿 조건 | blind+textlog+frames×2 | G1(blind≤chance)·A2(textlog 상한) 게이트를 파일럿 1회로 동시 확인 |
| 심기 방식 | W-act 수용 | textlog·질의 문구 1인칭("I moved") 정렬 |
| 답 형태 (v2) | 구조화 instruction | {task_type, object_id, room_id, surface_id, abstain} — 전 필드 닫힌 후보 선택 → chance 계산 가능 |
src/sbench_eval/ingest(episode) → 질의 전 대화 턴들)| 전략 | 내용 | 역할 / 상태 |
|---|---|---|
| blind | 없음 (마지막 프레임 + 질의만) | G1 대조군 — chance 근처여야 함 / E1 |
| textlog | event_results+segments → 1인칭 타임스탬프 로그 | A2 오라클 상한 (v1 승자) / E1 |
| frames-seg | segment 경계 키프레임 캡 N=16, "[t=..s]" 캡션 | subgoal 경계 샘플링 (공짜) / E1 |
| frames-uniform | 에피소드 전체 균등 N장 | "영상 전체 넣기" 근사 (게이트웨이는 이미지 시퀀스) / E1 |
| rollforward | turn-based: 청크 영상 제시 + 다음 상황/action 예측 반복 → 응답이 곧 축적 메모리. 청크 config: 50 step(2s)=~254턴 $5/ep vs segment 단위 16~23턴 $0.4/ep(기본) | 실로봇 online 근사 / E4 |
채점 = type_acc / obj_acc / where_acc(room, surface) + strict(전 필드 일치). GT는 eval_spec_v2 answers에 전부 존재. tolerant 파서 + 재질의 1회, --model 필수.
prompts/에 버전 태그 파일로 분리, 결과 JSON에 prompt_version 기록(A4). 질의 프롬프트 = 질의문 + 후보 리스트 3종 + JSON 스키마 + 기권 규정 + "메모리(앞 턴)에 근거하라, 현재 이미지에 안 보일 수 있다" 명시. 반복 개선은 dev=val_136에서만, val_290은 홀드아웃.
| 단계 | 내용 | 게이트 |
|---|---|---|
| E0 | loader + eval_fixes + 후보 리스트 빌더 | 13질의 전수 분류 + 기지 버그 4종 자동 검출(회귀) + 후보 리스트가 GT 전부 포함 |
| E1 | MemoryStrategy 4종 | 두 에피소드 빌드, 토큰/이미지 캡 준수, 단위 테스트 |
| E2 | query_runner + prompt v1 | 실 Letsur 1질의 왕복, 구조화 파스 + 재질의 동작 (로그인, API만 GPU 0) |
| E3 | 파일럿: 2ep × 4전략 × ~9질의 × 1–2모델 | blind≈chance & blind<textlog 갭, 필드별 정확도 리포트. ≈72 call ≈ $1.4/모델 |
| E4 | rollforward 전략 + prompt 반복 + 신규 샘플 스케일 | 전략 간 순위가 v1 교훈(커버리지 지배)과 정합 |
종료-상태 시작으로 마지막-이벤트 질의 제외율 15% → 유효 질의 감소 (E3 리포트에 제외율 병기). room/surface GT 출처 혼합(버그③) 잔재로 surface 채점 커버리지 저하. frames 캡 N이 커버리지를 좌우(v1 교훈: 격차는 알고리즘이 아니라 커버리지) → config化.
object 리스트 ✅ 완전: obs_scene.tracked_objects(17/16개) == final_state names, 모든 answer 포함. room ⚠️ 유도 가능: uid 접미사 마지막 정수 = room id (answers 16/16 전수 일치로 확정), 정수↔이름은 event↔slots 조인(val_136: 4=bedroom 5=bathroom 6=kitchen 7=living room). surface ⚠️ 부분: 관측된 uid만, 전체 인벤토리는 house 에셋 필요. 이름 불일치 3계열: 어휘 사전 차이(cell phone↔cellulartelephone, tissue box↔tissuepaper), swapped 버그, 표면 어휘(tv stand↔stand, toilet↔crapper, dresser↔chestofdrawers) → uid+표시명 병기 제시, uid로 채점으로 해결. 카메라 순서 [wrist, exo1, exo2] 확정. 파일럿 모델은 지정 없으면 gemini-3.6-flash + 강한 모델 1개.