BentoML Service 만들기

BentoML Service 만들기

BentoML에서 AI API를 만들 때 중심이 되는 것이 Service예요. Service는 모델 추론 로직을 담은 단위로, 여기에 입력·출력 스키마를 지정하면 HTTP 엔드포인트로 노출돼요. Service를 정의하고 나면 Bento로 패키징해 어디서든 배포할 수 있어요.

출처: BentoML Build with BentoML (공식)

Service 기본 구조

@bentoml.service 데코레이터로 Service를 정의하고, @bentoml.api가 붙은 메서드가 API 엔드포인트가 돼요.

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}

resources로 GPU 같은 리소스를 지정하고, traffic으로 타임아웃 같은 서빙 옵션을 정할 수 있어요.

온라인 API Service

"Create online API Services"는 커스텀 AI API를 BentoML로 구축하는 방법을 안내해요. 실시간 예측이 필요한 서비스에 적합해요. 정의한 Service는 bentoml serve로 로컬 실행하고, bentoml build로 Bento로 패키징해요.

모델 로딩과 관리

"Load and manage models" 가이드는 커스텀 모델을 BentoML로 로드하고 서빙하는 방법을 다뤄요. 모델을 BentoML 모델 스토어에 저장하면 Service에서 재사용할 수 있고, 버전 관리가 가능해져요.

GPU 추론

GPU에서 모델 추론을 실행하려면 Service에 GPU 리소스를 지정해요. resources={"gpu": N}으로 GPU 개수를 정하고, 필요하면 쿼터·도커 런타임 옵션을 추가해요. BentoML은 GPU 사용을 위한 설정을 세밀하게 다룰 수 있어요.

더 알아보기