掌桥专利:专业的专利平台
掌桥专利
首页

数据处理系统及其方法

文献发布时间:2023-06-19 12:13:22


数据处理系统及其方法

技术领域

本公开涉及一种数据处理技术,更具体地说,本公开涉及一种数据处理系统及其方法。

背景技术

随着机器学习的发展以及人工神经网络的研究的逐步深入,深度学习的概念得到广泛的关注和应用。深度学习是一种特殊的机器学习,它采用网状层级结构来表达所学习的对象,通过简单概念来组合成抽象概念,通过简单概念计算来实现抽象的概念表达。目前,深度学习在图像识别、语音识别以及自然语言处理领域有了长足的进展。深度学习涉及的模型参数多,导致计算量巨大,而且训练数据的规模大,因此需要消耗较多的计算资源等特点。

当前,无论是通用处理器GPU还是专用芯片TPU 相对于CPU 都强大了许多倍,但现实应用对计算力的渴求是无止境的,从业者需要以更快的速度,以更大规模的模型处理更大规模的数据,这单靠一个硬件设备无法满足。硬件的发展要受限于制造工艺(芯片面积,功耗,时钟信号传播范围)的限制,不可能无限制的提高一颗芯片的处理能力。因此,人们常常通过高速互联技术把多个高通量的设备连接在一起,协同完成大规模任务。

为此,本领域的技术人员提出了层内并行和层间并行。层内并行是神经网络模型的一个迭代训练计算有多个设备共同参与。层内并行的优点是一个迭代训练的工作被均摊到了每一个设备上,但缺点是数据传输需要消耗更多时间。层间并行将神经网络模型的整个流程分为不同的阶段,参与不同阶段的设备一定互不相同,阶段之间具有明确的先后顺序。层间并行的输入数据被划分为小批量,分批进行训练,每一组数据都可以被视为一小批。层间并行的优点是只有在任务交接时需要传输,但缺点是迭代速度与收敛性相矛盾。

层间并行又可以分为整体同步并行(BSP)、异步并行(ASP)和延迟同步并行(SSP)。整体同步并行每次迭代中都需要等待所有机器的计算完成,因此其速度最慢,但收敛性最好。异步并行机器间完全不用互相等待,速度很快,但不一定收敛。延迟同步并行(SSP)允许一定程度的计算不一致,但有一定的速度和一定收敛。

因此,人们期望获得一种数据处理系统,能够利用层间并行减少传输花费的时间,又可以有效解决层间并行的迭代速度与收敛的矛盾问题。

发明内容

本发明的目的是解决上述技术问题。根据本公开的内容,提供了一种数据处理系统,包括:多个数据执行器组,所述数据执行器组的组数与待处理数据的处理阶段的预定阶段数量相等,其中每个数据执行器组包括至少一个数据处理执行器,所述多个数据执行器组中的第一数据执行器组中的数据处理执行器在启动后,先连续执行预定次数的前向数据处理后交替执行前向数据处理和后向数据处理,所述多个数据执行器组中的第一数据执行器组之后的数据执行器组中的数据处理执行器,按照数据接收的先后顺序,针对其所获得前一数据执行器组中的数据处理执行器执行前向数据处理所产生的前向结果数据,执行前向数据处理,或针对其所获得后一数据执行器组中的数据处理执行器执行后向数据处理所产生的模型更新参数,执行后向数据处理。

根据本公开的数据处理系统,其中所述每个数据执行器组在执行完一次前向数据处理或后向数据处理时,在存在其前一数据执行器组中的数据处理执行器执行前向数据处理所产生的一个或多个前向结果数据需要执行前向数据处理时,和在存在其后一数据执行器组中的数据处理执行器执行后向数据处理所产生的一个或多个模型更新参数需要执行后向数据处理时,先针对所接收到的模型更新参数执行后向数据处理。

根据本公开的数据处理系统,其中所述预定次数等于所述数据执行器组的组数。

