BentoML: 통합 모델 서빙 프레임워크
요약
BentoML은 AI 앱 및 모델 추론을 위한 통합 온라인 서빙 시스템 구축 라이브러리입니다. 이 프레임워크는 모든 ML 모델에 쉽게 API를 만들고, 의존성 관리가 용이한 Docker 컨테이너 생성을 자동화합니다. 또한 동적 배치 등 최적화 기능을 제공하여 고성능 프로덕션 배포가 가능하게 합니다.
핵심 포인트
- 모든 AI/ML 모델을 표준 REST API로 쉽게 변환
- 의존성 지옥 없이 환경, 의존성, 모델 버전 관리 자동화
- 동적 배치 및 병렬 처리를 통한 추론 성능 극대화
- 개발부터 BentoCloud를 통한 프로덕션 배포까지 원활함
통합 모델 서빙 프레임워크
🍱 모든 오픈소스 또는 사용자 정의 AI 모델을 사용하여 모델 추론 API 및 다중 모델 서빙 시스템 구축. 👉 포럼 참여하기!
BentoML이란 무엇인가요?
BentoML은 AI 앱 및 모델 추론에 최적화된 온라인 서빙 시스템을 구축하기 위한 Python 라이브러리입니다.
- 🍱 모든 AI/ML 모델에 대한 API를 쉽게 구축하세요. 어떤 모델 추론 스크립트든 몇 줄의 코드로 표준 Python 타입 힌트를 사용하여 REST API 서버로 변환할 수 있습니다.
- 🐳 Docker 컨테이너가 간편해졌습니다. 더 이상 의존성 지옥(dependency hell)에 빠질 필요가 없습니다! 간단한 설정 파일 하나로 환경, 의존성 및 모델 버전을 관리하세요. BentoML은 자동으로 Docker 이미지를 생성하고, 재현성을 보장하며, 다양한 환경으로 배포하는 과정을 간소화합니다.
- 🧭 CPU/GPU 활용도를 극대화하세요. 동적 배치(dynamic batching), 모델 병렬 처리(model parallelism), 다단계 파이프라인 및 다중 모델 추론 그래프 오케스트레이션과 같은 내장 서빙 최적화 기능을 활용하여 고성능 추론 API를 구축할 수 있습니다.
- 👩💻 완벽하게 사용자 정의 가능합니다. 커스텀 비즈니스 로직, 모델 추론 및 다중 모델 조합을 통해 자체 API나 작업 큐(task queue)를 쉽게 구현할 수 있습니다. 모든 ML 프레임워크, 모달리티 및 추론 런타임을 지원합니다.
- 🚀 프로덕션 준비 완료. 로컬에서 개발, 실행 및 디버깅하세요. Docker 컨테이너 또는 BentoCloud를 통해 프로덕션에 원활하게 배포할 수 있습니다.
시작하기 (Getting started)
BentoML 설치:
# Python≥3.9 필요
pip install -U bentoml
service.py 파일에 API를 정의합니다.
import bentoml
@bentoml.service(
...
💻 로컬에서 실행하기 (Run locally)
Python 가상 환경에 PyTorch 및 Transformers 패키지를 설치하세요.
pip install torch transformers # 로컬 실행을 위한 추가 의존성
서비스 코드를 로컬에서 실행합니다 (기본적으로 http://localhost:3000에서 서빙됨):
bentoml serve
다음과 같은 출력을 예상할 수 있습니다.
[INFO] [cli] Starting production HTTP BentoServer from
### 🐳 Docker를 사용한 배포
`bentoml build`을 실행하여 필요한 코드, 모델, 종속성 설정을 Bento로 패키징합니다. Bento는 BentoML에서 표준화된 배포 가능한 아티팩트입니다:
```bash
bentoml build
Docker가 실행 중인지 확인하세요. 배포를 위한 Docker 컨테이너 이미지를 생성합니다:
bentoml containerize summarization:latest
생성된 이미지를 실행합니다:
docker run --rm -p 3000:3000 summarization:latest
☁️ BentoCloud에 배포하기
BentoCloud는 빠르고 안정적인 생성형 AI(GenAI) 도입을 위한 컴퓨팅 인프라를 제공합니다. 클라우드 컴퓨팅 리소스를 활용하여 BentoML 개발 프로세스를 가속화하고, 프로덕션 환경에서 BentoML을 배포, 확장 및 운영하는 과정을 간소화하는 데 도움을 줍니다.
# 가입 후 다음 명령어를 실행하여 API 토큰을 생성합니다:
bentoml cloud login
...

자세한 설명은 Hello World 예제를 읽어보세요.
예시 모델들
-
LLM(거대 언어 모델): Llama 3.2, Mistral, DeepSeek Distil 등 다수.
-
이미지 생성: Stable Diffusion 3 Medium, Stable Video Diffusion, Stable Diffusion XL Turbo, ControlNet 및 LCM LoRAs.
-
임베딩(Embeddings): SentenceTransformers와 ColPali
-
고급 예제(Advanced examples): Function calling, LangGraph, CrewAI
더 많은 샘플 코드와 사용법은 전체 목록(full list)을 확인하세요.
고급 주제 (Advanced topics)
- 모델 구성(Model composition)
- 워커와 모델 병렬화(Workers and model parallelization)
- 적응형 배치 처리(Adaptive batching)
- GPU 추론(GPU inference)
- 분산 서빙 시스템(Distributed serving systems)
- 동시성 및 자동 확장(Concurrency and autoscaling)
- 모델 로딩 및 모델 스토어(Model loading and Model Store)
- 관측 가능성(Observability)
- BentoCloud 배포(BentoCloud deployment)
더 많은 튜토리얼과 가이드는 문서(Documentation)를 참조하세요.
커뮤니티 (Community)
참여하여 Community Forum 💬에 참여하세요. 이곳에서 수천 명의 AI/ML 엔지니어가 서로 돕고, 프로젝트에 기여하며, AI 제품 구축에 대해 이야기합니다.
버그를 보고하거나 기능 요청을 제안하려면 GitHub Issues를 사용하세요.
기여하기 (Contributing)
프로젝트에 기여할 수 있는 방법은 많습니다:
- 관련 issue를 보고하고 '좋아요'를 누르세요.
- issue를 조사하고 다른 개발자의 pull request를 검토하세요.
- GitHub pull request를 제출하여 코드 또는 문서화(documentation)에 기여하세요.
- 더 자세한 내용은 Contributing Guide와 Development Guide를 확인하세요.
- 저희 포럼에서 피드백을 공유하고 로드맵 계획에 대해 논의하세요.
놀라운 기여자 여러분 모두에게 감사드립니다!
<a href="https://github.com/bentoml/BentoML/graphs/contributors"> <img src="https://contrib.rocks/image?repo=bentoml/BentoML" /> </a>사용 추적 및 피드백 (Usage tracking and feedback)
BentoML 프레임워크는 커뮤니티가 제품을 개선하는 데 도움이 되는 익명 사용 데이터를 수집합니다. BentoML의 내부 API 호출만 보고됩니다. 여기에는 사용자 코드, 모델 데이터, 모델 이름 또는 스택 트레이스와 같은 민감한 정보는 포함되지 않습니다. 사용 추적에 사용되는 코드가 여기 있습니다. --do-not-track CLI 옵션을 사용하여 사용 추적을 거부할 수 있습니다:
bentoml [command] --do-not-track
또는 환경 변수를 설정하여 거부할 수 있습니다:
export BENTOML_DO_NOT_TRACK=True
라이선스 (License)
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub AI Research의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기