Index
2026-09-21 — Experiment

LingBot-VA baseline 재평가 — 성공 기준·프롬프트 정정 시 논문 격차 +29.50 → +6.24pp

Zero-WAM | 자체 LingBot-VA step32000 × 수정 성공 기준 (job 130608) + stamp_seal 프롬프트 대조 (job 134193), n=100, seed 0

TL;DR

1→61%
move_stapler_pad (기준만 변경)
40.71%
자체 LB macro (수정 기준)
+6.24pp
ZW 논문값 − 자체 LB (was +29.50)
5W 2T
LB vs 자체 ZW ICL

1 배경 / 목적

자체 학습 LingBot-VA(step32000)는 move_stapler_pad에서 1.00%(n=100)로 논문 LingBot-VA 23.33%를 재현하지 못했다. 260915 공개 릴리스 분석에서 “논문은 수정된 성공 기준으로 측정했다”는 가설을 세웠지만 코드 관찰 수준이었고, 260917 카드에서 기준만 바꾼 결정적 대조실험(job 130608)을 제출한 상태로 끝났다. 이번 카드는 그 결과다.

기존 한계: 모델(자체 LingBot-VA → ZW w/o pretrain)과 기준(upstream → 수정)이 동시에 바뀐 비교(52.00%)는 기준 효과를 분리하지 못한다. 논문 헤드라인(Zero-WAM 46.95 vs LingBot-VA 17.45, +29.50pp)이 어느 baseline·어느 기준에서 나온 값인지도 검증된 적이 없다.

2 작업 내용

2.1 기준만 바꾸는 재평가 (job 130608)

같은 LingBot-VA 체크포인트를 Zero-WAM 수정 기준으로 재평가한다(재학습 불필요). 필요한 후크가 lingbot-va 레포에 이미 있었다.

ROBOTWIN_ROOT=~/repos/Robotics/Zero-WAM/tmp/robotwin_eval_root \ EVAL_TAG=zwcrit \ bash script/eval_robotwin_seen43.sh 32000 100 0 move_stapler_pad,stamp_seal # job 130608: --gres=gpu:2 -c 16 --mem 400GB --qos=own --time 10:00:00 # --container=nvcr.io/nvidia/isaac-lab:2.2.0 --dependency=afterany:130258 # 결과: ~/checkpoints/lingbot_va/robotwin_seen43_train/eval/step32000_zwcrit/

ROBOTWIN_ROOT override는 클라이언트가 os.chdir하는 경로로 쓰이고, EVAL_TAG는 변형 런 결과를 baseline과 분리 저장한다. overlay tmp/robotwin_eval_root는 RoboTwin 체크아웃을 건드리지 않고 envs/move_stapler_pad.py·envs/stamp_seal.py만 수정본으로 심볼릭 교체한다.

2.2 stamp_seal 프롬프트 대조 (job 134193)

stamp/seal이 43 train instruction에 0회 등장하므로 어휘 OOD 아티팩트 여부를 가른다. 수정 기준 overlay를 유지한 채 프롬프트 템플릿만 train 분포로 바꿨다.

LINGBOT_INSTRUCTION_TEMPLATE="Pick up {A} with {a} and place it on the {B} mat." \ EVAL_TAG=zwcrit_pnpprompt # LingBot-VA step32000, n=100

2.3 비교 페이지 정렬

자체 LingBot-VA 열을 7개 태스크 전부 수정 기준으로 통일(own_lingbot_va). upstream 값은 sr.own_lingbot_va_upstream / own_eval.upstream_criteria_sr에 보존. 나머지 5개 태스크는 upstream과 수정본의 check_success가 동일해 기존 값을 그대로 사용했다.

3 결과

3.1 job 130608 — 모델 고정, 기준만 변경 (COMPLETED, 04:31:37)

taskupstream 기준Zero-WAM 수정 기준Δ논문 LingBot-VA
move_stapler_pad1.00% (1/100)61.00% (61/100)+60.0023.33%
stamp_seal4.00% (4/100)34.00% (34/100)+30.003.67%
미재현의 원인은 성공 기준 차이였다. 260916에 코드에서 계산한 “성공 xy 면적 11배 + 자세 조건 삭제”가 실제로 move_stapler_pad 1% → 61%를 만든다. 학습 설정/체크포인트 문제가 아니었다.
예상과 다른 점: 수정 기준에서 자체 값이 논문 LingBot-VA를 크게 넘어선다(61.00 vs 23.33, 34.00 vs 3.67). 자체 LingBot-VA는 “기준 때문에 낮아 보였던” 것이 아니라 논문 baseline보다 실제로 강한 정책이다.

3.2 7 held-out 태스크 LingBot-VA (n=100, seed 0)