根据本公开的数据处理系统,还包括:数据执行器分组组件,其基于待处理数据的处理阶段中每个处理阶段的计算量,将多个数据执行器对应分组成所述多个数据执行器组,以便针对每个批次的数据,均衡每个数据执行器执行数据处理的计算量。

根据本公开的数据处理系统,还包括:处理阶段划分组件,其将数据处理过程平均划分成多个与处理阶段对应的数据处理场景使得每个场景的数据处理时间一致。

根据本公开的数据处理系统,其中每个数据执行器组中的模型参数存储器最多存储与所述预定次数相等数量版本的模型更新参数,以便正在执行的前向数据处理采用模型参数存储器中所存储的最新版本的模型更新参数来执行前向数据处理。

根据本公开的数据处理系统,其中第一数据执行器组在启动后先连续执行预定次数的前向数据处理后在未获得第一版模型更新参数时,等待来自第二数据执行器组执行的后向数据处理所产生的第二数据执行器组的第一版模型更新参数之后才基于所述第二数据执行器组的第一版模型更新参数执行后向数据处理,以便输出第一数据执行器组的第一版模型更新参数。

根据本公开的另一个方面,提供了一种数据处理方法,包括:将数据处理过程平均划分成多个与处理阶段对应的数据处理场景使得每个场景的数据处理时间一致;基于待处理数据的处理阶段中每个处理阶段的计算量,将多个数据执行器对应分组成多个数据执行器组,每个数据执行器组包括至少一个数据处理执行器;所述多个数据执行器组中的第一数据执行器组中的数据处理执行器在启动后先连续执行预定次数的前向数据处理后交替执行前向数据处理和后向数据处理;以及所述多个数据执行器组中的第一数据执行器组之后的数据执行器组中的数据处理执行器,按照数据接收的先后顺序,针对其所获得前一数据执行器组中的数据处理执行器执行前向数据处理所产生的前向结果数据,执行前向数据处理,或针对其所获得后一数据执行器组中的数据处理执行器执行后向数据处理所产生的模型更新参数,执行后向数据处理。

根据本公开的数据处理方法,其中所述每个数据执行器组在执行完一次前向数据处理或后向数据处理时,在存在其前一数据执行器组中的数据处理执行器执行前向数据处理所产生的一个或多个前向结果数据需要执行前向数据处理和其后一数据执行器组中的数据处理执行器执行后向数据处理所产生的一个或多个模型更新参数需要执行后向数据处理时,先针对所接收到的模型更新参数执行后向数据处理。

根据本公开的数据处理方法,其中所述预定次数等于所述数据执行器组的组数。

根据本公开的数据处理方法,还包括:每个数据执行器组中的模型参数存储器最多存储与所述预定次数相等数量版本的模型更新参数,以便正在执行的前向数据处理采用模型参数存储器中所存储的最新版本的模型更新参数来执行前向数据处理。

根据本公开的数据处理方法,其中第一数据执行器组在启动后先连续执行预定次数的前向数据处理后在未获得第一版模型更新参数时,等待来自第二数据执行器组执行的后向数据处理所产生的第二数据执行器组的第一版模型更新参数之后才基于所述第二数据执行器组的第一版模型更新参数执行后向数据处理,以便输出第一数据执行器组第一版模型更新参数。

采用上述分布式数据处理系统和分布式流水线任务处理方法,将用于数据处理的模型优化切分成多个阶段并部署在多个执行数据并行处理的计算设备上,实现层间同步,有效的减少了通信传输消耗,并且通过分布式流水线任务处理方法消除了迭代等待时间的同时保证了前向后向计算版本一致性,解决了层间同步迭代速度与收敛性的矛盾问题。

本发明的其它优点、目标和特征将部分通过下面的说明体现,部分还将通过对本发明的研究和实践而为本领域的技术人员所理解。

附图说明

通过结合附图对于本公开的示例性实施例进行描述,可以更好地理解本公开,在附图中:

图1所示的是根据本公开的一种数据处理系统原理结构示意图。

