实现 TensorFlow 多机并行线性加速
王佐,天数润科 深度学习 平台负责人,曾担任 Intel亚太研发中心Team Leader,万达 人工智能 研究院资深研究员,长期从事分布式计算系统研究,在大规模分布式 机器学习 系统架构、机器学习 算法 设计和应用方面有深厚积累。 在上一家公司就开始实践打磨一个深度优化的深度学习系统,当时从消除网络瓶颈,非凸优化,以及具体的深度学习算法等方面基于PaddlePaddle做了许多工作。目前公司主要深度学习算法都是跑在TensorFlow上,使用配置了GeForce GTX 1080的单机训练,一次完整的训练至少需要一周的时间,所以决定从优化TensorFlow多机并行方面提高算力。 为什么要优化 Tensorflow 多机并行 更多的数据可以提高预测性能[2],这也意味着更沉重的计算负担,未来计算力将成为AI发展的较大瓶颈。在大数据时代,解决存储和算力的方法是Scale out,在AI时代,Scale out也一定是发展趋势,并且大数据分析任务和AI/ML任务会共享处理设备(由于AI/ML迭代收敛和容错的特征,这两种任务未来不太可能使用统一平台),所以需要在分布式环境下优化资源配置[3],消除性能瓶颈。虽然现在TensorFlow能支持多机并行分布式训练,但是针对复杂网络,其训练速度反而不如单台机器[1]。目前已经有IBM[4]和Petuum[1]分别在其深度学习系统PowerAI