본문으로 이동
함께 구매하면 좋은 상품이에요! - 장바구니 추천 개발기 2부
문서

함께 구매하면 좋은 상품이에요! - 장바구니 추천 개발기 2부

최재형, 김수지, 이상협, 구국원 · 컬리 · 컬리 기술 블로그

원본 보기

소개

보완재 추천 모델을 서빙하기 위한 아키텍처 소개

AI 핵심 요약

장바구니 추천 모델을 실제 사용자에게 안정적으로 제공하기 위해 AWS EKS 기반 실시간 서빙 아키텍처를 구축하고, 서비스 API·모델 API·MLOps·모니터링·배포 흐름을 구성했습니다. BentoML과 TorchServe를 Locust로 비교해 TorchServe를 선택했으며, 지연시간 개선에는 부가 옵션보다 CPU 클록 속도가 중요하다는 점을 확인했습니다. 배포 중 502 오류와 첫 요청 지연을 해결하기 위해 Kubernetes의 PreStop과 종료 유예 시간으로 ALB 연결 종료를 조정하고, StartupProbe를 활용한 warm-up을 적용했습니다. Kubeflow, MLflow, ArgoCD, Datadog 등을 연결해 학습부터 배포와 관측까지 자동화했으며, 향후에는 사용자·상품 정보를 반영한 개인화 추천과 더 높은 실시간 처리 안정성을 과제로 제시합니다.

  • 서빙 프레임워크는 익숙함만으로 고르지 말고 Locust 부하 테스트로 실제 응답 시간을 비교하세요.
  • TorchServe의 지연시간을 줄일 때는 설정 옵션을 무작정 조정하기보다 CPU 연산 성능을 먼저 검증하세요.
  • ALB를 사용하는 Kubernetes 배포에서는 PreStop, 종료 유예 시간, ALB idle timeout의 관계를 고려해 종료 순서를 설계해야 합니다.
  • StartupProbe로 모델 초기화와 첫 추론을 미리 수행하면 배포 직후 첫 요청의 지연을 줄일 수 있습니다.
  • 모델 코드와 Kubernetes 매니페스트를 별도 레포지토리로 관리하면 학습·이미지 빌드·배포 흐름을 분리할 수 있습니다.