图2所示的是根据本公开的数据处理系统10执行数据处理过程第一种启动阶段的示意图。

图3所示的是根据本公开的数据处理系统10执行数据处理过程第二种启动阶段的示意图。

图4所示的是根据本公开的数据处理系统10执行数据处理过程稳定阶段的运行过程示意图。

图5所示的是根据本公开的数据处理系统10执行数据处理过程稳定阶段的第一实施方式的示意图。

图6所示的是所示的是根据本公开的数据处理系统10执行数据处理过程稳定阶段的第二实施方式的示意图。

具体实施方式

以下将描述本公开的具体实施方式,需要指出的是,在这些实施方式的具体描述过程中,为了进行简明扼要的描述,本说明书不可能对实际的实施方式的所有特征均作详尽的描述。应当可以理解的是,在任意一种实施方式的实际实施过程中,正如在任意一个工程项目或者设计项目的过程中,为了实现开发者的具体目标,为了满足系统相关的或者商业相关的限制,常常会做出各种各样的具体决策,而这也会从一种实施方式到另一种实施方式之间发生改变。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本公开公开的内容相关的本领域的普通技术人员而言,在本公开揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本公开的内容不充分。

除非另作定义,权利要求书和说明书中使用的技术术语或者科学术语应当为本公开所属技术领域内具有一般技能的人士所理解的通常意义。本公开专利申请说明书以及权利要求书中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“一个”或者“一”等类似词语并不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现在“包括”或者“包含”前面的元件或者物件涵盖出现在“包括”或者“包含”后面列举的元件或者物件及其等同元件,并不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,也不限于是直接的还是间接的连接。

下面结合实施例和附图对本发明做进一步的详细说明,以令本领域技术人员参照说明书文字能够据以实施。

图1所示的是根据本公开的一种数据处理系统原理结构示意图。如图1所示,数据处理系统10包括多个数据执行器组,例如第一数据执行器组10-1、第二数据执行器组10-2、第三数据执行器组10-3以及第四数据执行器组10-4。尽管这里体现为4个,但是根据实际需要,可以部署至少两个或更多个。为了方便阐述,在此仅仅以4个数据执行器组进行描述。每个流式数据处理层对应部署一个数据执行器组,每个数据执行器组执行对应针对一个批次的数据处理的一个阶段。这样,针对流式输入的多批次数据,不同数据执行器组会并行处理不同批次的数据,从而实现处理。由于使得各个每个数据执行器组仅仅在组之间的结果数据传递时产生数据传输,因此相对层内并行极大地减少了数据传输量。为此,数据处理系统10所包括所述数据执行器组的组数与待处理数据的处理阶段的预定阶段数量相等,因此,每个数据执行器组包括至少一个数据处理执行器(这会在下面详细描述)。

