Index
2026-09-03 — Experiment

Flex-π clean-50: 리더보드 프로토콜 평가(50 task × 100 ep) & action-only 대조

flex-pi | ckpt clean50_10ep/step_010960 (Wan2.2 init, 2,500 clean demo, 10 epoch) | upstream step 상한, optix 디노이저

TL;DR

90.24
clean2clean
51.12
clean2random
70.68
average
+15.5
joint − action (random, 8 task)
102.7
GPU-h

1 배경 / 목적

RoboTwin 2.0 리더보드 프로토콜(aloha-agilex, 50 task × demo_clean 50 co-train, 100 trial/task, clean2clean + clean2random)로 clean-50 Flex-π를 평가해 (a) Wan2.2 init만으로 어느 위치인지, (b) 연구계획 P-C — 데이터가 적고 분포이동이 있을 때 world-model stream(joint)이 action-only보다 나은지 — 를 확인.

기존 한계: Flex-π vendored _eval_step_limit.yml은 upstream의 절반 상한(lift_pot 200 vs 400 등)이라 리더보드와 비교 불가였음. 논문 재현 sweep과 ckpt 선택은 모두 절반 상한 기준.

2 작업 내용

step 상한: envs/_base_task.py → ROBOTWIN_EVAL_STEP_LIMIT_FILE env (미설정 시 기존 파일), task_config/_eval_step_limit_upstream.yml (X-WAM 원본) 래퍼: scripts/sweep_flexpi_robotwin_worker.sh STEP_LIMIT_FILE=upstream 제출: 50 task → step 상한 내림차순 round-robin 5그룹, lb_joint_g1..5 (107346~107350), extra 2 GPU, 1 worker/GPU, 100 ep, sbmr 6회 공통 RESUME_DIR=evaluate_results/robotwin/robotwin_clean50_clean50_10ep/lb_010960_joint (preempt 후 완료 (task,phase) 스킵) 이력: g1 12.0 h / g2 9.5 h 무중단, g3 5회 · g4 6회(한도 6) · g5 3회 제출 → preempt 11회, wall 51.4 h = 102.7 GPU-h, 제출→완료 13.7 h 검증: tmp/aggregate_leaderboard.py — 셀별 ckpt / modelid out-of-range / 에피소드 수 / step 상한 assert 대조: 107345 c50act_010960 (다른 세션) — REGIME=action, 8 task × 25 ep, 절반 상한, 같은 ckpt 기준치: robotwin-platform.github.io/data/robotwin_leaderboard.json (2026-09-01, 21 entries)

3 결과

3.1 리더보드 대비 (co-train 50 task × 50 demo_clean, 100 trial)

entryc2cc2ravg비고
Flex-π clean-50 (ours)90.2451.1270.68Wan2.2 init, 미제출, optix
OLA-Sem (HKUSTGZ)75.1267.5671.34avg 1위
GigaBrain-0.766.8067.9067.35c2r 1위
4D-WAM (OpenHelix)81.5041.8061.65
π0.570.7046.0058.35
OLA-Geo82.9633.6458.30c2c 1위
X-WAM70.0025.8047.90
X-VLA68.0020.9044.45
FastWAM77.801.9039.85
비교 주의: (1) 우리 하네스 = Flex-π 평가 코드 + optix 디노이저(리더보드는 OIDN, B200 미지원) + instruction_type=unseen. (2) XPolicyLab 표준 인터페이스로 검증된 수치 아님. (3) init(Wan2.2-TI2V-5B)은 리더보드 규정상 자유.

3.2 action-only vs full-joint (8 task, 25 ep, 절반 상한) — P-C

taskjoint clean/randomaction clean/randomΔ random (joint−action)
adjust_bottle96 / 44100 / 8+36
click_bell100 / 68100 / 680
lift_pot100 / 4100 / 40
open_microwave72 / 1268 / 0+12
place_shoe100 / 48100 / 36+12
put_object_cabinet84 / 2088 / 200
scan_object96 / 4488 / 16+28
stack_bowls_two100 / 9688 / 60+36
mean93.5 / 42.091.5 / 26.5+15.5 (5승 3무 0패)
P-C 첫 지지: full-data released ckpt에선 action ≥ joint(Δ=−0.8, 08-28)였지만, clean-50 + 분포이동에서는 joint가 random에서 +15.5 pt(진 task 없음). 지연은 action 203 ms/call vs joint 305 ms/call(1.50×). 25 ep라 셀 SE ±10 — 50 task × 100 ep 확정 실험 필요.

