← Index
2026-09-29 — Experiment

GPT-Policy 하네스 latency / 비용 실측 — FurnitureSim one_leg

GPT-Policy | gpt-6-astra (effort medium) | job 165393 | 30 decisions

TL;DR

9.6s
mean decide
13.8s
p90 decide
$3.72
30 decisions
0
reward

1 배경 / 목적

RoboTwin / FurnitureBench 평가 전에 하네스 구조와 decision당 latency·비용을 파악. 기존엔 2-decision 스모크(9.2s/8.2s, $0.28)뿐이라 컨텍스트 누적과 refresh 효과를 몰랐음.

2 작업 내용

루프: 관측 → agent.decide() (도구 1개) → ToolExecutor.execute() (settle까지 블로킹), 순차 provider: codex app-server (기본), claude --print stream-json, gemini --acp — 네이티브 도구 전부 off Codex: live_image_window=8 초과 시 새 스레드 + 텍스트 히스토리 replay 백엔드: 미커밋 furniture_bench (Isaac Gym child process, 모델 호출 중 physics 정지) 추가: configs/tasks/furniture-one-leg.json, configs/examples/furniture-bench-latency.json (max_decisions 30) 제출: sbatch --qos=own --time=00:50:00 scripts/run_furniture.sbatch --input-json configs/tasks/furniture-one-leg.json

3 결과

항목값
LLM decidemean 9.6s / median 9.6s / min 6.1s / max 16.0s / p90 13.8s, 합계 288s
도구 실행합계 ~102s; move_to 1–6s, move_eef_chunk 4–13.5s, check_path·locate_point <1s
관측 준비+기록<0.05s / step
job wall7m17s (시뮬 기동 ~45s 포함)
토큰input 1.236M (cached 80%), output 4,992
per-call input19K → 스텝당 +3.1K → refresh 직전 ~61K
refresh 턴 (step 8/15/22/29)cache miss, $0.29 / $0.35 / $0.30 / $0.49 (일반 턴 ~$0.08)
태스크success false, reward 0 — check_path IK 실패 3회, 삽입 저항·탁판 밀림 후 give_up
버그: give_up 후 return_home에서 TrajectoryIKError (residual 0.79mm / 0.0102rad) → job FAILED. 에피소드 데이터는 보존.

4 Takeaway

decision당 ~10초씩 멈춰서 생각하는 구조. 시뮬은 physics가 멈추므로 latency가 성능엔 무관하고, 평가 병목은 비용과 wall time (100 step ≈ 20분, $12+). refresh 비용은 히스토리 길이에 비례해 증가.

5 Next Steps

수정

furniture_bench return_home IK 허용오차/경로 확인.

실험

one_leg + 데모(video+action) 성공률·비용 변화; RoboTwin 양팔 어댑터; 평가 예산 확정 (태스크 × seed × $4–12).