为了使得每个数据执行器组都能够确认自身所执行的数据处理是前向数据处理还是后向数据处理,为此,本公开使得每个数据执行器组在通常稳定的情况下能够按照一个前向数据处理以及一个后向数据处理的方式交替进行数据处理。由于每个前向数据处理需要使用最近的后向数据处理获得模型更新参数,因此,在有些情况下,可能存在没有及时获得模型更新参数的情况,因此,导致后向数据处理处于长时间等待的情况,为此,为了防止每个后向数据处理与相邻的前向数据处理之间存在长时间等待,以及在后续稳定状态下使得前向数据处理使用的模型参数的版本过于老旧,所述多个数据执行器组中的第一数据执行器组10-1中的数据处理执行器在启动后先连续执行预定次数的前向数据处理后交替执行前向数据处理和后向数据处理,所述多个数据执行器组中的第一数据执行器组10-1之后的数据执行器组中的数据处理执行器按照数据接收的先后顺序针对其所获得前一数据执行器组中的数据处理执行器执行前向数据处理所产生的前向结果数据执行前向数据处理或针对其所获得后一数据执行器组中的数据处理执行器执行后向数据处理所产生的模型更新参数执行后向数据处理。为了防止某个数据执行器组存在执行前向数据处理的卡顿传导到其他数据执行器组,其他数据执行器组可以优先执行后向数据处理,即每个数据执行器组在执行完一次前向数据处理或后向数据处理时,在存在其前一数据执行器组中的数据处理执行器执行前向数据处理所产生的一个或多个前向结果数据需要执行前向数据处理和其后一数据执行器组中的数据处理执行器执行后向数据处理所产生的一个或多个模型更新参数需要执行后向数据处理时,先针对所接收到的模型更新参数执行后向数据处理。通过优先处理后向数据处理,可以避免后向数据处理处于长时间等待状态,从而使得每个数据执行器组能够在执行前向数据处理时使用更新的模型参数。由于优先执行后向数据处理,因此,能够执行后向数据处理的数据执行器组能够尽快通知其对应的执行前向数据处理的数据执行器组尽早地释放该后向数据处理所要使用的数据的存储空间,使得该对应的执行前向数据处理的数据执行器组能够再次利用该存储空间。反之,如果不优先执行后向数据处理,该后向数据处理所需的数据将一直被存储在存储器中,直到该后向数据处理被执行使得该数据被释放为止。在存储空间紧张的情况下,由于该存储空间未能被释放,因此,使用该存储和空间的数据执行器组将不能进行下一批次的数据的前向数据处理,会导致整个流式数据处理在该数据执行器组处出现卡顿情况,从而拖累整个数据处理系统的速度。

图2所示的是根据本公开的数据处理系统10执行数据处理过程第一种启动阶段的示意图。在内存空间不够充足的情况下,如图2所示,其中采用空白方框表示前向数据处理,采用上斜线方框表示后向数据处理。第一数据执行器组10-1中的数据处理执行器在启动后先连续执行预定次数,例如4次,即连续基于初始模型参数对数据1、数据2、数据3以及数据4这四个批次的数据执行四次前向数据处理,并以此将所处理获得结果数据传输到后一数据处理阶段对应的第二数据执行器组10-2,以此类推,依次到第三数据执行器组10-3以及第四数据执行器组10-4。因此, 尽管在图2中第一数据执行器组10-1、第二数据执行器组10-2、第三数据执行器组10-3以及第四数据执行器组10-4都有相同的前向或后向数据处理编号,但是其实际处理的数据对象并不相同,例如,第二数据执行器组10-2的前向数据处理编号“2”其处理的数据对象是第一数据执行器组10-1的前向数据处理编号“2”所产生的数据处理结果,以此类推。如图2显示,第一数据执行器组10-1之后,会执行一次后向数据处理,即进行模型数据更新。由于针对第一批次的数据1的后向数据处理未能及时返回,因此需要第一数据执行器组10-1在启动阶段会短暂地等待一段时间,以便在后向数据处理进行模型数据更新以便随后的批次的前向数据处理采用更新后的模型参数。根据本公开的数据处理系统,这种等待仅仅在启动初期出现,在后续的稳定运行期间不会出现。在启动阶段,由于第一数据执行器组10-1在启动阶段会短暂地等待一段时间,因此,在第二数据执行器组10-2在启动阶段存在没有接收到后向数据处理结果的情况,因此也会先连续执行预定次数的前向数据处理,例如3次,在接收到后向数据处理结果时,则先进行后先数据处理。同样,由于第二数据执行器组10-2在启动阶段会短暂地等待一段时间,因此,在第三数据执行器组10-3在启动阶段存在没有接收到后向数据处理结果的情况,因此也会先连续执行预定次数的前向数据处理,例如2次,在接收到后向数据处理结果时,则先进行后先数据处理。最后,第四数据执行器组10-4为最后一组,因此在启动阶段存直接按照一个前向和一个后向交替进行数据处理。