task논문 LB자체 (upstream)자체 (수정 기준)Δ (수정 − 논문)
place_empty_cup42.3362.0062.00+19.67
move_stapler_pad23.331.0061.00+37.67
place_bread_basket17.3360.0060.00+42.67
stamp_seal3.674.0034.00+30.33
open_microwave29.3334.0034.00+4.67
place_object_scale6.1734.0034.00+27.83
stack_blocks_three0.000.000.00±0
macro17.4527.8640.71+23.26

3.3 논문 헤드라인 격차의 붕괴

논문 주장: Zero-WAM 46.95% vs LingBot-VA 17.45% -> +29.50pp 같은 기준: Zero-WAM 46.95% vs LingBot-VA(자체) 40.71% -> +6.24pp

논문이 보고한 language baseline이 약했다. 순수 language-conditioned 정책을 제대로 학습시키면 Zero-WAM의 우위는 6pp대로 줄어든다.

3.4 stamp_seal 프롬프트 × 성공 기준 2×2 (LingBot-VA step32000, n=100)

원본 프롬프트pnp 프롬프트Δ 프롬프트
upstream (1 cm)4.00%19.00%+15.00 (p=0.0014)
수정 (3 cm)34.00%47.00%+13.00 (p=0.084)
Δ 기준+30.00+28.00
두 효과는 가산적이다: 프롬프트 효과는 어느 기준에서도 +13~15pp, 기준 효과는 어느 프롬프트에서도 +28~30pp. 어휘 OOD와 위치 허용오차는 서로 독립인 두 개의 실패 원인이었다.

3.5 결과: ZW가 이기는 태스크 0개

pnp 프롬프트에서 stamp_seal LingBot-VA 47.00% = ZW w/o pretrain ICL 47.00% 동률 → 자체 LingBot-VA(수정 기준) vs 자체 ZW w/o pretrain ICL, LingBot-VA 5승 2무 / ZW 0승(무: stamp_seal, stack_blocks_three 0 vs 0).

oracle 성격: pnp 프롬프트는 “stamp/seal이 train instruction에 0회 등장”을 알고 고른 개입이다. 주 수치는 단일 고정 프롬프트의 40.71%로 둔다(이 기준에서는 stamp_seal ZW 47.00 > LB 34.00). 참고 산술(원 노트 미기재): pnp 값을 반영하면 LB macro = (62+61+60+47+34+34+0)/7 = 42.57%.

4 Takeaway

의미

1. 논문 헤드라인 +29.50pp 중 23.26pp가 baseline 측정 차이다. 같은 기준·같은 학습 규모의 LingBot-VA를 두면 격차는 +6.24pp. “demo/ICL 경로 덕분에 language 정책을 크게 앞선다”는 서술은 이 저장소의 자체 측정으로는 지지되지 않는다.

2. 성공 기준 차이는 태스크 재정의 수준이다. move_stapler_pad xy 면적 16→176 cm²(11배)+자세 조건 삭제, stamp_seal eps 1→3 cm(면적 9배). upstream 기준과 논문 수치를 같은 표에 놓을 때는 반드시 기준을 명기해야 한다.

3. 실패 원인 분해 규율: 모델+기준을 동시에 바꾼 52% 관찰은 가설과 모순되지 않을 뿐이었고, 모델을 고정한 130608이 있어서야 원인이 확정됐다. 프롬프트와 기준도 하나씩 바꿔 2×2로 봐야 가산성이 보였다.

4. 이전 진술 격하: 260909 분석의 “관측 8 — stamp_seal의 언어 실패는 재현된다”는 upstream 기준에 한정된 진술이다 (논문 3.67%, 자체 4.00%는 상당 부분 1 cm 허용오차 — 수정 기준 34.00%).

5 Next Steps

미해결 한계

단일 시드: 자체 LingBot-VA는 seed 0 한 개이고 논문 Zero-WAM 46.95는 3시드 평균이다. 논문 Table 2 LingBot-VA는 17.45±1.40 — +6.24pp를 시드 노이즈와 구분하려면 시드 2~3개가 필요하다.
학습 설정 불일치: 자체 LingBot-VA와 자체 ZW w/o pretrain은 에피소드 서브샘플·해상도·초기화·lr이 다르다(→ 재현 격차 분석 카드 260921-repro_gap_train_steps_analysis).
eval seed 구간이 다름: LB eval은 stseed-10000, ZW eval은 stseed-100000이라 자체 두 열이 episode 단위로 짝지어지지 않는다.

다음 실험

1. 공개 zero-wam-posttrain-robotwin 체크포인트로 7태스크 재현(evaluation/robotwin/run_icl_eval.sh, 8 GPU sbatch) → 논문 46.95%와 대조하고 자체 LB 40.71%와 직접 비교. 로컬 RoboTwin rev 96c1fea ≠ 테스트 rev 2eeec322 점검 필요.
2. 자체 LingBot-VA·ZW 모두 시드 2~3개 추가.
3. 43 train 태스크의 SR이 공개되지 않아 “unseen이라 못 함” vs “원래 어려운 태스크”를 분리 못 함 — 자체 LB로 train 43 SR 측정 여부 결정.