OpenNMT/CTranslate2
Fast inference engine for Transformer models
What it solves
CTranslate2는 Transformer 모델의 느린 추론과 메모리 집약적인 문제를 해결하기 위해 설계되었습니다. CPU와 GPU 모두에서 실행을 가속화하고 메모리 사용량을 줄이는 맞춤형 런타임을 제공하여 일반적인 딥러닝 프레임워크보다 효율적입니다.
How it works
라이브러리는 다음과 같은 성능 최적화 기술을 구현합니다.
- 가중치 양자화(FP16, BF16, INT16, INT8, INT4/AWQ 지원)
- 레이어 융합
- 패딩 제거
- 배치 재정렬
- 인플레이스 연산
엔코더‑디코더(예: T5, Whisper), 디코더 전용(예: Llama, Mistral, Gemma), 엔코더 전용(예: BERT) 등 다양한 모델 유형을 지원합니다. 모델은 PyTorch(Transformers), Fairseq, OpenNMT와 같은 프레임워크용 제공 컨버터를 사용해 최적화된 포맷으로 변환해야 합니다.
Who it’s for
높은 처리량과 낮은 메모리 사용량으로 Transformer 모델을 배포해야 하는 개발자 및 프로덕션 지향 사용자를 위한 것입니다. x86‑64, ARM64 등 다양한 하드웨어 아키텍처와 GPU에서 동작합니다.
Highlights
- Broad Model Support: Llama, Mistral, BERT 등 방대한 Transformer 아키텍처를 지원합니다.
- Hardware Optimization: Intel MKL, oneDNN, OpenBLAS, Ruy, Apple Accelerate 등 여러 CPU 백엔드에 최적화되어 있으며 CPU를 자동으로 감지합니다.
- Quantization: 최소한의 정확도 손실로 디스크상의 모델 크기와 메모리 사용량을 감소시킵니다.
- Parallel Execution: 여러 GPU 또는 CPU 코어 간 병렬·비동기 실행을 지원하며, 매우 큰 모델을 위한 텐서 병렬도 제공합니다.
- Simple Integration: 의존성이 적은 간단한 Python 및 C++ API를 제공합니다.