图3所示的是根据本公开的数据处理系统10执行数据处理过程的第二种启动阶段的示意图。在内存空间足够的情况下,如图3所示,其中采用空白方框表示前向数据处理,采用上斜线方框表示后向数据处理。第一数据执行器组10-1中的数据处理执行器在启动后先连续执行预定次数,例如4次,即连续基于初始模型参数对数据1、数据2、数据3以及数据4这四个批次的数据执行四次前向数据处理,并以此将所处理获得结果数据传输到后一数据处理阶段对应的第二数据执行器组10-2,以此类推,依次到第三数据执行器组10-3以及第四数据执行器组10-4。因此, 尽管在图2中第一数据执行器组10-1、第二数据执行器组10-2、第三数据执行器组10-3以及第四数据执行器组10-4都有相同的前向或后向数据处理编号,但是其实际处理的数据对象并不相同,例如,第二数据执行器组10-2的前向数据处理编号“2”其处理的数据对象是第一数据执行器组10-1的前向数据处理编号“2”所产生的数据处理结果,以此类推。如图3显示,第一数据执行器组10-1之后,会执行一次后向数据处理,即进行模型数据更新。由于针对第一批次的数据1的后向数据处理未能及时返回,因此需要第一数据执行器组10-1在启动阶段会短暂地等待一段时间,以便在后向数据处理进行模型数据更新以便随后的批次的前向数据处理采用更新后的模型参数。根据本公开的数据处理系统,这种等待仅仅在启动初期出现,在后续的稳定运行期间不会出现。在启动阶段,由于第一数据执行器组10-1在启动阶段会短暂地等待一段时间,因此,在第二数据执行器组10-2在启动阶段存在没有接收到后向数据处理结果的情况,因此也会先连续执行预定次数的前向数据处理,例如3次,在接收到后向数据处理结果时,则先进行后先数据处理。同样,由于第二数据执行器组10-2在启动阶段会短暂地等待一段时间,因此,在第三数据执行器组10-3在启动阶段存在没有接收到后向数据处理结果的情况,因此也会先连续执行预定次数的前向数据处理,例如2次,在接收到后向数据处理结果时,则先进行后先数据处理。最后,第四数据执行器组10-4为最后一组,因此在启动阶段存直接按照一个前向和一个后向交替进行数据处理。在启动阶段,由于第一数据执行器组10-1在启动阶段会短暂地等待一段时间,因此,在第二数据执行器组10-2以及第三数据执行器组10-3会存在连续先接收到后向数据处理结果的情况,因此会出现连续执行两次后向数据处理。在最后的数据执行器组,例如图3中的第四数据执行器组执行完第四批次数据(例如数据4)的前向数据处理之后,数据处理系统10将进入稳定阶段。如图2所述,第一数据执行器组10-1在启动后先连续执行预定次数的前向数据处理后在未获得其第一版模型更新参数时,等待来自第二数据执行器组执行的后向数据处理所产生的第二数据执行器组的第一版模型更新参数之后才基于所述第二数据执行器组的第一版模型更新参数执行后向数据处理,以便输出第一数据执行器组第一版模型更新参数。也就是说,尽管各个数据执行器组都具有第一版模型更新参数,但是其具体参数也不同,以此类推,其他版本也一样。

