BentoML — vLLM 배포
BentoML — vLLM 배포
BentoML은 vLLM을 백엔드로 하는 LLM 서버를 배포할 수 있게 해 주며, 서버는 OpenAI 호환 엔드포인트를 노출합니다. 모델을 로컬에서 서빙할 수도 있고, OCI 호환 이미지로 컨테이너화해 Kubernetes에 배포할 수도 있습니다.
출처: 문서
본문
BentoML의 vLLM 통합은 BentoML 문서의 "vLLM inference" 튜토리얼에서 자세한 내용을 확인할 수 있습니다.
핵심 흐름은 다음과 같습니다.
- vLLM 서빙을 BentoML 서비스로 감싸고,
vllm serve를 실행 명령으로 지정합니다. - BentoML이 벤토(bento)를 만들어 OCI 호환 컨테이너 이미지로 패키징합니다.
- 해당 이미지를 로컬 도커 또는 Kubernetes에 배포합니다.
- 배포된 서비스는 OpenAI 호환
/v1엔드포인트를 제공하므로, 기존 OpenAI 클라이언트로 그대로 호출할 수 있습니다.
BentoML의 장점은 모델 아티팩트와 서빙 코드를 하나의 벤토로 묶어 재현 가능한 배포 단위로 만들고, Kubernetes 연동으로 스케일링과 관측성을 넘겨줄 수 있다는 점입니다.
# 벤토 안에서 실행할 서빙 명령 예시
vllm serve meta-llama/Llama-3-8B-Instruct --host 0.0.0.0 --port 3000
BentoML 서비스를 구성하는 간단한 형태는 다음과 같습니다.
import bentoml
from bentoml.io import JSON
server = bentoml.Service("vllm-qwen", runners=[])
@server.api(input=JSON(), output=JSON())
async def chat(payload: dict) -> dict:
# 여기서는 OpenAI 호환 API를 호출하는 클라이언트를 사용한다고 가정
...
return {"choices": [...]}
물론 실제로는 vLLM 서버가 별도로 뜨고, BentoML 서비스는 /v1/completions 또는 /v1/chat/completions 엔드포인트로 요청을 라우팅하도록 구성하는 것이 일반적입니다. 이렇게 하면 BentoML의 트래픽 관리·배포 옵션과 vLLM의 고성능 추론을 함께 쓸 수 있습니다.
더 알아보기 (Learn more)
- 모든 배포 프레임워크 — vLLM과 연동되는 프레임워크 목록
- BentoML 문서의 vLLM inference 튜토리얼 — BentoML에서 vLLM 서빙 자세히
- CLI 가이드 —
vllm serve옵션