Project Icon

CTranslate2

高效的Transformer模型推理库,提供多种性能优化方案

CTranslate2是一个用于Transformer模型高效推理的C++和Python库,通过权重量化、层融合、批次重排序等技术,显著提升CPU和GPU上的执行速度并减少内存占用。支持多种模型类型,包括编码器-解码器、仅解码器和仅编码器模型,兼容OpenNMT-py、OpenNMT-tf、Fairseq等框架。其主要特点包括自动CPU检测、代码分发、并行和异步执行以及动态内存使用。

CI PyPI version Documentation Gitter Forum

CTranslate2

CTranslate2 是一个高效推理Transformer模型的C++和Python库。

该项目实现了一个自定义运行环境,应用了许多性能优化技术,如权重量化、层融合、批处理重新排序等,以加速和减少Transformer模型在CPU和GPU上的内存使用。

目前支持以下模型类型:

  • 编码器-解码器模型: Transformer base/big, M2M-100, NLLB, BART, mBART, Pegasus, T5, Whisper
  • 仅解码器模型: GPT-2, GPT-J, GPT-NeoX, OPT, BLOOM, MPT, Llama, Mistral, Gemma, CodeGen, GPTBigCode, Falcon
  • 仅编码器模型: BERT, DistilBERT, XLM-RoBERTa

兼容的模型应首先转换为优化的模型格式。该库包含多个框架的转换器:

该项目面向生产环境,提供向后兼容性保证,同时还包括与模型压缩和推理加速相关的实验性功能。

主要特性

  • 在CPU和GPU上快速且高效的执行
    由于许多高级优化,执行速度显著加快,所需资源比通用深度学习框架少:层融合、填充移除、批处理重新排序、就地操作、缓存机制等。
  • 量化和减少精度
    模型序列化和计算支持减少精度的权重:16位浮点数(FP16),16位脑浮点数(BF16),16位整数(INT16),8位整数(INT8)和AWQ量化(INT4)。
  • 支持多种CPU架构
    该项目支持x86-64和AArch64/ARM64处理器,并整合了多个为这些平台优化的后端:Intel MKLoneDNNOpenBLASRuy,和Apple Accelerate
  • 自动CPU检测和代码分发
    一个二进制文件可以包含多个后端(如Intel MKL和oneDNN)和指令集架构(如AVX、AVX2),它们会在运行时根据CPU信息自动选择。
  • 并行和异步执行
    多个批次可以使用多个GPU或CPU内核并行且异步地处理。
  • 动态内存使用
    内存使用根据请求大小动态变化,同时通过CPU和GPU上的缓存分配器满足性能要求。
  • 轻量级磁盘占用
    量化可以使模型在磁盘上的大小减少四倍,并且准确性损失较小。
  • 简单集成
    该项目依赖性少,并在Python和C++中提供简单的API,以满足大多数集成需求。
  • 可配置和交互式解码
    高级解码功能允许自动补全部分序列,并在序列中指定位置返回替代方案。
  • 支持分布式推理的张量并行性
    非常大的模型可以拆分到多个GPU上。按照这个文档设置环境。

其中一些功能使用标准深度学习框架难以实现,这些功能是该项目的动机。

安装和使用

CTranslate2 可以通过 pip 安装:

pip install ctranslate2

Python模块用于转换模型,并可以用几行代码翻译或生成文本:

translator = ctranslate2.Translator(translation_model_path)
translator.translate_batch(tokens)

generator = ctranslate2.Generator(generation_model_path)
generator.generate_batch(start_tokens)

查看文档以获取更多信息和示例。

基准测试

我们使用多个模型翻译 英->德 测试集 newstest2014

  • OpenNMT-tf WMT14: 在WMT14数据集(4.5M行)上使用OpenNMT-tf训练的base Transformer
  • OpenNMT-py WMT14: 在WMT14数据集(4.5M行)上使用OpenNMT-py训练的base Transformer
  • OPUS-MT: 在2020-02-26所有可用的OPUS数据(81.9M行)上使用Marian训练的base Transformer

基准测试报告每秒生成的目标标记数量(数量越高越好)。结果在多次运行中汇总。请参见基准脚本了解更多细节并重现这些数字。

请注意,以下结果仅适用于该基准测试期间使用的配置:绝对和相对性能可能会随着不同的设置而变化。

CPU

每秒标记数最大内存BLEU
OpenNMT-tf WMT14 模型
OpenNMT-tf 2.31.0(使用 TensorFlow 2.11.0)209.22653MB26.93
OpenNMT-py WMT14 模型
OpenNMT-py 3.0.4(使用 PyTorch 1.13.1)275.82012MB26.77
- int8323.31359MB26.72
CTranslate2 3.6.0658.8849MB26.77
- int16733.0672MB26.82
- int8860.2529MB26.78
- int8 + vmap1126.2598MB26.64
OPUS-MT 模型
Transformers 4.26.1(使用 PyTorch 1.13.1)147.32332MB27.90
Marian 1.11.0344.57605MB27.93
- int16330.25901MB27.65
- int8355.84763MB27.27
CTranslate2 3.6.0525.0721MB27.92
- int16596.1660MB27.53
- int8696.1516MB27.65

在配置了 Intel(R) Xeon(R) Platinum 8275CL CPU 的c5.2xlarge Amazon EC2 实例上,以4个线程执行。

GPU

每秒标记数最大GPU内存最大CPU内存BLEU
OpenNMT-tf WMT14 模型
OpenNMT-tf 2.31.0(使用 TensorFlow 2.11.0)1483.53031MB3122MB26.94
OpenNMT-py WMT14 模型
OpenNMT-py 3.0.4(使用 PyTorch 1.13.1)1795.22973MB3099MB26.77
FasterTransformer 5.36979.02402MB1131MB26.77
- float168592.51360MB1135MB26.80
CTranslate2 3.6.06634.71261MB953MB26.77
- int88567.21005MB807MB26.85
- float1610990.7941MB807MB26.77
- int8 + float168725.4813MB800MB26.83
OPUS-MT 模型
Transformers 4.26.1(使用 PyTorch 1.13.1)1022.94097MB2109MB27.90
Marian 1.11.03241.03381MB2156MB27.92
- float163962.43239MB1976MB27.94
CTranslate2 3.6.05876.41197MB754MB27.92
- int87521.91005MB792MB27.79
- float169296.7909MB814MB27.90
- int8 + float168362.7813MB766MB27.90

使用CUDA 11在配置了 NVIDIA A10G GPU(驱动版本:510.47.03)的g5.xlarge Amazon EC2 实例上执行。

其他资源

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号