Index
2026-09-10 — Engineering

molmo-augment press 트랙 전량 데이터 준비 완료

MolmoBot | 다운로드→추출→index/stats 파이프라인

TL;DR

10,129편
학습 가능 (press+washer)
61GB
shard 31개
1m35s
재실행 (114403)

1 배경 / 목적

사용자 지시: "press는 세탁기 건조기 받아야지 그럼.. press 다 쓸 수 있게 ㄱㄱ". 09-08 조사(research-molmo_augment_press.md)에서 press 트랙(가전 버튼 누르기, 11,070편/65.2GB/shard 31개) 스키마는 확인했지만, 당시 로컬에는 shard 3개(227채)만 있어 실제 학습에는 투입할 수 없는 상태였다. 전량 다운로드와 학습 가능한 index/stats 파이프라인 완성이 필요했다.

기존 한계: press/washer 두 데이터셋이 원본에서 같은 트랙으로 묶여 있어 집 번호가 85개 충돌 — open/close와 같은 sensor_data 공백 문제도 반복될 것으로 예상됨.

2 작업 내용

1) tmp/download_press_all.py — shard 31개 로컬 다운로드 (이미 받은 3개는 skip, ~24s/shard) 2) scripts/split_press_index.py (신규) — press 트랙 index를 press/ washer/ 두 config로 분리 집 번호를 house_<idx> 로 정규화, 벤치 held-out 200채 제외 (85개 번호 충돌로 분리 필수) 3) scripts/prep_press.sh (신규) — 파이프라인 순서: 추출 → index 분리(split_press_index.py) → build_openclose_index.py(valid_trajectory_index) → fix_openclose_sensor_data.py(빈 obs/sensor_data 채우기) → calculate_stats.py(aggregated_stats) → MolmoBot 레이아웃용 mb/{press,washer}/train 심볼릭 4) 제출: own 1 GPU / 24 CPU / 200GB (job 114400) — 다운로드 완료를 기다렸다 자동 제출 (tmp/submit_prep_press_when_ready.sh)

대안 검토: press/washer를 한 index로 유지하는 방안도 있었으나 집 번호 충돌(85개)이 build_openclose_index.py의 키 기반 조회를 깨뜨리므로 분리가 필수였다.

3 결과

항목presswasher합계
학습 가능 집1,373채708채2,081채
학습 가능 편7,466편2,663편10,129편
sensor_data 채움2,723파일 / 44,796개 항목708파일 / 15,978개 항목—

경로: pi0.5 ~/Dataset/molmo_augment_press/{press,washer}, MolmoBot ~/Dataset/molmo_augment_press/mb/{press,washer}. stats 키는 actions/joint_pos/{arm,gripper} 등 14종 정상 생성. 전체 11,070편 중 벤치 200편과 카메라/성공 조건 미달분을 제외한 수치.

로더 검증 통과: MolmoBot 로더(프롬프트 원문 확인, 관측 4장+goal 1장, 카메라 대체 0건), pi0.5 openpi 로더(배치 2개, base/wrist 224×224, state 32차원, action 16×32) 모두 정상.
실패 → 재시도: 1차 잡(114400)에서 분리 index 키를 house_15 형태로 썼는데, build_openclose_index.py가 키 앞에 house_를 한 번 더 붙여 house_house_15를 찾다가 전부 skip됨 → index/stats가 빈 채로 "COMPLETED" 상태가 됨. 키를 번호만 쓰도록 고치고 SKIP_EXTRACT=1로 재실행(114403)해서 1분 35초 만에 해결.

4 Takeaway

의미

press는 학습·평가 분포가 동일(4종: 커피머신·전자레인지·세탁기·건조기)해서 open에서 겪은 "학습-평가 물체 불일치" 문제가 구조적으로 없다. 전량이 학습 가능한 상태가 됐으니, press로 재학습했을 때 성능이 오르지 않는다면 데이터 분포 문제가 아니라 모델·학습량 문제로 해석할 수 있는 깨끗한 대조 실험이 가능해졌다.

운영 교훈: SLURM 잡이 COMPLETED 상태라도 산출물 개수(index 엔트리 수, stats 키 수)를 직접 확인해야 한다 — 키 불일치로 전부 skip돼도 파이프라인은 에러 없이 "성공" 종료된다.

5 Next Steps

미해결 한계

press 트랙 자체의 평가 벤치(FrankaPressButtonBench, 별도 engineering 카드로 구축 완료)는 로컬 shard 3개 기준 스모크만 검증됐고, 전량 데이터로 학습한 모델의 실제 성능은 아직 측정 전.

다음 실험

press 기준선 200편(pi0.5 place_oc 20k, MolmoBot no-goal 10k)으로 FrankaPressButtonBench 성능 측정 → press 비율 0.10을 얹어 재학습 → 같은 벤치로 before/after 비교.