머신러닝 딥러닝

[강화학습-14] 모델 배포 운영 – 저장·서비스·모니터링

Qcoding 2025. 5. 28. 17:50
반응형
14. 모델 배포 & 운영 – 저장·서비스·모니터링

14. 모델 배포 & 운영

강화학습 실험이 끝나면 ① 안전하게 저장② 저지연 추론 서비스③ 실시간 모니터링 세 단계로 프로덕션 파이프라인을 구성합니다.


14-1. 학습된 에이전트 저장·로딩

라이브러리저장로딩포인트
Stable Baselines3 model.save("ppo.zip") PPO.load("ppo.zip", env) env 스케일러·노말라이저도 자동 직렬화
PyTorch torch.save(net.state_dict(), "agent.pt") net.load_state_dict(...) 함수 정의 동일해야 함 (동일 클래스)
ONNX torch.onnx.export(..., "agent.onnx") ONNX Runtime / Triton 플랫폼 독립 · 초경량 추론

버전 관리 : Git Tag + model-v012.ckpt 식으로 모델/코드 일치 보장.
보안 : 민감 정책 포함 시 gpg 암호화·S3 버전 ACL 권장.


14-2. 실시간 추론 서비스 구성

TorchServe Diagram
그림 1. TorchServe – REST & gRPC End-point로 모델 서빙

FastAPI + TorchServe 3-단계

  1. 모델 패키징
    $ torch-model-archiver -f \
      --model-name cartpole --version 1.0 \
      --serialized-file agent.ts.pt \
      --handler handler.py
    
  2. Serve 실행
    $ torchserve --start --ncs \
      --model-store model_repo \
      --models cartpole.mar
    
  3. FastAPI 게이트웨이 (로직·Auth·캐싱)에서 POST /predictions/cartpole 호출 → {"action": 0}

Ray Serve — Auto-Scaling

@serve.deployment(route_prefix="/policy",
                  autoscaling_config={"min_replicas":1,"max_replicas":8})
class PolicySvc:
    def __init__(self):
        self.model = PPO.load("ppo.zip")
    async def __call__(self, request):
        obs = await request.json()
        action, _ = self.model.predict(obs)
        return {"action": int(action)}
PolicySvc.deploy()
  • 배치 추론 @serve.batch 데코레이터 한 줄로 FPS ↑.
  • AB Test / Canary : .options(name="v2").deploy()

14-3. 모니터링 & 성능 개선

레이어추천 지표도구
서비스 SLA P95 Latency, RPS, Error Rate Prometheus + Grafana, Datadog
모델 품질 온라인 Reward, Episode Len, Drift Δ Weights&Biases Live, MLflow
하드웨어 GPU Util·Mem, CPU %, I/O NVIDIA DCGM, cAdvisor
Prometheus Grafana RL Dashboard
그림 2. Grafana 대시보드 – Reward & Latency 동시 관측

성능 튜닝 체크리스트

  • 모델 최적화 : Torch 2 torch.compile() / TensorRT / ONNX Quantization
  • Batch & Action Cache : 5–10개 상태 묶어 추론 → GPU Util 2×
  • Autoscale 정책 : CPU ↑ 시 Replica 추가, GPU ↑ 시 Batch Size ↓
  • Drift Guard : Reward 5 %↓ → 자동 롤백 & 알람

14-4. 릴리즈 → 운영 체크리스트

#질문Yes?
1모델·코드·데이터가 동일 Git SHA로 태그?
2가드레일 (최대 속도·안전 제약) 이중검사?
3AB Test → Canary → Full Roll 순서?
4모니터링 알람 임계치 정의?
5재학습 트리거(Drift / KPI ↓) 자동화?

14-5. 요약

  • 모델 저장은 SB3 zip → TorchScript/ONNX 변환까지 세트로.
  • TorchServe (REST) ↔ Ray Serve (Autoscale) 두 가지 실시간 옵션.
  • Prometheus + Grafana 세트로 SLA·Reward·Drift 지표를 동시에 관측.
  • 문제 발생 시 롤백 → Hot Fix → 재배포 파이프라인 자동화로 운영 TTK(Mean-Time-to-Kludge) 최소화.

참고 링크

반응형