PI Mem(Torne et al.)의 mt(compressed natural-language summary) 메커니즘을
zero-shot Gemini API로 구현하면 in-domain MemER LoRA의 BinFill 64%에 근접할 수 있다는 가설 검증.
260501 카드에서
초기 4 runs(flash-lite baseline, anti-parrot, upscale512, pro) 결과 6~8% SR로 실망스러웠고,
이후 4개 추가 실험(coord rescale fix, bbox-first 1-call, 2-step detection, pro×2-step)을
진행하며 bottleneck을 체계적으로 격리.
본 문서는 전체 8 runs를 통합하여 무엇이 SR에 영향을 미쳤고, 진짜 bottleneck이 무엇인지 최종 진단한다.
| # | Job | Tag | Model | Coord | Prompt | Detection | Done |
|---|---|---|---|---|---|---|---|
| 1 | 3279 | baseline | flash-lite | broken pipe | base | inline | 50/50 |
| 2 | 3317 | anti-parrot | flash-lite | broken pipe | + anti-parrot | inline | 50/50 |
| 3 | 4283 | upscale512 | flash-lite + 512px LANCZOS | broken pipe | + anti-parrot | inline | 1/50 (loop) |
| 4 | 4314 | pro | gemini-2.5-pro | broken pipe | + anti-parrot | inline | 50/50 |
| 5 | 4429 | rescaled | flash-lite | fixed (1000→256) | + anti-parrot | inline | 50/50 |
| 6 | 5092 | bbox | flash-lite | fixed | + bbox-first | inline (same JSON) | 27/50 (loop abort) |
| 7 | 5652 | 2step | flash-lite | fixed | + bbox-source | separate call | 47/50 |
| 8 | 5834 | 2step-pro buggy | gemini-2.5-pro | fixed | + bbox-source | separate (max_tok 2048 bug) | 26/50 |
| 8b | 6056 | 2step-pro | gemini-2.5-pro | fixed | + bbox-source | separate (max_tok 4096) | 23/50 |
| 단계 | 가설 | 측정 결과 | 결론 |
|---|---|---|---|
| Coord rescale fix | broken pipe → fix 시 큰 jump | 6% → 8% (+2pp) | 실제 contributor지만 작음 |
| Anti-parrot prompt | parrot 줄이면 SR ↑ | parrot 50% → 30%, SR 0 변화 | 파롯은 증상이지 원인 아님 |
| gemini-2.5-pro | larger model = 정확한 grounding | 4% (vs flash-lite 6~8%) | model 자체로 grounding gap 못 메움 |
| LANCZOS upscale 512px | 더 큰 이미지 = 좌표 정확도 ↑ | degenerative loop → 폐기 | 정보 밀도 감소로 모델 coherence 파괴 |
| Bbox-first scratchpad | bbox emit 강제 + center 계산 | 16.7% (27ep, loop abort) | 효과 있지만 cognitive overload |
| 2-step detection 분리 | call 단순화로 loop 회피 | SR 6.4%, loop 0, robust | robustness fix 됐지만 SR 불변 |
| Pro × 2-step | detection stability ↑ + reasoning ↑ | bbox 안정화, SR 4~5% | detection 정확도 fix → bottleneck 아님 확정 |
| Job | Tag | Model | Done | SR | NEW (LoRA-False) |
|---|---|---|---|---|---|
| 외부 baseline | MemER LoRA | Qwen3-VL-4B + LoRA | 50/50 | 64.0% | — |
| 3279 | baseline | flash-lite | 50/50 | 6.0% | 0 |
| 3317 | anti-parrot | flash-lite | 50/50 | 6.0% | 0 |
| 4283 | upscale512 | flash-lite | 1/50 | 0% (loop) | n/a |
| 4314 | pro | gemini-2.5-pro | 50/50 | 4.0% | 1 (ep18) |
| 4429 | rescaled | flash-lite | 50/50 | 8.0% | 0 |
| 5092 | bbox | flash-lite | 27/50 (abort) | 16.7% | 0 |
| 5652 | 2step | flash-lite | 47/50 | 6.4% | 0 |
| 5834 | 2step-pro buggy | gemini-2.5-pro | 26/50 | 11.5% | 1 (ep14) |
| 6056 | 2step-pro | gemini-2.5-pro | 23/50 | 4.3% | 0 |
| 측정 | 3279 (baseline) | 5092 (bbox) | 5652 (2step) | 5834 | 6056 (최종) |
|---|---|---|---|---|---|
| Parse fail rate | 0% | 7.8% | 0.4% | 0.4% | 0% |
| Degenerative loop | 0 | 8/27 (30%) | 0 | 0 | 0 |
| empty_response | 0 | 0 | 0 | 8 (max_tok bug) | 0 |
| Errors | 0 | 1 | 2 | 8 | 0 |
| SR | 6.0% | 16.7% * | 6.4% | 11.5% * | 4.3% |
* 불완전한 run (abort 또는 max_tok bug) — 완전 실행 기준으론 5~8% 수준
전 8 runs에 걸쳐 Rule 2 idempotency(변경 없으면 mt copy + same subgoal), mt monotonic 진화("not started" → "picked up" → "put in bin"), per-task notes 인식, JSON 안정성(6056에서 0 parse fail / 1500+ call) 모두 동작 확인. 언어 메모리(mt) 부분은 검증됨.
pro × 2-step에서 detection bbox가 안정화(call간 Δ ~10px)됐는데도 SR 4~5%. GroundingDINO 같은 외부 detector를 붙여도 SR에 큰 jump가 올 가능성 낮음.
후보 3가지 (검증 비용 큼):
LoRA가 64%를 달성할 정도로 학습 분포에 최적화됨 → zero-shot API로는 따라잡기 본질적으로 불가능. ApiMem의 강점(mt counting/sequencing)이 의미 있게 발휘되는 task는 LoRA도 약한 counting/sequencing task (PatternLock 16%, ButtonUnmaskSwap 18%).
이유: LoRA가 16% — 긴 sequence + memory-of-positions-pressed → mt의 자연어 counting이 도움 가능. ApiMem ≥ 30%면 LoRA 대비 의미 있는 강점 영역 발견. 인프라는 현재 6056 코드 그대로 사용, launch 1~2회로 검증.
LoRA 18%. swap 시점 추적 → mt rule 2 (변경 없으면 unchanged) + grounding flexibility 유리. PatternLock와 병렬 launch 가능.
API가 emit한 subgoal의 좌표를 sim의 ground-truth 좌표로 overwrite → coord 정확도 100%인 ApiMem의 SR upper bound 측정. 만약 그래도 LoRA 미만이면 wording mismatch 확정. 검증 비용 높아 우선순위 낮음.