CN111052155A - 异步梯度平均的分布式随机梯度下降法 - Google Patents

异步梯度平均的分布式随机梯度下降法 Download PDF

Info

Publication number
CN111052155A
CN111052155A CN201780094579.4A CN201780094579A CN111052155A CN 111052155 A CN111052155 A CN 111052155A CN 201780094579 A CN201780094579 A CN 201780094579A CN 111052155 A CN111052155 A CN 111052155A
Authority
CN
China
Prior art keywords
machine learning
learning model
gradient
training
cumulative
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201780094579.4A
Other languages
English (en)
Other versions
CN111052155B (zh
Inventor
吴祖光
罗曼·塔利扬斯基
内坦·彼得弗洛恩德
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN111052155A publication Critical patent/CN111052155A/zh
Application granted granted Critical
Publication of CN111052155B publication Critical patent/CN111052155B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Abstract

一种在多个计算节点上分布式训练机器学习模型的系统,包括:服务器,与多个计算节点连接,用于在多轮训练迭代中控制机器学习模型的训练。每轮训练迭代包括:指示每个计算节点通过如下方式对所述机器学习模型的相应本地副本进行训练:本地计算多个累积梯度中的相应累积梯度,每个累积梯度包括一个或多个梯度;从每个计算节点获取所述累积梯度;通过将所述机器学习模型与所述累积梯度的汇总值合并来创建更新的机器学习模型。其中,在获取和创建阶段,所述计算节点中的一个或多个计算节点计算新的相应累积梯度,所述新的相应累积梯度在下一轮训练迭代中与所述机器学习模型合并。

Description

异步梯度平均的分布式随机梯度下降法
发明领域和背景
本发明在其一些实施例中涉及机器学习模型的分布式训练,更特别但非排他地,涉及通过平均多个计算节点本地异步训练的多个模型来对机器学习模型进行分布式训练。机器学习模型可以是深度学习、支持向量机、决策树等。
机器学习模型的使用正在不断增长。机器学习模型可以使用基于标准规则的方法、技术和/或算法为可能解决方案有限和/或没有解决方案的多个问题和/或应用提供多种有利条件和解决方案。
此类机器学习模型应用于实际测试数据之前,必须先经过训练。训练机器学习模型可能由于若干原因(例如,模型的复杂性和/或训练数据集的大小等)而遭遇重大障碍和挫折。随着模型的复杂性增加以应对高复杂性问题和/或应用,这些挑战可能会进一步显现出来。而训练此类复杂模型可能需要的庞大训练数据集可能会进一步增加计算资源,例如,训练模型所需的处理资源、存储资源和/或通信资源等。
因此,使用标准的计算平台和方法来训练机器学习模型可能不起作用。考虑到可接受的训练时间,可以应用分布式训练方法和系统,其中多个计算节点可以分别执行一部分训练过程。然后可以将从各计算节点接收的结果进行组合,以创建完整的经过训练的机器学习模型。
发明内容
根据本发明的第一方面,提供了一种在多个计算节点上分布式训练机器学习模型的系统,包括:服务器,与多个计算节点连接,用于在多轮训练迭代中控制机器学习模型的训练,所述多轮迭代分别包括:
-指示所述多个计算节点分别通过如下方式对存储在每个相应处理节点本地的所述机器学习模型的相应本地副本进行训练:本地计算多个累积梯度中的相应累积梯度,其中,所述多个累积梯度分别包括一个或多个梯度,
-分别从所述多个计算节点获取所述多个累积梯度,
-通过将所述机器学习模型与所述多个累积梯度的汇总值合并来创建更新的机器学习模型。
其中,在所述获取和创建阶段,所述多个计算节点中的一个或多个计算节点计算新的相应累积梯度,所述新的相应累积梯度在下一轮训练迭代中与所述机器学习模型合并。
使用分布式系统来训练机器学习模型,例如,深度学习模型,可以显著减少本可能会相当长的训练时间,尤其是对于使用大型训练数据集进行训练的大型模型而言。由于汇总值可以显著减少和/或消除计算节点中的一个或多个计算节点造成的奇异不规则性,因此,通过汇总分别从多个计算节点获取的累积梯度,可以显著提高优化(训练)后的机器学习模型的收敛速率。由于所述多个计算节点分别以同一机器学习模型的本地副本开始每轮训练迭代时可以更好地彼此同步,因此,收敛速率可以进一步提高。而且,由于本地训练(累积梯度计算)是由每个计算节点异步完成的,因此,每个计算节点的计算资源利用率可以显著提高。因此,各个计算节点可以(根据其可用的计算资源)以自己的速度独立地计算相应的累积梯度,而不受速度较慢的计算节点的阻碍。另外,所述服务器获取多个累积梯度并创建更新的机器学习模型的通信时间不会阻碍所述计算节点中的一个或多个计算节点计算新的累积梯度,从而减少了空闲时间并进一步提高了计算资源利用率。
根据本发明的第二方面,提供了一种在多个计算节点上分布式训练机器学习模型的方法,包括:通过多轮训练迭代来训练机器学习模型,所述多轮迭代分别包括:
-指示多个计算节点分别通过如下方式对所述机器学习模型的相应本地副本进行训练:本地计算多个累积梯度中的相应累积梯度,所述多个累积梯度分别包括一个或多个梯度,
-在确定可分别从所述多个计算节点获取相应的累积梯度后,获取所述多个累积梯度,
-通过将所述机器学习模型与所述多个累积梯度的汇总值合并来创建更新的机器学习模型。
其中,在所述获取和创建阶段,所述多个计算节点中的一个或多个计算节点计算新的相应累积梯度,所述新的相应累积梯度在下一轮训练迭代中与所述机器学习模型合并。
在第一和/或第二方面的另一实施形式中,所述服务器分别将相应本地副本分发给所述多个计算节点,其中,在所述分发期间,各计算节点计算其新的相应累积梯度。如此部署可以适应某些集中式系统,其中的服务器将本地副本分发到计算节点中的一个或多个计算节点。此外,在分发时间内,计算节点中一个或多个计算节点可以继续计算额外梯度,从而进一步提高其计算资源利用率。
在第一和/或第二方面的另一实施形式中,所述多个计算节点分别从所述服务器获取相应本地副本,其中,在所述获取期间,所述计算节点中一个或多个计算节点计算其新的相应累积梯度。如此部署可以适应某些系统,其中的计算节点彼此独立地向服务器上传/从服务器下载其本地副本。这自然比其中服务器分发各个本地副本的集中式系统更有效。此外,所述多个计算节点中的一个或多个计算节点可以在下载更新的本地副本的同时继续计算额外梯度,从而进一步提高其计算资源利用率。
在第一和/或第二方面的另一实施形式中,通过应用随机梯度下降法来计算由所述多个计算节点中的每个计算节点计算的一个或多个梯度,以最小化相应本地副本的损失函数,所述损失函数是根据所述机器学习模型选择的。使用本领域中已知的优化方法可以显著减少实施和/或集成工作。
在第一和/或第二方面的另一实施形式中,所述多个计算节点分别使用训练数据集的子集来训练相应本地副本。由于所述训练数据集可能非常大,因此,将训练集拆分给对其进行并行处理的多个计算节点可以在限制训练会话时间的同时,实现对整个训练数据集和/或其绝大部分的使用。
在第一和/或第二方面的另一实施形式中,所述汇总值是所述多个累积梯度的平均值。已证明,对从所述多个计算节点获取的累积梯度进行平均可以实现很高的收敛速率。
在第一和/或第二方面的另一实施形式中,所述多个计算节点分别使用一个或多个额外梯度重复更新相应的累积梯度,直到超过延迟阈值为止。可以应用所述延迟阈值来阻止所述计算节点中的一个或多个计算节点发散,当其计算过多的梯度(改进机器学习模型)而不与其他计算节点提供的累积梯度进行同步时则可能会产生发散。
在第一和/或第二方面的另一实施形式中,在所述多轮训练迭代中的每轮训练迭代开始时,所述一个或多个计算节点将所述更新的机器学习模型的相应副本与在前一轮训练迭代的获取和创建阶段计算出的、未与所述更新的机器学习模型合并的新的相应累积梯度在本地进行合并。每轮训练迭代开始时,每个计算节点首先将更新的(全局)机器学习模型与相应的新累积梯度(在前一轮训练迭代中计算的且尚未与更新的(全局)机器学习模型合并)进行同步,因此,可以显著提高收敛速率。
在第一和/或第二方面的另一实施形式中,在所述新的累积梯度与在前一轮训练迭代中创建的所述更新的机器学习模型在本地合并之前,所述一个或多个计算节点阻止所述服务器获取所述新的累积梯度。由于在与(全局)机器学习模型的最新版本进行本地合并之前,可阻止服务器获取计算节点的累积梯度,因此可以进一步提高收敛速率。只有在与(全局)机器学习模型的最新版本进行本地合并和同步之后,服务器才可以将累积梯度与(全局)机器学习模型的下一版本合并。
除非另有定义,否则本文所用的所有技术和科学术语都具有与本发明普通技术人员公知的含义相同的含义。尽管与本文描述的那些类似或等同的方法和材料可以用于本发明的实施例的实践或测试中,下面将对示例性的方法和/或材料进行描述。在有冲突的情况下,以专利说明书及其定义为准。另外,材料、方法和示例仅是说明性的,并不用于进行必要的限制。
本发明实施例的方法和/或系统的实现可以涉及手动、自动或其组合来执行或完成所选择的任务。而且,根据本发明的方法和/或系统的实施例的实际仪器和设备,可以使用操作系统通过硬件、软件、固件或其组合来实现若干选择的任务。
例如,执行根据本发明实施例的所选任务的硬件可以实现为芯片或电路。作为软件,根据本发明实施例的所选任务可以实现为由计算机使用任何合适的操作系统执行的多个软件指令。在本发明的示例性实施例中,根据本文所述的方法和/或系统的示例性实施例的一个或多个任务由数据处理器执行,例如由执行多个指令的计算平台执行。可选地,数据处理器包括用于存储指令和/或数据的易失性存储器,和/或用于存储指令和/或数据的非易失性存储器,例如磁硬盘和/或可移动介质。可选地,还提供了网络连接。可选地,还提供了显示器和/或用户输入设备,例如键盘或鼠标。
附图说明
此处仅作为示例,结合附图描述了本发明一些实施例。现在具体结合附图,需要强调的是所示的项目作为示例,为了说明性地讨论本发明的实施例。这样,根据附图说明,如何实践本发明实施例对本领域技术人员而言是显而易见的。
在附图中:
图1为根据本发明一些实施例的包括多个计算节点的分布式系统中的机器学习模型的分布式训练的示例性过程的流程图;
图2为根据本发明一些实施例的示例性分布式系统的示意图,该分布式系统包括用于分布式训练机器学习模型的多个计算节点;
图3为机器学习模型的分布式训练的示例性梯度平均实现的序列示意图;
图4为机器学习模型的分布式训练的示例性梯度延迟实现的序列示意图;
图5为机器学习模型的分布式训练的示例性延迟同步并行(SSP)梯度延迟实现的序列示意图;
图6为机器学习模型的分布式训练的示例性梯度延迟实现的收敛示意图;
图7为根据本发明一些实施例的在机器学习模型的分布式训练期间由工作机本地计算的累积梯度的示意图;
图8为根据本发明一些实施例的机器学习模型的当前版本与多个计算节点本地计算的多个累积梯度的示例性合并序列的示意图;
图9为根据本发明一些实施例的多个计算节点上机器学习模型的更新版本的示例性本地合并序列的示意图;
图10为根据本发明一些实施例的在训练机器学习模型的分布式训练过程中应用的示例性阻止合并措施的示意图。
具体实施方式
本发明在其一些实施例中涉及机器学习模型的分布式训练,更特别但非排他地,涉及通过平均多个计算节点本地异步训练的多个模型来对机器学习模型进行分布式训练。
根据本发明一些实施例,提供了用于异步平均训练方法的方法、系统和计算机程序产品,用于在包括多个计算节点的分布式系统中训练机器学习模型,例如,深度学习模型。通过多轮训练迭代来进行机器学习模型的训练,其中,每个计算节点计算一个或多个梯度以优化所述机器学习模型的本地副本。当所述计算节点彼此异步地在本地进行梯度计算时,全局机器学习模型在每轮训练迭代中使用汇总值来进行更新,该汇总值汇总所有计算节点计算出的梯度。
在分布式系统中训练机器学习模型可能会遭遇重大挑战,特别是在多个计算节点中的每个计算节点上可用计算资源的利用率与优化机器学习模型的收敛速率之间的权衡。具体地,在多个计算节点分别具有不同的可用计算资源(例如,处理资源(处理能力)、存储资源和/或通信资源等)的系统部署中,计算资源利用率变得至关重要。此外,服务器和各计算节点之间的通信也可能在有效利用计算节点的计算资源方面受到限制,如下文所述。
本领域中存在若干用于机器学习模型的分布式训练的方法。一些机器学习模型的分布式训练的方法采用梯度平均实现。梯度平均实现通常是一个同步迭代过程,其中,中央服务器(也称为参数服务器(PS))持有机器学习模型的全局副本并控制分布式训练过程。在每轮训练迭代中,多个计算节点分别从服务器获取(例如下载)机器学习模型的本地副本(replica)。每个计算节点可以使用本领域已知的一种或多种技术计算梯度从而在本地训练相应的本地副本,例如,应用随机梯度下降法以最小化所选择的用于训练机器学习模型的损失函数。一旦所有计算节点完成相应的梯度的计算,计算节点可以将其梯度上传到服务器。然后,服务器可以收集各个计算节点提供的多个梯度并对其进行平均以产生平均值,该平均值可以与(全局)机器学习模型的当前版本合并以产生机器学习模型的更新版本。可以通过多轮训练迭代来重复该过程。
梯度平均实现的主要好处在于由于若干原因,其具有较高的收敛速率。首先,服务器使用将从所有计算节点接收到的结果进行平均的汇总值来更新(全局)机器学习模型,从而减少平均梯度的方差。另外,由于计算节点使用的是由服务器创建(更新)的相同版本的(全局)机器学习模型,因此,在每轮训练迭代的开始时都对其进行同步。从而可以限制和/或阻止计算节点彼此发散。
然而,在计算节点的计算资源利用率方面,梯度平均实现可能存在重大限制。
第一个限制在于每个计算节点可能具有不同的可用计算资源。因此,训练迭代的时长取决于系统中最慢的处理节点,因为服务器会一直等待直到所有计算节点都已完成相应梯度的计算。因此,较高性能的计算节点可能会在空闲状态下等待,直到下一轮训练迭代开始为止,从而浪费了宝贵的计算资源。
另一个限制在于服务器与多个处理节点之间的通信时间。每轮训练迭代包括两个主要阶段。第一阶段是本地计算阶段,其中各个计算节点本地计算相应的梯度。第二阶段是通信阶段,其中各个计算节点上传相应的梯度,服务器创建更新的机器学习模型(改进模型),计算节点从服务器下载机器学习模型的更新版本。
梯度平均实现中,在通信阶段,由于各个计算节点必须使用机器学习模型的最新版本,因此其也可能会在空闲状态下等待,直到上传和/或下载过程完成为止。这自然会影响空闲计算节点的计算资源的利用率。
为了克服和/或减少计算资源利用限制,一些机器学习模型的分布式训练的方法采用梯度延迟实现。梯度延迟实现通常是一个异步迭代过程,其中,每个计算节点可以根据自己可用的计算资源以自己的速度在本地训练自己的机器学习模型的本地副本。每当计算节点完成梯度的计算时,就可以将其上传到服务器,该服务器可以将其与(全局)机器学习模型的当前版本合并。
因此,由于每个计算节点不需要等待其他计算节点完成其本地计算,梯度延迟实现可以显著提高每个计算节点的计算资源的利用率。
但是,梯度延迟实现可能会导致收敛速率的严重下降,从而可能导致训练机器学习模型的时间延长,并可能导致无法收敛到优化的经过训练的机器学习模型。上述收敛限制可能是由于在每轮训练迭代中,只有从单个计算节点获取的一个梯度通过服务器与(全局)机器学习模型的当前版本合并。从而使得用于训练机器学习模型的优化路径可能受单个计算节点造成的未根据其他计算节点的结果进行调整的局部不规则性影响。此外,计算节点提供给服务器的某个梯度可能会有延迟,即,在该梯度根据某个本地副本进行计算时,机器学习模型的全局版本可能由于其已与其他计算节点计算的梯度合并而得到改进了。从而导致该梯度可能与不同于用于计算该梯度的机器学习模型版本的其他机器学习模型版本合并。这种延迟合并可能会进一步限制收敛。
一些梯度延迟方法则进一步演进,使得每个计算节点可以在本地计算多个梯度然后将其上传以与全局机器学习模型合并。为了限制可用于计算节点的本地副本与全局机器学习模型的进一步发散,引入延迟阈值以限制每个计算节点在与全局机器学习模型合并之前可以计算的梯度数量。
本发明引入的异步梯度平均实现的目的在于克服现有分布式训练方法的局限性,并在保持较高收敛速率的同时,显著提高计算节点的计算资源利用率。
类似于现有方法,在每轮训练迭代中,多个计算节点分别从服务器获取(例如下载)(全局)机器学习模型的本地副本。每个计算节点可以通过计算相应的累积梯度来本地训练相应的本地副本。累积梯度可以包括一个或多个梯度,即,相应的计算节点在本地进行的若干次本地训练迭代的结果,用以创建机器学习模型的更新的本地副本。由于多个计算节点中的每个计算节点可以异步且独立于其他计算节点来训练其本地副本,因此可以显著提高其计算资源的利用率。
在服务器确定所有计算节点具有可获取的相应累积梯度之后,即所有计算节点已经完成了至少一个梯度的计算之后,服务器可以获取多个计算节点提供的多个累积梯度。然后,服务器可以汇总多个累积梯度,例如求平均值,以生成机器学习模型的更新版本。一旦机器学习模型的更新版本可用,就可以开始新一轮的训练迭代。由于全局机器学习模型与可调节一个或多个累积梯度所显示的不规则性的汇总值合并,因此,可以大大提高收敛速率。此外,由于所有计算节点都使用相同版本的机器学习模型开始下一轮训练迭代,因此,可以进一步提高收敛速率。可选地,放宽下载机器学习模型的更新版本到多个计算节点的时机。服务器可以通知多个计算节点中的每个计算节点机器学习模型的新近更新版本可用,使得每个计算节点可以根据自己的时间安排获取新近更新版本。
在通信阶段,即,当多个累积梯度上传到服务器并且服务器创建机器学习模型的更新版本时,计算节点可以继续训练其本地副本(尚未更新)并计算新的累积梯度。这可以进一步提高每个计算节点的计算资源的利用率,因为计算节点在通信阶段并不是空闲的,而是在计算额外梯度。上述新的累积梯度在上一轮训练迭代中没有被服务器用来更新机器学习模型,因此,为了保持同步性和有效的收敛速率,在每轮训练迭代开始时,每个计算节点可以在本地将从服务器上获取的机器学习模型的新近更新版本的本地副本与新的累积梯度(如果存在)进行合并。在本地合并之后,计算节点可以继续计算用于已进行本地合并的本地副本的额外梯度。通常,对于未(被服务器)用于生成机器学习模型的更新版本的新梯度,在首先将这些新梯度与机器学习模型的最新版本的本地副本进行本地合并前,每个计算节点会阻止服务器获取这些新梯度。
可选地,为了阻止、控制和/或限制累积梯度的发散,可以应用延迟阈值以限制每个计算节点根据已下载到其本地的最新全局更新模型计算的梯度数量。
可选地,服务器监视网络活动以确定网络的利用率。基于确定的网络利用率,服务器可以限定训练迭代的频率和/或时长。
综上,通过计算节点的异步本地计算、在通信阶段进行进一步的本地计算以及放宽模型下载到每个节点的时机,异步梯度平均方法可以显著提高计算节点的计算资源的利用率。另外,通过在每轮训练迭代中汇总所有计算节点的累积梯度,异步梯度平均方法可以明显与现有技术中通常为同步的梯度平均实现相似,保持高的收敛速率。
在详细解释本发明的至少一个实施例之前,应当理解,本发明的应用并不一定限于以下描述的和/或附图和/或示例中示出的部件和/或方法的构造和布置的细节。本发明可以具有其他实施例或者可以各种方式实践或执行。
本发明可以是系统、方法和/或计算机程序产品。该计算机程序产品可以包括其上具有用于使处理器执行本发明各方面的计算机可读程序指令的计算机可读存储介质。
该计算机可读存储介质可以是有形设备,该有形设备可以保留和存储供指令执行设备使用的指令。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适的组合。计算机可读存储介质的更具体示例的非详尽列表包括如下:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD-ROM)、数字多功能磁盘(DVD)、记忆棒、软盘、机械编码设备,例如其上记录指令的打孔卡或凹槽中的凸起结构,以及上述的任何合适组合。如本文所使用的,计算机可读存储介质不应被理解为本身是瞬时信号,例如无线电波或其他自由传播的电磁波,通过波导传播的电磁波或其他传输介质(例如,穿过光纤电缆的光脉冲)或通过电线传输的电信号。
本文描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络(例如,互联网、局域网、广域网和/或无线网络)下载到外部计算机或外部存储设备。该网络可以包括铜传输电缆、光传输纤维、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应的计算/处理设备的计算机可读存储介质中。
用于执行本发明操作的计算机可读程序指令可以是汇编程序指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据或使用一种或多种编程语言(包括面向对象的编程语言,如Smalltalk、C++等,以及常规过程编程语言,如“C”编程语言或类似的编程语言)的任意组合编写的源代码或目标代码中的任一种。
计算机可读程序指令可以全部在用户计算机上或者部分在用户计算机上作为独立软件包执行,或者部分在用户计算机上且部分在远程计算机上或全部在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接到用户计算机,或者可以与外部计算机建立连接(例如,通过Internet服务提供商的Internet)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令来实现电子电路的个性化,以便执行本发明的各个方面。
这里参考根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图图示和/或框图图示描述了本发明的各方面。将理解的是,流程图图示和/或框图的每个框以及流程图图示和/或框图中的各框的组合可以通过计算机可读程序指令来实现。
图中的流程图和框图阐述了根据本发明各个实施例的系统、方法以及计算机程序产品的可能实现方式的结构、功能以及操作。就此而言,流程图或框图中的每个块可以表示模块、区段或部分指令,其包括用于实施指定逻辑功能的一个或多个可执行指令。在一些替代实施方式中,方框中指出的功能可以不按图中指出的顺序发生。例如,事实上,连续示出的两个方块可以几乎同时执行,或者有时候,方块可以按照相反的顺序执行,这取决于所涉及的功能。也应注意的是,框图和/或流程图图示中的每个框以及框图和/或流程图图示中的各框的组合可以由基于专用硬件的系统实现,该系统执行指定的功能或动作,或者执行专用硬件和计算机指令的组合。
现在参考附图,图1示出了根据本发明一些实施例的包括多个计算节点的分布式系统中的机器学习模型的分布式训练的示例性过程的流程图。可以执行示例性过程100以使用包括多个计算节点的分布式系统来训练机器学习模型,例如,深度学习模型。过程100基于多轮训练迭代,其中,利用多个计算节点在本地异步计算出的梯度的汇总值对机器学习模型进行更新和优化。
在每轮训练迭代开始时,每个计算节点从中央服务器下载机器学习模型的本地副本,并使用同样存储在计算节点本地的整体训练数据集的子集来训练本地副本。
每个计算节点训练相应的本地副本,并计算相应的累积梯度,其包括使用随机梯度下降法以最小化(优化)适应于机器学习模型的损失函数而计算的一个或多个梯度。由于计算节点可能具有不同的计算资源能力和/或资源,特别是处理资源和/或通信资源等,因此,每个计算节点可以以不同的速度并且彼此异步地计算累积梯度。因此,不同计算节点的累积梯度可以包括不同数量的计算梯度。
在确定可从每个计算节点获取累积梯度之后,即,每个计算节点已经针对其机器学习模型的本地副本完成了至少一个梯度的计算,则服务器可以获取所述累积梯度。服务器可以通过将当前的机器学习模型与从所有计算节点获取的累积梯度的汇总值合并来创建更新的机器学习模型(改进模型)。汇总值例如可以是从所有计算节点获取的累积梯度的平均值。
当服务器从所有计算节点获取累积梯度并创建更新的机器学习模型时,每个计算节点可以继续在本地计算梯度以创建新的累积梯度,该新的累积梯度不包括在当前的训练迭代中创建的更新机器学习模型中。
可以重复训练迭代,直到满足为优化机器学习模型而定义的一个或多个优化标准为止。
还参考图2,图2为根据本发明一些实施例的示例性分布式系统的示意图,该分布式系统包括用于分布式训练机器学习模型的多个计算节点。可以由示例性系统200执行训练机器学习模型的分布式训练过程(如100)。系统200包括服务器202,其通过包括一个或多个有线和/或无线网络的网络250与多个计算节点204(例如,计算节点204_1至计算节点204_N)通信。服务器202以及任一计算节点204例如可以为计算机、服务器、处理节点的集群和/或任何具有一个或多个处理器的处理设备。
服务器202通常可以包括用于连接网络250的网络接口210、处理器212和存储器214。处理器212为同构或异构的,可以包括布置为并行处理的一个或多个处理器,作为集群和/或作为一个或多个多核处理器。存储器214可以包括一个或多个非瞬时性永久存储设备,例如,硬盘驱动器和/或闪存阵列等。存储器214可以进一步包括一个或多个网络存储设备,例如,存储服务器、网络可访问存储器(NAS)和/或网络驱动器等。存储器214也可以包括一个或多个易失性设备,例如,随机存取存储器(RAM)组件等。
每个计算节点204通常可以包括用于连接网络250的网络接口220(如网络接口210)、处理器222(如处理器212)以及存储器224(如存储器214)。自然地,每个计算节点204包括其自身的资源,该资源通常在计算资源、通信资源和/或存储资源方面有差异。这样,每个计算节点204点与其特定网络接口220、处理器222和存储器224相关联,例如,计算节点204_1与网络接口220_1、处理器222_1和存储器224_1相关联。类似地,计算节点204_N与网络接口220_N、处理器222_N和存储器224_N相关联。
还可以通过在物理处理节点中的一个或多个物理处理节点上执行的一个或多个虚拟机来利用服务器202和/或一个或多个计算节点204。自然地,这类虚拟机计算节点可以利用硬件资源,即,网络接口210和/或220、处理器212和/或222以及管理虚拟机计算节点的相应处理节点的存储器214和/或224。
另外和/或可替代地,服务器202和/或一个或多个计算节点204可以通过云计算平台(如亚马逊网络服务(AWS)、谷歌云和/或微软Azure等)来提供。
服务器202,特别是处理器212,可以执行一个或多个软件模块,例如,过程、应用程序、代理、实用程序、脚本和/或插件等。其中,软件模块可以包括存储在存储器(如存储器214)中的多个程序指令。例如,服务器可以执行训练管理器230,其对使用分布式系统200训练机器学习模型232的过程100进行控制管理。作为当前训练的机器学习模型的全局副本,机器学习模型232可以存储在服务器202的存储器214中。
类似地,每个计算节点204,尤其是各个计算节点240_1至204_N的处理器222_1至222_N,可以执行一个或多个软件模块,例如,计算机器学习模型232的本地副本242的梯度的工作机240的实例。每个计算节点204执行自己的工作机240的实例,例如,计算节点204_1执行工作机240_1以计算本地副本242_1的梯度,而计算节点204_N执行工作机240_N以计算本地副本242_N的梯度。
在解释本发明的至少一些实施例之前,提供现有技术背景以更好地理解和强调本发明的创新特征。
现在参考图3,图3为机器学习模型的分布式训练的示例性梯度平均实现的序列示意图。训练机器学习模型(如机器学习模型232)的示例性梯度平均实现可以在分布式系统(如系统200)中进行,该分布式系统包括执行训练管理器(如训练管理器230)的服务器(如服务器202)以及分别执行工作机(如工作机240)实例的多个计算节点(如计算节点204)。如图3所示,在多轮训练迭代中训练机器学习模型232,其中,在每轮训练迭代中,更新机器学习模型232Mi的版本。初始机器学习模型232指定为M0。在第一轮训练迭代中,训练管理器230将机器学习模型232M0的本地副本(replica)分别分发给指定的三个工作机240w1、w2和w3。三个工作机240w1、w2和w3可以分别应用用于最小化(优化)机器学习模型232M0的梯度下降损失函数以本地计算单个梯度Δ1、Δ2和Δ3
梯度平均训练实现是同步的,使得训练管理器230等待所有工作机240w1、w2和w3计算完成其梯度Δ1、Δ2和Δ3,并收集梯度Δ1、Δ2和Δ3。训练管理器230汇总梯度Δ1、Δ2和Δ3,例如,对其求平均值以创建平均梯度。然后,训练管理器230可以将机器学习模型232M0与梯度Δ1、Δ2和Δ3的汇总值合并,以创建更新的机器学习模型232M1。由于汇总值的平均实现,更新的机器学习模型232M1因此可以符合等式
Figure BDA0002399303920000092
类似地,在第二轮训练迭代中,训练管理器230将更新的机器学习模型232M1的本地副本分发给的每个工作机240w1、w2和w3,其通过优化其机器学习模型232M1的本地副本来计算梯度Δ1、Δ2和Δ3。当所有工作机240w1、w2和w3计算完成相应的梯度时,训练管理器230可收集梯度Δ1、Δ2和Δ3,并将机器学习模型232M1与梯度Δ1、Δ2和Δ3的汇总值合并,以创建更新的机器学习模型232M2,例如,
Figure BDA0002399303920000091
梯度平均的分布式训练会话可以通过多次额外训练迭代继续进行,直到满足机器学习模型232的一个或多个优化标准为止。
每轮训练迭代包括两个主要阶段——工作机240进行的本地计算阶段和训练管理器230控制的通信阶段。通信阶段包括:从多个工作机240获取本地计算的梯度,将当前的机器学习模型232与所收集的梯度合并以创建更新的机器学习模型232,将机器学习模型232分发给各工作机240。可以利用一种或多种方案来进行收集和分发。通常,工作机240将相应的梯度上传到服务器202,并从服务器202下载更新的机器学习模型232的本地副本。另外和/或可替代地,训练管理器230可以从工作机240检索本地计算的梯度,并将更新的机器学习模型232发送给工作机240。
由于梯度平均实现的同步性质,其中每个工作机240计算单个梯度,同时所有工作机240计算出的梯度的汇总值与机器学习模型232的当前版本合并,因此收敛可以很快。此外,由于该实现的同步性质,可以显著减小多个工作机240计算出的梯度的发散。
但是,该同步实现可能存在一些限制和/或缺点。在通信阶段,多个工作机240通常是空闲的,因为其可能会等待训练管理器230获取多个本地计算的梯度,将当前的机器学习模型232与所获取的梯度的汇总值合并,并将更新的机器学习模型232的本地副本分发到多个工作机240。通信阶段可以进一步包括每个工作机240从服务器202获取(下载和/或接收)相应的本地副本242所需的通信时间。由于每个工作机240可使用不同的资源(例如,计算资源(如处理能力、处理速度等)和/或通信资源(网络带宽、网络可用性等)等),因此,空闲时间取决于性能最慢的工作机240。较高性能的工作机240处于空闲的空闲时间可能很长,因此,系统200的计算和/或处理能力的利用率无法达到最佳,并且通常很低。
现在参考图4,图4为机器学习模型的分布式训练的示例性梯度延迟实现的序列示意图。训练机器学习模型(如机器学习模型232)的示例性梯度延迟实现可以在分布式系统(如系统200)中进行,该分布式系统包括执行训练管理器(如训练管理器230)的服务器(如服务器202)以及分别执行工作机(如工作机240)实例的多个计算节点(如计算节点204)。如图4所示,在多轮训练迭代中训练机器学习模型232,其中,在每轮训练迭代中,更新机器学习模型232Mi的版本。初始机器学习模型232指定为M0。在第一轮训练迭代中,训练管理器230将机器学习模型232M0的本地副本(replica)分别分发给指定的三个工作机240w1、w2和w3。三个工作机240w1、w2和w3可以分别应用用于最小化(优化)机器学习模型232M0的梯度下降损失函数以本地计算单个梯度Δ1、Δ2和Δ3
梯度延迟的训练实现是异步的,使得每个工作机240w1、w2和w3可以以自己的速度(时间)在本地计算相应的梯度Δ1、Δ2和Δ3,速度(时间)取决于每个工作机240可用的资源,例如,计算资源和/或通信资源等。当可从工作机240w1、w2和/或w3获取梯度时,训练管理器230可以获取相应的梯度Δ1、Δ2和/或Δ3,并将当前的机器学习模型232Mi与所获取的梯度Δi合并。
可见,在第一轮训练迭代中,工作机240w1计算完成相应的梯度Δ1并将其上传到服务器202。训练管理器230可以将初始机器学习模型232M0与梯度Δ1合并以创建可以由等式M1←M01表达的更新的机器学习模型232M1。然后,工作机240w1可以从服务器202下载更新的机器学习模型232M1的副本。
在第二轮训练迭代中,工作机240w2计算完成相应的梯度Δ2并将其上传到服务器202。训练管理器230可以将机器学习模型232M1与梯度Δ2合并以创建可以由等式M2←M12表示的更新的机器学习模型232M2。然后,工作机240w2可以从服务器202下载更新的机器学习模型232M2的副本。
在第三轮训练迭代中,工作机240w3计算完成相应的梯度Δ3并将其上传到服务器202。训练管理器230可以将机器学习模型232M2与梯度Δ3合并以创建可以由等式M3←M23表示的更新的机器学习模型232M3。然后,工作机240w3可以从服务器202下载更新的机器学习模型232M3的副本。
在第四轮训练迭代中,工作机240w1计算完成相应的梯度Δ1并将其上传到服务器202。训练管理器230可以将机器学习模型232M3与梯度Δ1合并以创建可以由等式M4←M31表示的更新的机器学习模型232M4。然后,工作机240w1可以从服务器202下载更新的机器学习模型232M4的副本。
在第五轮训练迭代中,工作机240w2计算完成相应的梯度Δ2并将其上传到服务器202。训练管理器230可以将机器学习模型232M4与梯度Δ2合并以创建可以由等式M5←M42表示的更新的机器学习模型232M5。然后,工作机240w2可以从服务器202下载更新的机器学习模型232M5的副本。
梯度延迟的分布式训练会话可以通过多次额外训练迭代继续进行,直到满足机器学习模型232的一个或多个优化标准为止。
显然,由于梯度延迟实现的异步性质,每个工作机240可以不等待其他工作机240本地计算完成相应的梯度。然而,对于每个工作机240分别进行梯度延迟实现的通信阶段,在将梯度上传到服务器202、等待训练管理器230将机器学习模型232与上传的梯度合并以及下载更新的机器学习模型232时,各个工作机240仍然是空闲的。
现在参考图5,图5为机器学习模型的分布式训练的示例性延迟同步并行(SSP)梯度延迟实现的序列示意图。训练机器学习模型(如机器学习模型232)的示例性SSP梯度延迟实现可以在分布式系统(如系统200)中进行,该分布式系统包括执行训练管理器(如训练管理器230)的服务器(如服务器202)以及分别执行工作机(如工作机240)实例的多个计算节点(如计算节点204)。如图5所示,在多轮训练迭代中训练机器学习模型232,其中,在每轮训练迭代中,更新机器学习模型232Mi的版本。
SSP梯度延迟采用与本文之前描述的梯度延迟相同的实现。主要区别在于,在训练管理器230获取并合并某个工作机240wi的当前本地计算的梯度
Figure BDA0002399303920000111
的通信阶段中,该工作机240wi可以继续计算额外的一个或多个梯度
Figure BDA0002399303920000112
以优化该工作机240wi当前可用的机器学习模型232Mi的当前版本的本地副本。
SSP梯度延迟采用延迟阈值N以限制每个工作机240在从服务器202下载和/或获取机器学习模型232的更新版本之前可以使用其当前机器学习模型232的本地副本来计算的梯度
Figure BDA0002399303920000113
的数量。采用延迟阈值可以阻止工作机240本地计算的梯度发散。在没有施加限制的情况下,工作机240为机器学习模型232的旧版本在本地计算的梯度可以发散到如此程度:由于模型242的本地副本可能与机器学习模型232的更新版本不同步,将其与机器学习模型232的(全局)版本合并可能会导致训练过程发散。
但是,梯度延迟实现和SSP梯度延迟实现均可能会由于其异步和独立合并方案而具有较差的收敛速率。首先,异步和独立合并方案可能导致机器学习模型232的更新延迟。此外,由于在每轮训练迭代中,机器学习模型232与单个工作机240提供的单个梯度合并,因此,工作机240可能由于没有频繁通过共同的更新的机器学习模型232进行同步而彼此发散。
现在参考图6,图6为机器学习模型的分布式训练的示例性梯度延迟实现的收敛示意图。图6示出一种收敛,更准确地说是在训练机器学习模型(如机器学习模型232)的示例性梯度延迟和/或SSP梯度延迟实现的收敛中的固有限制。如本文之前所描述的,机器学习模型232可以在分布式系统(如系统200)中进行训练,该分布式系统包括执行训练管理器(如训练管理器230)的服务器(如服务器202)以及分别执行工作机(如工作机240)实例的多个计算节点(如计算节点204)。在多轮训练迭代中训练机器学习模型232,其中,在每轮训练迭代中,更新机器学习模型232Mi的版本。继续先前的示例,假设三个工作器240w1、w2和w3由三个计算节点204执行。在第一轮训练迭代ti中,机器学习模型232M0的初始版本与工作机240w1提供的梯度合并以创建机器学习模型232M1的更新版本,工作机240w1继续使用机器学习模型232M1。而机器学习模型232可以继续改进,因为其可以用其他工作机240w2和/或w3提供的梯度来更新。由于工作机240w1的梯度被延迟,因此,工作机240w1在下次将其本地计算的梯度提供给训练管理器230时,机器学习模型232M3(t3处)的最新版本可能会与由工作机240w1为机器学习模型232M1(来自t1)的旧版本计算的梯度合并。从而可以显著降低使用梯度延迟实现来优化机器学习模型232的收敛速率。
其他梯度延迟实现,例如弹性异步随机梯度下降法(EASGD)等也可能具有相同的收敛限制。在EASGD算法中,一旦某个工作机240下载了机器学习模型232M的本地副本,该工作机240本地计算τ个梯度并且使用每个本地计算的梯度来创建机器学习模型232M′的更新的本地版本,其中,τ为算法预定义的延迟阈值。之后,该工作机240上传模型更新Δ=M′-M,使得训练管理器230可以将服务器202可用的机器学习模型232的当前版本与模型更新Δ进行合并。在合并期间,ESGD算法的训练管理器230可以应用正则化因子来对各个工作机240中具有过高发散度的本地模型进行惩罚。
再次参考图1和图2。
过程100为包括多轮训练迭代的迭代过程,并且可以重复进行直到满足为机器学习模型232定义的一个或多个优化标准为止。可以针对每轮训练迭代重复过程100。
如102所示,训练过程100从服务器202将机器学习模型232的当前版本的本地副本242分发到多个工作机240开始。任务管理器230可以通知工作机240机器学习模型232的最新(通常是新近生成的)版本可用。通常,工作机240可以访问服务器202以将其本地副本242下载到相应的计算节点204。可选地,训练管理器230将本地副本242发送给一个或多个工作机240。
可选地,一个或多个工作机240控制其从服务器202获取(即下载)相应的本地副本232的下载时机。一旦任务管理器230通知机器学习模型232的更新版本可用,工作机240就可以确定从服务器202获取(下载)更新版本的时机。工作机240可以根据多个参数,例如,计算资源可用性和/或超过(如本文下文所述)延迟阈值,来确定其下载时机。
如104所示,多个工作机240分别使用整体训练数据集的子集在本地训练相应的本地副本242。多个工作机240所使用的训练数据的子集通常包括不同的训练数据。可选地,为了提升工作机240的收敛性,在分配给一个或多个工作机240的一个或多个子集中,一些训练数据可以重叠。
每个工作机240训练其本地副本242并通过应用随机梯度下降法最小化(优化)相应本地副本242的损失函数来计算多个累积梯度中的相应累积梯度。可以根据本领域已知的机器学习模型232的类型和/或一个或多个特征来选择损失函数。每个工作机240生成的累积梯度包括一个或多个本地计算的梯度。
累积梯度的计算可以视为动量方法,其中,每个工作机240w计算梯度可以视为在时刻t计算速度v。速度v的更新可以表示为
Figure BDA0002399303920000121
其中,α为归一化值,通常在[0,1]范围内,ε为步长,L为损失函数,M为机器学习模型232。在时刻(t)的速度等于使用当前加速度
Figure BDA0002399303920000122
对前一时刻(t-1)的速度进行调整。
当使用每个工作机240本地计算的梯度计算速度v(如本文上文所讨论的)时,所得速度v代表对机器学习模型的更新。因此,模型更新为ΔM(w,t)=v(w,t)。
然后可以使用模型更新ΔM来更新本地副本242,以产生可以表示为M(w,t)=M(w,t-1)+ΔM(w,t)的本地更新的机器学习模型。
累积梯度因此可以表示为
Figure BDA0002399303920000123
其中
Figure BDA0002399303920000124
为时刻ti的本地副本232。
工作机240可以由训练管理器230指示开始计算相应的累积梯度。然而,所述开始计算累积梯度的指示通常是不明确的,一旦工作机240下载了相应的本地副本242,工作机240即可以开始计算相应的累积梯度。
对于本地计算相应的累积梯度,多个工作机240分别有不同的供其使用的(可用的)计算资源,例如,处理资源、通信资源等,因此多个工作机240彼此异步且独立地计算其累积梯度。
可选地,为了减少、控制和/或限制工作机240间的发散,为训练过程100预定义延迟阈值,以限制每个工作机240针对机器学习模型232的某个版本的本地副本计算的梯度数量。因此,只要梯度的总数不超过延迟阈值,每个工作机240就可以用额外梯度来更新相应的累积梯度。一旦某个工作机240本地计算的多个梯度达到预定的延迟阈值,相应的工作机240即停止计算额外梯度。
现在参考图7,图7为根据本发明一些实施例的在机器学习模型的分布式训练期间由工作机本地计算的累积梯度的示意图。机器学习模型(如机器学习模型232)可以在分布式系统(如系统200)中进行训练,该分布式系统包括执行训练管理器(如训练管理器230)的服务器(如服务器202)以及分别执行工作机(如工作机240)实例的多个计算节点(如计算节点204)。如图7所示,机器学习模型232的初始版本
Figure BDA0002399303920000131
的本地副本(如本地副本242)分发给指定的三个工作机240w1、w2和w3。三个工作机240w1、w2和w3分别在本地计算相应的累积梯度,其包括一个或多个本地计算的梯度
Figure BDA0002399303920000132
例如,工作机240w1计算相应的包括梯度
Figure BDA0002399303920000133
的累积梯度,工作机240w2计算相应的包括梯度
Figure BDA0002399303920000134
的累积梯度,工作机240w3计算相应的包括梯度
Figure BDA0002399303920000135
的累积梯度。
每个累积梯度中包括的梯度数量有限,且不得超过针对过程100预先定义的延迟阈值。
再次参考图1和图2。
如106所示,106为条件步骤,训练管理器230可以检查确定是否多个工作机240分别具有可获取的相应累积梯度,即,是否每个工作机240计算完成了至少一个梯度。训练管理器230可以分别探查多个工作机240以检查相应的累积梯度的可获取性。可选地,一个或多个工作机240(通常是所有工作机240)可以在本地计算第一个梯度完成时向训练管理器230发送可获取性消息。
在训练管理器230识别出所有工作机240都具有可获取的累积梯度的情况下,过程100进行至110,否则过程100进行至108。
如108所示,只要至少一个工作机240没有完成计算至少一个梯度,即,无法从该工作机240获取相应的累积梯度,则一个或多个其他工作机240可以继续计算额外梯度并更新相应的累积梯度。然而,如前所述,由每个工作机240计算的包括在其相应的累积梯度中的梯度的数量不得超过延迟阈值。
如110所示,在训练管理器230识别出所有工作机240具有可获取的累积梯度之后,训练管理器230获取通常是由工作机240上传到服务器202的多个累积梯度。例如,一旦训练管理器230识别出所有工作机240具有可获取的累积梯度,训练管理器230就可以指示所有工作机240将相应的累积梯度上传到服务器202。
如112所示,训练管理器230将机器学习模型232的当前版本与由多个工作机240提供的多个累积梯度合并,特别是与多个累积梯度的汇总值合并。为了实现高收敛速率,训练管理器230可以汇总多个累积梯度以创建可以与机器学习模型232的当前版本合并的平均值。例如,训练管理器230可以平均多个累积梯度。
应该强调的是,在多个工作机240将相应的累积梯度上传到服务器202且训练管理器230将机器学习模型232的当前版本与汇总值合并的通信阶段,即,步骤110和112中,工作机240可以继续训练相应的本地副本242并计算新的累积梯度。自然地,在当前训练迭代中,新的累积梯度不与机器学习模型232的当前版本合并(步骤112)。此外,在获取新近更新的机器学习模型232的本地副本242(通信阶段的另一部分)的同时,工作机240可以继续训练相应的本地副本242并计算新的累积梯度。
现在参考图8,图8为根据本发明一些实施例的机器学习模型的当前版本与多个计算节点本地计算的多个累积梯度的示例性合并序列的示意图。继续图7所示的例子,三个工作机(如指定的工作机240w1、w2和w3)分别可以本地计算相应的累积梯度
Figure BDA0002399303920000141
其包括一个或多个本地计算的梯度
Figure BDA0002399303920000142
一旦训练管理器(如训练管理器230)识别出所有工作机240w1、w2和w3具有可获取的相应累积梯度,训练管理器230就可以获取累积梯度。
然后,训练管理器230可以将机器学习模型232的当前版本(例如,
Figure BDA0002399303920000143
)与汇总值(例如,多个累积梯度的平均值)合并以创建机器学习模型232的更新版本(例如,
Figure BDA0002399303920000145
)。
当平均累积梯度
Figure BDA0002399303920000146
时,机器学习模型232的更新版本可以表示为:
Figure BDA0002399303920000147
如图8所明示,在多个工作机240w1、w2和w3将相应的累积梯度上传到服务器202、训练管理器230将机器学习模型232的当前版本与汇总值合并以及每个工作机240w1、w2和w3下载相应的本地副本242的通信阶段,工作机240w1、w2和w3可以继续训练相应的本地副本242并计算新的相应累积梯度。如前所述,在当前训练迭代中,新的累积梯度不会与机器学习模型232的当前版本合并。
再次参考图1和图2。
如114所示,114为条件步骤,训练管理器230可以检查是否满足为机器学习模型232预定义的一个或多个优化标准。在训练管理器230确定满足优化标准的情况下,过程100进行至116,否则过程100回到102,开始新一轮的训练迭代。
如116所示,在满足优化标准之后,训练管理器230可以输出经过训练的机器学习模型232,即,机器学习模型232的最新版本。
在过程100回到步骤102开始新一轮的训练迭代的情况下,每个工作机240获取(例如,下载)机器学习模型232的更新版本的本地副本242。为了维持同步性并提高训练过程100的收敛速率,每个工作机240本地将新获取的本地副本242与在前一轮训练迭代中未与机器学习模型232的更新版本合并的新的累积梯度(如果存在)合并。一旦每个相应的工作机240本地将新获取的本地副本242与新的累积梯度合并,相应的工作机240就可以继续为本地合并的本地副本242计算梯度。
可选地,训练管理器230监视网络250上的活动。基于该网络的状态,训练管理器230可以调整连续训练迭代的频率和/或时间间隔。例如,当网络250过载时,由于在通信阶段计算节点204可不受高网络流量阻碍,训练管理器230可以减少训练迭代的频率,从而可以提高其计算资源的利用率。类似地,当训练管理器230确定网络活动较低时,训练管理器230可以增加训练迭代的频率以加快训练过程100并实现快速收敛。
现在参考图9,图9为根据本发明一些实施例的多个计算节点上机器学习模型的更新版本的示例性本地合并序列的示意图。继续图7和图8所示的例子,三个工作机(如指定的工作机240w1、w2和w3)可以下载本地副本,例如机器学习模型232的更新版本的本地副本242(例如,
Figure BDA0002399303920000148
)。每个工作机240w1、w2和w3本地将下载的本地副本242
Figure BDA0002399303920000149
与未与更新版本
Figure BDA00023993039200001410
合并的新的累积梯度合并。在下载的本地副本242
Figure BDA00023993039200001411
与新的累积梯度进行本地合并之后,每个工作机240w1、w2和w3均可以通过为相应的本地合并的本地副本242计算梯度来继续训练相应的本地合并的本地副本242。
现在参考图10,图10为根据本发明一些实施例的在训练机器学习模型的分布式训练过程中应用的示例性阻止合并措施的示意图。继续图7、图8和图9所示的例子,三个工作机(如指定的工作机240w1、w2和w3)可以继续训练相应的本地副本,例如机器学习模型232的当前版本的本地副本242(例如,
Figure BDA0002399303920000151
)。工作机240w1、w2和w3可以分别计算不与更新版本
Figure BDA0002399303920000152
合并的新的相应累积梯度。为了提高收敛速率,在利用相应的新累积梯度本地更新机器学习模型232的最新版本的相应本地副本242(例如,
Figure BDA0002399303920000153
)之前,每个工作机240可以阻止训练管理器(如训练管理器230)获取其相应的新累积梯度。这样做是为了确保保留机器学习模型的完整梯度历史记录,即,在将新的全局模型
Figure BDA0002399303920000154
与新的累积梯度合并之后,在
Figure BDA0002399303920000155
与当前工作机240中存在的新计算的梯度合并之后,本地模型中不会遗漏新计算的梯度。
如上所述,由训练管理器230控制的过程100部分由工作机240(wi)进行,部分由训练管理器230进行。
每个工作机240(wi)的操作可以由下面的示例性伪代码摘录1表示。
伪代码摘录1:
Figure BDA0002399303920000156
Figure BDA0002399303920000161
如伪代码摘录1所示,工作机240w接收预定义的延迟阈值s和学习率参数η(第1行)。工作机240w使用预定义的延迟阈值s初始化计数器i,并将计数器c初始化为0(第2行)。然后,工作机240w通过最小化损失函数g()为机器学习模型232M的相应本地副本242Mw计算相应的累积梯度(第5行)。工作机240w可以重复计算梯度,只要梯度的数量不超过延迟阈值s(第4行)。
当i达到延迟阈值s时(第7行),工作机240w停止计算额外梯度,并等待训练管理器230通知有新的机器学习模型232M可用(第8行)。一旦接收到通知,工作机240w就调用函数downloadModelAndMerge()(第9行)以下载新的机器学习模型232M并将其与本地可用的累积梯度合并(第11-15行)。计数器c统计工作机240w本地计算的在当前训练迭代中未与机器学习模型232的更新版本合并的梯度(即,新的累积梯度)的数量(第6行)。如第15行所示,在函数downloadModelAndMerge()结束时,计数器i将重置为c值,以指示c个梯度是在本地计算出来的,并且可以从相应的工作机240w获取,而在达到延迟阈值s前每个工作程序240w可以计算的梯度数为s-c。可选地,一个或多个工作机240w可以在接收到来自训练管理器230的指示机器学习模型232的新更新版本可用的通知(事件)之后,使用事件驱动实现来异步调用函数downloadModelAndMerge()。可以通过函数preventiveModelUpdate()的事件驱动调用来完成(第20-23行)。各工作机240w频繁进行这种异步调用可以减少各工作机240w被迫等待(处于空闲状态)训练管理器230的通知的次数,甚至可能完全消除等待时间(次数)。训练管理器230可以为每个工作机240w远程调用函数extractGrads(),以从工作机240w提取累积梯度并将累积梯度传递给训练管理器230以与全局机器学习模型232合并。使用该函数extractGrads(),每个工作机240w计算相应的累积梯度,作为工作机240w本地可用的最新模型Mw与更新的机器学习模型232的下载副本M相比的差ΔM(第16-17行)。然后,在计数器c重置为0(第18行)之后,工作机240w可以提供累积梯度ΔM(第19行)。
训练管理器230的操作可以由下面的示例性伪代码摘录2表示。
伪代码摘录2:
Figure BDA0002399303920000162
如伪代码摘录2所示,训练管理器230随机初始化机器学习模型232M(第1行)。然后,训练管理器230等待可从每个工作机240w∈W获取相应的累积梯度(第4行)。一旦可从所有工作机240w获取多个累积梯度,训练管理器230就会远程调用每个工作机240w上的函数extractGrads(),以提取其累积梯度,如上所述,表示为机器学习模型232的当前版本Mw与相应工作机240w下载的相应本地副本242
Figure BDA0002399303920000171
间的差ΔM(伪代码摘录1中的第12行)。然后,所提取的累积梯度传送到服务器202。然后,训练管理器230汇总多个累积梯度,例如,将其平均以得到汇总值(第10行)。训练管理器230使用汇总值创建机器学习模型232的更新版本
Figure BDA0002399303920000172
(第11行)。然后,训练管理器230可以通知工作机240w机器学习模型232的新近更新版本
Figure BDA0002399303920000173
可用(第12行),使得工作机240w例如使用函数downloadModelAndMerge()获取(例如下载)更新版本
Figure BDA0002399303920000174
训练管理器230执行包括多轮训练迭代的循环(第13行),其中,在每轮训练迭代中,训练管理器230等待直到所有工作机240w计算出累积梯度(至少一个梯度),即在每个工作机中,c>0。当满足该条件时,训练管理器230从所有工作机240w提取累积梯度,计算汇总值(例如,累积梯度的平均值),并且使用汇总值(例如平均梯度)来更新机器学习模型232的版本
Figure BDA0002399303920000175
期望在本申请专利的有效期期间,将开发许多相关的机器学习模型,术语“机器学习”的范围意图先验地包含所有此类新技术。
如本文所使用的,术语“约”是指±10%。
术语“包括”、“包含”、“具有”以及其变化形式表示“包含但不限于”。
术语“由……组成”是指“包括并限于”。
除非上下文中另有明确说明,本文使用的单数形式“一个”和“所述”包括复数含义。例如,术语“化合物”或“至少一个化合物”可以包含多个化合物,包含其混合物。
在整个本申请案中,本发明的各种实施例可以范围格式呈现。应理解,范围格式的描述仅为了方便和简洁起见,并且不应该被解释为对本发明范围的固定限制。因此,对范围的描述应被认为是已经具体地公开所有可能的子范围以及所述范围内的个别数值。例如,对例如从1到6的范围的描述应视为已明确公开了子范围,例如从1到3、从1到4、从1到5、从2到4、从2到6、从3到6等,以及该范围内的单个数字,例如1、2、3、4、5和6。无论范围的广度如何,这都适用。
当本文指出一个数字范围时,表示包含了在指出的这个范围内的任意所列举的数字(分数或整数)。短语“在第一个所指示的数和第二个所指示的数范围内”以及“从第一个所指示的数到第二个所指示的数范围内”和在这里互换使用,表示包括第一个和第二个所指示的数以及二者之间所有的分数和整数。
应了解,为简洁起见在单独实施例的上下文中描述的本发明的某些特征还可以组合提供于单个实施例中。相反地,为简洁起见在单个实施例的上下文中描述的本发明的各个特征也可以单独地或以任何合适的子组合或作为本发明的任何合适的其它实施例提供。在各个实施例的上下文中描述的某些特征未视为那些实施例的基本特征,除非没有这些元素所述实施例无效。

