dict[str,float] 파싱은 --data.auxiliary-dataset-paths <p> <w>를 반복하면 마지막 항목만 남긴다 (파싱 테스트로 확정). README 레시피의 반복형 표기가 이 tyro 버전에서 잘못된 형식 — 83196은 사실상 main 0.85 + Color 0.15 학습 (의도치 않은 ablation)Phase 2 aux mixture 학습(job 83196, main 0.35 / Pick 0.2 / PnP-p0 0.1 / NextTo 0.2 / Color 0.15, 20k step)이 12:19:53만에 COMPLETED로 종료되었고, 이어진 5종 rollout eval 결과 첫 배치가 나왔다. 그런데 10k Pick 3.5% / 20k NextTo 9.5%로, Phase 1(part1-only, 미학습 태스크) 수준인 Pick 7.5% / NextTo 10.5%보다 오히려 낮거나 비슷했다 — aux 데이터를 추가했는데 미학습 태스크 성능이 그대로인 것은 mixture가 의도대로 반영되지 않았을 가능성을 시사했다.
train_pi05_mlspaces.sh)는
MolmoBot-Pi0 공식 README의 aux 레시피 표기를 그대로 따랐으나, 실제로 5종 데이터셋이 전부 로드되는지 검증하는
단계가 없었다. sacct COMPLETED가 성공을 보장하지 않는다는 기존 함정(§확립된 함정 목록 1번)과 유사하게,
"학습이 끝까지 돌았다"와 "의도한 데이터로 돌았다"는 별개임이 이번에 드러남.이상 eval 결과를 계기로 83196 학습 로그를 역추적했다.
학습 로그에서 데이터 로더가 출력하는 "Using ... houses" 시그니처(로드된 데이터셋 소스를 나열)를 확인한 결과, main(38,789)과 Color(5,326) 두 종뿐이었다 — 원래 의도한 Pick / PnP-p0 / NextTo 3종이 로드되지 않은 상태로 20k step 전체가 학습된 것.
tyro CLI의 dict[str,float] 인자 파싱 방식을 직접 테스트로 확정했다:
MolmoBot-Pi0 README의 레시피 표기(반복형)가 이 tyro 버전에서는 잘못된 형식이었다. 83196은 결과적으로
main 0.85 + Color 0.15만 학습한 셈 (Pick/PnP-p0/NextTo 3종 완전 누락).
train_pi05_mlspaces.sh를 단일 플래그 형식으로 수정 + 경고 주석 추가pi05_mlspaces_mainColor_accidental로 개명, 15000/20000 스텝만 보존하고 나머지 삭제 (60GB 정리)| Job | 실제 학습 데이터 | State | Elapsed | 비고 |
|---|---|---|---|---|
| 83196 (pi05mix) | main 0.85 + Color 0.15 2/5종만 | COMPLETED | 12:19:53 | 의도치 않은 ablation, ~98 GPU-h 소모 |
| 84260 (pi05mix2) | main 0.35 / Pick 0.2 / PnP-p0 0.1 / NextTo 0.2 / Color 0.15 5종 검증됨 | RUNNING | 02:25:03 (보고 시점) | 파싱 검증 로그 추가 |
| 모델 | Pick (10k) | NextTo (20k) | 비고 |
|---|---|---|---|
| Phase 1 (part1-only) | 7.5% | 10.5% | aux 미포함 baseline |
| 83196 (main+Color 0.15) | 3.5% | 9.5% | Color 추가에도 미학습 태스크 개선 없음 |
dict[str,float] 파싱이 반복 플래그의 마지막 값만 취하는 동작
때문 (README 레시피 표기 오류). 학습 자체는 정상 종료(sacct COMPLETED)라 결과 확인 전까지 문제를 알 수 없었음.학습 설정 파싱 오류가 12시간 20분(8 GPU 기준 약 98 GPU-h) 규모의 학습을 통째로 무효화시켰다 — sacct COMPLETED나 loss 곡선만으로는 "의도한 설정대로 학습되었는지"를 보증하지 못한다는 것이 재확인됨(기존 함정 목록 1번의 연장선). 특히 tyro 같은 CLI 파서의 반복 플래그 dict 병합 동작은 라이브러리별로 다를 수 있어, README 레시피를 그대로 신뢰하기보다 실제 파싱 결과를 스크립트 실행 초입에 로그로 남겨 검증하는 습관이 필요함을 보여준 사례. 이번 조치(로드 데이터셋 검증 단계)로 동일 클래스의 설정 버그는 학습 시작 직후 조기에 잡을 수 있게 됨.
84260 재제출 시점 기준 아직 학습 진행 중(2:25:03 경과, 20k step 목표) — 파싱 검증 단계가 실제로 5종 전부를 확인하는지는 로그 확보 후 재확인 필요. 또한 이번 사고로 잘못된 eval job들이 다수 취소되어 (mx15kNext/mx10kPnP/mx10kNext/mx50k*) 15k/50k 배수 ckpt에 대한 재현 가능한 비교 데이터가 비어 있음.
84260 완료 후 5k 배수 ckpt(5k/10k/15k/20k)에 Pick/PnP/NextTo/Color 4개 벤치 전체 rollout eval을 own 분할 잡으로 제출해 Phase 1(part1-only) 대비 진짜 mixture 효과 A/B 표를 완성한다. 가설: aux 4종이 모두 반영되면 Pick/NextTo/Color가 Phase 1 대비 유의하게 상승하되, main-heavy 태스크(PnP)는 48.5% 근처를 유지할 것으로 예상.