본문 바로가기

부스트캠프 AI Tech

[WEEK 17-18] Product Serving

Batch 패턴

- 실시간성이 필요 없는 경우에 주기적으로 예측 결과를 DB에 저장

- Job Management Server : 작업을 실행하는 서버, Apache Airflow 등을 주로 사용

- API 서버를 개발하지 않아도 되지만 별도의 스케줄러 필요

Web Single 패턴

- API 서버 코드에 모델을 포함시킨 뒤 배포

- 이 패턴을 기본으로 삼고 이어지는 패턴들을 적용

Synchronous 패턴

- 하나의 작업이 끝날 때까지 다른 작업을 시작하지 않고 기다림

- 대부분의 REST API 서버

Asynchronous 패턴

- 하나의 작업을 시작하고, 결과를 기다리는 동안 다른 작업을 함

- Queue : 메시지 시스템, Apache Kafka

- 클라이언트와 예측 프로세스가 분리되어 의존적이지 않음

Anti Serving 패턴

- 권장되지 않는 패턴

- Online Bigsize 패턴 : 실시간 대응이 필요한데 예측이 오래 걸리는 모델 사용하는 경우

- All-in-one 패턴 : 하나의 서버에 여러 예측 모델을 띄우는 경우

 

모놀리스 아키텍처

- 하나의 큰 서버

마이크로서비스 아키텍처

- 작은 여러개의 서버

REST API

 

CI/CD

- Continuous Intergration, 지속적 통합 : 빌드, 테스트 자동화

- Continuous Deploy/Delivery, 지속적 배포 : 배포 자동화

배포 주의할 점

- Docker 이미지 : 사이즈가 큰편, 호스트 머신의 디스크 용량 관리 필요

- 모델 버저닝

- 모델 아티팩트

Github Action

- Workflow : 여러 Job으로 구성되고 Event로 Trigger(실행)되는 자동화된 Process

- Event : Workflow를 Trigger하는 특정 활동, 규칙

- Jobs : Runner에서 실행되는 Steps의 조합

- Steps : Job에서 실행되는 개별 작업

- Actions : Job을 생성하기 위해 여러 Step을 묶은 개념

- Runner : Workflow가 실행될 서버

 

MLflow

- Experiment Management & Tracking

- Model Registry

- Model Serving

- mlproject, experiment, run, autolog, parameter

OFFLINE 모델 평가

- Hold-out Validation

- K-fold cross validation

- Bootstrap resampling

ONLINE 모델 평가

- AB Test

- Canary Test

- Shadow Test

'부스트캠프 AI Tech' 카테고리의 다른 글

[WEEK END] Generative AI  (0) 2024.04.30
Hand Bone Image Segmentation 트러블 슈팅  (0) 2024.02.19
[WEEK 14-16] Semantic Seg  (0) 2024.02.05
글자 검출 프로젝트 트러블 슈팅  (0) 2024.01.22
[WEEK 12-13] CV Data-Centric  (0) 2024.01.22