Optimum Intel 및 fastRAG를 활용한 CPU 최적화 임베딩
Hugging Face와 Intel은 Optimum Intel 라이브러리와 fastRAG 프레임워크를 사용해 Intel Xeon CPU에서 임베딩 모델을 크게 가속화하는 방법을 시연했습니다. int8 로의 사후 훈련 정적 양자화를 적용함으로써, 이러한 최적화는 기본 bf16 모델에 비해 지연 시간을 최대 4.5배 줄이고 처리량을 최대 4배 증가시킵니다.
RAG를 위한 임베딩 모델 가속
임베딩 모델은 Retrieval Augmented Generation (RAG) 파이프라인에서 핵심적인 역할을 하며, 오프라인 문서 인덱싱, 실시간 쿼리 인코딩, 검색된 문서의 재정렬이라는 세 가지 주요 기능을 수행합니다. 의미 기반 검색은 BM25와 같은 희소 검색보다 컨텍스트를 더 잘 포착하지만, 계산 비용이 더 많이 듭니다.
CPU 백엔드에서 이러한 모델을 최적화하는 것은 다음과 같은 이유로 필수적입니다:
- Document Indexing: 대규모 컬렉션을 더 빠르게 인덱싱하기 위해 처리량을 증가시킵니다.
- Query Encoding: 실시간 검색에 대한 응답성을 높이기 위해 지연 시간을 줄입니다.
- Reranking: 시간에 민감한 애플리케이션을 위해 후보 세트를 신속하게 처리할 수 있게 합니다.
Optimum Intel 및 IPEX를 통한 기술적 최적화
Optimum Intel는 Intel 하드웨어에서 Hugging Face 파이프라인을 가속화하도록 설계된 오픈소스 라이브러리입니다. 이 라이브러리는 Intel Advanced Vector Extensions 512 (AVX-512), Vector Neural Network Instructions (VNNI), 그리고 Intel Advanced Matrix Extensions (AMX)를 활용해 딥러닝 작업을 최적화합니다.
양자화 워크플로우
최적화 과정은 fp32에서 int8로 정밀도를 낮추는 데 초점을 맞추며, 다음 단계로 진행됩니다:
- Installation:
optimum[neural-compressor]와intel-extension-for-transformers를 활용합니다. - Post-training Static Quantization: 이 과정은 보정 세트(예:
qasper데이터셋의 일부)를 사용해 가중치와 활성화의 동적 범위를 결정하고,int8로 전환할 때 정확도 손실을 최소화합니다. - Inference: 양자화된 모델은
IPEXModel을 통해 로드되어 Intel Extension for PyTorch (IPEX)를 사용한 최적화된 런타임 실행을 수행합니다.
BGE 모델 성능 벤치마크
평가는 4세대 Intel Xeon 8480+ CPU에서 소형(45M), 기본형(110M), 대형(355M) 파라미터 크기의 BGE(베이징 인공지능 연구소) 모델을 사용해 수행되었습니다.
정확도 유지
int8 양자화는 MTEB(Massive Text Embedding Benchmark) 작업 전반에서 fp32 모델에 비해 정확도 저하가 최소화됩니다:
- Reranking: 오류율이 1% 미만.
- Retrieval: 오류율이 1.55% 미만.
지연 시간 및 처리량
기본 PyTorch bf16 구현과 비교했을 때, int8 양자화 모델은 상당한 향상을 보입니다:
- Latency: 최대 4.5배 가속. 소형 및 기본 모델은 10ms 이하의 지연 시간을 달성했으며, 대형 모델은 20ms 이하를 유지했습니다.
- Throughput: 최대 4배 향상. 모든 모델 크기에서 256 토큰 문서에 대해 배치 크기 128일 때 최고 처리량을 기록했습니다.
fastRAG와의 통합
fastRAG는 Intel Labs에서 개발한 최적화된 RAG 파이프라인을 위한 연구 프레임워크이며, Haystack과 호환됩니다. 최적화된 임베딩 모델은 두 개의 특정 모듈을 통해 fastRAG에 통합됩니다:
QuantizedBiEncoderRetriever: 밀집 인덱스로부터 문서를 인덱싱하고 검색하는 데 사용됩니다.QuantizedBiEncoderRanker: 검색된 문서의 재정렬에 사용되어 관련성을 향상시킵니다.
이 모듈들을 통해 개발자는 Haystack 기반 파이프라인에서 표준 임베딩 모델을 Intel 최적화 버전으로 손쉽게 교체하여 인덱싱 및 검색 단계 모두의 효율성을 향상시킬 수 있습니다.