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)。