已知的在昇騰上推理Paddle OCR有三種方法:
概要:
PyTorch官方提供了昇騰插件包,安裝后雖然可以支持PytorchOCR和PaddlePaddle的推理任務,但性能較低。換句話說,PaddlePaddle框架層面支持了昇騰,但具體到某個模型、模型算子就不一定了。
為了充分發揮昇騰硬件的潛力,可以采用離線推理方案:
??模型轉換??:將Paddle模型轉換為昇騰專用的OM格式;
?高效推理??:通過昇騰 ACL 框架運行,顯著提升性能。
這種方案通過硬件深度優化,能大幅提升推理速度。
但由于學習成本高、效果不確定等,目前網上沒有這個的完整解決方案。
------------------------------------------- 分界線 -----------------------------------------------
因為工作需要,發現了另一種途徑,然后實現了在昇騰高性能推理、服務化的方式。已開源,歡迎 Star。
1. Paddle官方
使用Paddle官方提供的昇騰環境。優點是簡單、官方兼容。缺點很明顯:性能很差,不適用于企業真實場景。
2. 昇騰ACL
使用昇騰工具轉為昇騰支持的om格式的模型,再利用昇騰ACL(昇騰的C++推理框架)編寫推理腳本。優點是:性能好。缺點很明顯:學習成本很高、并且就算用ACL編寫出整個Pipeline,也可能會有其他問題,且不容易分析調整。
模型轉換和推理可以參考我的另一篇博文:https://blog.csdn.net/weixin_45653525/article/details/147519518?spm=1001.2014.3001.5501
3. 生產可用級
邪修的路子往往直達痛點,使用Pytorch推理Paddle OCR模型。
經過測試,性能很不錯:0.5s一張圖片,經過批處理優化后甚至可達0.2s一頁。精度也OK,并且穩定性在企業中已經驗證過,7*24穩定可靠。缺點是大圖片會導致顯存升高,需要專門拿出一張卡部署,問題其實也不大。
總的來說,這個速度已經很不錯了,并且在當前Paddle官方沒有很好支持昇騰的情況下,絕對是首選。
高性能、高可用的昇騰推理方式已開源,期待各位 ? Star~?
地址:https://github.com/momomo623/PaddleOCR-NPU
傳送門