CTranslate2: 高度な量子化とハードウェア最適化を備えたTransformerモデル向け高性能推論エンジン

CTranslate2: 高度な量子化とハードウェア最適化を備えたTransformerモデル向け高性能推論エンジン

何を解決するか

CTranslate2は、Transformerモデルの推論が遅く、メモリ消費が激しいという問題を解決するために設計されています。CPUとGPUの両方で実行を加速し、メモリ使用量を削減するカスタムランタイムを提供することで、汎用的なディープラーニングフレームワークよりも効率的に動作します。

仕組み

このライブラリは、重みの量子化(FP16、BF16、INT16、INT8、およびINT4/AWQをサポート)、レイヤー融合、パディングの除去、バッチの並べ替え、およびインプレース操作を含む、いくつかのパフォーマンス最適化技術を実装しています。エンコーダー・デコーダー(例:T5、Whisper)、デコーダーのみ(例:Llama、Mistral、Gemma)、およびエンコーダーのみ(例:BERT)を含む幅広いモデルタイプをサポートしています。モデルは、PyTorch (Transformers)、Fairseq、およびOpenNMTなどのフレームワーク用の提供されているコンバーターを使用して、最適化された形式に変換する必要があります。

対象ユーザー

さまざまなハードウェアアーキテクチャ(x86-64、ARM64)およびGPU上で、高いスループットと低いメモリフットプリントでTransformerモデルをデプロイする必要がある開発者や、プロダクション向けのユーザーを対象としています。

ハイライト

  • 幅広いモデルサポート: Llama、Mistral、およびBERTを含む、膨大な数のTransformerアーキテクチャをサポートしています。
  • ハードウェア最適化: 自動CPU検出機能を備えた複数のCPUバックエンド(Intel MKL、oneDNN、OpenBLAS、Ruy、Apple Accelerate)向けに最適化されています。
  • 量子化: 最小限の精度低下で、ディスク上のモデルサイズとメモリ使用量を削減します。
  • 並列実行: 複数のGPUまたはCPUコアにわたる並列および非同期実行をサポートしており、非常に大きなモデルについてはテンソル並列性もサポートしています。
  • 簡単な統合: 依存関係が少なく、シンプルなPythonおよびC++ APIを提供します。

Sources