BentoML 시작하기
BentoML 시작하기
BentoML로 첫 모델 서빙을 시작하는 흐름을 보여드릴게요. 설치부터 Service 정의, Bento 빌드, 배포까지 한 번에 살펴봐요. 인프라에 신경 쓰지 않고 모델 추론을 API로 빠르게 내보내는 데 집중할 수 있어요.
설치하기
BentoML은 PyPI에 Python 패키지로 배포돼요.
# Python 3.9+
pip install bentoml
설치가 끝나면 바로 Service를 만들 준비가 돼요.
Service 정의하기
모델 추론 로직을 Service로 정의해요. @service.api 데코레이터로 입력·출력을 API로 노출시켜요. 이렇게 만든 Service는 HTTP 엔드포인트로 제공돼요.
import bentoml
from bentoml.io import JSON
@bentoml.service(
resources={"gpu": 1},
traffic={"timeout": 60},
)
class MyModelService:
def __init__(self):
# 모델 로드
self.model = load_model()
@bentoml.api
def predict(self, input_data: JSON) -> JSON:
result = self.model.predict(input_data)
return {"result": result}
Bento 빌드하기
Service를 정의하고 나면 bentoml build로 Bento를 만들어요. Bento에는 Service 코드, 모델, 의존성, 설정이 모두 포함돼요. 이 Bento 하나가 배포 가능한 단위예요.
bentoml build
빌드가 끝나면 bentoml list로 만들어진 Bento를 확인할 수 있어요.
로컬에서 서빙하기
만든 Service를 로컬에서 바로 실행해 API를 호출할 수 있어요.
bentoml serve MyModelService:latest
그러면 로컬에 HTTP 서버가 떠서, 정의한 API 엔드포인트로 추론 요청을 보낼 수 있어요.
배포하기
Bento를 컨테이너나 BentoCloud로 배포할 수 있어요. 도커로 실행하려면 Bento를 컨테이너 이미지로 컨테이너화하고, 클라우드에서는 한 번의 커맨드로 배포할 수 있어요.
BentoCloud에 배포하면 자동 확장, GPU 지원, 모니터링 같은 프로덕션 기능을 바로 쓸 수 있어요.
다음 단계
모델 추론 로직을 더 세밀하게 만들고 싶다면 Online API Service 문서를, 대규모 배포는 GPU 추론·자동 확장 문서를 참고해요.