Claims (10)

1.一种在多个计算节点上分布式训练机器学习模型的系统,其特征在于,包括:
服务器,与多个计算节点连接,用于在多轮训练迭代中控制机器学习模型的训练,所述多轮迭代分别包括:
指示所述多个计算节点分别通过如下方式对存储在每个相应处理节点本地的所述机器学习模型的相应本地副本进行训练:本地计算多个累积梯度中的相应累积梯度,其中,所述多个累积梯度分别包括至少一个梯度,
分别从所述多个计算节点获取所述多个累积梯度,
通过将所述机器学习模型与所述多个累积梯度的汇总值合并来创建更新的机器学习模型;
其中,在所述获取和创建阶段,所述多个计算节点中的至少一个计算节点计算新的相应累积梯度,所述新的相应累积梯度在下一轮训练迭代中与所述机器学习模型合并。
2.根据权利要求1所述的系统,其特征在于,所述服务器分别将所述相应本地副本分发给所述多个计算节点,其中,在所述分发期间,所述至少一个计算节点计算所述新的相应累积梯度。
3.根据权利要求1所述的系统,其特征在于,所述多个计算节点分别从所述服务器获取相应本地副本,其中,在所述获取期间,所述至少一个计算节点计算所述新的相应累积梯度。
4.根据前述权利要求中的任一项所述的系统,其特征在于,通过应用随机梯度下降法来计算由所述多个计算节点中的每个计算节点计算的至少一个梯度,以最小化所述相应本地副本的损失函数,所述损失函数是根据所述机器学习模型选择的。
5.根据前述权利要求中的任一项所述的系统,其特征在于,所述多个计算节点分别使用训练数据集的子集来训练所述相应本地副本。
6.根据前述权利要求中的任一项所述的系统,其特征在于,所述汇总值是所述多个累积梯度的平均值。
7.根据前述权利要求中的任一项所述的系统,其特征在于,所述多个计算节点分别使用至少一个额外梯度重复更新相应的累积梯度,直到超过延迟阈值为止。
8.根据前述权利要求中的任一项所述的系统,其特征在于,在所述多轮训练迭代中的每轮训练迭代开始时,所述至少一个计算节点将所述更新的机器学习模型的相应副本与在前一轮训练迭代的获取和创建阶段计算出的、未与所述更新的机器学习模型合并的新的相应累积梯度在本地进行合并。
9.根据权利要求8所述的系统,其特征在于,在所述新的累积梯度与在前一轮训练迭代中创建的所述更新的机器学习模型在本地合并之前,所述至少一个计算节点阻止所述服务器获取所述新的累积梯度。
10.一种在多个计算节点上分布式训练机器学习模型的方法,其特征在于,包括:
通过多轮训练迭代来训练机器学习模型,所述多轮迭代分别包括:
指示多个计算节点分别通过如下方式对所述机器学习模型的相应本地副本进行训练:本地计算多个累积梯度中的相应累积梯度,所述多个累积梯度分别包括至少一个梯度,
在确定可分别从所述多个计算节点获取相应的累积梯度后,获取所述多个累积梯度,
通过将所述机器学习模型与所述多个累积梯度的汇总值合并来创建更新的机器学习模型;
其中,在所述获取和创建阶段,所述多个计算节点中的至少一个计算节点计算新的相应累积梯度,所述新的相应累积梯度在下一轮训练迭代中与所述机器学习模型合并。
CN201780094579.4A 2017-09-04 2017-09-04 异步梯度平均的分布式随机梯度下降法 Active CN111052155B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2017/072079 WO2019042571A1 (en) 2017-09-04 2017-09-04 DESCENT OF STOCHASTIC GRADIENT DISTRIBUTED TO AVERAGE ASYNCHRONOUS GRADIENT FORMATION

