Amazon SageMaker용 Hugging Face 임베딩 컨테이너 출시
Hugging Face는 Amazon SageMaker용 Hugging Face 임베딩 컨테이너의 일반 제공(GA)을 발표했습니다. 이 특수 목적 추론 컨테이너는 AWS 고객이 오픈 임베딩 모델을 효율적으로 배포하여 생성 AI 애플리케이션, 특히 검색 강화 생성(RAG) 시스템을 구축할 수 있도록 합니다.
텍스트 임베딩 추론(TEI)을 통한 고성능 추론
Hugging Face 임베딩 컨테이너는 텍스트 임베딩 추론(TEI)으로 구동되며, 이는 임베딩 모델을 고성능으로 제공하도록 설계된 메모리 효율적인 솔루션입니다. TEI는 E5, GTE, Ember, FlagEmbedding 등 인기 모델 패밀리의 추출 과정을 최적화합니다.
TEI 기반 컨테이너의 주요 기술 특징은 다음과 같습니다:
- 최적화된 추론: Flash Attention, Candle, cuBLASLt를 활용하여 최적화된 트랜스포머 코드를 구현합니다.
- 효율적인 자원 관리: 토큰 기반 동적 배칭 및 safetensors 가중치 로딩을 구현합니다.
- 신속한 배포: 작은 Docker 이미지와 모델 그래프 컴파일 단계 없이 빠른 부팅 시간을 제공합니다.
- 프로덕션 준비: Prometheus 메트릭 및 Open Telemetry를 통한 분산 추적을 포함합니다.
지원되는 모델 아키텍처
컨테이너는 다음과 같은 다양한 임베딩 모델 아키텍처를 지원합니다:
- BERT/CamemBERT: 예시로
BAAI/bge-large-en-v1.5와Snowflake/snowflake-arctic-embed-m-v1.5가 있습니다. - RoBERTa: 예시로
sentence-transformers/all-roberta-large-v1이 있습니다. - XLM-RoBERTa: 예시로
sentence-transformers/paraphrase-xlm-r-multilingual-v1이 있습니다. - NomicBert: 예시로
jinaai/jina-embeddings-v2-base-en이 있습니다. - JinaBert: 예시로
nomic-ai/nomic-embed-text-v1.5이 있습니다.
배포 및 성능 벤치마크
배포는 sagemaker Python SDK를 통해 관리됩니다. 사용자는 get_huggingface_llm_image_uri 메서드를 사용하여 컨테이너 URI를 가져오며, CPU와 GPU 인스턴스용 별도 이미지가 제공됩니다.
성능은 선택한 인스턴스 유형에 따라 크게 달라집니다. 10개의 동시 스레드로 1백만 토큰(256 토큰당 3,900 요청) 임베딩 테스트를 기반으로:
GPU 성능 (ml.g5.xlarge)
- 하드웨어: 1x NVIDIA A10G GPU.
- 처리량: 초당 약 130 요청.
- 지연 시간: 10개의 동시 요청 시 4ms.
- 총 처리 시간: 1백만 토큰에 약 30초.
CPU 성능 (ml.c6i.2xlarge)
- 하드웨어: 4 Intel Ice-Lake vCPU, 8GB 메모리.
- 처리량: 초당 약 5 요청(유럽에서 us-east-1까지의 네트워크 지연 포함).
- 지연 시간: 10개의 동시 요청 시 2초(CloudWatch 측정).
- 총 처리 시간: 1백만 토큰에 약 841초.