Index
2026-05-08 — Analysis

Hybrid πHL BinFill 결과: SR 12% — coord 부분 기여, wording/timing이 주 병목

memer / robomme_policy_learning | Jobs 11340 + 12749 완료 (50 ep BinFill)

TL;DR

12.0%
Hybrid SR
8.0%
Baseline SR
64.0%
LoRA Upper
46.9%
Swap Rate
50
Episodes

1 배경 / 목적

8회의 BinFill ApiMem 실험(flash-lite/pro × 1-call/2-step × bbox 조합) 결과 SR 4~17% noise 범위에 갇혔다. 탐색된 원인 후보 세 가지:

가설 (b) isolation: ApiMem이 mt + intent 담당, LoRA가 좌표 담당 — verb+obj Jaccard ≥ 0.5 매칭 시 좌표만 swap. 이것만 바꿨을 때 SR이 얼마나 오르는지로 coord 단독 기여량 측정.

이 실험은 설계 및 job 제출 단계(260507-apimem_hybrid_lora_coord_design.html)의 후속. Jobs 9951(FAILED, 2m13s), 9952(FAILED, 19s), 9954(PREEMPTED, 2h) 이후 job 11340(4h36m, ep10~49) + 12749(2h38m, resume ep0~9) 두 job으로 50 ep 전체 완료.

2 작업 내용

실험 구성은 설계 카드에서 확정. 실제 실행 경로 요약:

Task: BinFill, 50 episodes Model: gemini-2.5-flash-lite (API) + Qwen3-VL-4B LoRA (coord only) Script: scripts/run_api_mem_one_episode.sh BinFill gemini-2.5-flash-lite flashlite_loracoord 0 1 Predictor: HybridApiMemLoRACoordPredictor (examples/robomme/subgoal_predictor.py) Swap logic: verb+obj Jaccard ≥ 0.5 → replace API coord with LoRA coord API call period: K=48 steps Result dir: runs/api_mem_smoke/BinFill_flashlite_loracoord/ Progress: runs/api_mem_smoke/BinFill_flashlite_loracoord/.../api_mem/progress.json

Job 이력

Job IDStateDurationEpisodes비고
9951FAILED2m 13spartition/QOS 오류
9952FAILED0m 19s동일 원인 재시도
9954PREEMPTED2h 02mep 0~9core-extra QOS 선점
11340COMPLETED4h 36mep 10~49재제출 후 정상 완료
12749COMPLETED2h 38mep 0~9 resume선점된 ep 복구 완료
Resume 기능 정상 동작: 9954에서 ep0~9까지 진행했다가 PREEMPTED. 12749에서 progress.json 기반 skip logic이 이미 완료된 ep를 자동 감지·스킵, 미완료 ep만 재실행. 데이터 손실 없음.

3 결과

BinFill 50ep 전체 비교 (누적)

RunModelModeSR비고
MemER LoRA (대조)Qwen3-VL-4B LoRAfull pipeline64.0%Upper bound
5092flash-lite1-call bbox-first16.7%27ep abort (loop)
loracoord (본 실험)flash-lite + LoRA coordhybrid swap12.0%6/50, 50ep 완전 완료
4429flash-lite1-call rescaled8.0%직접 비교 baseline
5652flash-lite2-step det6.4%robustness ↑ 하지만 SR 불변
6056pro2-step det4.3%robustness 만점, SR 최저

Swap 통계 (전체 1037 API ticks, 50 ep)

ActionCount비율의미
swapped48646.9%verb match → LoRA coord로 교체
verb_mismatch55153.1%verb 불일치 → API coord 그대로 사용
no_coord00.0%coord 누락 없음 (파싱 완전)
Verb mismatch 53.1%: 절반 이상의 tick에서 ApiMem과 LoRA가 서로 다른 동사/목적어 조합을 출력 → 좌표를 swap하지 못함. ApiMem과 LoRA의 subgoal 표현 스타일이 근본적으로 다름을 반증.

성공 episode 분석

Episode결과API ticksSwappedMismatchSwap 비율
ep0SUCCESS74357.1%
ep4SUCCESS75271.4%
ep5SUCCESS27111640.7%
ep6SUCCESS2791833.3%
ep17SUCCESS64266.7%
ep44SUCCESS1541126.7%
+4 pp 확인: hybrid SR 12.0% vs baseline 8.0%. coord swap이 실제로 일부 episode에서 성공 기여. 단, 성공 ep 중에도 swap 비율 26.7~71.4%로 다양 — swap 자체가 성공 충분조건 아님.
가설 (b) 기각: SR 12% < 30% 임계값. coord precision만으로 LoRA 64%에 근접 불가. LoRA의 우위는 coord 이상의 요인에서 비롯.

4 Takeaway

가설 (b) 부분 기여 확인, 주 병목은 wording/timing

coord swap으로 8% → 12%: +4 pp는 통계적으로 의미 있는 개선이다. coord precision이 전혀 무관하지 않음을 확인. 그러나 이것만으로는 52 pp 격차를 설명할 수 없다.

Verb mismatch 53.1%가 핵심 신호: ApiMem(flash-lite)이 "put the blue cube into the bin at <527, 537>"을 출력할 때, LoRA는 "pick up the second blue cube at <445, 309>"처럼 전혀 다른 subgoal phase에 있는 경우가 절반 이상이다. 이는 두 모델의 sequence tracking 자체가 misaligned됨을 시사 — ApiMem은 pi0.5가 이미 수행한 subgoal을 반복 출력하거나, LoRA는 다음 step을 미리 예측하는 패턴 차이가 있다.

다음 우선순위: (a) wording-only test — LoRA의 subgoal 텍스트를 그대로 pi0.5에 넘기면 SR이 어떻게 변하는지. 이것이 wording mismatch 기여를 직접 측정하는 가장 clean한 실험이다.

BinFill 한계: 8회 실험 모두 4~17% 범위. hybrid도 12%로 이 범위에서 크게 벗어나지 않음. BinFill은 zero-shot VLM 기반 πHL의 한계 task로 잠정 결론. PatternLock(LoRA 16%) 등 다른 task로 이동하는 것도 병행 검토 필요.

5 Next Steps

Option A — Wording-only test (우선순위 1)

LoRA가 출력하는 subgoal 텍스트 + 좌표를 그대로 pi0.5에 전달하고 closed-loop SR 측정. ApiMem mt 없이 LoRA text만 사용 → wording 기여량 직접 측정. 구현: HybridApiMemLoRACoordPredictor에서 text도 LoRA 것으로 swap하는 flag 추가, 또는 LoRA-only predictor 직접 사용.

Option B — PatternLock 50ep × pro × 2-step (우선순위 2)

LoRA SR 16%인 low-baseline task에서 ApiMem이 long-horizon sequence tracking 강점을 발휘할 수 있는지 검증. BinFill처럼 detection bottleneck이 없는 task이면 다른 결과 가능.

Option C — Hybrid log 심층 분석

scripts/analyze_hybrid_log.py 작성: mismatch가 발생한 tick의 ApiMem subgoal vs LoRA subgoal 텍스트를 나란히 출력 → 어떤 패턴의 mismatch가 지배적인지 파악. wording test 설계에 활용.

미해결 한계

Verb mismatch 원인 미파악: ApiMem이 "이미 완료한 subgoal"을 반복하는지, LoRA가 "다음 단계"를 일찍 예측하는지, 아니면 근본적으로 서로 다른 task decomposition 방식인지 알 수 없음. hybrid_log JSONL에 api_sg/lora_sg 텍스트가 기록되어 있으므로 분석 스크립트로 파악 가능.