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。