图4所示的是根据本公开的数据处理系统10执行数据处理过程稳定阶段的示意图。如图4所示,数据处理系统10将进入稳定阶段后,每个数据执行器组按照一个前向数据处理一个后向数据处理交替进行数据处理,每个前向数据处理采用其之前通过后向数据处理获得的最新更新的模型数据来执行前向数据处理。由于如图2或3所示,第一数据执行器组10-1中的数据处理执行器在启动后先连续执行预定次数,图2-4中显示的前向数据处理和一次后向数据处理的时间并不完全相等,通过示意方块的长短显示两者的区别。后向数据处理进行更新与对应的前向数据处理所花费的时间相比要长一些,因为后向数据处理在传播梯度的同时还需要更新参数,通常对于涉及矩阵乘法数据处理,后向数据处理的运算量刚好是前向数据处理的运算量的2倍。对于一些线性数据处理, 后向数据处理的运算量与前向数据处理运算量基本相同。因此,第四数据执行器组10-4在处理完第一次前向数据处理之后就无需等待,而直接进行第一次后向数据处理。因此,作为与数据处理第四阶段对应的第四数据执行器组10-4则开始就进入前向数据处理和后向数据处理交替执行的状态。为此,尽管第一数据执行器组10-1中的数据处理执行器在启动后先连续执行预定次数,该预定次数可以大于或小于所述数据执行器组的组数也能够实现并行处理的目的,但是在预定次数大于组数时,在系统处于启动阶段和稳定状态时,一方面导致前向数据处理使用更旧的模型参数,这会导致数据训练过程难以实现较好的收敛或收敛的时间更长,在预定次数小于组数时,在系统处于稳定阶段时,导致每组数据执行器组都会存在经过一定固定的处理过程后会出现等待输入数据的过程,这就导致每组数据执行器组都不能进入全时负荷工作状态,因此导致计算资源的浪费。

尽管在图4所示的稳定阶段,每个数据执行器组都是一个前向数据处理和一个后向数据处理交替进行,但是在实际情况中可能存在前向数据处理所需的待处理数据和后向数据处理所需的待处理数据并不交替出现的情况,例如,可能在某个数据执行器组正在执行前向数据处理时,两种所需的待处理数据同时到达或在某个数据执行器组正在执行后向数据处理时,下一个后向数据处理所需的待处理数据先于下一个前向数据处理所需的待处理数据到达。由于针对同一批次的数据执行后向数据处理的数据执行器组与执行前向数据处理的数据执行器组会共享数据,为了加快执行前向数据处理的数据执行器组释放内存空间以及,为了防止某个数据执行器组存在执行前向数据处理的由于前批次数据所使用的内存空间长期不被释放而导致数据处理流程卡顿,以及该卡顿会传导到其他数据执行器组,本公开的数据处理系统通过在每个数据执行器组设立状态机,当某个数据执行器组的状态机获得其后的数据执行器组针对任意批次的数据的后向数据处理结果时,即触发状态条件,使得该某个数据执行器组在下一数据执行处理中立即针对该批次数据执行后向数据处理,无论是否存在待处理的前向数据处理任务以及无论该待处理的前向处理任务是否先于该后向处理任务到达。只有当所有已经到达的待处理的后向处理任务都执行完毕后才能执行已经到达的待处理的新的前向数据处理任务。通过优先处理后向数据处理,可以避免后向数据处理处于长时间等待状态,从而使得每个数据执行器组能够在执行前向数据处理时使用更新的模型参数。由于优先执行后向数据处理,因此,能够执行后向数据处理的数据执行器组能够尽快通知其对应的执行前向数据处理的数据执行器组尽早地释放该后向数据处理所要使用的数据的存储空间,使得该对应的执行前向数据处理的数据执行器组能够再次利用该存储空间。在存储空间紧张的情况下,由于该存储空间未能被释放,因此,使用该存储和空间的数据执行器组将不能进行下一批次的数据的前向数据处理,会导致整个流式数据处理在该数据执行器组处出现卡顿情况,从而拖累整个数据处理系统的速度。

为此,本公开选择使得第一数据执行器组10-1中的数据处理执行器在启动后先连续执行预定次数等于所述数据执行器组的组数,因此在稳定阶段,使得每个数据执行器组能够实现前向数据处理和后向数据处理交替进行,并且每个数据执行器组能在执行前向数据处理时使用尽可能新的模型参数。图5所示的是根据本公开的数据处理系统10执行数据处理过程稳定阶段的第一实施方式的示意图。在内存空间不充足的情况下,如图4所示,例如 在四组数据执行器组的情况下,第四数据执行器组10-4执行数据12时,可以使用中模型11的模型参数,第三数据执行器组10-3执行数据12时,可以使用中模型10的模型参数,第二数据执行器组10-2执行数据12时,可以使用中模型9的模型参数,第一数据执行器组10-1执行数据12时,可以使用中模型8的模型参数,这样就提高了数据训练过程中的收敛性。一方面,这样可以逐步减少对应靠后场景的数据执行器组用于存储模型参数的存储空间,如图4所示,例如第一数据执行器组10-1需要四个内存空间来存储最新的四个版本的模型参数,第二数据执行器组10-2只需要三个内存空间来存储最新的三个版本的模型参数,第三数据执行器组10-3需要两个内存空间来存储最新的两个版本的模型参数,而最为对应最后一个场景的第四数据执行器组10-4只需要一个内存空间来存储一个版本的模型参数。这样就显著减少了对内存空间的需要。

