CN109144729A - 分布式系统的数据处理方法和分布式系统 - Google Patents
分布式系统的数据处理方法和分布式系统 Download PDFInfo
- Publication number
- CN109144729A CN109144729A CN201810985638.3A CN201810985638A CN109144729A CN 109144729 A CN109144729 A CN 109144729A CN 201810985638 A CN201810985638 A CN 201810985638A CN 109144729 A CN109144729 A CN 109144729A
- Authority
- CN
- China
- Prior art keywords
- parameter
- update
- data
- parameters
- interface
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本公开提供了一种分布式系统的数据处理方法。该分布式系统包括计算平台及多个计算节点,该方法包括多次执行的以下操作:计算平台向一个或多个计算节点提供多个参数的初始值;一个或多个计算节点中的每个计算节点调用处理接口,基于待处理数据及所述多个参数的初始值,处理得到多个参数的一组或多组更新参量,其中,该处理接口封装有更新参量计算模型;以及计算平台基于一个或多个计算节点得到的多个参数的一组或多组更新参量,更新多个参数的初始值,其中,在同一次执行过程中,不同计算节点的待处理数据不同,在任两次执行过程中,同一个计算节点的待处理数据不同。本公开还提供了一种分布式系统。
Description
技术领域
本公开涉及一种分布式系统的数据处理方法及分布式系统。
背景技术
随着人工智能的发展,在机器学习应用中,使用分布式训练技术对机器学习模型进行训练以加快模型收敛成为研究热点。
在实现本公开的过程中,发明人发现现有技术中至少存在如下问题:现有的分布式训练技术中,用户业务逻辑和分布式训练逻辑很难剥离,因此用户在需要进行分布式训练技术训练机器学习模型时,还需要了解分布式逻辑和算法细节,以搭建分布式训练逻辑,从而使得现有技术中的分布式训练技术的使用对用户提出较高要求,且训练结果的好坏也取决于用户的能力。
发明内容
本公开的一个方面提供了一种分布式系统的数据处理方法,该分布式系统包括计算平台及多个计算节点,该方法包括多次执行的以下操作:计算平台向一个或多个计算节点提供多个参数的初始值;一个或多个计算节点中的每个计算节点调用处理接口,基于待处理数据及多个参数的初始值,处理得到多个参数的一组或多组更新参量,其中,该处理接口封装有更新参量计算模型;以及计算平台基于一个或多个计算节点得到的多个参数的一组或多组更新参量,更新多个参数的初始值,其中,在同一次执行过程中,不同计算节点的待处理数据不同,在任两次执行过程中,同一个计算节点的待处理数据不同。
可选地,上述待处理数据包括监督式机器学习模型的训练数据;多个参数包括所述监督式机器学习模型的参数;并且/或者,上述处理接口包括:数据处理接口,封装有数据处理模型,用于根据待处理数据及多个参数的初始值,处理得到第一结果,其中,数据处理模型包括所述多个参数;以及更新参量计算接口,封装有更新参量计算模型,用于基于第一结果,计算得到多个参数的一组更新参量,其中,更新参量包括以下至少之一:参数相对于第一结果的梯度值,和/或参数的备选值。
可选地,每个计算节点包括一个或多个图形处理器,每个计算节点调用处理接口,基于待处理数据及多个参数的初始值,处理得到多个参数的一组或多组更新参量包括:将所述待处理数据分为多批的待处理数据;以及一个或多个图形处理器分别调用处理接口,分别基于不同批的待处理数据及多个参数的初始值,处理得到多个参数的一组或多组更新参量,其中,一个图形处理器处理得到一组更新参量。
可选地,上述数据处理模型包括:预测值生成子模型,用于根据待处理数据及多个参数的初始值得到预测值;以及损失值计算子模型,用于根据预测值和预设的标准值,计算得到预测值的损失值;其中,更新参量计算接口根据预测值的损失值计算得到多个参数的一组更新参量。
可选地,上述处理接口还包括数据预处理接口,封装有数据预处理模型,用于对一个计算节点的待处理数据进行预处理,上述数据处理接口,根据预处理后的待处理数据及多个参数的初始值,处理得到第一结果。
可选地,上述待处理数据包括神经网络的训练数据,上述计算平台更新多个参数的初始值的更新机制包括:同步更新机制,在得到多个参数的多组更新参量的情况下,以多组更新参量中每个参数对应的多个更新参量的平均值作为多个参数中每个参数更新后的初始值,更新参量为参数的备选值;或者,异步更新机制,在得到多个参数的一组更新参量的情况下,根据该一组更新参量,实时更新多个参数的初始值,其中,更新参量为参数相对于所述第一结果的梯度值;或者,灵活更新机制,在得到预设组数的更新参量的情况下,根据预设组数的更新参量中每个参数对应的预设数量的更新参量的平均值,更新多个参数的初始值,其中,更新参量为参数相对于第一结果的梯度值。
可选地,上述更新参量计算模型包括:梯度计算子模型,用于根据第一结果计算得到多个参数相对于所述第一结果的梯度值;以及学习率计算模型,用于根据多个参数的梯度值计算得到学习率,其中,更新参量还包括所述学习率。
可选地,每个计算节点的待处理数据包括:由计算平台分配的待处理数据;和/或每个计算节点通过调用会话接口获取的用户输入的待处理数据,其中,处理接口包括会话接口,会话接口封装有会话功能,用于与用户进行交互以获取用户输入的待处理数据。
本公开的另一个方面提供了一种分布式系统,该分布式系统包括计算平台及多个计算节点,该分布式系统能够多次执行以下操作:计算平台向一个或多个计算节点提供多个参数的初始值;一个或多个计算节点中的每一个计算节点调用处理接口,基于待处理数据及多个参数的初始值,处理得到多个参数的一组或多组更新参量,其中,处理接口封装有更新参量计算模型;以及计算平台基于一个或多个计算节点得到的多个参数的一组或多组更新参量,更新多个参数的初始值,其中,在同一次执行过程中,不同计算节点的待处理数据不同,在任两次执行过程中,同一个计算节点的待处理数据不同。
可选地,上述待处理数据包括监督式机器学习模型的训练数据;多个参数包括监督式机器学习模型的参数;并且/或者,上述处理接口包括:数据处理接口,封装有数据处理模型,用于根据待处理数据及多个参数的初始值,对待处理数据进行处理得到第一结果,其中,数据处理模型包括所述多个参数;以及更新参量计算接口,封装有更新参量计算模型,用于基于第一结果,计算得到多个参数的一组更新参量,该更新参量包括以下至少之一:参数相对于第一结果的梯度值,和/或参数的备选值。
附图说明
为了更完整地理解本公开及其优势,现在将参考结合附图的以下描述,其中:
图1示意性示出了根据本公开实施例的分布式系统的数据处理方法和分布式系统的应用场景图;
图2示意性示出了根据本公开实施例的分布式系统的数据处理方法的操作流程图;
图3示意性示出了根据本公开实施例的处理得到更新参量的操作流程图;
图4示意性示出了根据本公开实施例的处理接口的结构框图;
图5示意性示出了根据本公开另一实施例的分布式系统的数据处理方法的流程图;
图6示意性示出了根据本公开实施例的分布式系统中计算平台或计算节点的结构框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。本领域技术人员还应理解,实质上任意表示两个或更多可选项目的转折连词和/或短语,无论是在说明书、权利要求书还是附图中,都应被理解为给出了包括这些项目之一、这些项目任一方、或两个项目的可能性。例如,短语“A或B”应当被理解为包括“A”或“B”、或“A和B”的可能性。
本公开的实施例提供了一种分布式系统的数据处理方法。该分布式系统包括计算平台及多个计算节点,该方法包括多次执行的以下操作:计算平台向一个或多个计算节点提供多个参数的初始值;一个或多个计算节点中的每个计算节点调用处理接口,基于待处理数据及所述多个参数的初始值,处理得到多个参数的一组或多组更新参量,其中,该处理接口封装有更新参量计算模型;以及计算平台基于一个或多个计算节点得到的多个参数的一组或多组更新参量,更新多个参数的初始值,其中,在同一次执行过程中,不同计算节点的待处理数据不同,在任两次执行过程中,同一个计算节点的待处理数据不同。
通过以上方式,由于将计算更新参量的单机业务逻辑封装至处理接口,在进行分布式训练时,只需要直接调用处理接口即可,且用户需要进行分布式训练时,无需了解分布式训练的知识,只需要根据处理接口标准来准备单机业务逻辑,将该处理接口接入预设的分布式框架即可训练;且进行分布式框架搭建的工作人员也无需关注用户业务逻辑,只需要根据接口返回的更新参量即可实施分布式训练,从而能够使分布式框架与用户业务逻辑解耦合,降低对用户能力的要求。
图1示意性示出了根据本公开实施例的分布式系统的数据处理方法和分布式系统的应用场景图。需要注意的是,图1所示仅为可以应用本公开实施例的场景的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图1所示,该应用场景包括分布式系统100和处理接口200,分布式系统100包括计算平台110、网络120和计算节点131、132、133。网络120用以在计算节点131、132、133和计算平台110之间提供通信链路的介质。网络120可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
计算平台110可以是提供各种服务的服务器、多个电子设备组成的服务器集群、或者任一个计算节点,还可以是安装于服务器、服务器集群或计算节点中的应用程序。
根据本公开的实施例,该计算平台110例如可以向各计算节点131、132、133提供参数的初始值,并根据各计算节点131、132、133反馈的更新参量来更新参数的初始值。根据本公开的实施例,该计算平台110例如还可以是分布式系统的参数服务器。
根据本公开的实施例,计算平台110例如还可以存储有待处理数据,在向计算节点131、132、133提供参数的初始值的同时,还可以向计算节点131、132、133分配待处理数据,以使得计算节点131、132、133根据分配得到的待处理数据处理得到更新参量。
计算节点131、132、133通过网络120与计算平台110交互,以接收计算平台110提供的参数的初始值,同时例如还可以接收计算平台110分配的待处理数据,该计算节点131、132、133可以通过调用处理接口200来对待处理数据进行处理,得到更新参量。
计算节点131、132、133可以是能够进行通信且能够进行接口调用的各种电子设备,包括但不限于膝上型便携计算机、台式计算机、笔记本电脑或者云计算机等实体终端设备或云端终端设备。
计算节点131、132、133中的一个或多个可以具有多个图形处理器,该多个图形处理器可以并行地调用处理接口,以对待处理数据进行分批的并行处理。
处理接口200为封装有单机业务逻辑的接口,能够由计算节点131、132、133调用,具体例如可以具有数据处理功能、数据读取功能和计算功能等,以读取待处理数据,并对待处理数据进行处理得到更新参量,该更新参量可以反馈给计算节点131、132、133,供计算平台110更新参数的初始值。
需要说明的是,本公开实施例所提供的分布式系统的数据处理方法一般可以由分布式系统100执行。相应地,本公开实施例所提供的分布式系统可以为参考图1中的分布式系统100。
应该理解,图1中的计算平台、计算节点、网络和处理接口的数目和类型仅仅是示意性的,根据实现需要,可以具有任意数目或类型的计算平台、计算节点、网络和处理接口。
图2示意性示出了根据本公开实施例的分布式系统的数据处理方法的流程图;图3示意性示出了根据本公开实施例的处理得到更新参量的操作流程图。
如图2所示,该分布式系统的数据处理方法包括多次执行的操作S210~操作S230,其中,分布式系统包括计算平台及多个计算节点,具体例如可以为参考图1中的分布式系统100。
在操作S210,计算平台向一个或多个计算节点提供多个参数的初始值。
根据本公开的实施例,该方法处理的待处理数据具体例如可以是监督式机器学习模型的训练数据,则此处的多个参数可以包括监督式机器学习模型的参数,具体可以是该监督式机器学习模型根据所输入的待处理数据自动学习出来的变量,例如可以包括该监督式机器学习模型中的权重值,支持向量机中的支持向量、学习率等。可以理解的是,此处的监督式机器学习模型可以是回归模型、决策树、随机森林、K邻近算法、逻辑回归、支持向量机以及神经网络等中的任意一个,参数即为该多个模型中对应的参数。
根据本公开的实施例,该计算平台除了提供多个参数的初始值外,例如还可以向一个或多个计算节点提供超参数,该超参数可以是用户通过经验设定的,对于深度学习的模型,例如可以包括网络层数、网络层节点数、迭代次数等,该超参数可以为监督式机器学习模型搭建框架时需要的参数。
在操作S220,一个或多个计算节点中的每个计算节点调用处理接口,基于待处理数据及多个参数的初始值,处理得到多个参数的一组或多组更新参量。
其中,处理接口封装有更新参量计算模型,更新参量例如可以包括多个参数相对于损失值的梯度值,其中,损失值可以包括待处理数据经由监督式机器学习模型得到的预测值与实际值之间的差别大小。
根据本公开的实施例,待处理数据例如可以包括:由计算平台分配的待处理数据,具体可以是,计算平台存储有监督式机器学习模型的大量训练数据,在计算平台向计算节点提供参数的初始值的同时,向计算节点分配训练数据,其中,在同一次执行过程中,计算平台向不同的计算节点提供的待处理数据不同,且在不同次执行过程中,计算平台向同一计算节点提供的待处理数据不同,以实现并行地训练。
根据本公开的实施例,待处理的数据例如还可以是每个计算节点获取的用户输入的待处理数据。具体地,处理接口例如可以包括有会话接口,会话接口可以封装有会话功能,用于与用户进行交互来获取用户输入的待处理数据。具体地,待处理数据可以是,用户输入的数据经由会话接口传输给计算节点的会话管理器的字典型数据。则本公开实施例的处理接口同时封装有会话接口,可以供用户提供训练数据,从而可使得本公开实施例的处理接口封装的用户业务逻辑具有更强的通用性,使得本公开实施例的分布式系统的数据处理方法适用于更广泛的应用场景。
根据本公开的实施例,一个计算节点通过调用处理接口,可以得到一组或多组更新参量,其得到的更新参量的具体组数取决于计算节点的性能配置。具体地,一个计算节点可以包括一个或多个图形处理器,每个图形处理器通过调用处理接口可以得到一组更新参量。
根据本公开的实施例,如图3所示,此处的操作S220具体可以包括操作S221~操作S222。在操作S221,将一个计算节点的待处理数据分为多批的待处理数据;在操作S222,该计算节点包括的一个或多个图形处理器分别调用处理接口,分别基于不同批的待处理数据及多个参数的初始值,处理得到多个参数的一组或多组更新参量,且一个图形处理器处理得到一组更新参量。
在操作S230,计算平台基于一个或多个计算节点得到的多个参数的一组或多组更新参量,更新多个参数的初始值。
上述操作具体包括:操作S220处理得到的多个参数的一组或多组更新参量反馈给计算平台,由计算平台基于预设的更新机制,基于该更新参量,更新多个参数的初始值。
根据本公开的实施例,预设的更新机制例如可以是同步更新机制,即在得到多个参数的多组更新参量的情况下才进行更新,具体即为在该计算平台接收到所有执行训练任务的计算节点反馈的更新参量后才进行初始值的更新,该更新具体为:将多组更新参数中每个参数对应的多个更新参量的平均值作为多个参数中每个参数更新后的初始值,则此处的更新参量例如可以是参数的备选值。
根据本公开的实施例,预设的更新机制例如可以是异步更新机制,即在得到多个参数的一组更新参量的情况下,即根据该一组更新参量,实时更新多个参数的初始值,此种情况的更新参量例如可以是该多个参数相对于第一结果的梯度值,此处的第一结果可以是损失值,则该更新参量可以在一定程度上反映每个参数对当前损失值的影响,则根据该更新参量更新初始值,可以提高监督式机器学习模型的准确性。
根据本公开的实施例,预设的更新机制例如可以为灵活更新机制,该灵活更新机制具体为:在得到预设组数的更新参量的情况下,根据预设组数的更新参量中每个参数对应的预设数量的更新参量的平均值,更新多个参数的初始值,此处的更新参量例如可以是参数相对于第一结果的梯度值,第一结果例如可以是损失值。
可以理解地是,上述预设的更新机制仅作为示例以利于理解本公开,本公开对该计算平台更新参数的更新机制或策略不进行限定,且由于分布式系统组成的分布式架构与处理接口之间是透明的,因此,参考图2的数据处理方法中计算平台更新多个参数的初始值的更新机制可以采用任意的策略,而不受处理接口封装的更新参量计算模型的限制。
根据本公开的实施例,处理接口例如可以包括数据处理接口和更新参量计算接口,其中的数据处理接口封装有数据处理模型,以根据待处理数据及多个参数的初始值,在被调用执行时对待处理数据进行处理得到第一结果。
根据本公开的实施例,在上述待处理数据为监督式机器学习模型的训练数据的情况下,上述的分布式系统的数据处理方法例如还可以是包括循环执行的上述操作S210~操作S230,以对监督式机器学习模型进行循环优化,得到更为准确的模型。
综上可知,本公开实施例的数据处理方法,由于将获取更新参量的业务逻辑封装到处理接口,而非以副本的形式存储在分布式系统中,因此可以使得分布式逻辑与用户业务逻辑解耦合,用户在编辑得到更新参量的业务逻辑时无需关心分布式逻辑和算法细节,从而可以降低对用户能力的要求,且使得分布式系统更新参数初始值的分布式更新逻辑不受该用户业务逻辑的限制,可以在一定程度上提升多种场景下的分布式训练得到的模型的性能指标。
图4示意性示出了根据本公开实施例的处理接口的结构框图。
如图4所示,处理接口例如具体封装有用户定义的单机训练逻辑,用于计算得到监督式机器学习模型的参数的更新参量。该处理接口200可以包括有数据处理接口210和更新参量计算接口220。
其中,数据处理接口210封装有数据处理模型,用于根据待处理数据及多个参数的初始值,对待处理数据进行处理得到第一结果,其中的数据处理模型包括所述的多个参数。
根据本公开的实施例,该数据处理模型例如可以包括有预测值生成子模型和损失值计算子模型,其中,通过预测值生成子模型,能够根据待处理数据及多个参数的初始值得到预测值,通过损失值计算子模型,能够根据预测值和预设的标准值,计算得到预测值的损失值,则更新参量根据该预测值的损失值计算得到。具体地,对于用于进行对话的神经网络,此处的预测值例如可以是神经网络生成的预测答复语句,而预设的标准值则为用户设定的标准答复语句,损失值则可以表征预测答复语句与标准答复语句的差距。可以理解的是,上述预测值、标准值、损失值及第一结果的类型仅作为示例以利于理解本公开,本公开对此不作限定,对于不同的监督式机器学习模型,具有不同类型的预测值和标准值。
其中,更新参量计算接口220封装有更新参量计算模型,用于基于数据处理接口处理得到的第一结果,计算得到多个参数的一组更新参量。其中,更新参量可以是参数相对于第一结果的梯度值和/或参数的备选值。
根据本公开的实施例,该更新参量计算模型包括梯度计算子模型,通过该梯度计算子模型,能够根据第一结果,计算得到多个参数相对于该第一结果的梯度值,在第一结果为损失值的情况下,该梯度计算子模型计算得到的即为损失值对多个参数求导确定的多个参数相对于损失值的梯度值。
根据本公开的实施例,该更新参量计算模型例如还可以包括学习率计算子模型,通过该学习率计算子模型,可以根据多个参数的梯度值计算得到学习率,相应地,更新参量还包括学习率,由于该更新参量还包括学习率,则根据更新参量来更新参数的初始值,能够保证根据更新后的多个参数的初始值再次计算得到的预测值与标准值更加贴近,提高监督式机器学习模型的训练效率及准确性。
根据本公开的实施例,如图4所示,处理接口200例如还可以包括数据预处理接口230,该数据预处理接口230封装有数据预处理模型,计算节点通过调用该数据预处理接口230,能够对其待处理数据进行预处理,则数据处理接口210是根据预处理后的待处理数据及多个参数的初始值,处理得到第一结果。
根据本公开的实施例,预处理具体可以是对待处理数据进行整理、分析、去噪或清洗等,以删除损坏数据(例如短文本、高失真图像、虚假输出标签、具有大量空值的特征等),获得更好的训练数据。具体地,对于图片型的待处理数据,预处理则可以为对图片进行旋转、去噪、二值化等;对于语言类的待处理数据,预处理则可以为对语音进行去噪、切分等。可以理解的是,上述预处理的方式仅作为示例以利于理解本公开,本公开对此不作限定。
根据本公开的实施例,处理接口200例如还可以包括会话接口240,该会话接口240具体封装有会话功能,用于与用户进行交互来获取用户输入的待处理数据,该会话接口240具体即为获取参考图2中的操作S220中的待处理数据的接口,在此不再赘述。
根据本公开的实施例,通过调用处理接口200可以得到计算图,而通过执行该计算图才可以对待处理数据进行处理得到更新参量,相应地,该处理接口200包括的各接口可以具体如下:
数据预处理接口230,该接口例如可以表示为Read_Preprocess_fn,用户可在该接口中构建定制化的数据读入和预处理逻辑。其输入包括分布式系统的分布式框架分配给该接口的批数据尺寸batch_size,经由数据预处理接口230后,输出包括:直接透传到其他模型的数据data_direct(例如feed形式的输入数据会直接输入到会话接口240)、计算图上的输入数据节点data_graph(以将数据输入到前向模型接口)、及数据相关选项data_options(例如数据的解释说明信息、对张量或矩阵的维度描述等),该数据预处理接口230的输出返回给分布式框架中的计算节点。根据本公开的实施例,由于该数据预处理接口230还封装有预处理逻辑,因此经由该接口230后得到的输出的数据为预处理后的数据,该接口的输入输出的表达式可表示为:
data_direct,data_graph,data_options=Read_Preprocess_fn(batch_size);
数据处理接口210,亦可称为模型前向构建接口Model_fn,用户可在此接口中构建定制化的模型,以返回计算图上的训练损失节点。具体地,该数据处理接口210的输入包括:数据预处理接口返回的输入数据节点data_graph对应的数据经过分布式框架批次化(batch化)处理后得到的输入数据data_batch、批数据尺寸batch_size、以及由数据预处理接口230直接透传的数据data_direct等,经由数据处理接口210得到的输出包括:经由数据处理模型(前向模型)计算得到的前向损失节点model_loss,需要定期写到磁盘的计算图上的阶段性节点end_points、以及传给会话接口240用于接收feed数据的图上节点feed_ops等,该数据处理接口210的输出同样反馈给分布式架构的计算节点,该接口的输入输出的表达式可表示为:
model_loss,end_points,feed_ops=Model_fn(data_batch,batch_size,data_direct);
更新参量计算接口220,亦可称为模型梯度后向计算接口Gradient_fn,用户可以在此接口中构建反向梯度微分逻辑(后向模型),以返回生成的梯度。具体地,该接口220的输入包括:分布式框架的计算节点通过调用上述数据处理接口210得到的模型损失值(即前向损失节点model_loss对应的值)、以及模型的权重变量model_variables等,经由该更新参量计算接口220得到的输出包括:模型的各个权重变量相对于模型损失值的梯度值Gradient、以及新的学习率Leaning_Rate等,其中,梯度值与新的学习率用于反馈给计算节点后,由计算节点反馈给计算平台以对模型的各个权重变量及学习率进行更新。该更新参量计算接口220的输入输出的表达式可表示为:
Gradient,Leaning_Rate=Gradient_fn(model_loss,model_variables,Leaning_Rate);
会话接口240,亦可称为会话逻辑接口Session_fn,用户通过该接口可以封装会话逻辑,该会话接口240的输入包括:通过数据预处理接口230透传反馈的数据data_direct、由数据处理接口210反馈给分布式框架的计算节点的用于接收feed数据的图上节点feed_ops对应的数据、本次训练的迭代索引iterld(由分布式架构分配)、以及批数据尺寸batch_size等,通过该会话接口240,得到的输出包括:反馈给分布式框架的会话管理器的字典型数据feed_data(用于直接输入到计算图中开启训练),以及会话相关信息sess_options等。该调用并运行该会话接口240得到的输入输出的表达式可表示为:
feed_data,sess_options=sess_run_fn(data_direct,feed_ops,iterld,batch_s ize)。
图5示意性示出了根据本公开实施例的分布式系统的数据处理方法的流程图。
通过参考图4描述的处理接口,本公开实施例的分布式系统的数据处理方法具体可如图5所示,可以理解的是,图5所示的流程图中数据处理方法是参考图2描述的处理方法的一种应用示例,本公开的数据处理方法并不限定于此。
如图5所示,该分布式系统的数据处理方法包括操作S510~操作S590,其中,分布式系统包括计算平台和多个计算节点,多个计算节点在计算平台的分配管理下,通过调用参考图4描述的处理接口200来进行监督式机器学习模型的分布式训练,其中,处理接口200的四个接口210~240整体形成单机训练逻辑。
其中,在操作S510,启动分布式系统;在操作S520,判断分布式系统中当前工作的电子设备是否为计算节点,若不是,则执行操作S530:启动计算平台,以向各个计算节点分配监督式机器学习模型的初始参数值,并且向部分或全部的计算节点分配待处理数据(即待训练数据),若当前工作的电子设备为计算节点,则执行操作S540~操作S570及操作S590。
在操作S540,由分布式系统的计算节点解析单机训练逻辑,构建业务逻辑容器;在操作S550,计算节点调用数据预处理接口230,以得到返回的处理过的输入数据;在操作S560,计算节点包括的每个图形处理器,通过调用数据处理接口210,构建前向模型;在操作S570,每个图形处理器调用更新参量计算接口220,构建后向模型;在操作S580,计算平台的分布式更新器采集各个计算节点调用更新参量计算接口220得到的梯度,进行梯度处理,并根据分布式更新策略得到更新的参数值;最后执行操作S590,启动会话管理器,调用会话接口240获取用户输入的待处理数据,以启动分布式会话,开始新一轮的分布式训练。
本公开还提供了一种分布式系统,该系统包括计算平台及多个计算节点,该系统能够多次执行以下操作:计算平台向一个或多个计算节点提供多个参数的初始值;一个或多个计算节点中的每一个计算节点调用处理接口,基于待处理数据及多个参数的初始值,处理得到多个参数的一组或多组更新参量,以及计算平台基于一个或多个计算节点得到的多个参数的一组或多组更新参量,更新多个参数的初始值。根据本公开的实施例,在同一次执行过程中,不同计算节点的待处理数据不同,在任两次执行过程中,同一个计算节点的待处理数据不同。
根据本公开的实施例,本公开提供的分布式系统例如可以为参考图1描述的分布式系统100,该分布式系统多次执行的操作具体例如可以为参考图2描述的操作S210~操作S230,在此不再赘述。根据本公开的实施例,该分布式系统具体还可以是循环执行参考图2描述的操作S210~操作S230。
根据本公开的实施例,上述的待处理数据包括监督式机器学习模型的训练数据,多个参数包括监督式机器学习模型的参数。在一实施例中,该监督式机器学习模型例如可以是神经网络模型。
根据本公开的实施例,上述的处理接口至少包括数据处理接口和更新参量计算接口。其中,数据处理接口封装有数据处理模型,用于根据待处理数据及多个参数的初始值,对待处理数据进行处理得到第一结果,其中的数据处理模型包括所述多个参数;更新参量计算接口封装有更新参量计算模型,用于基于第一结果,计算得到多个参数的一组更新参量,其中的更新参量包括以下至少之一:参数相对于第一结果的梯度值,和/或参数的备选值。根据本公开的实施例,数据处理接口和更新参量计算接口例如可以为参考图4描述的数据处理接口210和更新参量计算接口220,在此不再赘述。
根据本公开的实施例,上述的处理接口例如还可以包括数据预处理接口,该接口封装有数据预处理模型,用于对一个计算节点的待处理数据进行预处理,则数据处理接口例如可以是根据预处理后的待处理数据及多个参数的初始值,处理得到第一结果。根据本公开的实施例,数据预处理接口例如可以为参考图4描述的数据预处理接口230,在此不再赘述。
根据本公开的实施例,上述的处理接口例如还可以包括会话接口,该会话接口,该会话接口封装有会话功能,用于与用户进行交互以获取用户输入的待处理数据。根据本公开的实施例,该会话接口例如可以为参考图4描述的会话接口240,在此不再赘述。
根据本公开的实施例,多个计算节点中每个计算节点包括一个或多个图形处理器,则每个计算节点调用处理接口,基于待处理数据及多个参数的初始值,处理得到多个参数的一组或多组更新参量包括:将待处理数据分为多批的待处理数据;以及一个或多个图形处理器分别调用处理接口(具体可以为分别调用数据处理接口和更新参量计算接口),分别基于不同批的待处理数据及多个参数的初始值,处理得到多个参数的一组或多组更新参量。根据本公开的实施例,处理得到多个参数的一组或多组更新参量例如可以为参考图3描述的操作S221~操作S222,在此不再赘述。
图6示意性示出了根据本公开实施例的分布式系统的计算平台或计算节点的结构框图。图6示出的结构仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图6所示,计算平台或计算节点600包括处理器610以及计算机可读存储介质620。该计算平台或计算节点600可以执行根据本公开实施例的方法中相应的操作。
具体地,处理器610例如可以包括通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器610还可以包括用于缓存用途的板载存储器。处理器610可以是用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
计算机可读存储介质620,例如可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,可读存储介质可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置、器件或传播介质。可读存储介质的具体示例包括:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;和/或有线/无线通信链路。
计算机可读存储介质620可以包括计算机程序621,该计算机程序621可以包括代码/计算机可执行指令,其在由处理器610执行时使得处理器610执行根据本公开实施例的方法中相应的操作或其任何变形。
计算机程序621可被配置为具有例如包括计算机程序模块的计算机程序代码。例如,在示例实施例中,计算机程序621中的代码可以包括一个或多个程序模块,例如包括621A、模块621B、……。应当注意,模块的划分方式和个数并不是固定的,本领域技术人员可以根据实际情况使用合适的程序模块或程序模块组合,当这些程序模块组合被处理器610执行时,使得处理器610可以执行根据本公开实施例的方法中相应的操作或其任何变形。
本公开还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的分布式系统中计算平台或计算节点中所包含的;也可以是单独存在,而未装配入该计算平台或计算节点中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法中相应的操作。
根据本公开的实施例,计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线、光缆、射频信号等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
尽管已经参照本公开的特定示例性实施例示出并描述了本公开,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本公开的精神和范围的情况下,可以对本公开进行形式和细节上的多种改变。因此,本公开的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。
Claims (10)
1.一种分布式系统的数据处理方法,所述分布式系统包括计算平台及多个计算节点,所述方法包括多次执行的以下操作:
计算平台向一个或多个计算节点提供多个参数的初始值;
所述一个或多个计算节点中的每个计算节点调用处理接口,基于待处理数据及所述多个参数的初始值,处理得到所述多个参数的一组或多组更新参量,其中,所述处理接口封装有更新参量计算模型;以及
所述计算平台基于所述一个或多个计算节点得到的所述多个参数的一组或多组更新参量,更新所述多个参数的初始值,
其中,在同一次执行过程中,不同计算节点的待处理数据不同,在任两次执行过程中,同一个计算节点的待处理数据不同。
2.根据权利要求1所述的方法,其中:
所述待处理数据包括监督式机器学习模型的训练数据;所述多个参数包括所述监督式机器学习模型的参数;并且/或者
所述处理接口包括:
数据处理接口,封装有数据处理模型,用于根据待处理数据及所述多个参数的初始值,处理得到第一结果,其中,所述数据处理模型包括所述多个参数;以及
更新参量计算接口,封装有所述更新参量计算模型,用于基于所述第一结果,计算得到所述多个参数的一组更新参量,
其中,所述更新参量包括以下至少之一:参数相对于所述第一结果的梯度值,和/或参数的备选值。
3.根据权利要求2所述的方法,其中:
每个计算节点包括一个或多个图形处理器,
每个计算节点调用处理接口,基于待处理数据及所述多个参数的初始值,处理得到所述多个参数的一组或多组更新参量包括:
将所述待处理数据分为多批的待处理数据;以及
所述一个或多个图形处理器分别调用所述处理接口,分别基于不同批的待处理数据及所述多个参数的初始值,处理得到多个参数的一组或多组更新参量,
其中,一个图形处理器处理得到一组更新参量。
4.根据权利要求2所述的方法,其中:所述数据处理模型包括:
预测值生成子模型,用于根据待处理数据及所述多个参数的初始值得到预测值;以及
损失值计算子模型,用于根据所述预测值和预设的标准值,计算得到所述预测值的损失值,
其中,所述更新参量计算接口根据所述预测值的损失值计算得到所述多个参数的一组更新参量。
5.根据权利要求2所述的方法,其中:
所述处理接口还包括数据预处理接口,封装有数据预处理模型,用于对一个计算节点的待处理数据进行预处理,
所述数据处理接口,根据预处理后的待处理数据及所述多个参数的初始值,处理得到所述第一结果。
6.根据权利要求2所述的方法,其中,所述待处理数据包括神经网络的训练数据,所述计算平台更新所述多个参数的初始值的更新机制包括:
同步更新机制,在得到多个参数的多组更新参量的情况下,以所述多组更新参量中每个参数对应的多个更新参量的平均值作为所述多个参数中每个参数更新后的初始值,所述更新参量为参数的备选值;或者
异步更新机制,在得到多个参数的一组更新参量的情况下,根据该一组更新参量,实时更新所述多个参数的初始值,其中,所述更新参量为参数相对于所述第一结果的梯度值;或者
灵活更新机制,在得到预设组数的更新参量的情况下,根据所述预设组数的更新参量中每个参数对应的预设数量的更新参量的平均值,更新所述多个参数的初始值,其中,所述更新参量为参数相对于所述第一结果的梯度值。
7.根据权利要求2所述的方法,其中,所述更新参量计算模型包括:
梯度计算子模型,用于根据所述第一结果计算得到所述多个参数相对于所述第一结果的梯度值;以及
学习率计算子模型,用于根据所述多个参数的梯度值计算得到学习率,
其中,所述更新参量还包括所述学习率。
8.根据权利要求1所述的方法,其中,每个计算节点的待处理数据包括:
由所述计算平台分配的待处理数据;和/或
每个计算节点通过调用会话接口获取的用户输入的待处理数据,
其中,所述处理接口包括所述会话接口,所述会话接口封装有会话功能,用于与用户进行交互以获取用户输入的待处理数据。
9.一种分布式系统,包括计算平台及多个计算节点,所述分布式系统能够多次执行以下操作:
计算平台向一个或多个计算节点提供多个参数的初始值;
所述一个或多个计算节点中的每一个计算节点调用处理接口,基于待处理数据及所述多个参数的初始值,处理得到所述多个参数的一组或多组更新参量,其中,所述处理接口封装有更新参量计算模型;以及
所述计算平台基于所述一个或多个计算节点得到的所述多个参数的一组或多组更新参量,更新所述多个参数的初始值,
其中,在同一次执行过程中,不同计算节点的待处理数据不同,在任两次执行过程中,同一个计算节点的待处理数据不同。
10.根据权利要求9所述的系统,其中:
所述待处理数据包括监督式机器学习模型的训练数据;所述多个参数包括所述监督式机器学习模型的参数;并且/或者
所述处理接口包括:
数据处理接口,封装有数据处理模型,用于根据待处理数据及所述多个参数的初始值,对待处理数据进行处理得到第一结果,其中,所述数据处理模型包括所述多个参数;以及
更新参量计算接口,封装有所述更新参量计算模型,用于基于所述第一结果,计算得到所述多个参数的一组更新参量,
其中,所述更新参量包括以下至少之一:参数相对于所述第一结果的梯度值,和/或参数的备选值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810985638.3A CN109144729A (zh) | 2018-08-27 | 2018-08-27 | 分布式系统的数据处理方法和分布式系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810985638.3A CN109144729A (zh) | 2018-08-27 | 2018-08-27 | 分布式系统的数据处理方法和分布式系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109144729A true CN109144729A (zh) | 2019-01-04 |
Family
ID=64828416
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810985638.3A Pending CN109144729A (zh) | 2018-08-27 | 2018-08-27 | 分布式系统的数据处理方法和分布式系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109144729A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021115480A1 (zh) * | 2020-06-30 | 2021-06-17 | 平安科技(深圳)有限公司 | 联邦学习方法、装置、设备和存储介质 |
CN113342525A (zh) * | 2020-07-24 | 2021-09-03 | 北京一流科技有限公司 | 分布式数据处理系统及其方法 |
CN113449842A (zh) * | 2020-03-27 | 2021-09-28 | 华为技术有限公司 | 一种分布式自动微分方法及相关装置 |
CN114091686A (zh) * | 2021-11-11 | 2022-02-25 | 北京百度网讯科技有限公司 | 数据处理方法、装置、电子设备和存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130290223A1 (en) * | 2012-04-27 | 2013-10-31 | Yahoo! Inc. | Method and system for distributed machine learning |
CN107018184A (zh) * | 2017-03-28 | 2017-08-04 | 华中科技大学 | 分布式深度神经网络集群分组同步优化方法及系统 |
CN107729353A (zh) * | 2017-08-30 | 2018-02-23 | 第四范式(北京)技术有限公司 | 用于执行机器学习的分布式系统及其方法 |
US20180144244A1 (en) * | 2016-11-23 | 2018-05-24 | Vital Images, Inc. | Distributed clinical workflow training of deep learning neural networks |
CN108154237A (zh) * | 2016-12-06 | 2018-06-12 | 华为技术有限公司 | 一种数据处理系统及方法 |
CN108280522A (zh) * | 2018-01-03 | 2018-07-13 | 北京大学 | 一种插件式分布式机器学习计算框架及其数据处理方法 |
-
2018
- 2018-08-27 CN CN201810985638.3A patent/CN109144729A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130290223A1 (en) * | 2012-04-27 | 2013-10-31 | Yahoo! Inc. | Method and system for distributed machine learning |
US20180144244A1 (en) * | 2016-11-23 | 2018-05-24 | Vital Images, Inc. | Distributed clinical workflow training of deep learning neural networks |
CN108154237A (zh) * | 2016-12-06 | 2018-06-12 | 华为技术有限公司 | 一种数据处理系统及方法 |
CN107018184A (zh) * | 2017-03-28 | 2017-08-04 | 华中科技大学 | 分布式深度神经网络集群分组同步优化方法及系统 |
CN107729353A (zh) * | 2017-08-30 | 2018-02-23 | 第四范式(北京)技术有限公司 | 用于执行机器学习的分布式系统及其方法 |
CN108280522A (zh) * | 2018-01-03 | 2018-07-13 | 北京大学 | 一种插件式分布式机器学习计算框架及其数据处理方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113449842A (zh) * | 2020-03-27 | 2021-09-28 | 华为技术有限公司 | 一种分布式自动微分方法及相关装置 |
WO2021115480A1 (zh) * | 2020-06-30 | 2021-06-17 | 平安科技(深圳)有限公司 | 联邦学习方法、装置、设备和存储介质 |
CN113342525A (zh) * | 2020-07-24 | 2021-09-03 | 北京一流科技有限公司 | 分布式数据处理系统及其方法 |
CN114091686A (zh) * | 2021-11-11 | 2022-02-25 | 北京百度网讯科技有限公司 | 数据处理方法、装置、电子设备和存储介质 |
CN114091686B (zh) * | 2021-11-11 | 2022-10-14 | 北京百度网讯科技有限公司 | 数据处理方法、装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109144729A (zh) | 分布式系统的数据处理方法和分布式系统 | |
CN109299458A (zh) | 实体识别方法、装置、设备及存储介质 | |
CN108427939A (zh) | 模型生成方法和装置 | |
KR20200109230A (ko) | 뉴럴 네트워크 생성 방법 및 장치 | |
US11106434B1 (en) | Method, device, and computer program product for generating program code | |
CN108920222A (zh) | 一种基于规则引擎的业务处理方法和装置 | |
CN109410253B (zh) | 用于生成信息的方法、装置、电子设备和计算机可读介质 | |
CN107844371A (zh) | 任务处理方法、系统及电子设备 | |
CN108121800A (zh) | 基于人工智能的信息生成方法和装置 | |
CN110443222A (zh) | 用于训练脸部关键点检测模型的方法和装置 | |
CN110162766A (zh) | 词向量更新方法和装置 | |
CN108984399A (zh) | 检测界面差异的方法、电子设备和计算机可读介质 | |
CN107479882A (zh) | 投保页面的生成方法、生成装置、介质及电子设备 | |
US11900263B2 (en) | Augmenting neural networks | |
CN109981787A (zh) | 用于展示信息的方法和装置 | |
CN110119445A (zh) | 生成特征向量和基于特征向量进行文本分类的方法和装置 | |
CN115331275A (zh) | 图像处理的方法、计算机系统、电子设备和程序产品 | |
CN111062521B (zh) | 一种在线预测方法、系统及服务器 | |
CN109543068A (zh) | 用于生成视频的评论信息的方法和装置 | |
CN109598344A (zh) | 模型生成方法和装置 | |
CN109670579A (zh) | 模型生成方法和装置 | |
CN114511152A (zh) | 预测模型的训练方法和装置 | |
CN109582854A (zh) | 用于生成信息的方法和装置 | |
US11922315B2 (en) | Neural adapter for classical machine learning (ML) models | |
CN117313837A (zh) | 一种基于联邦学习的大模型提示学习方法以及装置 |
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 |