TensorFlow实现无监督在线学习

本文准备介绍tensorflow对在线学习的支持。所谓在线学习也就是模型一边训练一边服务,与之相对的则是离线学习(或称为批量学习):

tensorflow 实现无监督深度学习 tensorflow online learning_服务集群

在工程实现上,一般采用架构如下:

tensorflow 实现无监督深度学习 tensorflow online learning_自定义_02



通过周期性的模型同步,将训练集群和服务集群相互隔离,这样做是有必要的,因为两个集群的业务场景不一样,对他们的要求也不一样:

  • 模型服务集群承载着线上的真实流量,所以所有后端服务的常用指标都适用于服务模型服务集群,高可用性、高效率、高扩展性等等。
  • 模型训练集群重在训练的效率,不要求有很高的热扩展性,可以停机添加机器或剔除机器,对可用性要求也不是很苛刻。

tensorflow体系中,模型训练集群采用tensorflow,模型服务集群一般采用tensorflow serving,模型以文件的形式存储,模型同步是通过文件系统完成的,比如HDFS。tensorflow serving是模型服务方面的高性能开源库,支持模型的版本管理和检查,以及自动更新。



这种结构能满足大多数情况下的业务场景的需求,但是在一些极端场景下,这些还不够。比如作者就曾遇到这样的常见,模型的体积超出了单机内存的上限,如何处理呢?

具体来说,在模型训练的时候,可以采用PS结构,将超大的模型分散到多台参数服务器上;但是到了模型服务的时候,tensorflow serving并不支持PS结构,模型必须单机完整加载模型。

也许你会想到,直接用tensorflow做模型服务,并且也同样采用PS结构呢?

这个架构的问题在于tensorflow ps集群不支持热扩展,当需要添加机器的时候,需要全部重启。

回到我们模型超大的问题,解决这个问题的关键在于tensorflow的一个很好的特征,那就是可以自定义OP。



这里提供一个解决的思路,具体实现的方式可以有很多种方式,就不在这里详述了:

  • 有了自定义的OP的机制,模型训练集群可以将模型以我们自定义的格式存储到任何载体里,比如为了方便检索可以放到数据库,并且模型服务集群可以实现模型的按需查询,如此则服务集群不需要将完整的模型全部加载到单机内存里。

结构如下:

tensorflow 实现无监督深度学习 tensorflow online learning_自定义_03

               

免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空