第17章 TensorFlow和Kubernetes结合
在AlphaGo中,每个实验使用1 000个节点,每个节点有4个GPU,也就是使用了4 000个GPU。在Siri中,每个实验2个节点,也就是使用了8个GPU。可想而知,AI研究的进行依赖于海量数据的计算,同时也离不开高性能计算资源的支持。
在第14章中我们已经讲解了TensorFlow的分布式原理以及部署方式。随着海量数据的出现和模型参数的增多,我们必然需要更大的集群来运行模型,这样最大的好处在于把原本可能需要周级别的训练时间缩短到天级别甚至小时级别。未来的模型训练面对的都是上亿数据和上亿参数,稳定的计算能力和管理便捷的集群环境至关重要。Kubernetes是目前应用最广泛的容器集群管理工具之一,它可以为对分布式TensorFlow的监控、调度等生命周期管理提供所需的保障。
17.1 为什么需要Kubernetes
有过大数据集群开发经验的人都知道,尽管TensorFlow有自己的分布式方案,但仍需要手动把每台机器运行起来,当机器量是几台或十几台的时候,可能压力不大,但当机器量达到上千台时,就需要一样东西来进行管理和调度,进行自动化部署、调度、扩容和缩容处理,甚至当一些任务意外退出后,还需要控制自动重启。Kubernetes就提供了这样的解决方案。
Kubernetes官方