ML모델 서빙 프레임워크
<ML 모델 서빙 파이프라인>은 다음 3개의 파트로 나뉜다.
1. 데이터 파이프라인 : 실시간 or 배치로 데이터를 수집
2. 모델 파이프라인 : 모델을 학습시킴
3. 서빙 파이프라인 : 학습된 모델을 서비스로 서빙.
서빙 파이프라인에서는 또
3.1 전처리
3.2 추론
3.3 후처리
을 거쳐 사용자에게 결과를 전달한다.
서빙 파이프라인을 위한 "모델 서빙 프레임워크"에 대해서 정리했다.
모델 서빙 프레임워크 선정 기준
- Warm-up 전, 후 Latency 개선 여부
- 모델 저장소에 따른 업데이트 방식
- Concurrent model execution
여러 개의 모델을 같이 인퍼런스
하나의 모델을 여러 인스턴스로 실행시켜 병렬적으로 인퍼런스
하나의 모델을 여러 인스턴스로 실행시켜 병렬적으로 인퍼런스
- Dynamic Batch 성능 ( Triton )
- 안정성 : 장시간 인퍼런스 가동시 메모리 누수등의 이슈
*
링크의 포스팅에 따르면모델 서빙 프레임워크 비교를 위해
모델을 Tensorflow 모델로 고정해서 테스트했다.
다른 모델을 사용한다면 결과가 달라질 수도 있다.
*
모델 개발을 하는 머신러닝 리서치는 파이썬으로
모델 서빙 백엔드 개발자는 Kotlin+Spring boot로 서버를 개발했다.
*
모델별 최적의 포맷이 다른 상황은
여러 개의 모델을 서빙하는 인공지능 서비스에서
개발 생산성 저하와 운영의 부담을 가중시킨다.
여러 개의 모델을 서빙하는 인공지능 서비스에서
개발 생산성 저하와 운영의 부담을 가중시킨다.
모델 서빙 프레임워크
FastAPI
Python FastAPI는 거의 모든 기능을 직접 구현해야한다.
애초에 FastAPI는 ML 모델 서빙을 겨냥하고 만들어진 것이 아니라
애초에 FastAPI는 ML 모델 서빙을 겨냥하고 만들어진 것이 아니라
웹 애플리케이션 프레임워크이다.
Triton
Triton은 SaaS 같은 서비스가 아니라
오픈소스 소프트웨어다.
오픈소스 소프트웨어다.
Triton을 설치하여 모델을 서빙하기로 결정했다면
Triton에서 제공하는 API와 구조에 따라 서빙해야한다.
Triton에서 제공하는 API와 구조에 따라 서빙해야한다.
Rest API, gRPC를 지원한다.
Tesnorflow및 Triton은 서빙할 모델이 있다면
직접 서버를 구현하지 않아도
직접 서버를 구현하지 않아도
프레임워크의 규칙에 따라 손쉽게 모델API를 배포할 수 있다.
동일한 모델이라도
어떤 포맷으로 인퍼런스 최적화가 되었냐에 따라 성능에 차이가 있기 때문에
[ TF(tensorflow_savemodel), TensorRT, Onnx ] 등의
모델 포맷을 지원하는 Triton은
다양한 모델 포맷을 다루는 팀에서 적절한 선택지가 될 수 있다.
댓글
댓글 쓰기