AI 시스템 구축: 배포 방식 – BentoML
ㅁ 배포 방식
1. BentoML
ㅇ 정의:
Python 기반의 머신러닝 모델을 손쉽게 패키징하고 API 형태로 배포할 수 있도록 지원하는 오픈소스 프레임워크.
ㅇ 특징:
– 다양한 ML 프레임워크(TensorFlow, PyTorch, Scikit-learn 등)와 호환.
– 모델, 종속 라이브러리, 환경 설정을 하나의 배포 아티팩트로 패키징.
– REST API, gRPC 서버 형태로 손쉽게 노출 가능.
– 로컬, 클라우드, 컨테이너 환경(Docker, Kubernetes)에서 실행 가능.
ㅇ 적합한 경우:
– 데이터 사이언스 팀이 모델을 신속하게 프로덕션 환경에 배포해야 하는 경우.
– 모델 버전 관리와 재현성을 중요시하는 경우.
– 다양한 배포 환경(온프레미스, 클라우드)에 유연하게 대응해야 하는 경우.
ㅇ 시험 함정:
– BentoML은 학습 프레임워크가 아니라 배포 프레임워크임.
– Flask나 FastAPI처럼 API 서버를 직접 구현하는 것과 혼동할 수 있음.
– 모델 학습과 서빙을 동시에 수행하는 플랫폼은 아님.
ㅇ 시험 대비 “패턴 보기” 예시:
O: “BentoML은 머신러닝 모델을 패키징하고 API 서버로 배포하는 기능을 제공한다.”
X: “BentoML은 딥러닝 모델을 학습시키는 데 최적화된 프레임워크이다.”
ㅁ 추가 학습 내용
BentoML은 모델 배포 시 Service 객체를 정의하여 입력과 출력 데이터의 스키마를 명시하고, 이를 기반으로 예측 API를 자동 생성한다. bentoml build 명령을 사용하면 모델과 실행 환경을 함께 패키징할 수 있으며, bentoml serve 명령으로 로컬 환경에서 테스트가 가능하다. Kubernetes와 연동하여 확장 가능한 서빙 환경을 구성할 수 있고, 모델 저장소(Model Store)를 통해 모델을 버전별로 관리할 수 있다. 중요한 점은 BentoML이 모델 서빙과 배포 자동화를 지원하지만, 모델 학습 기능은 제공하지 않는다는 것이다.