图6所示的是所示的是根据本公开的数据处理系统10执行数据处理过程稳定阶段的第二实施方式的示意图。在数据处理系统内存空间容许的情况下,可以为每个数据执行器组配置与数据执行器组的组数相同数量的内存空间,并且每个数据执行器组针对同一批数据,采用相同版本的模型参数执行前向数据处理。在内存空间充足的情况下,如图6所示,例如 在四组数据执行器组的情况下,第四数据执行器组10-4执行数据12时,使用中模型8的模型参数,第三数据执行器组10-3执行数据12时,可以使用中模型8的模型参数,第二数据执行器组10-2执行数据12时,可以使用中模型8的模型参数,第一数据执行器组10-1执行数据12时,可以使用中模型8的模型参数,这样每一批次的输入数据在不同的数据执行器组里面都会使用相同的模型参数(weight)进行处理。如上所述,第一数据执行器组10-1在一开始执行数据12时用的是版本8的模型参数, 那么数据执行器组10-2到10-4都必须用版本8的模型参数, 为此,所有的数据执行器组都必须在存储器预留4份模型参数以及数据的空间。与图5所示的系统不同,图6所示的系统每个数据执行器组预留的用于模型参数的内存空间份数都是相同的。这种结构一方面使得数据处理系统在执行数据处理的结果具有更高的稳定性,另一方面,由于一次迭代中使用的模型参数版本都是一样的, 使得数据处理结果的收敛性更好。另一方面,通过提供充足的内存空间来存储连续的模型参数版本,可以确定每一批次数据使用相同版本的模型参数,使得稳定阶段的数据处理能够基本按照一个前向数据处理和一个后向数据处理交替进行,使得数据处理更为稳定,也消除了并行数据处理系统在稳定阶段各个数据执行器组在执行数据处理时的等待时间,从而使得每个数据执行器组处于满负荷处理状态。

返回参考图1,为了数据处理系统10能够尽可能在并行数据处理过程中实现训练过程的收敛以及处于满负荷状态,为此配置了处理阶段划分组件11,处理阶段划分组件11基于要执行的任务量,将数据处理过程平均划分成多个与处理阶段对应的数据处理场景使得每个场景的数据处理时间一致。尽管如此,平均划分也不是必须的,可以根据数据处理的实际需要以及计算资源的配置量,不进行平均划分,使得每个处理阶段对应配置的计算资源负载均衡即可。为此,为数据处理系统10配置有数据执行器分组组件12,其基于待处理数据的处理阶段中每个处理阶段的计算量,将多个数据执行器对应分组成所述多个数据执行器组,以便针对每个批次的数据,均衡每个数据执行器执行数据处理的计算量。

