高性能计算技术也能助推大规模深度学习(百度实践)

简介: 本文描写了百度硅谷人工智能实验室在深度学习框架中引入HPC技术的实践,通过对OpenMPI里ring all-reduce算法进行改进,使语音识别训练模型的性能得到数十倍的提升,最后百度开源了其实现,希望更多的人受益。

更多深度文章,请关注:https://yq.aliyun.com/cloud

作者简介:

1ce2199fbc603a104d7e1c2d7598193e2fac99c0

Tiffany Trader,毕业于圣地亚哥州立大学和加州州立大学,长期致力于高性能计算、云计算、绿色计算新闻报道和分析,2015年开始担任全球知名高性能计算新闻网站HPCwire的总编辑。Tiffany Trader 的LinkedIn主页Twitter主页


    来自百度硅谷人工智能实验室(SVAIL)的研究人员改进了众所周知的HPC通信技术,提升了通信速度,并且扩大了他们的神经网络训练规模,今天,在知名深度学习社区分享了他们的实现。

    百度改进的这个技术就是OpenMPI算法ring all-reduce,在百度的语音识别模型(Deep Speech 2,建立在多个GPU计算节点之上)并行训练中使用了ring all-reduce算法,百度在今年2月开源了两个软件包,一个是baidu-allreduce c库(一个小型C++库),另一个是tensorflow-allreduce(给tensorflow 0.12.1打了一个补丁),使用tensorflow建立的模型可以使用这个新的版本,利用它的跨多设备并行处理能力。相关代码托管在GitHub上,有兴趣的读者点击前面的链接即可。

    百度的SVAIL团队大约两年前开始在他们内部的深度学习框架(名叫Gene and Majel,为了向著名的星际旅行创立者Gene Roddenberry和他的第二任妻子Majel Barrett致敬)上使用这个算法,百度研究人员表示,在HPC领域,大家对这个算法早已是老生常谈,但在人工智能和深度学习领域,这个算法却未被充分利用。

    SVAIL团队成员大都来自高性能计算领域。百度研究科学家Shubho Sengupta说:“ring all-reduce算法其实是OpenMPI的一部分,但OpenMPI本身并不是很快,我们在刚用它来进行训练时遇到了不少问题,我们发现它的伸缩能力有限,但我们又很想让它具有良好的伸缩性,因此我们决定研究它的源代码,最终发现这个算法的效率不高,我们就重新实现了这个算法”。

    SVAIL研究人员重写的ring all-reduce算法性能更好,也更稳定,与OpenMPI最大的差别是,SVAIL实现的算法避免了CPU和GPU之间额外的副本传输。

    Sengupta解释,“OpenMPI在这些矩阵通信时,如果矩阵在GPU内存中,它实际上会复制一份到CPU内存中,这种做法是非常浪费资源的,实际上可以不用复制,只需要编写一个小的内核来减少GPU内存空间即可,当你在一个节点内执行all-reduce,并且所有GPU都在一个PCI根复合体中时这种方法特别有用,在GPU内存空间就可以完成一切任务,就是这么一个简单的想法,最终我们的算法实现比OpenMPI自身的要快得多”。

516720dc3fd12b9d50342efc534509cf18c3dcee

Ring all-reduce,所有GPU同时发送数据

    SVAIL除了在算法实现上有突破外,他们还注重高速网络(InfiniBand)和软硬一体设计,最终使GPU纵向扩展到128个,具体细节请查阅2015年12月SVAIL团队发布的论文“Deep Speech 2:中英文端到端语音识别”。通过对ring all-reduce算法的改进,与OpenMPI(v1.8.5)相比,百度SVAIL团队在同等GPU数量的情况下,将速度提升了2.3-21.4倍。

    Sengupta表示,GPU数量很少时速度是最快的,“8颗GPU是快大约20倍,睡着GPU数量的增加,性能反而会有所下降,因为必须通过网络将数据发送给CPU,但在我们内部的框架上,我们可以将GPU数量扩大到128颗,实现线性扩展”。

be1c1c6e1ec53f5561e8e8b40a7374511d004ea4

