【昇腾推理PaddleOCR】生产级部署方式
已知的在昇腾上推理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
传送门