如上所述,为了使得每次的前向数据处理能够使用最新的模型参数,在每个数据执行器组中的模型参数存储器中最多存储与所述预定次数相等数量版本的模型更新参数,以便正在执行的前向数据处理采用模型参数存储器中所存储的最新版本的模型更新参数来执行前向数据处理。图4所示的是根据本公开的数据处理系统10执行数据处理过程稳定阶段模型参数存储过程示意图。如图5所示,针对数据12,第一数据执行器组10-1在执行前向数据处理时使用第8版模型参数,此后随着前向处理和后向处理的交替执行,在进行第12版模型参数更新之前,存储4版模型参数,即模型参数第8-11版。在此过程中,每次第一数据执行器组10-1执行前向数据处理都采用最新版的模型参数,例如针对数据13,使用第9版模型参数,以此类推。同样针对数据12,第二数据执行器组10-2在执行前向数据处理时使用第9版模型参数,因此,此时第二数据执行器组10-2在执行前向数据处理之前已经完成了第9版模型参数更新的更新,因此,采用最新版的模型参数。此后随着前向处理和后向处理的交替执行,在进行第12版模型参数更新之前,存储4版模型参数。类似的,针对数据12,第三数据执行器组10-3在执行前向数据处理时使用第10版模型参数。针对数据12,第四数据执行器组10-4在执行前向数据处理时使用第11版模型参数。随着前向数据处理和后向数据处理的进行,模型参数存储器中的最旧的模型参数被最新的模型参数所替代。

同样,对于图6所示的实施方式,通指定执行前向数据处理所采用的模型参数版本的预定间隔,使得所有数据执行器组都针对同一批次数据采用预定间隔数之前的最新版模型参数,例如,例如针对数据13,所有数据执行器组都使用第9版模型参数,针对数据14,所有数据执行器组都使用第10版模型参数,针对数据15,所有数据执行器组都使用第11版模型参数,以此类推,数据的批次号与模型参数的版本号之间始终保持预定间隔。因此,采用最新版的模型参数。每次执行一次后向数据处理之后,更新相应数据执行器组所述的内存空间中的模型参数版本,即采用最新版本的模型参数替换最老版本的模型参数。

返回图1所示,根据本公开的数据处理系统采用如下方式进行数据处理:首先,将数据处理过程平均划分成多个与处理阶段对应的数据处理场景使得每个场景的数据处理时间一致;其次,基于待处理数据的处理阶段中每个处理阶段的计算量,将多个数据执行器对应分组成所述多个数据执行器组,每个数据执行器组包括至少一个数据处理执行器;接着,所述多个数据执行器组中的第一数据执行器组中的数据处理执行器在启动后先连续执行预定次数的前向数据处理后交替执行前向数据处理和后向数据处理;最后,所述多个数据执行器组中的第一数据执行器组之后的数据执行器组中的数据处理执行器按照数据接收的先后顺序针对其所获得前一数据执行器组中的数据处理执行器执行前向数据处理所产生的前向结果数据执行前向数据处理或针对其所获得后一数据执行器组中的数据处理执行器执行后向数据处理所产生的模型更新参数执行后向数据处理。需要指出的是,所述预定次数选择等于所述数据执行器组的组数比较好。此外,每个数据执行器组中的模型参数存储器最多存储与所述预定次数相等数量版本的模型更新参数,以便正在执行的前向数据处理采用模型参数存储器中所存储的最新版本的模型更新参数来执行前向数据处理。

以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,对本领域的普通技术人员而言,能够理解本公开的方法和装置的全部或者任何步骤或者部件,可以在任何计算装置(包括处理器、存储介质等)或者计算装置的网络中,以硬件、固件、软件或者它们的组合加以实现,这是本领域普通技术人员在阅读了本公开的说明的情况下运用他们的基本编程技能就能实现的。

因此,本公开的目的还可以通过在任何计算装置上运行一个程序或者一组程序来实现。所述计算装置可以是公知的通用装置。因此,本公开的目的也可以仅仅通过提供包含实现所述方法或者装置的程序代码的程序产品来实现。也就是说,这样的程序产品也构成本公开,并且存储有这样的程序产品的存储介质也构成本公开。显然,所述存储介质可以是任何公知的存储介质或者将来所开发出来的任何存储介质。

还需要指出的是,在本公开的装置和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行。某些步骤可以并行或彼此独立地执行。

上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

相关技术
  • 数据处理系统和操作数据处理系统的方法
  • 数据处理系统以及配置和操作数据处理系统的方法
技术分类

06120113212923