linkedin开源列表
LinkedIn已使用Hadoop中的YARN(Yet Another Resource Negotiator)作业调度系统开源了一个用于扩展和管理TensorFlow中的深度学习作业的项目。
Tony项目是在LinkedIn尝试使用两个现有的开源解决方案在Hadoop上运行计划的TensorFlow作业并发现他们都想要的之后才出现的。 已经有一些在Hadoop上运行TensorFlow的项目,但是LinkedIn对它们不满意。 其中之一, Spark上的TensorFlow通过Apache Spark的作业引擎运行TensorFlow,但它与Spark的联系太紧密了。 另一个TensorFlowOnYARN提供与Tony相同的基本功能,但未维护且不提供容错功能。
TensorFlow中的深度学习模型需要某种形式的作业管理。 训练模型可能需要数小时或数天,并且训练过程需要一定的保证才能正确完成。
根据LinkedIn的新闻记录,Tony使用YARN的资源和任务调度系统在整个Hadoop集群上设置TensorFlow作业。 Tony还可以通过Hadoop调度基于GPU的TensorFlow作业,请求不同类型的资源(GPU与CPU)或为TensorFlow节点分配不同的内存,并确保作业输出定期保存到HDFS并从它们停止的地方恢复崩溃或被打断。
Tony将其工作分为三个内部组件:一个客户端,一个应用程序主机和一个任务执行器。 客户端接受传入的TensorFlow作业; 应用程序主机与YARN的资源管理器协商以在YARN上配置作业; 任务执行器实际上是在YARN集群上启动的,用于运行TensorFlow作业。
LinkedIn声称使用Tony时TensorFlow作业没有明显的开销,因为Tony“位于[编排分布式TensorFlow的层中,并且不会干扰TensorFlow作业的实际执行。”
Tony还可以使用TensorBoard应用程序来可视化,优化和调试TensorFlow应用程序。
linkedin开源列表