260501–260504의 8-run ApiMem-only BinFill sweep에서 모든 설정(flash-lite/pro × 1-call/2-step)이 SR 4-17% noise 범위에서 벗어나지 못했다. MemER LoRA standalone SR 64%와 ~56pp 격차. 8-run 분석에서 남은 가설:
이 라운드(260506–260511)는 가설 (c)(d)를 multi-frame context로, 그리고 Gemini Pro의 추론 능력 향상 효과를 검증하는 실험이다.
HybridApiMemLoRACoordPredictor: 매 K=48 step API tick마다 ApiMem + MemER LoRA 둘 다 inference. verb+object Jaccard ≥ 0.5 일치 시 API subgoal의 좌표를 LoRA 좌표로 swap. mismatch 시 API as-is. Per-call decision을 ep{N}_hybrid_log.jsonl로 logging.
LoRA는 매 call 8 frame + keyframe을 받지만 ApiMem은 1 frame만 → mt count tracking 구조적 불가. ApiMemModel.get_subgoal(frames)를 list 받도록 변경: detection은 latest 1 frame, reasoning은 N frame 균등 subsample (oldest→newest). CLI flag: --api_mem_frames_per_call <N>.
api.py에 prompt_tokens / completion_tokens / total_tokens logging patch. 3ep smoke로 실측. Gemini 2.5-pro 가격 기준 비용 산출.
| Run 태그 | 설명 | Done | Succ | SR | NEW vs LoRA |
|---|---|---|---|---|---|
| BinFill_3317_antiparrot | flash-lite, 1-frame | 50 | 3 | 6.0% | 0 |
| BinFill_pro | pro, 1-frame | 50 | 2 | 4.0% | 1 |
| BinFill_rescaled | flash-lite, rescale fix | 50 | 4 | 8.0% | 0 |
| BinFill_2step | flash-lite, 2-step det+rea | 48 | 3 | 6.2% | 0 |
| BinFill_flashlite_loracoord | HYBRID flash-lite, 1f | 50 | 6 | 12.0% | 0 |
| BinFill_flashlite_lc_4f | HYBRID flash-lite, 4f ★ | 50 | 11 | 22.0% | 2 |
| BinFill_pro_4f (cancelled) | HYBRID pro, 4f (n=7) | 7 | 2 | 28.6%* | 0 |
| (LoRA standalone) | MemER LoRA full | 50 | 32 | 64.0% | — |
*n=7, 통계적으로 불충분. 취소 근거: flash-lite 4f 22%보다 약함 + 23x 비용.
| Action | 1f Hybrid | 4f Hybrid | Δ |
|---|---|---|---|
| swapped (verb 일치 → coord LoRA) | 46.9% | 56.5% | +9.6pp |
| verb_mismatch (API as-is) | 53.1% | 43.5% | −9.6pp |
| no_coord | 0% | 0% | 0 |
| Call 타입 | calls | Input tokens | Output tokens (thinking 포함) |
|---|---|---|---|
| Detection | 26 | 17,784 | 62,643 |
| Reasoning | 27 | 60,862 | 22,396 |
| Total (3ep) | 53 | 78,646 | 85,039 |
| 가설 | 검증 결과 | 기여도 |
|---|---|---|
| (a) wording mismatch | verb만 borrow해도 SR 안 오름 | 부분 기여 |
| (b) coord precision | 1f hybrid 12% - ApiMem-only 8% = +4pp | minor |
| (c) timing/call_period | verb_mismatch 53%→44%, 일부 영향 | 부분 기여 |
| (d) mt count tracking | 1f→4f SR 12%→22% (+10pp), NEW vs LoRA 0→2 | 가장 큰 기여 |
multi-frame context가 ApiMem의 진짜 한계였다. Single-image zero-shot으로는 BinFill의 cube in/out progression을 verify할 수 없다. 4 frame으로 mt count tracking을 일부 회복했고, 처음으로 LoRA-fail-only인 ep를 hybrid가 해결하는 사례(ep14, 18)가 나왔다. 이는 ApiMem의 mt가 순수 LoRA보다 가치 있는 정보를 보태는 첫 번째 증거다.
그럼에도 LoRA 64%와 42pp 격차가 여전히 존재한다. Multi-frame으로도 in-domain LoRA를 따라잡지 못한다. ApiMem의 진짜 가치는 OOD 또는 long-horizon task에서 찾아야 한다. BinFill은 LoRA가 강한 task로, ApiMem 우위를 보이기 어려운 구조.
Pro는 BinFill에서 cost-performance 매우 나쁘다. 비용의 75%가 단순 JSON detection의 thinking tokens에서 나온다. Flash-lite 4f 22% vs Pro 4f (n=7 불충분, 추세 약함), 23x 비용 → 실용적 선택 아님.
4f → 8f로 늘리면 더 좋아지나? 비용은 거의 안 늘어난다 (flash-lite 50ep ~$1.4). verb_mismatch가 4f에서 43.5%까지 내려갔고, 8f라면 더 줄어들어 SR 25%+ 가능성 있음. 단독 ablation으로 확인 가치 있음.
Pro reasoning의 강점만 살리고 detection cost를 flash-lite로 줄임. 예상 비용 ~$3-4 (50ep). Detection thinking tokens 비용 75% 제거 효과. Pro의 reasoning이 실제로 더 나은지 격리 검증 가능.
BinFill (LoRA 64%)은 ApiMem의 mt 강점을 검증하기 어려운 구조다. 다음 후보:
이 task들에서 hybrid 4f가 LoRA baseline을 크게 넘으면 ApiMem mt의 실용 가치 확증.