人工智能让数据中心更有效地运行

MIT研究人员开发的一个新系统自动“学习”如何在数千台服务器之间分配数据处理操作

传统上,针对特定的工作负载优化调度算法几乎是不可能的。据麻省理工学院(MIT)官网称,MIT研究人员开发的一个新系统自动“学习”如何在数千台服务器上调度数据处理操作帮助数据中心更高效地运行。 

MIT的研究人员利用“强化学习”(RL:一种反复试验的机器学习技术)来根据特定服务器集群中的特定工作负载调整调度决策的系统。他们构建了新的RL技术,可以在复杂的工作负载下进行培训。在培训中,系统尝试了许多可能的方法来跨服务器分配传入的工作负载,最终在利用计算资源和快速处理速度方面找到了最佳折衷。不需要人工干预,只需要简单的指导

与最优秀的手写调度算法相比,系统完成任务的速度快20%30%,在高流量的时候快一倍。该系统可以使数据中心以更快的速度处理相同的工作负载,使用更少的资源。

RL的调度

通常,数据处理作业进入以“节点”和“边”图表示的数据中心。每个节点代表一些需要完成的计算任务,其中节点越大,所需的计算能力就越大。连接节点的边将连接的任务链接在一起。调度算法根据不同的策略为服务器分配节点。

但是传统的RL系统不习惯处理这样的动态图。为了构建基于RL的调度程序,研究人员必须开发一个模型,该模型可以处理图形结构作业,并可扩展到大量作业和服务器。

他们系统的“代理”是一种调度算法,它利用图神经网络,通常用于处理图结构数据。为了提出一个适合于调度的图神经网络,他们实现了一个自定义组件,该组件聚合图中不同路径上的信息——比如快速估计完成图中给定部分所需的计算量。这对于作业调度非常重要,因为“子”()节点在其“父”()节点完成之前不能开始执行,因此预测图中不同路径上的未来工作是做出良好调度决策的关键。

为了训练RL系统,研究人员模拟了许多不同的图序列,这些图序列模拟进入数据中心的工作负载。然后“代理”决定如何沿着图将每个节点分配给每个服务器。对于每一个决策,组件都根据它在特定任务上的表现来计算奖励——比如最小化处理单个任务的平均时间。代理人会不断改进自己的决定,直到获得尽可能高的回报。

建立基准工作负载

然而,有一个问题是,一些工作负载序列比其他工作负载序列更难处理,因为它们有更大的任务或更复杂的结构。这些过程总是需要更长的时间来处理,因此,奖励信号总是比简单的信号要低。但这并不一定意味着系统性能很差:它可以很好地处理具有挑战性的工作负载,但仍然比简单的工作负载慢。困难的可变性使得模型很难决定哪些行为是好的,哪些是不好的。

为了解决这个问题,研究人员采用了一种叫做“基线化”的技术。该技术采用具有大量变量的场景的平均值,并将这些平均值用作比较未来结果的基线。在训练期间,他们为每个输入序列计算基线。然后,他们让调度程序针对每个工作负载序列进行多次培训。接下来,系统对针对相同输入工作负载做出的所有决策进行平均性能评估。这个平均值是基线,然后模型可以将其未来的决策与之进行比较,以确定其决策是好是坏。他们将这种新技术称为“依赖于输入的基线化”。

研究人员说,这种创新适用于许多不同的计算机系统。他说:“这是在输入过程影响环境的环境中进行强化学习的一般方法,希望每个培训活动都考虑输入过程的一个样本。”“几乎所有的计算机系统都要处理不断变化的环境。”

目前,他们的模型是通过模拟来训练的,这些模拟试图实时重现传入的在线流量。接下来,研究人员希望通过实时通信训练该模型,这可能会导致服务器崩溃。因此,他们目前正在开发一种“安全网”,当系统即将崩溃时,它将停止工作。


分享:
上一页:当5G“遇上”亦庄 城市成为创新第一现场
下一页:推动高质量发展 北京中关村打造前沿技术创新“高地”