CTranslate2: 針對 Transformer 模型的高性能推理引擎,具備先進的量化與硬體優化功能

CTranslate2: 針對 Transformer 模型的高性能推理引擎,具備先進的量化與硬體優化功能

它解決了什麼問題

CTranslate2 旨在解決 Transformer 模型推理速度慢且耗費記憶體的問題。它提供了一個自定義的運行時(runtime),可在 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 後端(Intel MKL、oneDNN、OpenBLAS、Ruy、Apple Accelerate)進行了優化,並具備自動 CPU 偵測功能。
  • 量化:在極小精度損失的情況下,減少磁碟上的模型大小和記憶體使用量。
  • 並行執行:支援在多個 GPU 或 CPU 核心上進行並行與非同步執行,包括針對超大型模型的張量並行(tensor parallelism)。
  • 簡單的整合:提供簡單的 Python 和 C++ API,且依賴項極少。

Sources