scene_mem_v2_lora_260516_125653Keh0t0/scene-mem-benchmark 7727 → 8586 files (additive, 기존 불변)scene-mem v2는 V1의 핵심 결함(~7% silent garbage 라벨)을 제거하기 위해 재설계한 MemER 학습 데이터 파이프라인이다. V1은 비-target subtask를 regex로 긁어 실패 시 "object"/"counter→counter"로 silent fallback — 51k 학습 턴의 ~7%가 가비지였다.
V2 설계 원칙: silent-wrong 절대 금지, 분해 불가 시 loud-fail. 그러나 초기 구현의 AND-gate("모든 segment가 fully resolved돼야 kept")가 858 scenario 중 696개를 불필요하게 drop하고 있었다 — memory 턴 하나가 irreducible이면 target이 완벽해도 scenario 전체를 버리는 구조.
이 세션의 목표: (1) AND-gate를 §7 semantic-aware 정책으로 대체해 858 전부 복구, (2) LLM 보조 분해로 27 irreducible의 품질 검증, (3) full build + 무결성 게이트 통과 후 LoRA 학습 제출, (4) fine_subtasks 통합 artifact HF push.
핵심 통찰: scene-mem-benchmark의 eval_spec은 TARGET을 항상 fine-resolvable task(21종)로만 질의한다. needs_review/absent를 TARGET으로 두지 않는다. 즉 AND-gate가 막던 696개는 전부 "memory turn이 irreducible"이라는 이유였고, TARGET은 멀쩡했다.
§7 정책 (사용자 승인): MEMORY turn과 TARGET turn을 구분.
TDD로 구현: 계약 테스트 7개 fail-first → 최소 구현. 핵심 변경: build_scene_mem_v2.py에 _memory_fallback_subtasks() 신규, AND-gate 전역 제거, TARGET-only loudfail. try/except 0개.
27 genuinely-irreducible task를 letsur gateway gpt-5.5-pro-2026-04-23로 초안. 4종 TDD 인프라: llm_decompose_{facts,verify,client,run}.py + 13 unit test. 검증 게이트 = 소스-grounding(closed-list, hallucination reject), 비타협 독립 검증.
LLM 초안 0 머지가 실패가 아니라 성공이다 — 게이트가 가비지를 막았다. 기존에 커밋된 골든 테스트(3단 독립 검증을 통과한 소스-grounded pin)가 신규 3단 검증이 놓친 결함을 포착했다. 데이터-정확성 비타협 원칙의 정면 입증.
CPU sbatch job 3936 (gpu:0 -c16 --mem 64G --qos=extra), 8 workers. 무결성 게이트 tmp/scene_mem_v2_integrity.py: 빌더 loud-fail 불신, primary scene-mem 소스에서 재도출. cross-reference = current_subtask이 clean fine step이거나 소스 segment["instruction"]과 byte-동일해야만 PASS (V1 fabricated 가비지는 소스에 없어 탈락).
emit_fine_subtasks.py로 학습 JSONL에서 직접 재구성(byte-identical by construction). 1차 구현이 self-test false PASS(같은 결함끼리 비교)였으나 orchestrator가 실 JSONL 대조로 적발 → Option B fix (commit 9afe8bd) → 100 scenario / 321 test 0 divergence PASS.
| 구분 | Kept | 상세 |
|---|---|---|
| all-fine (fallback 미사용) | 162 | 기존 162와 동일 — zero regression |
| ≥1 verbatim-memory-fallback | 696 | 새로 복구된 scenario |
| dropped (TARGET irreducible) | 0 | eval_spec TARGET이 21종 fine-resolvable만 사용 |
| 총 kept | 858 / 858 | AND-gate가 유일한 병목이었음 확인 |
| 무결성 게이트 | V1 | V2 |
|---|---|---|
| Garbage turns (silent wrong) | ~7% | 0% |
| Missing images | - | 0 |
| Brace leak / banned-not-verbatim | - | 0 |
| Image dimensions (320×360) | - | 100% |
| Target turn verbatim (forbidden) | - | 0 |
| Data volume (train/val) | 2604 / 189 | 2604 / 189 |
핵심 데이터 사실: scene-mem 벤치마크는 TARGET을 항상 fine-resolvable task로만 질의한다. 이 구조적 속성을 발견하자 AND-gate 제거가 자명해졌다 — 858 전체를 살리면서 TARGET 품질은 100% 유지. "696개는 memory turn 하나 때문에 버려지고 있었다"는 정량 확인이 설계 전환의 근거였다.
gpt-5.5-pro 초안 0 머지는 LLM의 한계가 아니라 검증 파이프라인이 올바르게 작동한 것이다. 3단 독립 검증이 놓친 결함을 기존 골든 테스트(test_manual_subtasks_v2.py)가 잡았다 — DELIBERATELY_OMITTED pin이 hallucination을 막은 구체적 사례. 이 원칙(에이전트/LLM self-report 불신, primary source 직접 대조)은 B1 eval에도 그대로 적용됐다.
V1→V2의 정량적 가치: 동일 볼륨 2604/189에서 7% 가비지 → 0%, 95.7% 검증된 fine label. Pi0.5 cascade에 먹이는 학습 신호의 질이 근본적으로 개선됐다.
B1 offline eval (88.4% m1, 97.2% chunked) 완료. 다음 단계는 사용자의 Pi0.5 V2 fine 재학습 후 B2 cascade — 진짜 memory_success를 robocasa sim에서 측정. MemER subgoal → Pi0.5 low-level policy 전달 채널이 목표.
가설: fallback memory turn(composite 입도)이 fine turn보다 memory recall 신호가 약할 수 있다. B1 결과(chunked 97.2%, notchunked 77.1%)에서 fallback-memory scenario vs all-fine scenario를 분해 비교해 검증 예정.
letsur 키 한도 소진으로 3개 미처리. 단, sibling 분석상 genuinely irreducible로 예상되며 §7 verbatim이 충실하게 커버하므로 재시도 저우선. primary source 재검토 후 irreducible 확정 시 test_*_deliberately_omitted pin 추가 권장.