Index
2026-08-21 — Analysis

FT-mix iter 1000 첫 중간 신호 — base 대비 사건 재현 개선, counterfactual 민감도는 하락

cosmos | WM 실패 물리 finetune, Phase 1 평가 (E1 v4 코호트 + E2 counterfactual, ckpt iter_000001000)

TL;DR

1/8
학습 진행 (iter 1000/8000)
−14%
every2 d_post (base→ft1000)
0.054→0.036
E2 suppress_release div (↓)

1 배경 / 목적

WM 실패 물리 finetune 플랜은 H1(실패 사건을 더 긴 horizon에서 재현)·H2(성공은 여전히 성공으로 통과)·H3(같은 맥락에서 액션이 다르면 결과도 다르게 그림)를 사전 등록했다. FT-mix 학습은 여러 차례 OOM/hang으로 재시작됐지만(별도 리포트: 학습 안정화 카드), iter_1000 체크포인트 자체는 88016에서 정상 저장됐으므로 이를 export해 base와 첫 비교를 해볼 수 있었다. 8000 iter 목표의 1/8 지점 — 최종 판정이 아니라 "학습이 옳은 방향으로 가고 있는가"의 조기 신호 확인이 목적이다.

선행 작업: base 기준선을 통일하기 위해 fd_replay_v4_lpips.py에 빈 구간 fallback(사건이 윈도우 끝이면 마지막 청크로 판정)을 추가하고 v4/v5/v6b/testB 4개 코호트를 같은 버전으로 재계산했다. v4 리포트에 실린 수치(e2 adv 85%/beats_copy 69%)는 구 버전 기준이라 이 리포트의 81%/50%와 다르다 — FT 비교는 전부 이 통일 기준으로 한다.

2 작업 내용

2.1 Export & 로드 검증

iter_000001000 DCP(137GB, model/optim/scheduler/trainer) → export_fd_ckpt.sh → HF 디렉토리(30GB, safetensors 7샤드 + checkpoint.json/config.json, 로그인 CPU ~4분) → …/fd_robolab_mix_v1/export/iter_000001000. fd_replay_run.py --checkpoint-path <HF export> 로드+생성 스모크(2ep×3chunk, 3분) 정상 확인 후 본 평가 제출.

2.2 base 기준선 통일 (4개 코호트)

코호트 (n)every2 adv/beats_copyevery4open_loop
v4 seen (48)81% / 50%50% / 8%19% / 0%
v5 block (24)83% / 54%50% / 4%42% / 0%
v6b contact (16)100% / 100%100% / 94%56% / 0%
testB unseen (24)71% / 38%33% / 4%46% / 0%

2.3 E1 — v4 코호트(n=48, LPIPS) base vs ft1000

E1-lite 88165(17.5분)로 every2 실행, 이어서 every4 실행. 5개 모드(ALL/drop/grasp_miss/stack_disturb/success) 별로 advanced/beats_copy/d_post 비교.

2.4 E2 — counterfactual (base에서 만든 편집 쌍을 ft1000으로 재실행)

같은 맥락·액션만 편집한 쌍: (a) suppress_release — release 사건 실패(drop/stack) 40쌍, 청크 6–7 그리퍼 닫힘 유지. (b) early_release — 성공 15쌍, 실제 배치 64스텝 전 그리퍼 열기. 둘 다 동일 8청크 윈도우·동일 재접지 프레임(N=2). 지표: div=LPIPS(P_real, P_cf)(편집에 반응한 정도), direction_ok(닫힘 유지→정지 쪽/조기 열기→변화 쪽), beats_copy, d_real(실제 액션 재현 정확도).

3 결과 (수치)

3.1 E1 every2 (n=48)

