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
適用於需要在各種硬體架構(x86‑64、ARM64)與 GPU 上,以高吞吐量、低記憶體占用部署 Transformer 模型的開發者與面向生產的使用者。
Highlights
- Broad Model Support:支援包括 Llama、Mistral、BERT 在內的大量 Transformer 架構。
- Hardware Optimization:針對多種 CPU 後端(Intel MKL、oneDNN、OpenBLAS、Ruy、Apple Accelerate)進行最佳化,並自動偵測 CPU。
- Quantization:在幾乎不損失精度的情況下,降低模型磁碟大小與記憶體使用。
- Parallel Execution:支援在多 GPU 或 CPU 核心之間平行、非同步執行,並提供針對超大型模型的張量平行。
- Simple Integration:提供相依性少、易於使用的 Python 與 C++ API。