Hugging Face Inference Endpoints 사례 연구
개요
Hugging Face는 자체 관리 AWS 인프라에서 Hugging Face Inference Endpoints로 여러 CPU 기반 머신러닝 모델을 이전했습니다. 이 전환은 인지 부하와 배포 시간을 줄이기 위한 필요성에 의해 추진되었으며, 그 결과 지연 시간이 감소하고 Hugging Face Hub에서 모델을 배포하는 워크플로우가 간소화되었습니다.
워크플로우 간소화
Inference Endpoints로 이동하면 모델을 학습에서 프로덕션으로 옮기는 데 필요한 단계 수가 크게 줄어듭니다.
이전 워크플로우 (AWS ECS + Fargate)
이전에는 프로세스가 복잡한 수동 단계 체인을 포함했습니다:
- CML 및 transformers를 사용하여 GPU 인스턴스에서 모델을 학습합니다.
- 모델을 Hugging Face Hub에 업로드합니다.
- FastAPI를 사용하여 모델을 제공하는 맞춤형 API를 구축합니다.
- API를 Docker 컨테이너에 래핑합니다.
- 컨테이너를 AWS Elastic Container Repository (ECR)에 업로드합니다.
- 모델을 AWS Elastic Container Service (ECS) 클러스터에 배포합니다.
현재 워크플로우 (Inference Endpoints)
새로운 관리형 프로세스는 이러한 단계를 세 단계로 간소화합니다:
- CML 및 transformers를 사용하여 GPU 인스턴스에서 모델을 학습합니다.
- 모델을 Hugging Face Hub에 업로드합니다.
- Hugging Face Inference Endpoints를 사용하여 배포합니다.
성능 및 지연 시간 벤치마크
eu-east-1 지역에 배포된 RoBERTa를 미세 조정한 텍스트 분류 모델에 대한 테스트 결과, Inference Endpoints가 이전 맞춤형 ECS 설정에 비해 뛰어난 지연 시간을 제공함을 보여줍니다.
| 인스턴스 크기 | vCPU (코어) | 메모리 (GB) | ECS 지연 시간 (ms) | Inference Endpoints 지연 시간 (ms) |
|---|---|---|---|---|
| 소형 | 1 | 2 | - | ~296 |
| 중형 | 2 | 4 | - | 156 ± 51 |
| 대형 | 4 | 8 | ~200 | 80 ± 30 |
| 초대형 | 8 | 16 | - | 43 ± 31 |
"Large" 인스턴스 크기의 경우, 기본 Hugging Face 컨테이너가 ECS에서 실행된 맞춤형 컨테이너보다 두 배 이상 빠르게 동작했으며, 가장 느린 응답은 108ms였습니다.
비용 분석
Inference Endpoints는 이전 AWS Fargate 설정보다 비용이 더 많이 들지만, 비용 증가가 MLOps 오버헤드 감소에 대한 허용 가능한 대가로 간주됩니다.
| 인스턴스 크기 | vCPU | 메모리 (GB) | ECS 비용 | Inference Endpoints 비용 | % 차이 |
|---|---|---|---|---|---|
| 소형 | 1 | 2 | $33.18 | $43.80 | 24% |
| 중형 | 2 | 4 | $60.38 | $87.61 | 31% |
| 대형 | 4 | 8 | $114.78 | $175.22 | 34% |
| 초대형 | 8 | 16 | $223.59 | $350.44 | 50% |
대형 CPU 인스턴스의 경우, 월 비용 차이는 약 $60입니다. Hugging Face는 수백 개의 ML 마이크로서비스를 배포하는 조직의 경우 비용 차이가 다른 접근 방식을 필요로 할 수 있다고 언급하지만, 현재 규모에서는 시간 절감이 재정적 비용보다 더 큰 이점을 제공합니다.
배포 및 운영 고려사항
배포 방법
사용자는 GUI, RESTful API 또는 hugie 명령줄 도구를 통해 Inference Endpoints를 배포할 수 있으며, 이는 한 줄 구성 배포를 가능하게 합니다(예: hugie endpoint create example/development.json).
코드형 인프라
발행 시점 기준으로 Inference Endpoints용 맞춤형 Terraform 제공자는 제공되지 않으며, 이는 Terraform 상태 머신을 사용해 배포를 추적하려는 사용자에게 누락된 기능으로 언급됩니다.
다중 모델 호스팅
맞춤형 Endpoint Handler 클래스를 작성하면 단일 엔드포인트에 여러 모델을 호스팅할 수 있습니다. 이는 GPU 추론에 대해 시연되었으며, 메모리 활용도를 극대화하여 비용을 최적화하기 위해 CPU 인스턴스에서도 작동할 것으로 가정됩니다.