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 |