Vertex AI에 Hugging Face ViT 배포
Hugging Face는 Vision Transformer(ViT) 모델을 Vertex AI 플랫폼에 배포하는 워크플로우를 자세히 설명했습니다. 이 접근 방식은 인프라 관리에 필요한 코드를 크게 줄이면서 Kubernetes 기반 배포의 확장성을 달성할 수 있게 합니다.
모델 배포를 위한 Vertex AI 기능
Vertex AI는 전체 ML 워크플로우를 위한 통합 API를 제공하는 관리형 머신러닝 플랫폼입니다. 모델 배포를 위해 여러 프로덕션 준비 기능을 제공합니다:
- 자동 스케일링: 들어오는 트래픽에 따라 리소스를 자동으로 조정합니다.
- 트래픽 관리: 서로 다른 모델 버전 간 트래픽 분할 및 손쉬운 롤백을 위한 모델 버전 관리를 지원합니다.
- 운영 제어: 인증, 속도 제한, 통합 모델 모니터링 및 로깅을 포함합니다.
- 예측 지원: 온라인 및 배치 예측 요청을 모두 처리합니다.
가이드에서는 TensorFlow에 중점을 두지만, Vertex AI는 PyTorch와 scikit-learn 프레임워크도 지원합니다.
서빙 모델 아키텍처
배포는 TensorFlow로 구현된 ViT B/16 모델을 사용합니다. 학습‑서빙 불일치를 최소화하기 위해 모델은 SavedModel로 직렬화되며, 전처리 및 후처리 작업이 그래프에 직접 포함됩니다.
모델 입력 및 출력:
- 입력: 모델은 이미지의 base64 인코딩 문자열을 받아 네트워크 전송 중 변형을 방지합니다. 전처리 단계에는 이미지를 224x224로 리사이즈하고,
[-1, 1]범위로 표준화하며,channels_first메모리 레이아웃으로 전치하는 것이 포함됩니다. - 출력: 모델은 예측 레이블(문자열)과 신뢰도 점수(실수)를 반환합니다.
모델 아티팩트는 Vertex AI에 배포하기 전에 Google Cloud Storage(GCS) 버킷에 저장되어야 합니다.
배포 워크플로우
배포는 google-cloud-aiplatform Python SDK를 통해 관리되며 네 단계 프로세스를 따릅니다:
1. 모델 업로드
SavedModel은 저장 및 버전 관리를 담당하는 완전 관리형 레지스트리인 Vertex AI Model Registry에 업로드됩니다. 이 단계에서는 TensorFlow 서빙을 위해 Vertex AI가 제공하는 사전 구축 Docker 이미지에 대한 container_spec이 필요합니다.
2. 엔드포인트 생성
엔드포인트는 요청을 수신하고 응답을 전송하기 위한 인터페이스로 생성됩니다. 이는 모델에 대한 관리형 진입점을 제공합니다.
3. 모델 배포
업로드된 모델은 엔드포인트에 연결됩니다. 이 단계에서 하드웨어 사양은 dedicated_resources 아래에 정의됩니다:
- 머신 유형: 기본 컴퓨팅을 정의합니다(예:
n1-standard-8은 8 vCPU와 32GB RAM). - 가속기: GPU 유형(예:
NVIDIA_TESLA_T4)과 복제당 가속기 수를 지정합니다. - 스케일링: 자동 스케일링을 위한
min_replica_count와max_replica_count를 설정합니다.
4. 예측 요청
예측은 PredictionServiceClient를 사용하여 수행됩니다. 이미지와 같은 바이너리 데이터의 경우 요청 페이로드는 다음과 같이 형식화되어야 합니다: {serving_input: {"b64": base64_encoded_string}}.
성능 및 모니터링
Vertex AI는 가속기 사용률과 같은 엔드포인트 성능 및 자원 활용도를 추적하는 내장 모니터링 도구를 제공합니다.
로드 테스트 결과: Locust를 사용한 로컬 부하 테스트에서 팀은 약 17,230개의 요청을 처리했으며 평균 지연 시간은 646밀리초였습니다.
가격 개요
비용은 컴퓨트 노드와 부착된 가속기의 시간당 요금을 기준으로 합니다. 게시물에 사용된 예시를 기준으로:
| 리소스 | 사양 | 시간당 가격 (USD) |
|---|---|---|
| 머신 유형 | n1-standard-8 (8vCPU, 30GB) | $0.4372 |
| 가속기 | NVIDIA_TESLA_T4 | $0.4024 |
사용자는 노드가 실제 예측 요청을 처리할 때만 비용이 청구됩니다.
Sources
- OriginalDeploying 🤗 ViT on Vertex AI