分类
麻省理工学院新闻

人工智能可以帮助数据中心更有效地运行

麻省理工学院系统“学习”如何在数千台服务器上优化分配工作负载,以降低成本、节约能源。

麻省理工学院(MIT)研究人员开发的一个新系统自动“学习”如何在数千台服务器上调度数据处理操作——这项任务传统上是留给不精确的、人为设计的算法的。这样做可以帮助今天的数据中心更高效地运行。

数据中心可以包含成千上万的服务器,这些服务器不断地运行来自开发人员和用户的数据处理任务。集群调度算法在服务器之间实时分配传入任务,以有效地利用所有可用的计算资源并快速完成任务。

然而,传统上,人类根据一些基本准则(“策略”)和各种权衡对这些调度算法进行微调。例如,他们可以编写算法代码来快速完成某些任务,或者在任务之间平均分配资源。但是工作负载(即组合任务组)的大小各不相同。因此,对于人类来说,针对特定的工作负载优化调度算法几乎是不可能的,因此,它们常常无法发挥其真正的效率潜力。

相反,麻省理工学院的研究人员把所有的手工编码工作都交给了机器。在SIGCOMM上发表的一篇论文中,他们描述了一个利用“强化学习”(RL)(一种反复试验的机器学习技术)来根据特定服务器集群中的特定工作负载调整调度决策的系统。

为此,他们构建了新的RL技术,可以在复杂的工作负载下进行培训。在培训中,系统尝试了许多可能的方法来跨服务器分配传入的工作负载,最终在利用计算资源和快速处理速度方面找到了最佳折衷。不需要人工干预,只需要简单的指导,比如“最小化完成工作的时间”。

与最优秀的手写调度算法相比,研究人员的系统完成任务的速度要快20%到30%,在高流量的时候要快一倍。然而,大多数情况下,系统学习如何有效地压缩工作负载以减少浪费。结果表明,该系统可以使数据中心以更快的速度处理相同的工作负载,使用更少的资源。

电气工程与计算机科学(EECS)博士生毛宏子(音译)表示:“如果你有一种使用机器进行反复试验的方法,它们可以尝试不同的工作安排方式,并自动找出哪种策略更好。”这可以自动提高系统性能。利用率的任何微小提高,哪怕是1%,都可以为数据中心节省数百万美元和大量能源。”

研究报告的撰写者之一、EECS教授、计算机科学与人工智能实验室(CSAIL)的研究员默罕默德•阿利扎德(Mohammad Alizadeh)补充说:“在制定日程安排时,没有什么一成不变的方法。”“在现有的系统中,这些是硬编码的参数,您必须预先决定。相反,我们的系统学会了根据数据中心和工作负载调整其调度策略特征。”

论文中加入Mao和Alizadeh的还有:博士后Malte Schwarzkopf和Shaileshh Bojja Venkatakrishnan,以及研究生研究助理Zili孟,他们都来自CSAIL。

RL的调度

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

但是传统的RL系统不习惯处理这样的动态图。这些系统使用一个软件“代理”来做决定,并接收反馈信号作为奖励。本质上,它试图最大化任何给定行为的回报,从而在特定的环境中学习一种理想的行为。例如,它们可以帮助机器人学习执行任务,比如通过与环境交互来捡起一个物体,但这需要通过一个更简单的像素网格来处理视频或图像。

为了构建基于rl的调度程序Decima,研究人员必须开发一个模型,该模型可以处理图形结构的作业,并可扩展到大量作业和服务器。他们的系统的“代理”是一种调度算法,它利用图神经网络,通常用于处理图结构数据。为了提出一个适合于调度的图神经网络,他们实现了一个自定义组件,该组件聚合图中不同路径上的信息——比如快速估计完成图中给定部分所需的计算量。这对于作业调度非常重要,因为“子”(下)节点在其“父”(上)节点完成之前不能开始执行,因此预测图中不同路径上的未来工作是做出良好调度决策的关键。

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

建立基准工作负载

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

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

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

威斯康辛大学麦迪逊分校(University of Wisconsin at Madison)的计算机科学教授阿迪亚·阿格拉(Aditya Akella)发现,麻省理工学院的系统可以帮助他们进一步改善自己的政策。阿格拉表示:“Decima可以更进一步,为(调度)优化寻找机会,而这些优化工作过于繁重,无法通过手工设计/调优过程来实现。”“与生产中使用的技术相比,我们设计的调度程序在应用程序性能和集群效率方面实现了显著的改进,但与我们可能实现的理想改进仍然存在差距。Decima表明,基于rl的方法可以发现有助于进一步缩小差距的[策略]。西玛公司将我们的技术提高了大约30%,这是一个巨大的惊喜。”

目前,他们的模型是通过模拟来训练的,这些模拟试图实时重现传入的在线流量。接下来,研究人员希望通过实时通信训练该模型,这可能会导致服务器崩溃。因此,他们目前正在开发一种“安全网”,当系统即将崩溃时,它将停止工作。Alizadeh说:“我们认为这是一个训练轮。“我们希望这个系统能够持续训练,但它有一定的训练轮,如果跑得太远,我们可以确保它不会摔倒。”

新闻旨在传播有益信息,英文原版地址:http://news.mit.edu/2019/decima-data-processing-0821