콘텐츠로 이동

정책의 생애주기

run(학습) → candidate → 평가 → 게이트 → 승인 → validated → 롤아웃 → deployed → retired. 건너뛰는 길은 없다.

런 — ② 학습

콘솔 런 → 런 제출. Argo train 워크플로가 실행된다.

단계 하는 일
clone 저장소를 git_ref 로 받아 commit hash 를 고정
resolve config 해석·hash, dvc pull·dvc.lock hash, 파드 imageID 로 이미지 digest. MLflow run 생성. 네 값 중 하나라도 없으면 중단
train-teacher GPU 1장에서 train.py. 체크포인트를 $CKPT_DIR 에 저장하고 MLflow 에 업로드. 선점·장애 시 최신 체크포인트에서 재개
finalize 최종 체크포인트로 레지스트리에 버전 생성, 태그 stage=candidate

결과는 candidate 정책 하나. 학습 곡선만 있고 쓸 만한지는 아직 모른다. sweep 을 지정하면 train-teacher 대신 Ray Tune 이 돌고 최적 trial 이 candidate 가 된다 (스윕).

평가 — ③ 전반부

콘솔 정책 → 평가. Argo evaluate-promote 워크플로.

단계 하는 일
prepare 런 태그에서 commit·config 를 읽고 최종 체크포인트를 받는다
evaluate evaluate.py 로 suite 의 시나리오 × 시드 5개 롤아웃 → report.json. 런 아티팩트 eval/<suite>/
regression-check 게이트. gate.required 최소치 미달, 또는 현재 validated 와 비교해 유의한 하락(Welch t-test p<0.05, 효과 크기 임계 suite 명시) 이면 실패
export export.pypolicy.onnx + io_spec.json. ONNX Runtime 으로 1000 스텝 지연 측정, 1000/control_hz ms 안이어야 통과
approve 프로젝트가 수동 승인이면 여기서 멈춘다 (suspend)
promote validated alias 를 이 버전으로

게이트 결과는 정책 행의 gate 배지와 report 모달(사유 포함)에 보인다. 실패한 candidate 는 그대로 남고 재평가할 수 있다.

승인 — ③ 후반부

사람의 결정. 콘솔 정책 → 승인 / 거부. 승인 다이얼로그에 리포트 요약이 뜬다.

  • RLflow DB 에 결정(누가·언제·사유)을 기록한 뒤 MLflow alias 를 바꾼다. 둘 중 하나가 실패하면 결정을 되돌린다.
  • validated 는 프로젝트당 1개. 이전 validated 는 candidate 로 내려간다.
  • validated 정책이 다음 평가의 회귀 비교 기준이 된다.

롤아웃 — ⑤ 실기

validated 정책만 시작할 수 있다. 콘솔 롤아웃 에서 순서대로 체크한다.

  1. 벤치 — 로봇 고정, 관절 명령 한계 50%, 안전 래퍼 동작 확인
  2. 테더/보호구 — 정상 한계, 사람 감독
  3. 제한 공간 — 무감독 반복, 텔레메트리 수집
  4. deployed — 이전 deployed 는 retired 로 이동

각 단계에 담당·시각·비고가 남는다. 순서를 건너뛰면 거부된다.

롤백

콘솔 정책 → 롤백. 현재 deployed 를 retired 로, 직전 retired 를 deployed 로. 사유를 기록한다.

단계의 진실

단계의 유일한 진실은 MLflow Model Registry 다. 버전 태그 stage 와 alias validated·deployed. RLflow 는 결정을 기록하고 alias 를 바꾸며, MLflow UI 에서 직접 바뀐 경우 5분 안에 감지해 이벤트로 남긴다 (되돌리지 않는다). 상세: ADR.