3.3 50-task 전체 (clean / random, 100 ep; 참고: released full-data ckpt, 절반 상한)

taskcleanrandomreleased 48k c/r
adjust_bottle963298 / 97
beat_block_hammer985499 / 93
blocks_ranking_rgb903098 / 96
blocks_ranking_size643481 / 84
click_alarmclock927084 / 92
click_bell986794 / 97
dump_bin_bigbin948794 / 89
grab_roller10091100 / 100
handover_block993199 / 95
handover_mic994799 / 99
lift_pot99399 / 100
move_can_pot9311100 / 99
move_playingcard_away9950100 / 100
move_stapler_pad52496 / 95
hanging_mug692885 / 81
open_laptop943197 / 98
open_microwave57850 / 57
pick_diverse_bottles897393 / 93
pick_dual_bottles10090100 / 100
place_a2b_left963296 / 98
place_a2b_right943498 / 99
place_bread_basket927495 / 95
place_bread_skillet936587 / 94
place_can_basket534078 / 89
place_cans_plasticbox10096100 / 100
place_container_plate9887100 / 100
place_dual_shoes877194 / 92
place_empty_cup9888100 / 100
place_fan973797 / 98
place_burger_fries988898 / 99
place_mouse_pad851799 / 98
place_object_basket875686 / 89
place_object_scale962697 / 98
place_object_stand1007797 / 99
place_phone_stand952698 / 99
move_pillbottle_pad10029100 / 100
place_shoe925397 / 97
press_stapler853998 / 97
put_bottles_dustbin918494 / 92
put_object_cabinet922990 / 90
rotate_qrcode94991 / 89
scan_object905195 / 91
shake_bottle9992100 / 100
shake_bottle_horizontally10096100 / 100
stack_blocks_three963397 / 98
stack_blocks_two10069100 / 100
stack_bowls_three818177 / 81
stack_bowls_two928590 / 94
stamp_seal962499 / 97
turn_switch532780 / 83
mean90.2451.1293.88 / 94.42
분포이동 붕괴: random ≤10 — lift_pot 3, move_stapler_pad 4, open_microwave 8, rotate_qrcode 9. clean도 released 대비 크게 빠진 task: move_stapler_pad 52(96), turn_switch 53(80), place_can_basket 53(78), blocks_ranking_size 64(81), hanging_mug 69(85).

3b action-only 50 task × 100 ep (동일 프로토콜) — P-C 확정

108130~108133 (extra 2 GPU × 4, own 34 유닛 완료 후 전환, preempt 0), 101.7 GPU-h. 100 셀 전부 ckpt 10960 · 에셋 오류 0 · 100 ep · upstream 상한 · infer_joint_*=false 확인.

regimeclean2cleanclean2randomavgms/call
full joint90.2451.1270.68304.5
action-only89.5634.9462.25200.7
Δ joint − action+0.68 (18승 11무 21패)+16.18 (45승 1무 4패)+8.431.52×
P-C 확정: world-model stream 생성의 가치는 in-distribution(clean)에서 0.7 pt, 분포이동(random)에서 16.2 pt. 39/50 task에서 |Δ|≥10. 8-task 서브셋(+15.5)이 50 task로 재현됨. 논문 Fig 10(randomized demo 학습, Δ+5.4)보다 3배 큰 격차 — 학습에 randomized demo가 없어 평가가 진짜 OOD이기 때문.
action 우세 4 task는 전부 click/press 계열: click_bell 86 vs 67, click_alarmclock 86 vs 70, turn_switch 35 vs 27, press_stapler 42 vs 39. 붕괴 task(lift_pot 3/3, move_stapler_pad 4/3, open_microwave 8/1)는 regime 무관.
taskjoint caction cΔcjoint raction rΔr
adjust_bottle9697-13217+15
beat_block_hammer9895+35427+27
blocks_ranking_rgb9091-1305+25
blocks_ranking_size6473-93413+21
click_alarmclock9299-77086-16
click_bell98100-26786-19
dump_bin_bigbin9495-18777+10
grab_roller100100+09183+8
handover_block9999+0317+24
handover_mic9999+04715+32
lift_pot9997+233+0
move_can_pot9399-6114+7
move_playingcard_away9999+05024+26
move_stapler_pad5254-241+3
hanging_mug6959+102811+17
open_laptop9496-23117+14
open_microwave5761-480+8
pick_diverse_bottles8990-17349+24
pick_dual_bottles100100+09066+24
place_a2b_left9689+73212+20
place_a2b_right9486+83415+19
place_bread_basket9293-17447+27
place_bread_skillet9395-26556+9
place_can_basket5355-24011+29
place_cans_plasticbox10099+19659+37
place_container_plate98100-28774+13
place_dual_shoes8789-27143+28
place_empty_cup9897+18855+33
place_fan9792+53710+27
place_burger_fries98100-28870+18
place_mouse_pad8578+7173+14
place_object_basket8782+55620+36
place_object_scale9695+12614+12
place_object_stand10096+47764+13
place_phone_stand9594+12614+12
move_pillbottle_pad100100+0297+22
place_shoe9294-25340+13
press_stapler8585+03942-3
put_bottles_dustbin9189+28473+11
put_object_cabinet9292+02913+16
rotate_qrcode9491+391+8
scan_object9085+55135+16
shake_bottle99100-19285+7
shake_bottle_horizontally100100+09689+7
stack_blocks_three9696+0335+28
stack_blocks_two100100+06932+37
stack_bowls_three8186-58160+21
stack_bowls_two9295-38565+20
stamp_seal9688+8247+17
turn_switch5334+192735-8

