成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

微信也在用的Transformer加速推理工具,現在騰訊開源了

新聞 開發工具
近年來,基于Transformer的模型,可以說是在NLP界殺出了一片天地。雖然在提高模型模型精度上,Transformer發揮了不容小覷的作用,但與此同時,卻引入了更大的計算量。

 本文經AI新媒體量子位(公眾號ID:QbitAI)授權轉載,轉載請聯系出處。

近年來,基于Transformer的模型,可以說是在NLP界殺出了一片天地。

雖然在提高模型模型精度上,Transformer發揮了不容小覷的作用,但與此同時,卻引入了更大的計算量

那么,這個計算量有多大呢?

來看下數據。

微信也在用的Transformer加速推理工具,現在騰訊開源了

因此,實現一個能充分發揮CPU/GPU硬件計算能力的Transformer推理方法,就成了急需解決的問題。

近日,騰訊便開源了一個叫TurboTransformers的工具,對Transformer推理過程起到了加速作用,讓你的推理引擎變得更加強大。

微信也在用的Transformer加速推理工具,現在騰訊開源了

這個工具已經在微信、騰訊云、QQ看點等產品中廣泛應用,在線上預測場景中可以說是“身經百戰”。

Turbo具有如下三大特性

  • 優異的CPU/GPU性能表現。
  • 為NLP推理任務特點量身定制。
  • 簡單的使用方式。

值得一提的是,TurboTransformers,是騰訊通過Github對外開源的第100個項目。

那么,具有如此“紀念意義”的開源工具,到底有多厲害?

接下來,我們將一一講解。

多項性能測試“摘桂冠”

Turbo在CPU/GPU性能上的表現可以說是非常優異。

在多種CPU和GPU硬件上獲得了超過pytorch/tensorflow和目前主流優化引擎的性能表現。

微信也在用的Transformer加速推理工具,現在騰訊開源了

CPU上的測試結果

首先,是在CPU 硬件平臺上,測試了 TurboTransformers 的性能表現。

選擇 pytorch、pytorch-jit 和 onnxruntime-mkldnn 和 TensorRT 實現作為對比。

性能測試結果為迭代 150 次的均值。為了避免多次測試時,上次迭代的數據在 cache 中緩存的現象,每次測試采用隨機數據,并在計算后刷新的 cache 數據。

下圖是Intel Xeon 6133 CPU的性能測試結果。

微信也在用的Transformer加速推理工具,現在騰訊開源了
微信也在用的Transformer加速推理工具,現在騰訊開源了

GPU上的測試結果

其次,是在GPU硬件平臺上,測試了 TurboTransformers 的性能表現。

選擇對比的對象分別是:pytorch、NVIDIA Faster Transformers、onnxruntime-gpuTensorRT。

性能測試結果為迭代 150 次的均值。

下圖是在NVIDIA RTX 2060 GPU的性能測試結果。

微信也在用的Transformer加速推理工具,現在騰訊開源了
微信也在用的Transformer加速推理工具,現在騰訊開源了

接下來,是在NVIDIA P40 GPU的性能測試結果。

微信也在用的Transformer加速推理工具,現在騰訊開源了
微信也在用的Transformer加速推理工具,現在騰訊開源了

最后,是在NVIDIA V100 GPU的性能測試結果。

微信也在用的Transformer加速推理工具,現在騰訊開源了
微信也在用的Transformer加速推理工具,現在騰訊開源了

Turbo技術原理

能夠取得如此好的推理性能,這背后的計算原理又是什么呢?

TurboTransformers的軟件架構如下圖,它讓微信內部眾多NLP線上應用能夠充分榨取底層硬件的計算能力,讓算法更好地服務的用戶。

具體來說TurboTransformers可以在算子優化、框架優化和接口部署方式簡化三個方面做了工作。

微信也在用的Transformer加速推理工具,現在騰訊開源了

算子層優化

Transformer都包含了什么計算呢?

如下圖所示,圖(a)展示了論文Transformer結構示意圖,這里稱灰色方框內的結構為一個Transformer Cell,BERT encoder堆疊了Nx個這樣的Transformer Cell。

圖(b)將一個Cell的細節加以展開,每一個矩形都是一個獨立的計算核心。

