深度学习模型部署的几种方法

深度学习模型部署的几种方法由于模型训练完之后需要上线部署,这个过程中需要将模型集成到当前的软件架构中,因此要根据软件架构考虑模型的实际部署方法。目前来看主流的部署方法有以下几种方案: 1.python服务接口 在python服务器上部署模型文件,给出一个http服务,后台通过这个服务就可以调用模型进行输入输出了。 优点:算法

深度学习模型部署的几种方法

 

由于模型训练完之后需要上线部署,这个过程中需要将模型集成到当前的软件架构中,因此要根据软件架构考虑模型的实际部署方法。目前来看主流的部署方法有以下几种方案:

 

1.python服务接口

在python服务器上部署模型文件,给出一个http服务,后台通过这个服务就可以调用模型进行输入输出了。

优点:算法与后端的工作界限明显,不需要特别多的沟通;在使用模型前还需要进行数据预处理,不需要额外再进行代码迁移。

缺点:需要服务器安装python环境,维护的成本增加,服务器之间接口的通信问题,获取模型输出所需时间可能更长。

 

2.java直接加载模型

 

目前工业界比较成熟的部署方案就是使用tensorflow的java包,然后加载训练的模型文件。

需要事先将模型文件保存成pb格式,然后在java的环境中添加依赖。最后再加载模型。

优点:不需要额外的接口,调用方便;不需要额外安装python环境

缺点:需要将数据预处理这部分代码迁移成java,并添加到后端项目代码中。另外google对这种方法重视不高,没有详细的文档,也很少更新维护代码。模型预测速度和调python接口差不多。

 

3.docker+tf-serving部署模型

 

这个是google比较推荐的部署方法,部署文档比较详细。也是广泛使用的方法。这种方法直接将模型部署在docker容器中,然后提供两种接口,分别是Grpc接口和http接口,前者据说是在读取批量数据上更有优势,例如图片数据;服务启动后只要可以连接,任何语言都可以调用。

 

优点:部署方便,不受服务器限制;可以同时部署多个模型,方便模型的管理和版本控制;模型推理的速度快,经过测试比前两种快2倍。

缺点:同样需要编写数据预处理代码,数据输入格式需要按文档的要求。

 

综上所述,目前几种部署方案都可以使用,需要根据实际情况灵活选择合适的方法。个人觉得如果是比较规范的平台化部署可以用tf-serving;如果只是比较小的功能,不需要太多的后续维护的模型1和2都可以。

 

从搜集的资料上看,由于对模型推理速度的性能要求越来越高,例如bert这种参数上亿的模型,目前使用gpu环境部署模型的场景越来越多,Nvidia的tensorRT也有越来越多人开始尝试,据说比tf-serving的推理速度更快。

今天的文章深度学习模型部署的几种方法分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/49755.html

(0)
编程小号编程小号
上一篇 2023-09-02
下一篇 2023-09-02

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注