首页
/
每日頭條
/
科技
/
微信簡單編程工具
微信簡單編程工具
更新时间:2026-05-24 19:46:11

騰訊宣布開源 Transformer 推理加速工具 TurboTransformers。該工具面向自然語言處理領域中 Transformers 相關模型豐富的線上預測場景,據介紹,其在微信、騰訊雲、QQ 看點等産品的線上服務中已經廣泛應用,這也是騰訊對外開源的第 100 個項目。

微信簡單編程工具(微信開源推理加速工具)1

在自然語言處理領域中,以 BERT 為代表的 Transformers 相關神經網絡模型是近年來最重要的模型創新,可以為閱讀理解、文章摘要、語義分類、同義改寫等 NLP 任務提供顯著的效果提升。但提高模型精度的同時,Transformes 相關模型也帶來了更多的計算量。

由于深度學習的訓練和推理任務存在差異,訓練框架直接應用于線上推理并不能得到極緻的性能。衆多模型算法工程師都遇到了訓練的模型效果很好,但因為響應延遲不滿足要求,導緻模型無法上線的問題。

微信簡單編程工具(微信開源推理加速工具)2

在這種背景下,騰訊微信團隊研發了 TurboTransformers 加速器。它來自于深度學習自然語言處理基礎平台 TencentNLP Oteam,旨在搭建統一的深度學習 NLP (Natural Language Processing,自然語言處理)基礎平台、提升研發效能。特性主要有三點:

  • 優異的 CPU/GPU 性能表現。面向 Intel 多核 CPU 和 NVIDIA GPU 硬件平台,通過核心融合和并行算法優化,TurboTransformers 充發揮硬件的各層級并行計算的能力。在多種 CPU 和 GPU 硬件上獲得了超過 PyTorch/TensorFlow 和目前主流優化引擎(如 onnxruntime-mkldnn/onnxruntime-gpu、torch JIT、NVIDIA faster transformers)的性能表現。
  • 為 NLP 推理任務特點量身定制。TurboTransformers 可以支持變長輸入序列處理,無需序列補零、截斷或者分桶帶來的無用計算,也無需任何針對計算圖在推理前進行預調優的過程。
  • 簡單的使用方式。TurboTransformers 支持 Python 和 C 接口進行調用。TurboTransformers 支持 TensorFlow 和 PyTorch 預訓練模型的載入。它可以作為 huggingface/transformers 的推理加速插件,通過加入幾行 Python 代碼獲得對 BERT 模型的端對端加速效果。

相比其它同類項目:

微信簡單編程工具(微信開源推理加速工具)3

騰訊介紹,TurboTransformers 讓微信内部衆多 NLP 線上應用能夠充分榨取底層硬件的計算能力,讓算法更好地服務用戶。具體來說 TurboTransformers 在算子優化、框架優化和接口部署方式簡化三個方面做了工作。

微信簡單編程工具(微信開源推理加速工具)4

TurboTransformers 架構

算子層優化

如下圖所示,Transformer 架構中的 Transformer Cell 計算包含了 8 個 GEMM(通用矩陣乘法,General Matrix Multiplication)運算。其中,(a) 中灰色方框内的結構為一個 Transformer Cell,BERT encoder 堆疊了 Nx 個這樣的 Transformer Cell;(b) 将一個 Cell 的細節加以展開,每一個矩形都是一個獨立的計算核心。

TurboTransformers 通過調優 Intel MKL 和 cuBLAS 的 GEMM 調用方式獲得最佳 GEMM 性能。通過調整了預訓練矩陣存儲方式,并且在硬件允許條件下,在 GPU 上使用 tensor core 方式進行 GEMM 運算。

微信簡單編程工具(微信開源推理加速工具)5

類似 NVIDIA FasterTransformers 方案,TurboTransformers 将 Transformer 中的所有 GEMM(通用矩陣乘法,General Matrix Multiplication) 運算之間的計算融合成一個調用核心。融合會帶來兩個好處,一是減少了内存訪問開銷,二是減少多線程啟動開銷。對于這些核心,在 CPU 上采用 openmp 進行并行,在 GPU 上使用 CUDA 進行優化實現。對于比較複雜的 LayerNorm 和 Softmax 算子,它們包含了不适合 GPU 上并行的規約操作,TurboTransformers 為它們設計了創新并行算法,極大降低了這些算子的延遲。理論上 Transformers 推理延遲應該近似于矩陣乘法延遲。

框架層優化

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

為了能夠無縫支持 PyTorch/TensorFlow 訓練好的序列化模型,項目中提供了一些腳本可以将二者的預訓練模型轉化為 npz 格式,供 TurboTransformers 讀入。特别考慮到 PyTorch huggingface/transformers 是目前最流行的 Transformers 訓練方法,TurboTransformers 支持直接讀入 huggingface/transformers 預訓練模型。

應用部署

TurboTransformers 提供了 C 和 Python 調用接口,可以嵌入到 C 多線程後台服務流中,也可以加入到 PyTorch 服務流中。官方建議通過 Docker 部署 TurboTransformers,一方面保證編譯的可移植性,另一方面也可以無縫應用于 K8S 等線上部署平台。

