허깅 페이스 인피니티 CPU 성능 사례 연구
허깅 페이스 인피니티는 CPU 인프라에 배포된 Transformer 모델의 지연 시간을 줄이고 처리량을 높이기 위해 설계된 컨테이너화된 추론 솔루션입니다. 특정 하드웨어 아키텍처에 맞게 모델을 최적화함으로써 실시간 사용 사례를 가능하게 하고 대규모 배포에 대한 인프라 비용을 절감합니다.
허깅 페이스 인피니티의 아키텍처
Infinity는 두 가지 주요 구성 요소로 이루어져 함께 작동하여 하드웨어 가속 추론 파이프라인을 제공합니다:
- Infinity Container: 하드웨어 최적화된 추론 솔루션을 제공하고 HTTP
/predict엔드포인트를 노출하는 Docker 컨테이너. - Infinity Multiverse: 대상 하드웨어 아키텍처에 맞게 허깅 페이스 Transformer 모델을 최적화하여 Infinity Container와의 호환성을 보장하는 모델 최적화 서비스.
각 Infinity Container는 단일 모델과 단일 작업을 제공하도록 설계되었습니다. 지원되는 작업에는 토큰 분류, 시퀀스 분류, 순위 매기기, 특징 추출/문서 임베딩이 포함됩니다.
Intel Ice Lake에서의 성능 벤치마크
Amazon EC2 C6i 인스턴스(3세대 Intel Xeon Scalable 프로세서와 Ice Lake 아키텍처 기반)를 사용한 사례 연구에서 허깅 페이스는 시퀀스 분류를 위한 DistilBERT 모델을 벤치마크했습니다.
엔드 투 엔드 측정
모델 실행만 측정하는 벤치마크와 달리, Infinity의 성능은 전처리, 예측, 후처리를 포괄하는 엔드 투 엔드 파이프라인으로 측정됩니다.
주요 결과
Ice Lake 최적화 컨테이너에서 실행되는 Infinity는 다른 구성에 비해 다음과 같은 개선을 달성했습니다:
- Vanilla Transformers 대비: Ice Lake 하드웨어에서 지연 시간과 처리량이 최대 800% 향상.
- Cascade Lake 대비: Cascade Lake 아키텍처 기반 인스턴스와 비교하여 지연 시간과 처리량이 최대 34% 향상.
처리량 비교
두 개의 물리 코어에서 배치 크기 1로 실행할 때, Infinity는 모든 시퀀스 길이에 걸쳐 vanilla Transformers에 비해 상당한 처리량 향상을 보였습니다:
| Sequence Length | Infinity | Transformers | Improvement |
|---|---|---|---|
| 8 | 248 req/sec | 49 req/sec | +506% |
| 16 | 212 req/sec | 16 req/sec | +424% |
| 32 | 150 req/sec | 40 req/sec | +375% |
| 64 | 97 req/sec | 28 req/sec | +346% |
| 128 | 55 req/sec | 18 req/sec | +305% |
| 256 | 27 req/sec | 9 req/sec | +300% |
| 384 | 17 req/sec | 5 req/sec | +340% |
| 512 | 12 req/sec | 4 req/sec | +300% |
지연 시간 메트릭
64 토큰까지의 시퀀스 길이에 대해 Infinity는 1-4ms 수준의 지연 시간을 제공할 수 있습니다. 벤치마크에서는 또한 p95, p99, 최대 지연 시간(p100) 사이의 편차가 거의 없어 일관된 성능을 유지함을 보여주었습니다.
배포 의미
처리량 또는 지연 시간에 최적화할 수 있는 능력 덕분에 기업은 동일한 워크로드에 대해 인프라 비용을 절감하거나 CPU 기반 인프라에서는 이전에 구현이 불가능했던 실시간 AI 애플리케이션을 가능하게 할 수 있습니다.
참고: 2022년 12월 기준으로 허깅 페이스 인피니티는 더 이상 상업적 추론 솔루션으로 제공되지 않습니다. 허깅 페이스는 이제 관리형 인프라를 위해 Inference Endpoints를 권장하며, 오픈소스 하드웨어 최적화를 위해 Optimum Intel 및 Optimum ONNX Runtime 라이브러리를 권장합니다.
Sources
관련
- Dispatch
- Dispatch
- Dispatch
- Dispatch
- Dispatch