CTranslate2: 一个具有先进量化和硬件优化的 Transformer 模型高性能推理引擎
CTranslate2: 一个具有先进量化和硬件优化的 Transformer 模型高性能推理引擎
它解决了什么问题
CTranslate2 旨在解决 Transformer 模型推理速度慢且内存占用高的问题。它提供了一个自定义运行时,可以在 CPU 和 GPU 上加速执行并减少内存使用,使其比通用深度学习框架更高效。
工作原理
该库实现了多种性能优化技术,包括权重量化(支持 FP16, BF16, INT16, INT8, 和 INT4/AWQ),层融合,填充移除,批处理重排序,以及原地操作。它支持广泛的模型类型,包括 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 核心上进行并行和异步执行,包括针对超大模型的张量并行。
- 简单集成:提供简单的 Python 和 C++ API,且依赖项极少。
Sources
- undefinedOpenNMT/CTranslate2