场景简介
许多专家认为,随着传感器和其他物联网设备通过API(Application Programming Interface)产生的数据激增,以及数据在高性能分布式存储中读写,对网络和计算系统的要求将继续提升。这些数据可以用于很多应用的AI训练,但前提是网络和计算基础设施能够处理大量数据。
IT管理人员已经看到了由于数据过负荷而导致系统变慢,而且随着人工智能和其他新应用的需求越来越大,问题会越发严重。云中的AI系统可以处理大量的数据和事务负载,真正的挑战是连接云内的计算资源。这些资源和分布式AI应用程序通过数据中心中的网络进行交互。数据中心服务器之间的数据交互量非常大。数据中心内部传输的流量,即我们常说的“东西向网络流量”,可以达到数据中心外部交互流量的五十倍。
机器学习与深度学习
机器学习和深度学习(是机器学习的一种)是AI中的两种技术,它们在训练过程中都需要用到下文介绍的分布式训练架构。
机器学习是实现AI人工智能的一种方式,机器学习最基本的做法,是使用算法来解析数据、从中学习,然后对真实世界中的事件做出决策和预测。与传统的为解决特定任务、硬编码的软件程序不同,机器学习是用大量的数据来“训练”,通过各种算法从数据中学习如何完成任务。
深度学习是一种特定类型的机器学习,具有强大的能力和灵活性,它将大千世界表示为嵌套的层次概念体系(由较简单概念间的联系定义复杂概念、从一般抽象概括到高级抽象表示)。
深度学习训练的一个特点是具有很强的迭代性,即网络结构确定后,可以周期性地通过增加训练数据而提高模型的泛化能力。这个迭代周期越短,模型更新的速度越快,就能获得更好的效果和更快的产品更新。这个特点使得训练过程非常适合自动化。
深度学习是典型的计算密集、IO密集和数据密集三者都满足的任务。这里的计算密集除了CPU密集外还增加了GPU密集。这对单机和集群的硬件资源管理和隔离提出了更高的要求。而且随着容器的发展,深度学习系统开始容器化。
为了满足AI时代模型训练的算力需求,AI加速硬件GPU的算力持续着近乎摩尔定律的极限增长速度。然而,GPU算力的增长速度仍然远低于AI应用对计算量的需求的增速。因此,分布式AI集群系统成为了满足AI应用算力需求的首选。
随着AI训练集群规模的增大,以及单节点算力的增长,分布式AI集群系统已经逐渐从计算约束转换为网络通信约束。一方面,在过去5年,GPU算力增长了近90倍,而网络带宽仅增长了10倍。另一方面,当前的AI集群系统中,当GPU集群达到一定规模以后,随着计算节点数的增加,由于分布式AI集群节点之间的通信代价的增加,可能导致集群每秒训练的图片数量不增反减。
分布式训练架构
在机器学习和深度学习领域,训练数据的数量可能达到1TB到1PB之间,而训练过程中的参数可能会达到109到1012。而往往这些模型的参数需要被所有的worker节点频繁的访问,这就会带来很多问题和挑战。参数服务器(Parameter Server)即为解决这种需求提出的。
Parameter Server架构(PS架构)是深度学习最常采用的分布式训练架构。在PS架构中,集群中的节点被分为两类:parameter server和worker。worker就是指下面的client,负责计算。server是负责统一所有的client它们的参数,server间是联通的。在每个迭代过程,worker从parameter sever中获得参数,然后将计算的梯度返回给parameter server,parameter server聚合从worker传回的梯度,然后更新参数,并将新的参数广播给worker。
PS架构中,当worker数量较多时,由于存在诸多worker同时与parameter sever节点通信,parameter sever节点的网络带宽将成为系统的瓶颈。
另外一种架构是Ring-allreduce架构。在此架构中,各个运算节点都是worker,并且形成一个环,如下图所示,没有中心节点来聚合所有worker计算的梯度。在一个迭代过程,每个worker完成自己的mini-batch训练,计算出梯度,并将梯度传递给环中的下一个worker,同时它也接收从上一个worker的梯度。对于一个包含N个worker的环,各个worker需要收到其它N-1个worker的梯度后就可以更新模型参数。
与PS架构相比,Ring-allreduce算法的通信成本与系统中GPU的数量无关,而是由系统中GPU之间最慢的网络连接决定。
随着网络规模扩大,不论是分布式存储,HPC高性能计算,还是AI机器学习,并发规模也越来越大,从而产生网络拥塞,增加转发时延,严重时还会产生丢包,导致业务质量下降甚至不可用。所以,要在网络上开展这些实时性业务,就必须解决网络拥塞问题。解决网络拥塞的最好的办法是增加网络的带宽,但从运营、维护的成本考虑,这是不现实的,最有效的解决方案就是应用一个“有保证”的策略对网络流量进行管理,最大提升网络的利用率。