피드로 돌아가기
Hugging Face BlogAI/ML
원문 읽기
BentoML을 활용해 Hugging Face의 DeepFloyd IF 텍스트-이미지 생성 모델을 프로덕션 환경에 배포하는 엔드-투-엔드 워크플로우 구현
Deploying Hugging Face Models with BentoML: DeepFloyd IF in Action
AI 요약
Context
Hugging Face Hub는 모델 학습 시간을 단축하지만, 프로덕션 환경 배포 및 클라우드-네이티브 방식의 운영에는 여전히 과제가 존재한다. DeepFloyd IF 같은 대규모 멀티스테이지 모델의 경우 각 스테이지별 독립적인 스케일링과 GPU 리소스 할당이 필요하다.
Technical Solution
- 모델 저장: Hugging Face에서 다운로드한 DeepFloyd IF의 Stage 1, Stage 2, Stage 3 모델을 BentoML Local Model Store에 저장
- 서비스 정의: service.py 파일에서 to_runner 메서드로 3개의 Runner를 생성하고 JSON 입력(프롬프트, 네거티브 프롬프트)을 받아 이미지를 반환하는 API 노출
- Bento 패키징: bentofile.yaml에 서비스, Python 패키지, 모델 메타데이터를 정의해 모든 코드와 의존성을 포함한 배포 가능 아티팩트 생성
- 컨테이너화: bentoml containerize 명령으로 Bento를 Docker 이미지로 변환
- 클라우드 배포: 생성된 Docker 이미지를 Kubernetes에 배포하거나 Yatai(오픈소스 ML 배포 자동화 솔루션)에 직접 배포
Key Takeaway
BentoML의 Runner 기반 아키텍처는 멀티스테이지 생성 모델에서 각 처리 단계별 GPU Pod을 독립적으로 스케일링할 수 있도록 설계되었으며, YAML 기반 선언적 패키징으로 프로덕션 배포의 복잡성을 크게 단순화한다.
실천 포인트
Hugging Face 모델을 Kubernetes 클러스터에 배포해야 하는 팀에서 BentoML의 Runner 추상화와 bentofile.yaml 선언 방식을 적용하면, 멀티스테이지 추론 파이프라인의 각 단계별 GPU 리소스 할당을 독립적으로 제어할 수 있고 Docker 이미지 생성부터 Kubernetes 배포까지의 CI/CD 프로세스를 단순화할 수 있다.