之前對bert輕量化,顯存占用減少一半。但是推理速度仍然沒多大變化。因此 計划通過tensorRT完成模型的推理加速。
輕量化之前鏈接: https://www.cnblogs.com/dhName/p/12628828.html
1. 首先,了解一下tensorTR是干什么的,這篇文章寫得很好。
https://www.cnblogs.com/qccz123456/p/11767858.html
https://arleyzhang.github.io/articles/7f4b25ce/
本人猜想,Nvidia官方提出tensorrt的目的是為了更好的融合深度學習框架和GPU.。tensorflow、pytorch等深度學習框架市場戰場率太大,而GPU去靠近哪一個框架都是一種損失,因此他們掙了一個tensorRT,這個東西畢竟自己開發的,更能適合自己的GPU.在訓練方面,仍使用tensorflow等深度學習框架,而推理階段,只需要把模型build成tensorRT自己的類型,在GPu上申請一個空間,用於存放推理時候的占用,然后推理完后再遞給GPU即可。
所以這個東西更像一個橋梁,使模型能更好的兼容GPU (畢竟tensorRT和Gpu都是人家的,兼容性肯定比谷歌的tensorflow對nvidia的gpu兼容好),在推理的時候加速。
1. https://github.com/NVIDIA/TensorRT
參照build流程,便可以完成我們的tensorRT的編譯。環境踩坑環節不介紹。
2.
https://github.com/NVIDIA/TensorRT
參考官方文檔,
https://github.com/NVIDIA/TensorRT/tree/master/demo/BERT 中便是對Bert的加速。
其中,
Quick Start Guide
章節,詳細介紹了使用教程,3可以省略,替換為我們自己的bert模型。