微信也在用的Transformer加速推理工具,現在騰訊開源了

Transformer Cell計算包含了8個GEMM(通用矩陣乘法,General Matrix Multiplication)運算。通過調優Intel MKL和cuBLAS的GEMM調用方式來獲得最佳GEMM性能。

并且在硬件允許條件下,在GPU上使用tensor core方式進行GEMM運算。

類似NVIDIA FasterTransformers方案,將所有GEMM運算之間的計算融合成一個調用核心。融合會帶來兩個好處,一是減少了內存訪問開銷,二是減少多線程啟動開銷。

對于這些核心,在CPU上采用openmp進行并行,在GPU上使用CUDA進行優化實現。

對于比較復雜的LayerNorm和Softmax算子,它們包含了不適合GPU上并行的規約操作,TurboTransformers為它們設計了創新并行算法,極大降低了這些算子的延遲。

理論上Transformers推理延遲應該近似于矩陣乘法延遲。

框架層優化

TurboTransformers采用了一個有效的內存管理方式。

由于NLP的采用變長輸入特性,每次運算中間結果的大小其實并不相同。為了避免每次都分配釋放內存,研究人員通過Caching方式管理顯存。

為了能夠無縫支持pytorch/tensorflow訓練好的序列化模型,提供了一些腳本可以將二者的預訓練模型轉化為npz格式,供TurboTransformers讀入。

特別的,考慮到pytorch huggingface/transformers是目前最流行的transformers訓練方法,支持直接讀入huggingface/transformers預訓練模型。

應用部署

Turbo提供了C++和Python調用接口,可以嵌入到C++多線程后臺服務流程中,也可以加入到pytorch服務流程中。

研究人員建議TurboTransformers通過docker部署,一方面保證了編譯的可移植性,另一方面也可以無縫應用于K8S等線上部署平臺。

傳送門

GitHub項目地址:https://github.com/Tencent/TurboTransformers/blob/master/README_cn.md

責任編輯:張燕妮 來源: 量子位
相關推薦

2012-12-21 15:09:10

微 信 不是

2024-03-12 12:17:06

AI數據

2021-01-19 19:06:00

微信企業微信騰訊

2025-02-18 13:30:00

2022-01-11 20:50:12

微信企業微信移動應用

2020-12-04 09:21:05

工具設計開發

2023-04-07 18:37:46

2019-05-25 14:58:06

車載微信微信語音交互

2020-11-26 18:01:35

微博

2024-11-11 08:50:24

2018-03-07 11:11:46

微信開源小程序

2020-11-04 10:18:59

微信

2013-07-01 11:32:27

騰訊微信藍牙耳機

2024-08-30 08:12:17

開源微信小程序

2020-09-07 14:00:23

騰訊微博微信互聯網

2017-01-06 13:45:47

騰訊云微信生態

2020-08-13 15:20:49

騰訊WeChat微信

2013-09-25 11:12:47

2013-12-02 11:11:04

騰訊微信

2021-08-31 20:07:48

微信騰訊移動應用
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲精品乱码久久久久久按摩观 | 色爱综合网 | 91在线区| 国产精品不卡一区二区三区 | 91精品久久久久久久久久小网站 | 福利视频网站 | 久久久久亚洲精品 | 在线视频国产一区 | www.黄色在线观看 | 日本不卡免费新一二三区 | 福利久久 | 久久久久久亚洲精品 | 精品视频久久久久久 | 中文字幕一区二区三区在线乱码 | 国产成人精品一区 | 国产精品久久国产精品 | 亚洲成人日韩 | 羞视频在线观看 | 欧美一级精品片在线看 | 影音av| 婷婷免费在线 | 精品久久久久久 | 2020亚洲天堂 | 国产欧美精品一区二区色综合 | 久久亚洲天堂 | 国产亚洲人成a在线v网站 | 色综合视频 | 在线看片网站 | 亚洲精品粉嫩美女一区 | 精品国产乱码久久久久久蜜柚 | 国产色片在线 | 男人天堂色 | 亚洲一区二区三区四区视频 | 五月婷六月丁香 | 日韩一区二区三区在线 | 韩日一区 | 国产精品精品久久久久久 | 欧美日韩国产一区二区 | 国产一区二区影院 | 自拍在线| 精品视频一二区 |