性能方面,官方分别以 CPU 和 GPU 兩方面進行測試:

CPU 測試效果

在 3 種 CPU 硬件平台測試了 TurboTransformers 的性能表現,選擇 pytorch、pytorch-jit 和 onnxruntime-mkldnn 和 TensorRT 實現作為對比。性能測試結果為叠代 150 次的均值。為了避免多次測試時,上次叠代的數據在 cache 中緩存的現象,每次測試采用随機數據,并在計算後刷新的 cache 數據。

  • Intel Xeon 61xx

微信簡單編程工具(微信開源推理加速工具)6

微信簡單編程工具(微信開源推理加速工具)7

  • Intel Xeon 6133

相比 61xx 型号,Intel Xeon 6133 向量化長度更長為 512 bit,并且它擁有一個 30 MB 核間共享 L3 cache。

微信簡單編程工具(微信開源推理加速工具)8

微信簡單編程工具(微信開源推理加速工具)9

GPU 測試效果

在 4 種 GPU 硬件平台測試了 TurboTransformers 的性能表現,選擇 pytorch、NVIDIA Faster Transformers、onnxruntime-gpuTensorRT 實現作為對比。性能測試結果為叠代 150 次的均值。

  • RTX 2060

微信簡單編程工具(微信開源推理加速工具)10

微信簡單編程工具(微信開源推理加速工具)11

  • Tesla V100

微信簡單編程工具(微信開源推理加速工具)12

微信簡單編程工具(微信開源推理加速工具)13

  • Tesla P40

微信簡單編程工具(微信開源推理加速工具)14

微信簡單編程工具(微信開源推理加速工具)15

  • Tesla M40

微信簡單編程工具(微信開源推理加速工具)16

微信簡單編程工具(微信開源推理加速工具)17

同時,騰訊也表示,TurboTransformers 目前隻支持了 FP32 的計算,對于 GPU FP16 的支持将在後續提供。TurboTransformers 目前重點支持了 BERT 模型,未來也會增加 TurboTransformers 的自動化優化能力。另外,TurboTransformers 解決了計算加速的問題,用戶還需要自己搭建服務框架,未來騰訊也會将服務流程開源,打通用戶上線的最後一站。

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
小米路由器連接不上網絡怎麼辦
小米路由器連接不上網絡怎麼辦
1、路由器中設置問題:根據統計的數據來看,隻是90%的用戶,都是因為路由器中的相關設置不正确,才導緻的路由器連不上網。所以,這一部分的内容非常的重要,建議新手多閱讀幾次,請嚴格按照文中方法去操作。2、選擇正确的上網方式:在第一次設置小米路由器4上網的時候,系統會自動檢測、選擇上網方式。系統自動選擇的...
2026-05-24
vivo紅外被異常遮擋怎麼辦
vivo紅外被異常遮擋怎麼辦
1、在手機裡點擊打開設置。2、在設置裡,點擊更多設置。3、進入更多設置後,選擇恢複出廠設置。4、然後點擊還原所有設置。5、在跳出的對話框裡點擊還原即可。
2026-05-24
補過兩次的車胎可以跑高速嗎
補過兩次的車胎可以跑高速嗎
1、首先說補胎的問題。輪胎被紮,然後去補胎,這是很正常的事情。一般來說,隻要輪胎修補沒有問題,補過兩次胎并不影響車輛開高速。2、現在大部分補胎都選擇貼片式和蘑菇釘兩種方式。貼片式修補就是用貼片從汽車輪胎内側将紮孔處封住,這種方式價格比較便宜,但是真正破損的地方還是暴露在外,沒有得到任何修複,破損處很容易随着輪胎的使用越來越大,并且修補的貼片如果沒有處理好也存在掉落的風險。3、一般要跑高速前确認修補
2026-05-24
沒有4g網怎麼回事
沒有4g網怎麼回事
以華為P40,Android11系統為例:查看手機卡是否支持4G業務,是否選擇了4G網絡模式。确認所在區域是否覆蓋4G網絡,換其他地點嘗試。關機重新啟動或者換卡嘗試。若無效,建議備份手機中的數據(聯系人、信息、照片等),恢複出廠設置嘗試。若問題依然存在,請您攜帶購機發票、包修卡和機器送到服務中心,由專業的售後工程師幫助檢測。
2026-05-24
數控車床如何新建加工程序
數控車床如何新建加工程序
1、首先在編輯方式選擇程序畫面,程序開關為開。才能編程。2、在編輯方式下選擇程序畫面(顯示兩個,一個是程序号,一個是程序内容。)在程序内容那個畫面,用鍵輸入地址O,用鍵輸入程序号,按插入鍵,按EOB鍵,(輸入;”号)。通過這個操作把程序号存儲起來,之後把程序中每個地址字,數據字用鍵輸入。然後按插入鍵把程序存儲起來。3、注:每次隻能輸入一個地址和數字如(X10),一個程序段結束必須按EO
2026-05-24
Copyright 2023-2026 - www.tftnews.com All Rights Reserved