AI模型 越来越多,软件功能也越来越丰富,客户端部署小模型应用也是当前的热门。目前还是英伟达显卡遥遥领先的情况下,模型推理加速首选还是TensorRT技术。
英伟达官网下载 TensorRT,注意要结合硬件选择对应的CUDA和CUDNN版本。
神经网络推理模型部署
将神经网络推理框架的接口和转换后的神经网络推理模型一起打包发布到客户终端。这里有个难点是推理框架和使用的推理硬件是有深度绑定的,而客户手上的硬件各有不同......。有两个不同的解决方法,一个是发布不同硬件版本的部署产品,一个是在客户的设备上进行一次神经网络推理模型的生成。
如果选择第二个方法,又会遇到新问题就是不想把自己辛苦训练的神经网络模型暴露给其他人,只想提供推理模型。那么又出来一个模型动态加解密的技术。。。
由于硬件飞速发展,TRT版本也一直在更新,向下兼容性差,经常需要重写部署代码!
参考TRT代码 trtexec命令行工具的例子。
按功能分成两个部分。 一个是模型转换。主要是ONNX转TRT。另外是做一个接口供程序调用TRT模型进行推理 。不需要经常更新主程序,只需要更新接口的dll
将推理功能单独做成一个dll接口,以后升级TRT的时候只需要更换适配的dll接口文件就行,跟程序逻辑独立开了。
加载模型 初始化 模型推理 释放模型 加入模型动态加解密功能,推理模型本地加密存储,加载时动态解密执行推理。