两种all-reduce算法实现的性能对比(单位:秒)

    Deep Speech 2论文发布后,SVAIL团队开始收到来自社区想了解实现细节的请求,由于这个算法与SVAIL的深度学习框架专利结合得太紧密了,因此,他们就创建了两种实现方法,一个是针对TensorFlow的,另一个就是更通用的。

    领导TensorFlow补丁工作的Gibiansky阐述了他们多管齐下传播信息的方法,“看看这篇博客你就知道了,如果你在使用TensorFlow,可以使用我们提交的补丁版本来训练你的模型,如果你是深度学习的作者,你可以看看我们的C库,并集成它,通过我们内部的尝试结果来看还是非常成功的,我们希望让更多的人受益于此”。

    Sengupta就深挖HPC技术用于深度学习分享了一个有趣的观点, “搞深度学习的人总认为MPI是一项过时的技术,并且好像和深度学习也没什么关系,但我认为使用MPI也可以搭建非常快的集合,并且支持同步梯度下降,使收敛速度更快,不需要用到异步梯度下降就能得到结果”。

    关于百度ring all-reduce算法的详细解释,请看百度研究院的这篇博客文章,对于百度开源的深度学习框架PaddlePaddle来说,它还使用了其它大量的技术来保证高性能节点的扩展,有兴趣的同学可以到PaddlePaddle的主页去看看。

 数十款阿里云产品限时折扣中,赶紧点击领劵开始云上实践吧!

以上为译文。

本文由北邮@爱可可-爱生活 老师推荐,阿里云云栖社区组织翻译。

文章原标题《HPC Technique Propels Deep Learning at Scale

作者:Tiffany Trader,译者:耕牛的人,审校:身形。

文章为简译,更为详细的内容,请查看原文

 

