place_bread_basket +42.67p, place_object_scale +27.83p로 크게 개선인 반면 move_stapler_pad는 -22.33p로 크게 하락 — 평균만으로 "일반화 성공"이라 단정 불가.open_microwave, stack_blocks_three 2개 태스크는 아직 RUNNING (8시간+ 경과).Track A(RoboTwin 2.0 Zero-WAM 43/7 split)의 목표는 LingBot-VA를 RoboTwin 50 task 중 43개만 학습하고 7개는 완전히 제외한 뒤, 제외된 7개(unseen)에서의 zero-shot cross-task 일반화 성능을 측정하는 것이다. 프로토콜은 Zero-WAM 논문(arXiv 2608.26103, Robbyant)을 그대로 따르며, 같은 논문에 명시된 LingBot-VA baseline 평균 17.45%(unseen 7 평균, 3-seed)가 직접 비교 앵커다.
260907 카드(robotwin_seen43_setup.html)는 데이터 준비 · 스모크 테스트 · 학습 제출(job 112772)까지만 다뤘고, 당시 학습은 RUNNING 상태로 실제 결과가 없었다. 이번 카드는 그 학습이 실제로 끝나고, 처음으로 unseen-7 평가 결과가 나온 시점을 다룬다.
evaluation/robotwin/eval_polict_client_openpi.py)는 구버전 RoboTwin 레이아웃을 가정한 플레이스홀더 경로(/path/to/your/robowin, ./task_config/)를 가지고 있어 허브 최신 체크아웃에 그대로 붙지 않는 상태였다.마지막 구간(step ~31,970-32,000) loss: latent_loss 0.078~0.135, action_loss 0.0004~0.0016, grad_norm 0.04~0.08, lr 1.00e-05(decay 완료). step 32000에서 checkpoint 정상 저장 확인.
context.md의 미해결 항목("평가 배선: 경로 2줄 패치 + hold-out 7 러너")을 실제로 해소했다.
로그인 노드는 libGL이 없어 RoboTwin envs가 open3d import에서 실패 — --container=nvcr.io/nvidia/isaac-lab:2.2.0이 필수임을 확인 (job 113256 own/CANCELLED, 113265 extra/PREEMPTED, 둘 다 QOS·컨테이너 시행착오). 이후 job 113399(extra, 17분 완료)로 3-seed 타이밍을 먼저 확인한 뒤, 본 스윕 job 7개(rt32k_*, extra QOS, 태스크당 1 GPU, 100 rollout, seed 0, step 32000)를 제출했다.
| Task | Ours (seed 0) | Paper baseline | Delta | 상태 |
|---|---|---|---|---|
| place_bread_basket | 60.00% (60/100) | 17.33% | +42.67p | 완료 |
| place_object_scale | 34.00% (34/100) | 6.17% | +27.83p | 완료 |
| place_empty_cup | 62.00% (62/100) | 42.33% | +19.67p | 완료 |
| open_microwave | 31.9%* (15/47) | 29.33% | ~+2.6p* | 진행중 (RUNNING, seed 10067) |
| stamp_seal | 4.00% (4/100) | 3.67% | +0.33p | 완료 |
| stack_blocks_three | 0.0%* (0/53) | 0.00% | 0.0p* | 진행중 (RUNNING, seed 10054) |
| move_stapler_pad | 1.00% (1/100) | 23.33% | -22.33p | 완료 |
| 평균 (완료 5개) | 32.20% | 18.57% | +13.63p | - |
* 진행중 태스크의 수치는 마지막 관측 시점(로그 tail)의 잠정치이며 100 rollout 완료 전까지 변동 가능. 평균 행의 paper baseline(18.57%)은 완료된 5개 태스크만의 논문 수치 평균으로 직접 계산한 값 — summarize_seen43.py가 기본 출력하는 AVERAGE 행은 7-task 전체 논문 평균(17.45%)을 그대로 써서 5개만 완료된 지금 시점엔 대상 불일치가 있다.
place_bread_basket(+42.67p), place_object_scale(+27.83p), place_empty_cup(+19.67p) 3개 태스크는 논문 baseline 대비 명확히 높다.move_stapler_pad는 100 rollout 중 1회만 성공(1.00%)해 논문 baseline(23.33%) 대비 -22.33p — 이번 5개 중 유일한 역전 사례.평균만 보면 zero-shot 일반화가 논문 baseline보다 뚜렷이 좋아 보이지만(+13.6p, 완료 5개 기준), task-level 분산이 극심해서 "일반화가 잘 됐다"로 단순화할 수 없다. 논문 baseline 자체도 태스크별로 0~42%로 넓게 퍼져있어(태스크 난이도가 상이), 우리 재현이 그 분산 구조를 그대로 물려받으면서 일부는 크게 웃돌고(place_bread_basket) 일부는 역전(move_stapler_pad)됐다. 재현 실험이 baseline column을 향해 튜닝된 게 아니라 독립 학습이므로, task별 개별 성패가 재현의 신뢰도를 보여주는 더 정직한 신호다.
또한 지금 수치는 seed 0 하나뿐이다 — 논문은 3-seed 평균이라, 특히 move_stapler_pad(1/100)처럼 절대 성공 수가 낮은 태스크는 seed 간 분산이 델타 부호 자체를 바꿀 수 있다.
open_microwave(job 113732), stack_blocks_three(job 113736) 2개 태스크가 아직 RUNNING(8시간53분+ 경과) — 완료 시 7-task 전체 평균을 다시 계산해야 정확한 비교가 된다. move_stapler_pad의 -22.33p 하락은 원인 미분석 상태 — rollout 실패 영상을 확인해 grasp 실패인지 위치 인식 실패인지 failure mode를 특정해야 한다.
context.md 미결정 사항 그대로: 7-task 전부 완료 후 2번째 seed를 최소 하나 더 돌려 task별 분산이 seed 노이즈인지 실제 일반화 격차인지 구분(특히 move_stapler_pad, stamp_seal처럼 절대 성공 수가 한 자릿수인 태스크). 중간 체크포인트(4k/8k/…/28k)로 unseen-7 평가를 추가해 학습 곡선 대비 zero-shot 성능 추이(과적합 시작 지점)를 확인.