Publications (2)

Publication Number Publication Date
CN111052155A true CN111052155A (zh) 2020-04-21
CN111052155B CN111052155B (zh) 2024-04-16

Family

ID=59799368

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780094579.4A Active CN111052155B (zh) 2017-09-04 2017-09-04 异步梯度平均的分布式随机梯度下降法

Country Status (2)

Country Link
CN (1) CN111052155B (zh)
WO (1) WO2019042571A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111523686A (zh) * 2020-04-23 2020-08-11 支付宝(杭州)信息技术有限公司 一种模型联合训练的方法和系统
CN112598118A (zh) * 2021-03-03 2021-04-02 成都晓多科技有限公司 有监督学习的标注异常处理方法、装置、存储介质及设备
CN112861991A (zh) * 2021-03-09 2021-05-28 中山大学 一种面向神经网络异步训练的学习率调整方法
WO2021136065A1 (zh) * 2019-12-30 2021-07-08 中兴通讯股份有限公司 深度学习方法、装置、网络设备和可读存储介质
WO2023273579A1 (zh) * 2021-06-30 2023-01-05 北京有竹居网络技术有限公司 模型的训练方法、语音识别方法、装置、介质及设备

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109978177B (zh) * 2019-03-19 2023-06-23 腾讯科技(深圳)有限公司 模型训练方法、业务处理方法、装置及相关设备
EP3754502A1 (en) * 2019-06-21 2020-12-23 Accenture Global Solutions Limited Coordinated multiple worker node causal inference framework
CN110619388B (zh) * 2019-09-20 2024-04-02 北京金山数字娱乐科技有限公司 一种分布式训练中梯度同步方法及装置
US20220344049A1 (en) * 2019-09-23 2022-10-27 Presagen Pty Ltd Decentralized artificial intelligence (ai)/machine learning training system
WO2021090323A1 (en) * 2019-11-05 2021-05-14 Technion Research & Development Foundation Limited Gap-aware mitigation of gradient staleness
US11941519B2 (en) * 2019-12-02 2024-03-26 Waymo Llc Machine learning training platform
CN113128696A (zh) * 2019-12-31 2021-07-16 香港理工大学深圳研究院 分布式机器学习通信优化方法、装置、服务器及终端设备
CN111580962A (zh) * 2020-04-29 2020-08-25 安徽理工大学 一种具有权值衰减的分布式自适应在线学习方法
CN111580970B (zh) * 2020-05-07 2023-02-03 电子科技大学 一种联邦学习的模型分发与聚合的传输调度方法
US20230316135A1 (en) * 2020-08-19 2023-10-05 Telefonaktiebolaget Lm Ericsson (Publ) Generating a machine learning model
US20220121974A1 (en) * 2020-10-16 2022-04-21 Ford Global Technologies, Llc Automated synchronization of clone directed acyclic graphs
CN116702885B (zh) * 2023-08-02 2023-11-07 浪潮电子信息产业股份有限公司 同步数据并行训练控制方法、系统、装置、设备及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8768870B1 (en) * 2012-05-22 2014-07-01 Google Inc. Training a model using parameter server shards
CN104463324A (zh) * 2014-11-21 2015-03-25 长沙马沙电子科技有限公司 一种基于大规模高性能集群的卷积神经网络并行处理方法
CN106951926A (zh) * 2017-03-29 2017-07-14 山东英特力数据技术有限公司 一种混合架构的深度学习系统方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8768870B1 (en) * 2012-05-22 2014-07-01 Google Inc. Training a model using parameter server shards
CN104463324A (zh) * 2014-11-21 2015-03-25 长沙马沙电子科技有限公司 一种基于大规模高性能集群的卷积神经网络并行处理方法
CN106951926A (zh) * 2017-03-29 2017-07-14 山东英特力数据技术有限公司 一种混合架构的深度学习系统方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
AMR AHMED等: "《Scalable Inference in Latent Variable Models》", pages 3 *
ZHONGYANG ZHENG等: "《SpeeDO:Parallelizing Stochastic Gradient Descent for Deep Convolutional Neural Network》", pages 2 - 3 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021136065A1 (zh) * 2019-12-30 2021-07-08 中兴通讯股份有限公司 深度学习方法、装置、网络设备和可读存储介质
CN111523686A (zh) * 2020-04-23 2020-08-11 支付宝(杭州)信息技术有限公司 一种模型联合训练的方法和系统
CN112598118A (zh) * 2021-03-03 2021-04-02 成都晓多科技有限公司 有监督学习的标注异常处理方法、装置、存储介质及设备
CN112598118B (zh) * 2021-03-03 2021-06-25 成都晓多科技有限公司 有监督学习的标注异常处理方法、装置、存储介质及设备
CN112861991A (zh) * 2021-03-09 2021-05-28 中山大学 一种面向神经网络异步训练的学习率调整方法
WO2023273579A1 (zh) * 2021-06-30 2023-01-05 北京有竹居网络技术有限公司 模型的训练方法、语音识别方法、装置、介质及设备