相关文章
|
2天前
|
机器学习/深度学习 传感器 自动驾驶
探索基于深度学习的图像识别技术在自动驾驶领域的应用
【5月更文挑战第10天】 随着人工智能技术的飞速发展,特别是深度学习在图像处理和识别方面的突破性进展,自动驾驶汽车逐渐成为现实。本文将深入探讨深度学习技术在图像识别领域的应用,以及如何通过这些技术提高自动驾驶系统的性能和安全性。我们将分析卷积神经网络(CNN)在车辆检测、行人识别和交通标志识别中的作用,并讨论数据增强、迁移学习和对抗网络等策略如何帮助提升模型的泛化能力和鲁棒性。此外,文中还将涉及深度学习模型在实时处理和嵌入式系统部署时面临的挑战及其解决方案。
|
2天前
|
机器学习/深度学习 传感器 自动驾驶
基于深度学习的图像识别技术在自动驾驶系统中的应用
【5月更文挑战第10天】 随着人工智能技术的飞速发展,基于深度学习的图像识别技术已成为自动驾驶系统不可或缺的核心组成部分。该技术通过模拟人类视觉系统处理与理解环境信息的过程,赋予自动驾驶车辆高度准确和实时的环境感知能力。本文首先概述了深度学习在图像识别领域的关键技术与方法,包括卷积神经网络(CNN)及其变体、循环神经网络(RNN)等,并探讨了这些技术在自动驾驶系统中的具体应用,如车辆检测、行人识别、交通标志识别以及道路场景理解。随后,文章分析了当前技术面临的主要挑战,包括数据集的多样性与质量、模型泛化能力、实时处理要求及系统的鲁棒性问题。最后,展望了未来图像识别技术在自动驾驶领域的发展趋势,特
|
2天前
|
机器学习/深度学习 传感器 自动驾驶
基于深度学习的图像识别技术在自动驾驶汽车中的应用
【5月更文挑战第10天】 随着人工智能技术的飞速发展,尤其是深度学习在图像识别领域的突破,自动驾驶技术迎来了新的发展机遇。本文将深入探讨基于深度学习的图像识别技术是如何被集成到自动驾驶汽车系统中,并分析其对提高车辆环境感知能力、决策系统准确性和整体安全性的影响。通过对比传统算法与深度学习方法的性能差异,我们展示了深度学习在处理复杂交通场景中的优势,以及在实时性要求极高的环境下的挑战和应对策略。
6 0
|
3天前
|
机器学习/深度学习 数据采集 算法
探索基于深度学习的图像识别技术
【5月更文挑战第9天】 在本文中,我们将深入分析并讨论一种前沿技术——基于深度学习的图像识别。这一技术已经成为计算机视觉领域的重要分支,并在医疗、安防、自动驾驶等多个行业中得到广泛应用。文章首先概述了深度学习的基本理论,然后重点探讨了卷积神经网络(CNN)在图像处理中的应用,最后通过一个实际案例来展示该技术的有效性和潜力。我们旨在为读者提供一个清晰、系统的技术概览,以及对未来发展趋势的展望。
|
3天前
|
机器学习/深度学习 传感器 自动驾驶
基于深度学习的图像识别技术在自动驾驶系统中的应用
【5月更文挑战第9天】 随着人工智能技术的飞速发展,深度学习已成为推动自动驾驶领域进步的关键力量。本文聚焦于基于深度学习的图像识别技术,并探讨其在自动驾驶系统中的实际应用。文章首先简述了深度学习的基本原理及其在图像处理中的优势,随后详细分析了卷积神经网络(CNN)和递归神经网络(RNN)等关键模型在车辆环境感知、行人检测以及交通标志识别方面的应用实例。最后,文中提出了当前技术面临的挑战及潜在的解决策略,旨在为未来自动驾驶技术的发展提供参考。
|
3天前
|
机器学习/深度学习 传感器 算法
【OpenCV】告别人工目检:深度学习技术引领工业品缺陷检测新时代
【OpenCV】告别人工目检:深度学习技术引领工业品缺陷检测新时代
|
6天前
|
机器学习/深度学习 边缘计算 计算机视觉
基于深度学习的图像识别优化技术研究
【5月更文挑战第5天】 在当前的计算机视觉领域,图像识别技术已取得显著进展,尤其是深度学习方法的广泛应用。然而,随着数据量的日益增加和模型复杂度的提升,如何提高图像识别的效率与准确性成为新的挑战。本文提出了一种基于改进卷积神经网络(CNN)的图像识别优化技术,旨在减少模型参数量、加速推理过程,并保持甚至提升识别精度。通过引入深度可分离卷积、注意力机制以及量化剪枝策略,该技术在多个标准数据集上显示出了卓越的性能。
|
8天前
|
机器学习/深度学习 算法 大数据
探索深度学习在图像识别领域的前沿技术
【5月更文挑战第4天】 当前,深度学习技术正以其卓越的数据处理能力重塑多个科学领域,尤其是在图像识别这一计算机视觉的核心问题上取得了显著进展。本文聚焦于深度学习在图像识别应用中的最新发展,探讨了卷积神经网络(CNN)的高级架构、数据增强、迁移学习以及对抗性训练等关键技术。通过比较传统方法与现代深度学习策略的效能差异,揭示了深度学习在提升图像识别准确性方面的潜力。此外,文章还讨论了模型泛化和优化方面的挑战,并对未来可能的研究方向提供了展望。
29 6
|
8天前
|
机器学习/深度学习 算法 计算机视觉
揭秘深度学习在图像识别中的核心技术
【5月更文挑战第3天】 随着人工智能技术的飞速发展,深度学习已成为推动计算机视觉领域进步的重要力量。本文将深入探讨深度学习在图像识别任务中的应用,解析其背后的关键技术和算法。我们将从卷积神经网络(CNN)的结构出发,讨论其在特征提取方面的高效性,并分析训练深度网络时所采用的优化策略和正则化技术。此外,文中还将介绍最新的研究进展,包括迁移学习、数据增强以及对抗性网络等高级概念。通过综合评述这些技术,本文旨在为读者提供一个全面的视角,理解深度学习如何革新图像识别领域。
33 12
|
8天前
|
机器学习/深度学习 人工智能 自然语言处理
深度理解深度学习:从理论到实践的探索
【5月更文挑战第3天】 在人工智能的浪潮中,深度学习以其卓越的性能和广泛的应用成为了研究的热点。本文将深入探讨深度学习的核心理论,解析其背后的数学原理,并通过实际案例分析如何将这些理论应用于解决现实世界的问题。我们将从神经网络的基础结构出发,逐步过渡到复杂的模型架构,同时讨论优化算法和正则化技巧。通过本文,读者将对深度学习有一个全面而深刻的认识,并能够在实践中更加得心应手地应用这些技术。

热门文章

最新文章