Index
2026-09-21 — Plan

resume · routine 온라인 컨트롤 트랙 착수 — 준비도 감사와 routine 계획

scene_bench | VLM 읽기 답 계획형(실험 2 조건) · 코드 변경 0 · API $0

TL;DR

863
routine 칸
$212
routine API 견적
467
GPU-시간
256
resume 칸(resume_ok)
0.175
restore 실측 SR

1 배경 / 목적

온라인 컨트롤을 GT 계획이 아니라 VLM 읽기 답으로 돌린다는 방침(실험 2 조건) 아래, 4가족 중 아직 한 행도 못 돈 resume(type2)·routine(type3)을 착수한다. 핸드오프 문서는 “씬 재구성 3일 + 사용자 결정 3건”이라고만 적혀 있어, 무엇이 이미 되어 있고 무엇이 진짜 없는지를 파일 단위로 확인하지 않으면 계획을 세울 수 없었다.

기존 한계: type2/type3 상태 파일의 추적 물체가 거의 전부 데이터 생성기 주입 바디(t2a0_Apple_13, h1_Tomato_10 …)라, 하네스 씬에 없어 복원 게이트가 1/9 · 0/11 로 실패한다.

2 작업 내용

두 갈래 탐색(온라인 파이프라인 전수 맵 / 읽기 결과 스키마)을 병렬로 돌리고, 그 위에 데이터셋 원본과 실행 중인 restore 본 런의 실측 행을 직접 대조했다. 견적을 문헌값이 아니라 지금 돌고 있는 잡의 실측에서 뽑은 것이 핵심이다.

근거 파일 src/sbench_exec/online_plan.py:110,131 plan_texts 의 resume·routine 분기 (이미 존재) src/sbench_exec/online_planner.py:263 press 프롬프트 (resume 용, 260915 작성) src/sbench_exec/online.py:120,278,282,891 가족 하드 게이트 src/sbench_exec/plans.py:66 answer_scoring — "result" 미처리 tmp/exec_online/main_restore_s*.jsonl 실측 365행 (칸당 비용·초)

3 결과

3.1 이미 되어 있는 것 — 핸드오프에 안 적힌 공짜

항목근거
plan_texts 에 resume·routine 분기가 이미 있다online_plan.py:110(resume: unfinished[]→r개 unit 줄), :131(routine)
press 프롬프트가 resume press_button 용으로 이미 작성됨online_planner.py:263-266 (260915)
방 이름 = scene card, 159집 결손 0resume 100집 + routine 59집 전수 확인
read_answer_key 가 resume 만 컷 프레임을 키에 넣음online_plan.py:60
resume 질의에 budget_steps·start_state: cut_NN.npz·pending[]실측 1771 / 7818
제출·샤딩·babysitter·COST_CAP 이 가족 파라미터화tmp/plan_main/submit_shard.sh

3.2 진짜 막는 것

routine — 핸드오프에 없던 결함 2건: ① budget_steps 가 314행 전부 null → dataset_step_budget 이 None 을 돌려주어 SR@예산 규칙이 성립하지 않고 턴 상한이 고정값(20/30)으로 폴백. ② answers[].scoring == "result" 는 answer_scoring 의 알려진 값이 아니라 pick 으로 떨어진다 — routine 성공은 surface_uid 위 place_on 이어야 한다.
resume — 구조적 벽: 질의에 answers[] 자체가 없어 _plans_for_query(online.py:277)가 KeyError로 죽는다. pending[]→GT 답 어댑터를 새로 써야 하고, visit_rooms(62엔트리, resume_ok 칸의 19.5%)는 verb도 채점도 없다.
가족 플러밍 7곳: --v1-families choices · V1_FAMILIES · build_online_system_prompt 의 ValueError · task_family = "find" if auto_release else "restore"(불리언 역추론이라 3번째 가족을 표현 못 함) · restore/else 2분기 · _gt_answer_loc · press 미배선.

3.3 규모 — 실행 중 restore 본 런 365행 실측 기반

칸당 1답 $0.184 / 1300 s, 2답 $0.251 / 2107 s, 3답 $0.315 / 2678 s → 한계 단가 답 1개당 +$0.066 / +690 s.