Also Published As

Publication number Publication date
WO2019042571A1 (en) 2019-03-07
CN111052155B (zh) 2024-04-16

Similar Documents

Publication Publication Date Title
CN111052155B (zh) 异步梯度平均的分布式随机梯度下降法
US20200366549A1 (en) Network Fault Originator Identification For Virtual Network Infrastructure
CN107025205B (zh) 一种分布式系统中的训练模型的方法及设备
US10884795B2 (en) Dynamic accelerator scheduling and grouping for deep learning jobs in a computing cluster
Dekel et al. Optimal Distributed Online Prediction Using Mini-Batches.
CN110135573B (zh) 一种深度学习模型的训练方法、计算设备以及系统
US9621654B2 (en) Intelligent data propagation using performance monitoring
US9268836B2 (en) Intelligent data propagation in a highly distributed environment
US10764136B2 (en) Mitigating network impact of disruptive device changes
EP3014446A1 (en) Asynchronous message passing for large graph clustering
US11055139B2 (en) Smart accelerator allocation and reclamation for deep learning jobs in a computing cluster
CN109936473A (zh) 基于深度学习预测的分布计算系统及其运行方法
US20170177323A1 (en) Automatic online system upgrade
CN111641567B (zh) 基于集中式控制器的动态网络带宽分配与管理
Lee et al. Dolphin: Runtime optimization for distributed machine learning
Huang et al. The improvement of auto-scaling mechanism for distributed database-A case study for MongoDB
US11138086B2 (en) Collecting hardware performance data
JP6930443B2 (ja) プロセス処理装置、プロセス処理システム、プロセス移行順序決定方法、及びプログラム
Bellavista et al. Elastic provisioning of stateful telco services in mobile cloud networking
JP7091924B2 (ja) 通信システムおよび通信方法
US20220229689A1 (en) Virtualization platform control device, virtualization platform control method, and virtualization platform control program
Bohez et al. Enabling component-based mobile cloud computing with the aiolos middleware
JP5655188B2 (ja) トラヒック制御装置及びトラヒック制御方法
Yazidi et al. Effective live migration of virtual machines using partitioning and affinity aware-scheduling
US20150304173A1 (en) Managing isolation requirements of a multi-node workload application

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant