CTranslate2: 고급 양자화 및 하드웨어 최적화를 갖춘 Transformer 모델용 고성능 추론 엔진

CTranslate2: 고급 양자화 및 하드웨어 최적화를 갖춘 Transformer 모델용 고성능 추론 엔진

문제 해결 방식

CTranslate2는 Transformer 모델의 느린 추론 속도와 과도한 메모리 사용 문제를 해결하기 위해 설계되었습니다. CPU와 GPU 모두에서 실행 속도를 가속화하고 메모리 사용량을 줄이는 커스텀 런타임을 제공하여, 범용 딥러닝 프레임워크보다 더 효율적입니다.

작동 원리

이 라이브러리는 가중치 양자화(FP16, BF16, INT16, INT8, INT4/AWQ 지원), 레이어 퓨전(layer fusion), 패딩 제거(padding removal), 배치 재정렬(batch reordering), 인플레이스 연산(in-place operations)을 포함한 여러 성능 최적화 기술을 구현합니다. encoder-decoder(예: T5, Whisper), decoder-only(예: Llama, Mistral, Gemma), encoder-only(예: BERT) 모델을 포함한 광범위한 모델 유형을 지원합니다. 모델은 PyTorch (Transformers), Fairseq, OpenNMT와 같은 프레임워크를 위해 제공되는 컨버터를 사용하여 최적화된 형식으로 변환되어야 합니다.

대상 사용자

다양한 하드웨어 아키텍처(x86-64, ARM64) 및 GPU에서 높은 처리량과 낮은 메모리 점유율로 Transformer 모델을 배포해야 하는 개발자 및 프로덕션 지향적 사용자를 대상으로 합니다.

주요 특징

  • 광범위한 모델 지원: Llama, Mistral, BERT를 포함한 방대한 Transformer 아키텍처를 지원합니다.
  • 하드웨어 최적화: 자동 CPU 감지 기능과 함께 다양한 CPU 백엔드(Intel MKL, oneDNN, OpenBLAS, Ruy, Apple Accelerate)에 최적화되어 있습니다.
  • 양자화: 정확도 손실을 최소화하면서 디스크 상의 모델 크기와 메모리 사용량을 줄입니다.
  • 병렬 실행: 매우 큰 모델을 위한 텐서 병렬성(tensor parallelism)을 포함하여, 여러 GPU 또는 CPU 코어에 걸친 병렬 및 비동기 실행을 지원합니다.
  • 간편한 통합: 의존성이 적은 간단한 Python 및 C++ API를 제공합니다.

Sources