BentoML 시작하기

BentoML 시작하기

BentoML로 첫 모델 서빙을 시작하는 흐름을 보여드릴게요. 설치부터 Service 정의, Bento 빌드, 배포까지 한 번에 살펴봐요. 인프라에 신경 쓰지 않고 모델 추론을 API로 빠르게 내보내는 데 집중할 수 있어요.

출처: BentoML 시작하기 (공식)

설치하기

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 추론·자동 확장 문서를 참고해요.

더 알아보기