모드 (n)base adv/beats_copy/d_postft1000 adv/beats_copy/d_post
ALL (48)81% / 50% / 0.24881% / 56% / 0.213
drop (12)100% / 75% / 0.28783% / 92% / 0.253
grasp_miss (12)75% / 17% / 0.24975% / 25% / 0.192
stack_disturb (12)92% / 100% / 0.22592% / 92% / 0.211
success (12)58% / 8% / 0.19075% / 17% / 0.195

3.2 E1 every4 (n=48)

ALL: adv 50%→58%, beats_copy 8%→17%, d_post 0.342→0.309(−10%). drop: adv 42%→75%(beats_copy 8%→8% 변화없음, d_post 0.382→0.350). stack_disturb: adv 67%→50%(d_post 0.319→0.353, 악화). success: adv 33%→67%(d_post 0.310→0.274). open_loop은 미실행.

3.3 E2 counterfactual (N=2)

kind (쌍)지표baseft1000
suppress_release (40)div / dir_ok / beats_copy / d_real0.054 / 88% / 62% / 0.2070.036 / 78% / 70% / 0.194
early_release (15)0.171 / 80% / 40% / 0.1970.098 / 87% / 67% / 0.177
긍정 신호: 1/8 학습만으로 every2 d_post가 14% 줄고 drop beats_copy가 75→92%. success 쪽 악화 없음(H2 유지) — 낙관 편향으로 뒤집히지 않았다.
경고 신호: E2 div(액션 편집에 대한 반응성)가 base보다 줄었다(0.054→0.036, 0.171→0.098). 실제 액션 재현은 좋아졌는데 편집된 액션에 대한 구분력이 약해지는 것은 H3와 반대 방향.

4 Takeaway

의미

1/8 학습 시점에서 H1(실패 사건 재현)과 H2(성공 유지)는 방향성 상 긍정적이다 — drop beats_copy가 뚜렷하게 오르고 성공 쪽 낙관 편향도 안 보인다. 반면 H3(액션 편집 민감도)는 우려스러운 신호를 보인다: 실제로 일어난 액션의 재현 충실도(beats_copy, d_real)는 올라갔지만, 반사실적으로 편집한 액션에 대한 반응(div)은 오히려 줄었다. 이는 모델이 액션 채널의 신호보다 sim 장면 통계(사건 근처의 시각적 패턴)에 더 의존하는 방향으로 적응하고 있을 가능성을 시사한다 — 플랜에서 우려했던 "실패 데이터 기여가 아니라 단순 도메인 적응"(H4 기각 조건)의 조짐일 수 있다. stack_disturb의 every4 악화(adv 67→50%)도 아직 설명되지 않은 부분이다. 8000 iter 완료 전이므로 이 모든 결론은 잠정적이다.

5 Next Steps

미해결 한계

E2 div 감소의 원인 미확정 — 편집이 그리퍼 채널만 바꾸고(팔 궤적은 원본 그대로) 있어 이 자체가 모델에게 OOD 입력일 가능성도 배제 못 함. stack_disturb every4 악화(d_post 0.319→0.353) 원인도 미상. 표본이 여전히 작다(n=12/모드, E2 40/15쌍).

다음 실험

ckpt 2000/3000(88887 학습 진행 중, export+평가 잡 88843–88846 대기)에서 div 추세 추적 — 계속 줄어들면 "도메인 적응 부작용"으로 H4 판정에 반영. FT-succ(성공 데이터만 학습)에서 동일한 div 감소가 나오는지 대조 확인 — 나온다면 실패 데이터 때문이 아니라 sim 도메인 적응 자체의 부작용으로 해석. "release 후 팔 정지"처럼 팔 궤적까지 일관되게 바꾸는 편집 변형을 추가해 OOD 가설 검증. 병행: Phase 2용 물체 pose 로거 스모크 통과(4/4 ep, banana z 0.02→0.21 리프트 확인) 및 재수집 sweep 제출(88147–88150, NUM_ENVS=10, +1,200 ep 예상, grasp_miss GT 확보 목적) — 결과는 별도 리포트로 다룬다.