模型训练和服务架构

我们决定将深度学习模型的训练和服务分为两个管道。下图是我们的模型训练和服务架构的概述:

模型训练管道

模型训练步骤:

• 我们的训练特征是从Hadoop中提供的数据生成的。

• 生成的训练特征保存在AWS S3中。

然后使用AWS中的GPU实例和S3中的批量训练样本训练TensorFlow模型。

一旦模型被构建并验证通过,它将被发布到S3中的模型存储库。

模型服务管道

验证的模型在生产中通过将模型从模型库传送到TensorFlow Serving实例来提供。

基础结构

我们在AWS EC2实例上运行TensorFlow Serving。Consul在实例之前设置,用于服务发现和分发流量。客户端连接从DNS查找返回的第一个可用IP。或者弹性负载平衡可用于更高级的负载平衡。由于TensorFlow模型的预测本质上是无状态操作,所以我们可以通过旋转加速更多的EC2实例来实现横向可扩展性。

另一个选择是使用Google Cloud平台提供的Cloud ML,它提供TensorFlow Serving作为完全托管服务。但是,当我们在大概2016年9月推出TensorFlow Serving时,Cloud ML服务处于alpha阶段,缺少生产使用所需的功能。因此,我们选择在我们自己的AWS EC2实例中托管,以实现更精细的粒度控制和可预测的资源容量。