CTranslate2
CTranslate2 4.5.0
Ctranslate2是C ++和Python库,可有效推断变压器模型。
该项目实施了一种自定义运行时,该定制运行时应用了许多性能优化技术,例如权重量化,层融合,批处理再排序等,以加速和减少CPU和GPU上变压器模型的内存使用。
当前支持以下模型类型:
兼容模型应首先转换为优化的模型格式。该库包括用于多个框架的转换器:
该项目面向生产,并具有向后兼容性的保证,但还包括与模型压缩和推理加速有关的实验特征。
这些功能中的一些很难通过标准的深度学习框架实现,这是该项目的动力。
Ctranslate2可以使用PIP安装:
pip install ctranslate2Python模块用于转换模型,可以用几行代码转换或生成文本:
translator = ctranslate2 . Translator ( translation_model_path )
translator . translate_batch ( tokens )
generator = ctranslate2 . Generator ( generation_model_path )
generator . generate_batch ( start_tokens )有关更多信息和示例,请参见文档。
我们用多个模型翻译了En-> de test Set Set Seet Newst2014 :
基准报告每秒产生的目标令牌的数量(较高)。结果在多个运行中进行了汇总。有关更多详细信息,请参见基准脚本并复制这些数字。
请注意,下面介绍的结果仅适用于此基准期间使用的配置:绝对性能和相对性能可能会随着不同的设置而改变。
| 令牌每秒 | 最大限度。记忆 | bleu | |
|---|---|---|---|
| OpenNMT-TF WMT14型号 | |||
| OpenNMT-TF 2.31.0(带有TensorFlow 2.11.0) | 209.2 | 2653MB | 26.93 |
| OpenNMT-PY WMT14型号 | |||
| OpenNMT-PY 3.0.4(带Pytorch 1.13.1) | 275.8 | 2012MB | 26.77 |
| -int8 | 323.3 | 1359MB | 26.72 |
| ctranslate2 3.6.0 | 658.8 | 849MB | 26.77 |
| -INT16 | 733.0 | 672MB | 26.82 |
| -int8 | 860.2 | 529MB | 26.78 |
| -INT8 + VMAP | 1126.2 | 598MB | 26.64 |
| OPUS-MT模型 | |||
| 变压器4.26.1(带Pytorch 1.13.1) | 147.3 | 2332MB | 27.90 |
| 玛丽安1.11.0 | 344.5 | 7605MB | 27.93 |
| -INT16 | 330.2 | 5901MB | 27.65 |
| -int8 | 355.8 | 4763MB | 27.27 |
| ctranslate2 3.6.0 | 525.0 | 721MB | 27.92 |
| -INT16 | 596.1 | 660MB | 27.53 |
| -int8 | 696.1 | 516MB | 27.65 |
在C5.2xlarge Amazon EC2实例上使用4个线程执行,配备了Intel(R)Xeon(R)Platinum 8275Cl CPU。
| 令牌每秒 | 最大限度。 GPU内存 | 最大限度。 CPU内存 | bleu | |
|---|---|---|---|---|
| OpenNMT-TF WMT14型号 | ||||
| OpenNMT-TF 2.31.0(带有TensorFlow 2.11.0) | 1483.5 | 3031MB | 3122MB | 26.94 |
| OpenNMT-PY WMT14型号 | ||||
| OpenNMT-PY 3.0.4(带Pytorch 1.13.1) | 1795.2 | 2973MB | 3099MB | 26.77 |
| 更换transtransformer 5.3 | 6979.0 | 2402MB | 1131MB | 26.77 |
| -Float16 | 8592.5 | 1360MB | 1135MB | 26.80 |
| ctranslate2 3.6.0 | 6634.7 | 1261MB | 953MB | 26.77 |
| -int8 | 8567.2 | 1005MB | 807MB | 26.85 |
| -Float16 | 10990.7 | 941MB | 807MB | 26.77 |
| -int8 + float16 | 8725.4 | 813MB | 800MB | 26.83 |
| OPUS-MT模型 | ||||
| 变压器4.26.1(带Pytorch 1.13.1) | 1022.9 | 4097MB | 2109MB | 27.90 |
| 玛丽安1.11.0 | 3241.0 | 3381MB | 2156MB | 27.92 |
| -Float16 | 3962.4 | 3239MB | 1976MB | 27.94 |
| ctranslate2 3.6.0 | 5876.4 | 1197MB | 754MB | 27.92 |
| -int8 | 7521.9 | 1005MB | 792MB | 27.79 |
| -Float16 | 9296.7 | 909MB | 814MB | 27.90 |
| -int8 + float16 | 8362.7 | 813MB | 766MB | 27.90 |
在G5.xlarge Amazon EC2实例上使用CUDA 11执行,配备了NVIDIA A10G GPU(驱动程序版本:510.47.03)。