Index
2026-09-16 — Analysis

평가 해석 정정 — 성공 기준 혼재 정량화 + Δ video 라벨 오류

Zero-WAM | 측정 방법론 오류 2건 발견·정정 (사용자 지적 계기)

TL;DR

11×
stapler_pad 면적비
9×
stamp_seal 면적비
130608
대조실험 Job
2건
정정된 해석 오류

1 배경 / 목적

자체 학습 LingBot-VA는 move_stapler_pad에서 1.00%(n=100)를 기록해 논문 보고치 23.33%를 재현하지 못했다. 2026-09-15 공개 릴리스 분석(260915-zero_wam_public_release)에서 "논문은 수정된 성공 기준으로 측정했다"는 원인 가설을 세웠지만, 그 가설은 코드 관찰 수준에 머물러 있었고 측정으로 확인된 적이 없었다.

그런데 같은 날 진행 중인 ZW w/o pretrain language-only 평가에서 move_stapler_pad가 52.00%(n=100, 수정 기준)로 나오자, 이를 "가설을 강하게 뒷받침한다"고 해석했다 — 그러나 이것은 과한 주장이었다. 그 52%는 모델(자체 LingBot-VA → ZW w/o pretrain)과 기준(upstream → 수정)이 동시에 바뀐 값이라 기준 효과를 분리하지 못한다. 사용자가 이 지점을 지적해 정리했다.

기존 한계: "가설과 방향이 맞는 관측"과 "가설을 증명하는 대조실험"을 구분하지 않고 있었다. 변수 하나만 바꾼 비교가 없으면 어떤 수치도 원인 귀속을 할 수 없다.

2 작업 내용

2.1 기준 차이를 코드에서 정량화

