欢迎光临小豌豆知识网!
当前位置:首页 > 电学技术 > 电通讯技术> 一种数据传输方法、装置、处理设备及介质独创技术46103字

一种数据传输方法、装置、处理设备及介质

2021-03-31 12:45:07

一种数据传输方法、装置、处理设备及介质

  技术领域

  本申请涉及互联网技术领域,具体涉及计算机技术领域,尤其涉及一种数据传输方法、一种数据传输装置、一种处理设备及一种计算机存储介质。

  背景技术

  在数学图论中,图用于表达物体与物体之间的关系的抽象,其主要由用于表示物体的节点和表示物体之间的关系的边组成;其中,每条边都有方向的图可称为有向图(Directed Graph)。随着图技术和互联网技术的发展,计算图应运而生;所谓的计算图又可称为数据流图(DataFlowGraph),其具体是指用于表征目标对象的数据流计算的有向图。计算图中的节点用于表示在计算目标对象的过程中所涉及的数据处理操作,一个数据处理操作对应一个执行结果数据;计算图中的边用于表示数据处理操作(节点)之间的依赖关系,如数据依赖关系和控制依赖关系。计算图中通常会具有一些特殊的目标节点,这些目标节点用于表示需要传输执行结果数据的数据处理操作。

  目前,在计算设备对目标对象进行计算之前,通常会构建该目标对象的计算图,并将构建得到的计算图直接发送至计算设备;使得计算设备在计算目标对象的过程中,每执行一个目标节点所表示的数据处理操作后,便直接传输相应的执行结果数据。这样的数据传输方式会导致数据传输的次数过多,消耗过多的网络资源;并且,通常每次传输都会具有网络延时,这样还会导致传输总时长较长。

  发明内容

  本申请实施例提供了一种数据传输方法、装置、处理设备及介质,可通过各个目标节点的调度时长更新计算图,并基于更新后的计算图指示计算设备对目标节点的执行结果数据进行聚合传输,从而减少数据传输的次数,以节省网络资源并缩短传输总时长。

  一方面,本申请实施例提供了一种数据传输方法,所述方法包括:

  获取目标对象的计算图中的至少两个目标节点的调度时长和通信量,每个目标节点用于表示目标对象在计算过程中需要被执行的一个数据处理操作,且每个目标节点所表示的数据处理操作的执行结果数据需要进行传输;

  按照调度时长将至少两个目标节点中的通信量满足通信量条件的目标节点聚合为聚合节点,聚合节点用于指示对被聚合的目标节点所表示的数据处理操作的执行结果数据进行聚合;

  采用聚合节点更新计算图,并将更新后的计算图发送至计算设备,更新后的计算图用于指示:计算设备按照聚合节点的指示,在目标对象的计算过程中对被聚合的目标节点所表示的数据处理操作的执行结果数据进行聚合,并传输聚合后的数据。

  另一方面,本申请实施例提供了一种数据传输装置,所述装置包括:

  获取模块,用于获取目标对象的计算图中的至少两个目标节点的调度时长和通信量,每个目标节点用于表示目标对象在计算过程中需要被执行的一个数据处理操作,且每个目标节点所表示的数据处理操作的执行结果数据需要进行传输;

  聚合模块,用于按照调度时长将至少两个目标节点中的通信量满足通信量条件的目标节点聚合为聚合节点,聚合节点用于指示对被聚合的目标节点所表示的数据处理操作的执行结果数据进行聚合;

  更新模块,用于采用聚合节点更新所述计算图;

  通信模块,用于将更新后的计算图发送至计算设备,该更新后的计算图用于指示计算设备按照聚合节点的指示在目标对象的计算过程中对被聚合的目标节点所表示的数据处理操作的执行结果数据进行聚合,并传输聚合结果。

  相应地,本申请实施例还提供了一种处理设备,该处理设备包括处理器和存储装置;存储装置,用于存储程序指令;处理器,用于调用程序指令并执行上述的数据传输方法。

  相应地,本申请实施例还提供了一种计算机存储介质,该计算机存储介质中存储有程序指令,该程序指令被执行时,用于实现上述的数据传输方法。

  相应地,根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述提供的数据传输方法。

  本申请实施例可获取目标对象的计算图中的至少两个目标节点的调度时长和通信量,按照调度时长将至少两个目标节点中的通信量满足通信量条件的目标节点聚合为聚合节点,采用聚合节点更新计算图,并将更新后的计算图发送至计算设备,更新后的计算图用于指示:计算设备按照聚合节点的指示,在目标对象的计算过程中对被聚合的目标节点所表示的数据处理操作的执行结果数据进行聚合,并传输聚合后的数据。本申请实施例可通过各个目标节点的调度时长更新计算图,并基于更新后的计算图指示计算设备对目标节点的执行结果数据进行聚合传输,从而减少数据传输的次数,以节省网络资源并缩短传输总时长。

  附图说明

  为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

  图1a是本申请实施例提供的一种数据传输系统的架构示意图;

  图1b是本申请另一实施例提供的一种数据传输系统的架构示意图;

  图2是本申请实施例提供的一种数据传输方法的流程示意图;

  图3a是本申请实施例提供的一种计算图的示意图;

  图3b是本申请实施例提供的一种调度时间计算的场景示意图;

  图4是本申请另一实施例提供的一种数据传输方法的流程示意图;

  图5a是本申请另一实施例提供的一种添加聚合节点的示意图;

  图5b是本申请另一实施例提供的一种添加通信节点的示意图;

  图6是本申请实施例提供的一种分布式机器学习的应用场景示意图;

  图7是本申请实施例提供的一种数据传输装置的结构示意图;

  图8是本申请实施例提供的一种处理设备的结构示意图。

  具体实施方式

  下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。

  在目标对象的计算过程中,为了能够更好地对各个目标节点所表示的数据处理操作的执行结果数据进行传输,本申请实施例首先提出了一种数据传输系统。此处的目标对象是指计算过程中涉及多次数据处理操作的任一对象,例如该目标对象可以是模型训练过程中涉及卷积操作、池化操作等多次数据处理操作的神经网络模型;又如,该目标对象可以是应用测试过程中涉及对应用功能1的测试操作、应用功能2的测试操作等多次数据处理操作的应用程序;再如,该目标对象可以是硬件测试过程中涉及对模组1的测试操作、模组2的测试操作等多次数据处理操作的硬件设备,等等。

  具体的,该数据传输系统可包括:一个处理设备11以及一个或多个计算设备12;该处理设备11和各计算设备12之间可通过互联网网络进行通信。其中,处理设备11主要用于生成并更新目标对象的计算图(即数据流图),并将计算图发送至各计算设备12;其可以是具有数据处理功能的任一终端或者服务器。计算设备12主要用于对目标对象执行多次数据处理操作,并按照计算图的指示传输部分或全部数据处理操作的执行结果数据;其可以是具有数据计算功能以及通信功能的任一终端或者服务器。在一种具体实现中,各计算设备12在用于按照计算图的指示传输部分或全部数据处理操作的执行结果数据时,可以是将该部分或全部数据处理操作的执行结果数据回传至处理设备11,以使得处理设备11可根据各计算设备12发送的执行结果数据对目标对象进行后续处理,如模型更新处理、应用测试分析处理、模组测试分析处理等等;在此具体实现中,数据传输系统的系统架构可参见图1a所示。再一种具体实现中,各计算设备12在用于按照计算图的指示传输部分或全部数据处理操作的执行结果数据时,可以是将该部分或全部数据处理操作的执行结果数据传输至另一个管理设备13,以使得管理设备13可根据各计算设备12发送的执行结果数据进行后续处理;在此具体实现中,数据传输系统的系统架构可参见图1b所示。为便于阐述,后续均以图1b所示的系统架构进行说明。

  需要说明的是,图1a和图1b均只是示例性地表征数据传输系统的具体架构,并不对其进行限定。例如,图1a和图1b均是单独物理部署了一个处理设备11来执行计算图的生成和更新操作的;但在其他实施例中,也可选用多个计算设备12中的任一计算设备作为处理设备以执行计算图的生成和更新操作;在此情况下,便可不用单独部署一个处理设备11。还需说明的是,上述所提及的终端可以包括但不限于:智能手机、平板电脑、笔记本电脑、台式计算机,等等。上述所提及的服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器,等等。

  基于上述的数据传输系统,本申请实施例还提出了一种数据传输方案。具体的,该数据传输方案的大致原理如下:处理设备可获取目标对象的计算图中需要传输同步数据(即执行结果数据)的各目标节点的调度时长,依照调度时长的先后顺序将调度时长相近的目标节点聚合成一个聚合节点,并采用聚合节点更新计算图。其中,一个目标节点的调度时长是指该目标节点所表示的数据处理操作最早可能执行结束的时间。进一步地,处理设备可将更新后的计算图下发至计算设备,使得计算设备在计算目标对象的过程中,可按照聚合节点的指示对被聚合的目标节点所表示的数据处理操作的执行结果数据进行聚合传输。可见,本申请实施例所提出的数据传输方案可实现至少两个目标节点所对应的执行结果数据的聚合传输,这样可有效减少数据传输的次数,以节省网络资源并缩短传输总时长。

  基于上述的描述,本申请实施例提出一种数据传输方法,该数据传输方法可以由上述所提及的处理设备执行。请参见图2,该数据传输方法可包括以下步骤S201-S203:

  S201,获取目标对象的计算图中的至少两个目标节点的调度时长和通信量,每个目标节点用于表示目标对象在计算过程中需要被执行的一个数据处理操作,且每个目标节点所表示的数据处理操作的执行结果数据需要进行传输。

  在本申请实施例中,目标对象的计算图即为数据流图,数据流图用以表征数据流计算的有向图,计算图中的每一个节点用于表示目标对象在计算过程中需要被执行的一个数据处理操作,目标节点为所有节点中需要将自身所表示的数据处理操作的执行结果数据进行传输的节点,连接各个节点的有向边用于表示数据操作(也可以理解为节点)之间的依赖关系。以目标对象为神经网络模型为例,上述数据处理操作可以指神经网络模型在模型训练过程中涉及的卷积操作、池化操作等数据处理操作。

  其中,上述依赖关系可包括数据依赖和控制依赖。具体地,该数据依赖可以理解为某一节点所表示的数据处理操作的执行依赖于另一节点所表示的数据处理操作执行后的数据;控制依赖可以理解为某一节点所表示的数据处理操作控制另一节点所表示数据处理操作的执行,例如,计算图中某一节点I所表示的数据处理操作执行后,方可执行另一节点H所表示的数据处理操作,那么这种情况下,可以理解为某一节点I所表示的数据处理操作控制另一节点所表示数据处理操作的执行。以图3a所示的计算图为例,计算图中的黑色节点均为目标节点,通过连接各个节点的边的有向指示,可以看出,节点H依赖于节点I,也即节点I所表示的数据处理操作执行后,方可执行另一节点H所表示的数据处理操作。

  其中,上述任一个目标节点的通信量可以理解为传输该目标节点所表示的数据处理操作的执行结果数据传输所需的通信量,上述任一个目标节点的调度时长可以为理解为该目标节点所表示的数据处理操作的最早完成所需的时长。其中,上述各个目标节点所表示的数据处理操作的执行结果数据传输所需的通信量,可以为预热运行计算图的过程中记录得到的。

  在一个实施例中,获取目标对象的计算图中的至少两个目标节点的调度时长的具体方式可以为:预热运行目标对象的计算图,并记录计算图中各个节点表示的数据处理操作的执行时长,进一步地,依照各个节点表示的数据处理操作的执行时长,计算计算图中的至少两个目标节点的调度时长。其中,在预设运行计算图的过程中,还可以记录传输各个目标节点所表示的数据处理操作的执行结果数据所需的通信量。

  其中,以计算计算图中的第一目标节点(第一目标节点为计算图中至少两个目标节点中的任一个目标节点)为例说明上述调度时长的具体计算方式为:确定计算图中从起始节点开始,到达第一目标节点的各条路径,并对各条路径中除第一目标节点以外的节点对应的执行时长求和,将求和结果确定为第一目标节点的输入时长。进一步地,从第一目标节点的各个输入时长中,确定第一目标节点的最大输入时长,并将第一目标节点的执行时长和最大输入时长的和值,确定为第一目标节点的调度时长。

  与之相似的,可以通过上述方式,计算计算图中每一个目标节点,以及每一个非目标节点的调度时长。

  示例性地,可以从计算图的起始节点开始,通过式1.1计算每个节点i的调度时长T,式1.1中表征的是节点i的最大输入时长,该最大输入时长是所有输入节点i的最早完时间(Ti)的最大值,Δti为节点i对应的执行时长。

  

  以图3a所示的计算图为例,计算图中的黑色节点均为目标节点,其它的为非目标节点,每个节点中的数字可以用于表征该节点所表示的数据处理操作的执行时长,例如,计算图中“M:1”,用于表征节点M所表示的数据处理操作的执行时长为1。可以从计算图中起始节点B和起始节点A开始,通过上述式1.1计算每个节点的调度时长,计算后的每个节点的调度时长可以参见图3b所示,其中,每个节点的调度时长可以用每个节点上括号中的数字表示,例如节点D的调度时长为8,可以表示为:D(8)。

  S202,按照调度时长将至少两个目标节点中的通信量满足通信量条件的目标节点聚合为聚合节点,该聚合节点用于指示对被聚合的目标节点所表示的数据处理操作的执行结果数据进行聚合。

  其中,通信量条件为被聚合的目标节点的通信量总和小于或者等于通信量阈值,在一个实施例中,可以按照调度时长从小到大的先后顺序将至少两个目标节点中的多个目标节点聚合为目标节点,被聚合的该多个目标节点的通信量总和小于或者等于通信量阈值。

  S203,采用聚合节点更新计算图,并将更新后的计算图发送至计算设备,更新后的计算图用于指示:计算设备按照聚合节点的指示,在目标对象的计算过程中对被聚合的目标节点所表示的数据处理操作的执行结果数据进行聚合,并传输聚合后的数据。

  本申请实施例可获取目标对象的计算图中的至少两个目标节点的调度时长和通信量,按照调度时长将至少两个目标节点中的通信量满足通信量条件的目标节点聚合为聚合节点,采用聚合节点更新计算图,并将更新后的计算图发送至计算设备,更新后的计算图用于指示:计算设备按照聚合节点的指示,在目标对象的计算过程中对被聚合的目标节点所表示的数据处理操作的执行结果数据进行聚合,并传输聚合后的数据。本申请实施例可通过各个目标节点的调度时长更新计算图,并基于更新后的计算图指示计算设备对目标节点的执行结果数据进行聚合传输,从而减少数据传输的次数,以节省网络资源并缩短传输总时长。

  请参见图4,是本申请实施例提供的另一种数据传输方法的流程示意图。该方法可以由上述所提及的处理设备执行。请参见图4,该数据传输方法可包括以下步骤S401-S408:

  S401,获取目标对象的计算图中的至少两个目标节点的调度时长和通信量,每个目标节点用于表示目标对象在计算过程中需要被执行的一个数据处理操作,且每个目标节点所表示的数据处理操作的执行结果数据需要进行传输。

  S402,按照调度时长从小到大的顺序逐个组合上述至少两个目标节点中的各个目标节点,若在逐个组合过程中确定出前m个目标节点的通信量总和小于或者等于通信量阈值,且前m+1个目标节点的通信量总和大于通信量阈值,则将前m个目标节点聚合为第一个聚合节点。

  S403,在确定出第一聚合节点后,继续依照调度时长从小到大的顺序逐个组合剩余目标节点集中的各个目标节点,该剩余目标节点集包括上述至少两个目标节点中除上述前m+1个目标节点以外的目标节点。

  S404,若在逐个组合剩余目标节点集中各个目标节点的过程中确定出剩余目标节点集中的前n个目标节点的通信量总和小于或者等于通信量阈值,且剩余目标节点集中的前n+1个目标节点的通信量总和大于通信量阈值,则将剩余目标节点集中的前n个目标节点聚合为第二个聚合节点,其中,m和n均为大于1的整数。依次类推,可以继续检测下一个剩余目标节点集中前o(o为大于1的整数)个目标节点的通信量总和是否小于或者等于通信量阈值,且下一个剩余目标节点集中前o+1(o为大于1的整数)个目标节点的通信量总和是否大于通信量阈值,确定出下一个聚合节点,直至遍历完计算图中的所有目标节点,则停止聚合。

  或者,在另一个实施例中,若在上述逐个组合过程中确定出前m个目标节点的通信量总和大于通信量阈值,且m为2,则确定前2个目标节点未聚合成功,则将上述至少两个目标节点中除上述第m-1目标节点(即此时的第一个目标节点)以外的目标节点确定为剩余节点。进一步地,继续按照调度时长从小到大的顺序逐个组合该剩余节点中的各个目标节点,并从该剩余节点中确定出通信量总和小于或者等于通信量阈值的聚合节点。其中,从该剩余节点中确定出通信量总和小于或者等于通信量阈值的聚合节点的具体方式,可以参照上述聚合第二聚合节点的相关描述,此处不再赘述。

  示例性地,假设目标对象的计算图中的至少两个目标节点的调度时长如图3b所示,计算图中的黑色节点均为目标节点,可以看出目标节点B的调度时长为2(即B(2)),目标节点E的调度时长为3(即E(3)),目标节点G的调度时长为11(即G(11)),目标节点J的调度时长为14(即J(14)),目标节点L的调度时长为8(即L(8)),目标节点O的调度时长为23(即O(23)),各目标节点依照调度时长从小到大的顺序为:BELGJO;各个目标节点的通信量分别为:B=50,E=20,L=120,G=80,J=10,O=50,通信量阈值为100。

  这种情况下,可以按照调度时长从小到大的顺序逐个组合各个目标节点(BELGJO),在逐个组合的过程中,首先将各个目标节点中排序前2的目标节点B和目标节点E组合,计算目标节点B和目标节点E的第一通信量总和为70,经判断第一通信量总和70小于通信量阈值100。进一步地,可以继续依照调度时长从小到大的顺序将各个目标节点中排序前3的目标节点B、目标节点E和目标节点L组合,计算目标节点B、目标节点E和目标节点L的第二通信量总和为70,经判断第二通信量总和190大于通信量阈值100,则可以将前2个目标节点B和目标节点E聚合为第一聚合节点BE。

  进一步地,可以继续按照调度时长从小到大的顺序将剩余目标节点集(LGJO)逐个组合,首先将剩余目标节点集中排序前2的目标节点L和目标节点G组合,计算目标节点L和目标节点G的第三通信量总和为200,经判断第三通信量总和200大于通信量阈值100,则目标节点L和目标节点G聚合失败。进一步地,可以将GJO确定为下一个剩余目标节点集,继续按照调度时长从小到大的顺序将下一个剩余目标节点集(GJO)逐个组合,首先将下一个剩余目标节点集(GJO)中排序前2的目标节点G和目标节点J组合,计算目标节点G和目标节点J的第四通信量总和为90,经判断第四通信量总和90小于通信量阈值100,则目标节点G和目标节点J聚合成功,将目标节点G和目标节点J聚合为第二个聚合节点GJ。进一步地,由于目标节点G和目标节点J聚合成功后,下下个剩余节点集仅包括最后一个目标节点O,相当于本次聚合已遍历计算图中的所有目标节点,则停止本次聚合。本次聚合得到的聚合节点包括第一聚合节点BE和第二聚合节点GJ;未被聚合的目标节点包括目标节点L和目标节点O。

  S405,采用聚合节点更新计算图,该聚合节点包括上述第一聚合点和第二聚合节点。

  具体实现中,可以在计算图中增加聚合节点,采用有向边连接聚合节点和聚合节点对应的被聚合的目标节点,在计算图中为聚合节点和未被聚合的目标节点增加各自的通信节点。其中,任一个通信节点用于表示传输目标数据的通信操作,若该任一个通信节点对应的目标节点为聚合节点,则目标数据为上述聚合后的数据;若任一个通信节点对应的目标节点为未被聚合的目标节点,则目标数据为未被聚合的目标节点所表示的数据处理操作的执行结果数据。

  假设聚合节点包括第一聚合节点和第二聚合节点,以图5a所示的聚合节点(即第一聚合节点BE和第二聚合节点GJ)为例,添加聚合节点的示意图可参见图5a所示。然后,可在计算图中为未被聚合的目标节点增加一个匹配的通信节点,以及在计算图中为聚合节点增加一个匹配的通信节点;

  承接上述例子,未被聚合的目标节点包括:目标节点L和目标节点O;聚合节点包括第一聚合节点BE和第一聚合节点GJ,那么添加通信节点的示意图可参见图5b所示。

  S406,将更新后的计算图发送至计算设备。更新后的计算图用于指示:计算设备按照聚合节点的指示,在目标对象的计算过程中对被聚合的目标节点所表示的数据处理操作的执行结果数据进行聚合,并传输聚合后的数据。

  示例性地,本申请实施例提出的一种数据传输方法可由图1a和图1b所示的数据传输系统中的处理设备执行,该数据传输系统还包括计算设备,计算设备主要用于对目标对象执行多次数据处理操作,并按照计算图的指示传输部分或全部数据处理操作的执行结果数据。在本申请实施例中,处理设备和计算设备可以为分别两个独立的设备,也可以集合为一个统一的设备,例如,可以预先在各个计算设备中选取一个目标计算设备作为处理设备,使得该处理设备可以兼顾处理设备和计算设备的功能。这种情况下,处理设备采用聚合节点更新计算图之后,在目标对象的计算过程中,按照更新后的计算图中的聚合节点的指示,在目标对象的计算过程中对被聚合的目标节点所表示的数据处理操作的执行结果数据进行聚合,并传输聚合后的数据。

  由上述描述可知,本申请实施例提出的一种数据传输方法,在进行目标节点的聚合时,无需考虑目标对象的计算图的拓扑状态,无论计算图具有多么复杂的拓扑关系,通过本申请实施例均可以根据各个目标节点的实际运行状态,结合各个目标节点各自对应的不同的通信量阈值,将调度时长相近的目标节点聚合为聚合节点,有利于提升所确定出的聚合节点的准确性和通用性。进一步地,可采用聚合节点更新计算图,并将更新后的计算图发送至计算设备。使得计算设备在计算目标对象的过程中,在执行被聚合的目标节点表示的数据处理操作后,可按照聚合节点的指示对被聚合的目标节点所表示的数据处理操作的执行结果数据进行聚合传输,从而减少数据传输的次数,以节省网络资源并缩短传输总时长。

  在实际应用中,上述所提及的数据传输方法可运用在不同的应用场景中;例如,分布式机器学习的应用场景、采用一个或多个计算设备对应用程序进行测试的应用场景、采用一个或多个计算设备对硬件设备进行测试的应用场景,等等。其中,分布式机器学习是指:将神经网络模型的机器学习任务分配到多个计算设备上进行并行处理的机器学习方式。分布式机器学习可支持数据并行(DataParallelism)模式,模型并行(modelParallelism)模式等多种模式。在数据并行模式中:不同的计算设备拥有同一个模型的多个副本,每个计算设备采用不同的训练数据并行地对各自的副本进行模型训练以使得各自的副本进行机器学习,然后将所有计算设备在模型训练中所涉及的计算结果(如梯度)按照某种方式合并。在模型并行模式中:同一个模型的不同部分被分配给不同的计算设备,如不同的网络层或同一网络层的不同参数被分配给不同的计算设备,由各个计算设备并行地对各自负责的部分进行模型训练以使得各自负责的部分进行机器学习,然后将所有计算设备的训练结果合并。

  所谓的机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科;其专门研究计算机设备怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是AI(Artificial Intelligence,人工智能)的核心,所谓的AI是指利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,AI是计算机科学的一个综合技术;其主要通过了解智能的实质,生产出一种新的能以人类智能相似的方式做出反应的智能机器,使得智能机器具有感知、推理与决策等多种功能。

  下面以将上述所提及的数据传输方法运用在分布式机器学习的应用场景为例,对该数据传输方法的具体应用进行阐述;在该分布式机器学习的应用场景中,目标对象可以是一个待进行分布式机器学习的神经网络模型,每个目标节点所表示的数据处理操作的执行结果数据包括:该神经网络模型在分布式机器学习中产生的梯度。具体的,该数据传输方法的大致原理可一并参见图6所示:

  处理设备可先获取神经网络模型的计算图,该计算图中可包括多个用于表示需要传输执行结果数据(如梯度)的数据处理操作的目标节点。其次,可通过比较计算图中需要传输同步数据(即梯度)的各目标节点的可达性信息,将具有相同或相似可达性信息的目标节点聚合成一个目标聚合节点(concate节点)。然后,可在计算图中添加该目标聚合节点,并为需要通信的张量(即未被聚合的目标节点对应的梯度以及聚合节点对应的聚合结果)添加通信节点(All Reduce节点)以更新计算图。在运行时,处理设备可将更新后的计算图下发至各个计算设备;使得各个计算设备在对各自所持有的神经网络模型的副本进行模型训练过程中,可按照更新后的计算图中的聚合节点的指示,将被聚合的各目标节点所对应的梯度进行梯度融合;所谓的梯度融合是指:将不同梯度融合在一个通信数据段里进行一起通信传输的处理。在进行梯度融合后,便可接着运算通信节点;且各计算设备在运算到通信节点时可与管理设备进行同步通信,以将相应的张量(未被聚合的目标节点对应的梯度以及聚合节点对应的聚合结果)传输至管理设备。

  相应的,管理设备在接收到各计算设备传输的张量后,若各计算设备传输的张量是未被聚合的目标节点对应的梯度,则管理设备可直接对各计算设备传输的梯度进行合并计算(如均值计算),采用合并后的梯度更新神经网络模型(即目标对象)的网络参数。若各计算设备传输的张量是聚合节点对应的聚合结果,则管理设备可对该聚合结果进行分离处理,得到被融合的各梯度。然后,可分别对各计算设备传输的同一数据处理操作的梯度进行合并计算(如均值计算),并分别采用合并后的梯度更新神经网络模型(即目标对象)的网络参数。在更新网络参数后,管理设备可将更新后的网络参数下发至各个计算设备;或者在接收到各计算设备的拉取请求后,再将更新后的网络参数下发至各个计算设备,使得各个计算设备采用更新后的网络参数执行下一轮的模型训练,以重复执行上述步骤,直至模型训练完成。

  由此可见,在将本申请实施例所提出的数据传输方法应用到分布式机器学习的应用场景中,可有效地对各计算设备在模型训练过程中所得到的梯度进行融合传输,这样可有效减少传输时延,加速通信。并且,这样的梯度融合方法可以适应较为复杂的计算图拓扑结构,且适应不同的通信量阈值条件,可实现灵活地融合通信信息,使计算通信并行。应理解的是,本申请实施例所提出的数据传输方法除了可合理且灵活地应用于分布式机器学习框架等机器学习平台中,还可以扩展到需要计算通信并行的其他分布式系统;本申请实施例对此不作限制。

  本申请实施例还提供了一种计算机存储介质,该计算机存储介质中存储有程序指令,该程序指令被执行时,用于实现上述实施例中描述的相应方法。

  再请参见图7,是本申请实施例的一种数据传输装置的结构示意图,本申请实施例的数据传输装置可以设置在上述处理设备中,也可以为运行于处理设备中的一个计算机程序(包括程序代码)。

  本申请实施例的装置的一个实现方式中,装置包括如下结构。

  获取模块70,用于获取目标对象的计算图中的至少两个目标节点的调度时长和通信量,每个目标节点用于表示目标对象在计算过程中需要被执行的一个数据处理操作,且每个目标节点所表示的数据处理操作的执行结果数据需要进行传输;

  聚合模块71,用于按照调度时长将至少两个目标节点中的通信量满足通信量条件的目标节点聚合为聚合节点,聚合节点用于指示对被聚合的目标节点所表示的数据处理操作的执行结果数据进行聚合;

  更新模块72,用于采用聚合节点更新计算图;

  通信模块73,用于将更新后的计算图发送至计算设备,更新后的计算图用于指示计算设备按照聚合节点的指示在目标对象的计算过程中对被聚合的目标节点所表示的数据处理操作的执行结果数据进行聚合,并传输聚合结果。

  在一个实施例中,通信量条件为被聚合的目标节点的通信量总和小于或者等于通信量阈值,聚合模块71,具体用于:

  按照调度时长从小到大的顺序逐个组合至少两个目标节点中的各个目标节点;

  若在逐个组合过程中确定出前m个目标节点的通信量总和小于或者等于通信量阈值,且前m+1个目标节点的通信量总和大于通信量阈值,则将前m个目标节点聚合为第一个聚合节点;

  在确定出第一聚合节点后,继续依照调度时长从小到大的顺序逐个组合剩余目标节点集中的各个目标节点,剩余目标节点集包括至少两个目标节点中除前m个目标节点以外的目标节点;

  若在逐个组合剩余目标节点集中的各个目标节点的过程中确定出剩余目标节点集中的前n个目标节点的通信量总和小于或者等于通信量阈值,且剩余目标节点集中的前n+1个目标节点的通信量总和大于所述通信量阈值,则将剩余目标节点集中的前n个目标节点聚合为第二个聚合节点;其中,m和n均为大于1的整数。

  在一个实施例中,获取模块70,具体用于预热运行目标对象的计算图,计算图包括至少一个节点,每个节点用于表示目标对象在计算过程中需要被执行的一个数据处理操作;记录计算图中各个节点表示的数据处理操作的执行时长;依照各个节点表示的数据处理操作的执行时长,计算计算图中的至少两个目标节点的调度时长。

  在一个实施例中,获取模块70,还具体用于:

  确定计算图中从起始节点开始,到达第一目标节点的各条路径,第一目标节点为至少两个目标节点中的任一个目标节点;

  对各条路径中除第一目标节点以外的节点对应的执行时长求和,将求和结果确定为第一目标节点的输入时长;

  从第一目标节点的各个输入时长中,确定第一目标节点的最大输入时长;将第一目标节点的执行时长和最大输入时长的和值,确定为第一目标节点的调度时长。

  在一个实施例中,更新模块72,具体用于:

  在所述计算图中增加聚合节点;

  采用有向边连接聚合节点和聚合节点对应的被聚合的目标节点;

  在计算图中为所述聚合节点和未被聚合的目标节点增加各自的通信节点,每一个通信节点用于表示传输目标数据的通信操作,目标数据为聚合后的数据,或者为未被聚合的目标节点所表示的数据处理操作的执行结果数据。

  在一个实施例中,聚合模块71,还用于在目标对象的计算过程中,按照更新后的计算图中的聚合节点的指示,在目标对象的计算过程中对被聚合的目标节点所表示的数据处理操作的执行结果数据进行聚合;通信模块73,还用于传输聚合模块71得到的聚合后的数据。

  在一个实施例中,目标对象包括待进行分布式机器学习的神经网络模型,每个目标节点所表示的数据处理操作的执行结果数据包括:神经网络模型在分布式机器学习中产生的梯度。

  在本申请实施例中,上述各个模块的具体实现可参考前述各个附图所对应的实施例中相关内容的描述。

  本申请实施例中的数据传输装置可获取目标对象的计算图中的至少两个目标节点的调度时长和通信量,按照调度时长将至少两个目标节点中的通信量满足通信量条件的目标节点聚合为聚合节点,采用聚合节点更新计算图,并将更新后的计算图发送至计算设备,更新后的计算图用于指示:计算设备按照聚合节点的指示,在目标对象的计算过程中对被聚合的目标节点所表示的数据处理操作的执行结果数据进行聚合,并传输聚合后的数据。本申请实施例可通过各个目标节点的调度时长更新计算图,并基于更新后的计算图指示计算设备对目标节点的执行结果数据进行聚合传输,从而减少数据传输的次数,以节省网络资源并缩短传输总时长。

  再请参见图8,是本申请实施例的一种处理设备的结构示意图,本申请实施例的处理设备包括供电模块等结构,并包括处理器80、存储装置81以及通信接口82。处理器80、存储装置81以及通信接口82之间可以交互数据,由处理器80实现相应的数据传输功能。

  存储装置81可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储装置81也可以包括非易失性存储器(non-volatilememory),例如快闪存储器(flash memory),固态硬盘(solid-state drive,SSD)等;存储装置81还可以包括上述种类的存储器的组合。

  处理器80可以是中央处理器80(central processing unit,CPU)。在一个实施例中,处理器80还可以是图形处理器80(Graphics Processing Unit,GPU)。处理器80也可以是由CPU和GPU的组合。在处理设备中,可以根据需要包括多个CPU和GPU进行相应的数据传输。

  在一个实施例中,存储装置81用于存储程序指令。处理器80可以调用程序指令,实现如本申请实施例中上述涉及的各种方法。

  在第一个可能的实施方式中,处理设备的处理器80,调用存储装置81中存储的程序指令,用于获取目标对象的计算图中的至少两个目标节点的调度时长和通信量,每个目标节点用于表示目标对象在计算过程中需要被执行的一个数据处理操作,且每个目标节点所表示的数据处理操作的执行结果数据需要进行传输;按照调度时长将至少两个目标节点中的通信量满足通信量条件的目标节点聚合为聚合节点,聚合节点用于指示对被聚合的目标节点所表示的数据处理操作的执行结果数据进行聚合;采用聚合节点更新计算图,并通过通信接口82将更新后的计算图发送至计算设备,更新后的计算图用于指示:计算设备按照聚合节点的指示,在目标对象的计算过程中对被聚合的目标节点所表示的数据处理操作的执行结果数据进行聚合,并传输聚合后的数据。

  在一个实施例中,通信量条件为被聚合的目标节点的通信量总和小于或者等于通信量阈值,处理器80,具体用于:

  按照调度时长从小到大的顺序逐个组合至少两个目标节点中的各个目标节点;

  若在逐个组合过程中确定出前m个目标节点的通信量总和小于或者等于通信量阈值,且前m+1个目标节点的通信量总和大于通信量阈值,则将前m个目标节点聚合为第一个聚合节点;

  在确定出第一聚合节点后,继续依照调度时长从小到大的顺序逐个组合剩余目标节点集中的各个目标节点,剩余目标节点集包括至少两个目标节点中除前m个目标节点以外的目标节点;

  若在逐个组合剩余目标节点集中的各个目标节点的过程中确定出剩余目标节点集中的前n个目标节点的通信量总和小于或者等于通信量阈值,且剩余目标节点集中的前n+1个目标节点的通信量总和大于所述通信量阈值,则将剩余目标节点集中的前n个目标节点聚合为第二个聚合节点;其中,m和n均为大于1的整数。

  在一个实施例中,处理器80,具体用于预热运行目标对象的计算图,计算图包括至少一个节点,每个节点用于表示目标对象在计算过程中需要被执行的一个数据处理操作;记录计算图中各个节点表示的数据处理操作的执行时长;依照各个节点表示的数据处理操作的执行时长,计算计算图中的至少两个目标节点的调度时长。

  在一个实施例中,处理器80,还具体用于:

  确定计算图中从起始节点开始,到达第一目标节点的各条路径,第一目标节点为至少两个目标节点中的任一个目标节点;

  对各条路径中除第一目标节点以外的节点对应的执行时长求和,将求和结果确定为第一目标节点的输入时长;

  从第一目标节点的各个输入时长中,确定第一目标节点的最大输入时长;将第一目标节点的执行时长和最大输入时长的和值,确定为第一目标节点的调度时长。

  在一个实施例中,处理器80,具体用于:

  在所述计算图中增加聚合节点;

  采用有向边连接聚合节点和聚合节点对应的被聚合的目标节点;

  在计算图中为所述聚合节点和未被聚合的目标节点增加各自的通信节点,每一个通信节点用于表示传输目标数据的通信操作,目标数据为聚合后的数据,或者为未被聚合的目标节点所表示的数据处理操作的执行结果数据。

  在一个实施例中,处理器80,还用于在目标对象的计算过程中,按照更新后的计算图中的聚合节点的指示,在目标对象的计算过程中对被聚合的目标节点所表示的数据处理操作的执行结果数据进行聚合,并通过通信接口82传输聚合后的数据。

  在一个实施例中,目标对象包括待进行分布式机器学习的神经网络模型,每个目标节点所表示的数据处理操作的执行结果数据包括:神经网络模型在分布式机器学习中产生的梯度。

  在本申请实施例中,上述处理器80的具体实现可参考前述各个附图所对应的实施例中相关内容的描述。

  本申请实施例中的处理设备可获取目标对象的计算图中的至少两个目标节点的调度时长和通信量,按照调度时长将至少两个目标节点中的通信量满足通信量条件的目标节点聚合为聚合节点,采用聚合节点更新计算图,并将更新后的计算图发送至计算设备,更新后的计算图用于指示:计算设备按照聚合节点的指示,在目标对象的计算过程中对被聚合的目标节点所表示的数据处理操作的执行结果数据进行聚合,并传输聚合后的数据。本申请实施例可通过各个目标节点的调度时长更新计算图,并基于更新后的计算图指示计算设备对目标节点的执行结果数据进行聚合传输,从而减少数据传输的次数,以节省网络资源并缩短传输总时长。

  本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所描述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。

  以上所揭露的仅为本申请的部分实施例而已,当然不能以此来限定本申请之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本申请权利要求所作的等同变化,仍属于发明所涵盖的范围。

《一种数据传输方法、装置、处理设备及介质.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)