pack_bundle.sh 한 번 → 타깃에서 setup_target.sh 7단계 → run_shard.sh find|restore k. 하네스 인자는 본 런과 동일(DRY 대조).verify 통과: 스냅샷 sha · 프롬프트 384개 바이트 동일 · 모듈 71개 정합 · preflight find 750 / restore 740. 체크포인트 sha256 OK.uv.lock 과 어긋나 있어 uv sync 로 재구성하면 torch 가 cu126 으로 바뀐다(B200 불가). 그래서 freeze 기반 --no-deps 설치로 바꿨다.실험 3 을 재현하는 데 필요한 요소 대부분이 git 밖에 있다.
tmp/oracle_plan/src_main4 와 셀 파일이 git-ignored 다.목표는 다른 서버에서 같은 코드·데이터·체크포인트·모델 입력 바이트로 돌리는 것이다.
| 파일 | 역할 |
|---|---|
pack_bundle.sh | 원본 서버에서 스냅샷·셀·scene card·MolmoBot 패치(git diff origin/main + 미추적 tar)·env 동결 목록·매니페스트 4종(sha256·프롬프트 지문·md5·ckpt)을 싣는다 |
setup_target.sh | check · repos · conda(yml + pip freeze) · venvs(freeze, cu128) · data(HF 두 리비전, 157편) · assets · ckpt · verify |
run_shard.sh | submit_shard + worker + babysitter 를 합친 러너. 서버는 유지하고 하네스만 --max-episodes 단위로 재시작. SMOKE=1 이면 셀 1개 |
serve_policy.sh | serve_molmobot_goal.sh 와 같은 명령, 경로만 env.sh 에서 |
README.md | 구성요소 표 · 셋업 · 실행 · 집계 · 함정 11개 |
| 검증 | 결과 |
|---|---|
| 스냅샷 sha256(71 .py) | SNAPSHOT_SHA_OK |
| 프롬프트 패리티(--oracle-axes) | 384개 바이트 동일, 배선 파일 6개 동일 |
| 스냅샷 정합 | 모듈 71개 호출부 불일치 0 |
| preflight P5·P3 | find 셀 750·편 80 / restore 셀 740·편 77 OK |
| 체크포인트 | model.pt·config.yaml sha256 OK |
| MolmoBot 패치 | 33c0ca7 clone 에 적용한 결과가 원본 molmobot_pi0/·olmo/·config/·lock 과 동일 |
| env 해석(dry-run) | mlspaces pip 179 · MolmoBot 229 · Pi0 273 전부 해석, conda yml 해석 OK |
uv sync --frozen --dry-run 결과 MolmoBot 은 109개 제거·16개 설치(torch cu128→cu126), Pi0 은 65개 제거였다. 그래서 freeze 기반 설치로 바꿨다. 재해석을 하면 jax==0.5.3(override) 와 molmo-spaces 의 jax>=0.6.2 가 충돌하므로 --no-deps 를 쓴다.~/nltk_data 로 받는다(에어갭 안내에 반영).코드·셀·데이터·체크포인트·프롬프트 동일성을 타깃에서 기계적으로 확인할 수 있게 됐다. 칸 단위 결과는 원본에서도 비결정적(VLA flow 샘플링·VLM 응답)이다. 그래서 재현 판정 기준은 arm 간 짝비교 결론이 유지되는가로 정했다. 서버 env 를 재현하는 정본은 lock 이 아니라 freeze 다.
SMOKE=1 실측(≈$0.1, 승인 필요)