evaluation/robotwin/envs/*.py(Zero-WAM 수정본) vs ~/repos/Robotics/RoboTwin/envs/*.py(upstream)의 check_success()를 직접 대조했다.

항목upstreamZero-WAM 수정본
위치 (move_stapler_pad)|Δx|<0.02 ∧ |Δy|<0.02 ∧ |Δz|<0.01|Δx|<0.08 ∧ |Δy|<0.055 (pad 반치수+마진)
z 조건있음 (±1cm)없음
자세 조건(|q|max−|q|min)<0.02없음 → check_actors_contact(stapler, pad)로 대체
stamp_seal xy eps0.01 (4 cm²)0.03 (36 cm², 9배)

move_stapler_pad는 xy 허용면적 16→176 cm² (11배)에 yaw 정렬 요구까지 통째로 삭제됐다 — 미세 조정이 아니라 태스크 재정의 수준이다.

2.2 결정적 대조실험 제출 (사용자 승인)

기준 효과만 분리하려면 같은 LingBot-VA 체크포인트를 수정 기준으로 재평가해야 한다 (재학습 불필요). 필요한 후크는 이미 존재했다 — lingbot-va/script/eval_robotwin_task.sh의 ROBOTWIN_ROOT env override + EVAL_TAG로 baseline과 분리 저장, Zero-WAM 쪽 overlay tmp/robotwin_eval_root(RoboTwin 체크아웃을 건드리지 않고 두 env 파일만 심볼릭 교체)를 재사용.

sbm "source .../conda.sh && conda activate .../lingbot-b200 \ && cd ~/repos/Robotics/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" \ --gres=gpu:2 -c 16 --mem 400GB --qos=own --time 10:00:00 -J lva_zwcrit \ --container=nvcr.io/nvidia/isaac-lab:2.2.0 --dependency=afterany:130258 # job 130608, --time은 2026-09-08 동일 태스크 실측(5:58:41 / 5:37:40)의 약 1.7배 # 결과: ~/checkpoints/lingbot_va/robotwin_seen43_train/eval/step32000_zwcrit/

2.3 Δ video 라벨 재검토 — 논문 원문 재확인

사용자 지적으로 논문 원문(main.tex:1122-1126)을 다시 확인했다:

"In this variant, the ICL samples are still included during pre-training, but the human-video condition is masked, so each human-robot pair is reduced to an ordinary text-conditioned robotic video-action sample."

text-only Zero-WAM은 학습 단계부터 human-video condition이 없는 별도 학습 모델이다 — 전체 Zero-WAM을 추론에서만 demo 없이 돌린 것이 아니다. 따라서 claude/260909 분석에서 쓴 Δ video = Zero-WAM − text-only = +7.51pp를 "추론 시 human video 조건의 순 기여"로 읽은 것은 틀린 해석이었다. 학습 방식이 다른 두 모델을 비교한 값이므로, 맞는 라벨은 "ICL 경로 전체(학습 때 video 조건 + IFP 목표 + 추론 때 demo)의 기여"다. 같은 이유로 WAN-Action 10.98 vs ZW w/o pretrain 36.36(Fig.5)도 학습 방식이 다른 두 모델의 비교다. 부등호 자체(text-only 39.44 > w/o IFP 28.55 등)는 그대로 유효하고, 바뀐 것은 "무엇의 기여인가"라는 라벨뿐이다.

뷰어(260909-robotwin_task_split_review.html)의 카드 칩 human video 기여 → ICL 경로 기여(학습+추론), 표 열 Δ video → Δ ICL로 수정하고, 변형 정의 각주에 "학습 단계부터 마스킹"임을 명시했다.

3 결과 (수치)

3.1 move_stapler_pad 수치 배치 정정

모델SR기준
LingBot-VA (논문)23.33수정
LingBot-VA (자체)1.00upstream
ZW w/o pretrain, ICL (논문)74.00수정
ZW w/o pretrain, language-only (자체, 진행 중)52.00수정
Zero-WAM (논문)69.14수정
재해석: 자체 52%는 논문 수치를 넘은 게 아니라 동일 레시피의 ICL 74.00보다 22pp 낮은 값 — "demo를 빼면 떨어진다"는 예상 방향과는 일치한다. 남는 불일치는 자체 LingBot-VA 1.00 vs 논문 23.33뿐이고, 이것이 job 130608이 검증할 대상이다.

3.2 파생 발견 — 비교 페이지의 기준 혼재

진행 중인 ZW w/o pretrain 평가는 7개 태스크 전부 수정 기준인데, 기존 비교 페이지에 이미 들어간 자체 LingBot-VA 27.86%는 upstream 기준이다. 7개 중 2개 태스크(move_stapler_pad, stamp_seal)에서 두 열이 서로 다른 잣대로 채점돼 있어 macro 평균도 직접 비교 불가 — job 130608 결과가 도착하면 이 2셀을 수정 기준 값으로 교체해야 정렬된다.

3.3 현재 잡 상태 (2026-09-17 09:35 KST 확인)

Job내용상태
129436 (zw_eval_lang)ZW w/o pretrain language-only, 7 task × 100 epRUNNING, 경과 23:52:17
130258 (zw_eval_icl)ZW w/o pretrain ICL, 7 task × 100 epPENDING (129436 뒤 대기)
130608 (lva_zwcrit)자체 LingBot-VA, 수정 기준 재평가 (2 task)PENDING (130258 뒤 대기)
주의: language-only 평가가 이미 23h52m 경과 — open_microwave는 24h 한도에 걸려 ~91 episode에서 잘릴 전망(n 동반 보고 필요). 3개 job이 순차 dependency로 걸려 있어 130608 결과는 앞 두 job이 끝난 뒤에나 나온다.

4 Takeaway

의미

이번 정정은 "기준 차이는 미세 조정이 아니라 태스크 재정의 수준"이라는 사실 자체보다, 측정 방법론 규율에 대한 것이다. "모델도 다르고 기준도 다른" 비교는 어느 방향이든 가설을 지지하지 못한다 — 52% 관찰은 가설과 모순되지 않을 뿐이고, 기준 효과를 분리하려면 반드시 모델을 고정한 대조실험(130608)이 있어야 한다. 130608이 끝나면 LingBot-VA(자체) vs ZW w/o pretrain(자체) 전 열이 같은 기준으로 정렬돼, 비교 페이지의 신뢰도가 올라간다.

Δ video 라벨 오독 정정도 같은 맥락이다 — 학습 방식이 다른 두 모델을 비교한 수치를 "추론 시 조건 하나의 기여"로 잘못 읽으면, 진행 중인 w/o-pretrain 평가(같은 학습 모델을 ICL/language-only 두 모드로 돌리는 것)가 갖는 의의를 놓친다. 그 평가가 끝나야 "추론 시 demo만의 기여"를 논문 수치로는 할 수 없었던 분해를 처음으로 만든다.

5 Next Steps

미해결 한계

job 130608 결과가 나오기 전까지는 자체 LingBot-VA의 move_stapler_pad·stamp_seal 재현 여부를 "기준 차이" vs "학습/체크포인트 차이"로 확정할 수 없다. 129436→130258→130608 순차 dependency라 대기 시간이 길다 (129436이 이미 24h 근접). stamp_seal 프롬프트 어휘 아티팩트 대조(43 train instruction에 stamp/seal 0회 등장 여부 검증)도 여전히 수정 기준(3cm)에서 다시 해야 한다.

다음 작업

1. 130608 결과 도착 시 tmp/add_own_lingbot.py 계열로 비교 페이지 2개 셀을 수정 기준 값으로 갱신 + macro 재계산, 페이지에 "기준" 열/주석 추가.

2. 129436(language-only) 완료 대기 — open_microwave truncation 여부와 최종 n 확인, 이후 130258(ICL) 진행 관찰.

3. 가설: 기준 고정 재평가(130608)에서 자체 LingBot-VA의 move_stapler_pad가 upstream 1.00%보다 유의하게 오르면(논문 23.33%에 근접) 성공 기준 차이가 미재현의 주 원인이라는 가설이 채택된다.