가족칸편질의평균 답/단위APIGPU-시간
routine (place_set=1, 누출 제외)8631002611.94≈$212≈467
├ routine_direct6961.00≈$128≈251
└ routine_multi (3~11답)1675.9≈$84≈216
resume resume_ok256871272.45≈$72≈164
resume tasks_ok497931422.57≈$143≈329

전략별 routine 칸: textlog 235 · tagmem-r3 188 · rf-v3 168 · frames 160 · vis-pure 89 · blind 23.
전략별 resume(resume_ok): textlog 127 · tagmem-r3 34 · vis-pure 32 · rf-v3 28 · frames 25 · blind 10.

3.4 SR 전망 — 지금 지표로는 0 이 나온다

실행 중 restore 본 런 성공률 0.175(365행, 1답). 1답이 그 수준이면 routine_multi(평균 5.9답, 최대 11)와 resume multi(잔여 최대 5)는 SR ≈ 0 이 거의 확정이다. 실험 3 이 이미 같은 이유로 주지표를 내렸다(restore multi SR 0/47).

4 Takeaway

세 줄 요약

① 핸드오프의 “3일”은 씬 재구성에만 해당한다. 그 위에 routine 은 플러밍 ~1.5일, resume 은 새 설계(GT 어댑터 + visit_rooms 채점 + press 배선 + data_rev 분리)로 +2∼3일이 더 붙는다.

② “routine 먼저”는 맞다 — 근거가 더 강해졌다. routine 은 상태 파일이 final.npz 하나라 컷 일반화가 아예 불필요하고, 답 형식·verb·채점이 restore 와 같다. 즉 routine = restore + 씬 재구성.

③ 그런데 비용은 routine 이 3배다(≈$212/467h vs ≈$72/164h). 비용 축은 routine_multi 167칸 하나가 지배한다(전체의 40%).

위험 하나 해소: tmp/plan_main/src_w1·src_w2 는 심볼릭 링크가 아닌 동결 실사본이고 이미 라이브 src/ 와 다르다 → 라이브 src/ 편집은 실행 중 find·restore 잡(11잡)에 영향이 없다. 스냅샷 디렉토리만 불가침.

5 확정된 결정과 다음 단계

사용자 결정 4건 (260921)

#항목결정
D1범위·순서routine 먼저, resume 은 그 다음
D2routine 스텝 예산restore 식 오라클 재계산 (데이터셋 null)
D3routine_multi포함하되 per-answer GC 로 판정
D4헤드라인 지표SR → per-answer GC + execute-state 전환, SR@예산은 병기

단계별 계획

단계내용기간GPUAPI
P0셀 파일 863칸 · 예산 계산기 · 채점 분기 · GC 정의 · plan dry-run 게이트0.5일0$0
P1씬 편집 매니페스트 100 컨텍스트 (sbatch 배열, --qos=extra)1일100잡$0
P2src 통합 — scene_edit 훅 · 임의 state/frame · synth_meta · 가족 플러밍1일0$0
P3전수 검증 — 복원 게이트 + 안착 drift(≤1 cm) + freeze keep/freeze A/B0.5일200잡$0
P4파일럿 10칸 (direct 7 + multi 3)0.5일~4h≈$3
P5본 런 863칸 (8샤드, --qos=own, 일일 ≤$80)3~4일≈467h≈$212
승인이 필요한 지점은 두 곳뿐: P4 진입($3), P5 진입($212). P0–P3 은 전부 $0 이라 승인 없이 진행 가능.

이후 — resume 착수 전 남은 결정 3건

① 온라인 셀 기준 키 — resume_ok(256) / remaining_ok(298) / tasks_ok(497)
② visit_rooms 온라인 성공 판정 — verb·채점 모두 신규 (resume_ok 칸의 19.5%)
③ data_rev 분리 — 누름 34편 55행은 fd856246(컷 프레임 이동) 루트 분리 or 제외

기술 결정 freeze 정책(keep vs freeze) 은 사용자에게 묻지 않고 P3 에서 측정으로 결정한다 — 스파이크가 미검증으로 남긴 항목이라 안착 drift 와 PickAndPlace 샘플러 가용성을 A/B 로 잰다.