3c P-B presence 축: action_rgb (현재 RGB만) — 8 task × 100 ep

REGIME=action_rgb = joint 전부 off + present_dino/pointmap=false. 29 GPU-h (own 4 유닛 후 extra, preempt 2회). joint/action 열은 50-task run에서 같은 8 task 추출. 지연 median: joint 304.5 / action 200.7 / action_rgb 173.7 ms.

taskjoint caction caction_rgb cjoint raction raction_rgb r
adjust_bottle96979932177
click_bell98100100678650
lift_pot999797330
open_microwave576150801
place_shoe929490534019
put_object_cabinet92929129136
scan_object908589513510
stack_bowls_two929593856555
mean89.590.188.641.032.418.5
두 축의 분해 (random, 8-task 평균): 현재 DINO/pointmap 입력의 몫 +13.9, 미래 생성의 몫 +8.6 — 독립적으로 비슷한 크기. clean은 둘 다 0 (+1.5 / -0.6). adaptive regime은 presence와 generation을 따로 제어해야 하고, OOD 신호 시 저비용 입력 스트림을 먼저, 생성은 그 다음에 켜는 계단식이 자연스럽다.
FastWAM(리더보드, 같은 8 task 74.1/0.9) 대비: RGB만 보는 action_rgb도 clean +14.5 → 추론 입력이 아니라 학습 목표(DINO/pointmap 예측 + cross-modality forcing)가 만든 표현 차이. 논문 ablation(+DINO +6.8, +pointmap +20, forcing 제거 −21)과 일치. 리더보드 FastWAM은 6 task clean<50, random 41/50이 0.

4 Takeaway

의미

비디오 사전학습 백본(Wan2.2) + clean 50 demo만으로 in-distribution(c2c) 모방은 리더보드 최상위(90 vs 83)를 넘는다. 반면 c2r 51은 randomized 데이터 없는 학습의 구조적 한계다. 리더보드 관점에서는 "검증된 등재 수치"가 아니라 "자체 하네스 재현치"로만 인용해야 한다.

연구 관점에서 더 중요한 건 P-C: 논문의 "world-model stream은 test time에 불필요(near-saturation)"는 full-data·in-distribution 조건의 결론이다. 같은 ckpt를 분포이동 아래 두면 world-model stream이 +16.2 pt(50 task, 100 ep)를 만들고, in-distribution에서는 +0.7 pt로 무의미하다. world-model compute의 가치가 task가 아니라 분포이동 여부에 달려 있으므로, adaptive regime의 트리거는 "지금 OOD인가"를 읽어야 한다. clean을 감지해 action-only로 내리면 정확도 손실 없이 지연 34% 절감이 oracle 상한이다.

5 Next Steps

P-B / E0′

중간 regime(DINO/pointmap만 생성)과 oracle-gap 실험을 같은 ckpt·프로토콜로(regime당 ~100 GPU-h). OOD 트리거 신호 후보(첫 DiT block cos-sim, HBridge 통계)의 clean vs random 분리도를 추가 학습 없이 로그로 측정.

리더보드 정합

OIDN 2.3.x drop-in으로 디노이저를 맞춘 8 task × 100 ep 재평가로 optix 효과 정량화. XPolicyLab 인터페이스 실제 제출 여부는 사용자 결정.

운영

extra QOS 대규모 평가는 preempt 11회/13.7 h — own quota가 비는 시점에 제출하거나 sbmr 재시도 한도 10으로.