Index
2026-08-20 — Experiment (Task N11)

ckpt 쌍 비교 — aux 재학습이 pick을 올렸나

scene_bench | part1 vs mixv2 × 5씬 × {pick, pnp} × n=3 | 시드 고정으로 30/30 동일 과제 | zed2

TL;DR

8→13
pick /15
5–0
pick 정면 대결
16 vs 19
전체 /30
30/30
동일 과제 (시드 검증)

1 시드 고정 — 이번 비교가 이전과 다른 이유

N7·N8에서 ckpt 비교의 최대 교란은 unseeded 과제 재샘플이었다 — 같은 house라도 매번 다른 물체가 뽑혀서, SR 차이가 모델 차이인지 물체 난이도 차이인지 구분되지 않았다.

최초 구현(호출 직전 ambient RNG 시드)은 무효였다: BaseMujocoTaskSampler.__init__ 이 seed_task_sampling(config.seed or 랜덤)으로 전역 RNG를 덮어쓴다 (task_sampler.py:311-314) → cfg.seed(config 레벨)로 교체. 메커니즘: 행마다 새 sampler → _task_counter=0 → 결과는 house 로드 시 np.random.shuffle의 첫 원소로 결정되고, 그 셔플이 소비하는 numpy 상태를 cfg.seed가 고정한다. 검증: 통합테스트 4종 + 30행 traversal을 독립 프로세스 2개에서 실행해 시퀀스 완전 일치
실측 검증: 두 ckpt의 30개 셀에서 pickup UID가 30/30 일치. 이제 SR 차이는 온전히 모델 차이다.

2 결과

ckpt전체pickpnp
part1-20k (구)16/308/158/15
mixv2-20k (aux 재학습)19/3013/156/15

같은 과제 정면 비교 (승패가 갈린 셀만)

스킬mixv2 승part1 승판정
pick50mixv2 완봉 — h290 bowl, h375 remote, h446 bowl, h640 ladle, h640 pen
pick_and_place46무승부 (노이즈 범위)
동률15셀
패턴이 깨끗하다: part1이 이긴 6셀은 전부 pick_and_place다. aux(Pick part0, weight 0.2)가 pick을 끌어올리고 pnp에서 약간 손해를 본 구조와 정확히 일치한다.

3 운영 기록 — 만석 클러스터에서 완주하기

클러스터 0/120 만석, 사용자 own 쿼터도 8/8 사용 중 → extra/own 모두 대기 → share 풀(1장 여유)로 선행 투입 (사용자 승인) → 선점 2회 (part1 19:30, mixv2 21:00) — share에서는 정상 동작 → 감시 스크립트가 행 단위 재개로 자동 재제출 (상한 10회, 완료 행 delta 기반 중단 조건) → 양쪽 30/30 완주. 선점당 손실 = 진행 중이던 1행(~5분)뿐

부수 교훈: sacct CANCELLED elapsed 00:00은 선점이 아니라 운영자 취소일 수도 있다 — 이번에 구현자가 잘못된 시드 구현으로 GPU를 낭비하지 않으려고 스스로 취소한 사례가 있었고, 컨트롤러가 이를 스케줄러 문제로 오진했다. 원인 귀속은 소유자에게 확인할 것.

4 판단과 다음

판단

"aux로 pick을 높인다"는 학습 쪽 목표는 달성됐다. 그리고 이번 라운드의 더 오래 남을 성과는 시드 고정이다 — n=3이라는 작은 표본에서도 5-0 같은 판정이 가능해진 것은 두 모델이 같은 문제를 풀었기 때문이다. 앞으로 모든 ckpt 비교의 기본값으로 삼는다.

#다음
1pnp 개선 — aux 비중 재조정 또는 pnp 특화 데이터 검토
2물체 고정 회귀 세트(egg·soapdispenser·저조도 h446)를 시드 세트에 편입
3벤치 카메라로 FT한 ckpt가 나오면 동일 매트릭스(zed2 주 + bench 참고)로 재실행