一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于分布式图学习架构的数据存取方法及装置与流程

2021-10-29 22:45:00 来源:中国专利 TAG:存取 数据 数据处理 分布式 说明书


1.本说明书实施例通常涉及图数据处理领域,尤其涉及用于分布式图学习架构的数据存取方法及数据存取装置。


背景技术:

2.在图学习架构中,如果所使用的图节点是超大规模图节点,则需要将图学习架构部署为分布式图学习架构,并且通过图分区算法来将图节点分散到图学习架构中的各个分布式图学习设备上。在图节点被分散到各个分布式图学习设备时,所分散的图节点中会存在临界节点。临界节点的部分邻居节点存储在该临界节点所在的图学习设备中,并且该临界节点的其余邻居节点存储在其它图学习设备中。
3.在进行图学习时,临界节点所在的图学习设备需要存储临界节点的节点数据,并且临界节点的节点数据需要被映射到该临界节点的其余邻居节点所在的图学习设备,即,该临界节点的其余邻居节点所在的图学习设备需要存储临界节点的节点数据的映射信息。图学习设备中存储的图节点可以称为master节点,master节点的节点数据可以称为master数据,以及被映射到其它图学习设备中的图节点的节点数据可以称为图节点的mirror数据(镜像数据)。在这种情况下,被映射到其它图学习设备中的图节点也可以称为mirror节点(镜像节点)。
4.在上述图节点数据存取方式下,在master节点的master数据发生数据更新时,需要同步更新分布在其它图学习设备中的所有mirror数据,以确保master节点与其mirror节点之间的数据一致性。按照这种处理方式,需要在各个mirror节点所在的图学习设备的内存中存储master数据的完整备份,从而造成图学习设备的内存空间浪费。


技术实现要素:

5.鉴于上述,本说明书的实施例提供用于图分布学习架构的数据存取方法及数据存取装置。在该数据存取方案中,在具有mirror节点的图学习设备处设置公共缓冲区,用于缓存在进行图学习时需要使用的mirror节点的节点数据。在存取用于图学习的mirror数据时,对图学习设备处的图节点进行节点分组,所得到的多个图节点分组在进行mirror数据存取时具有优先级,并且各个图节点分组的优先级基于图节点依赖关系确定。根据图节点分组的优先级,从图学习设备的公共缓冲区中为各个图节点分组所依赖的镜像节点分配缓存空间。然后,针对完成缓存空间分配的图节点,向该图节点所依赖的镜像节点的对应图节点所在的图学习设备发起数据存取过程,由此拉取对应的图节点数据并缓存在所分配的缓存空间中。
6.利用上述数据存取方案,将图节点分组为具有基于图节点依赖关系确定出的存取优先级的各个图节点分组,并且基于存取优先级来从所设置的公共缓冲区中为各个图节点分组分配缓存空间。在为图节点完成缓存空间分配后,才向其它图学习设备发起数据存取过程,所存储的mirror节点数据缓存在所分配的缓存空间中以供图学习使用,从而无需在
各个mirror节点所在的图学习设备中存储master数据的完整备份,由此提升图学习设备的存储空间利用率。
7.根据本说明书实施例的一个方面,提供一种用于分布式图学习架构的数据存取方法,所述数据存取方法由所述分布式图学习架构的具有镜像节点的第一图学习设备执行,所述数据存取方法包括:对所述第一图学习设备处的图节点进行节点分组,得到多个具有优先级的图节点分组,所述图节点分组的优先级基于图节点依赖关系确定,所述图节点依赖关系用于反映图节点在图学习时相对于镜像节点的依赖性;基于所述图节点依赖关系,确定各个图节点分组所依赖的镜像节点;根据所述图节点分组的优先级,从所述第一图学习设备的公共缓冲区中为各个图节点分组所依赖的镜像节点分配缓存空间;针对完成缓存空间分配的图节点,向该图节点所依赖的镜像节点的对应图节点所在的第二图学习设备发起数据存取过程;以及将响应于所述数据存取过程而返回的图节点数据缓存在所分配的缓存空间中。
8.可选地,在上述方面的一个示例中,对所述第一图学习设备处的图节点进行节点分组,得到多个具有优先级的图节点分组可以包括:基于图节点依赖关系对所述第一图学习设备处的图节点进行排序;以及根据图节点排序结果对所述第一图学习设备处的图节点进行节点分组,得到多个具有优先级的图节点分组。
9.可选地,在上述方面的一个示例中,针对完成缓存空间分配的图节点,向该图节点所依赖的镜像节点的对应图节点所在的第二图学习设备发起数据存取过程可以包括:针对完成缓存空间分配的图节点分组,向该图节点分组所依赖的镜像节点的对应图节点所在的第二图学习设备发起数据存取过程。
10.可选地,在上述方面的一个示例中,所述图节点依赖关系在对所述分布式图学习架构的图节点数据进行图分区时生成。
11.可选地,在上述方面的一个示例中,各个图节点分组具有可配置的分组大小。
12.可选地,在上述方面的一个示例中,在根据图节点排序结果对所述第一图学习设备处的图节点进行节点分组时,如果具有相同依赖镜像节点的至少两个图节点可被分组到同一图节点分组中,则将所述至少两个图节点分组到同一图节点分组。
13.可选地,在上述方面的一个示例中,基于图节点依赖关系对所述第一图学习设备处的图节点进行排序包括:基于图节点依赖关系,确定所述第一图学习设备处的各个图节点所依赖的镜像节点的节点数目;以及根据各个图节点所依赖的镜像节点的节点数目,对所述第一图学习设备处的图节点进行排序。
14.可选地,在上述方面的一个示例中,所具有的镜像节点的节点数目相同的图节点具有相同的排序,在根据图节点排序结果对所述第一图学习设备处的图节点进行节点分组时,针对具有相同排序的图节点,根据所依赖的镜像节点中属于已分组图节点分组的镜像节点的数目确定图节点的分组优先级。
15.可选地,在上述方面的一个示例中,根据所述图节点分组的优先级,从所述第一图学习设备的公共缓冲区中为各个图节点分组所依赖的镜像节点顺序分配缓存空间可以包括:针对各个图节点分组,检查该图节点分组所依赖的镜像节点是否被分配缓存空间;以及对于未分配缓存空间的镜像节点,从所述第一图学习设备的公共缓冲区中为该镜像节点分配缓存空间。
16.可选地,在上述方面的一个示例中,针对完成缓存空间分配的图节点分组,向该图节点分组所依赖的镜像节点的对应图节点所在的第二图学习设备发起数据存取过程可以包括:针对完成缓存空间分配的图节点分组,检查该图节点分组所依赖的各个镜像节点的缓存空间是否缓存有图节点数据;以及对于未缓存有图节点数据的镜像节点,向该镜像节点的对应图节点所在的第二图学习设备发起数据存取过程。
17.可选地,在上述方面的一个示例中,所述数据存取方法还可以包括:响应于所述第一图学习设备完成图节点分组的各个图节点的图学习训练,释放为该图节点分组所依赖的所有镜像节点分配的缓存空间。
18.可选地,在上述方面的一个示例中,所述数据存取方法还可以包括:响应于所述第一图学习设备完成图节点分组的各个图节点的图学习训练,根据所述图节点依赖关系确定该图节点分组所依赖的镜像节点中是否存在未依赖镜像节点,所述未依赖镜像节点包括未被图学习过程未完成的图节点分组依赖的镜像节点;以及在该图节点分组所依赖的镜像节点中存在未依赖镜像节点时,释放为所述未依赖镜像节点分配的缓存空间。
19.可选地,在上述方面的一个示例中,所述分布式图学习架构的图学习过程是分层迭代学习过程,所述镜像节点的缓存空间分配步骤、所述数据存取过程的发起步骤以及所述图节点数据的缓存步骤被循环执行,直到所述分层迭代学习过程完成。
20.根据本说明书的实施例的另一方面,提供一种用于分布式图学习架构的数据存取装置,所述数据存取装置应用于所述分布式图学习架构的具有镜像节点的第一图学习设备,所述数据存取装置包括:节点分组单元,对所述第一图学习设备处的图节点进行节点分组,得到多个具有优先级的图节点分组,所述图节点分组的优先级基于图节点依赖关系确定,所述图节点依赖关系用于反映图节点在图学习时相对于镜像节点的依赖性;镜像节点确定单元,基于所述图节点依赖关系,确定各个图节点分组所依赖的镜像节点;缓存空间分配单元,根据所述图节点分组的优先级,从所述第一图学习设备的公共缓冲区中为各个图节点分组所依赖的镜像节点分配缓存空间;数据存取单元,针对完成缓存空间分配的图节点,向该图节点所依赖的镜像节点的对应图节点所在的第二图学习设备发起数据存取过程;以及数据缓存单元,将响应于所述数据存取过程而返回的图节点数据缓存在所分配的缓存空间中。
21.可选地,在上述方面的一个示例中,所述数据存取装置还可以包括:图节点排序单元,基于所述图节点依赖关系对所述第一图学习设备处的图节点进行排序,所述节点分组单元根据所述图节点排序单元的图节点排序结果对所述第一图学习设备处的图节点进行节点分组,得到多个具有优先级的图节点分组。
22.可选地,在上述方面的一个示例中,所述数据存取单元针对完成缓存空间分配的图节点分组,向该图节点分组所依赖的镜像节点的对应图节点所在的第二图学习设备发起数据存取过程。
23.可选地,在上述方面的一个示例中,所述数据存取装置还可以包括:依赖关系存储单元,存储在对所述分布式图学习架构的图节点数据进行图分区时生成的图节点依赖关系。
24.可选地,在上述方面的一个示例中,在根据图节点排序结果对所述第一图学习设备处的图节点进行节点分组时,如果具有相同依赖镜像节点的至少两个图节点可被分组到
同一图节点分组中,则所述节点分组单元将所述至少两个图节点分组到同一图节点分组。
25.可选地,在上述方面的一个示例中,所述图节点排序单元可以包括:镜像节点数目确定模块,基于图节点依赖关系,确定所述第一图学习设备处的各个图节点所依赖的镜像节点的节点数目;以及图节点排序模块,根据各个图节点所依赖的镜像节点的节点数目,对所述第一图学习设备处的图节点进行排序。
26.可选地,在上述方面的一个示例中,所具有的镜像节点的节点数目相同的图节点具有相同的排序,在根据图节点排序结果对所述第一图学习设备处的图节点进行节点分组时,针对具有相同排序的图节点,所述节点分组单元根据所依赖的镜像节点中属于已分组图节点分组的镜像节点的数目确定图节点的分组优先级,并根据图节点的分组优先级进行节点分组。
27.可选地,在上述方面的一个示例中,所述缓存空间分配单元可以包括:缓存空间分配检查模块,针对各个图节点分组,检查该图节点分组所依赖的镜像节点是否被分配缓存空间;以及缓存空间分配模块,对于未分配缓存空间的镜像节点,从所述第一图学习设备的公共缓冲区中为该镜像节点分配缓存空间。
28.可选地,在上述方面的一个示例中,所述数据存取单元可以包括:数据缓存检查模块,检查该图节点分组所依赖的各个镜像节点的缓存空间是否缓存有图节点数据;以及数据存取模块,对于未缓存有图节点数据的镜像节点,向该镜像节点的对应图节点所在的第二图学习设备发起数据存取过程。
29.可选地,在上述方面的一个示例中,所述数据存取装置还可以包括:缓存空间释放单元,响应于所述第一图学习设备完成图节点分组的各个图节点的图学习训练,释放为该图节点分组所依赖的所有镜像节点分配的缓存空间。
30.可选地,在上述方面的一个示例中,所述数据存取装置还可以包括:未依赖镜像节点检查单元,响应于所述第一图学习设备完成图节点分组的各个图节点的图学习训练,根据所述图节点依赖关系确定该图节点分组所依赖的镜像节点中是否存在未依赖镜像节点,所述未依赖镜像节点包括未被图学习过程未完成的图节点分组依赖的镜像节点;以及缓存空间释放单元,在该图节点分组所依赖的镜像节点中存在未依赖镜像节点时,释放为所述未依赖镜像节点分配的缓存空间。
31.根据本说明书的实施例的另一方面,提供一种用于分布式图学习架构的数据存取装置,包括:至少一个处理器,与所述至少一个处理器耦合的存储器,以及存储在所述存储器中的计算机程序,所述至少一个处理器执行所述计算机程序来实现如上所述的用于分布式图学习架构的数据存取方法。
32.根据本说明书的实施例的另一方面,提供一种计算机可读存储介质,其存储有可执行指令,所述指令当被执行时使得处理器执行如上所述的用于分布式图学习架构的数据存取方法。
33.根据本说明书的实施例的另一方面,提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行来实现如上所述的用于分布式图学习架构的数据存取方法。
附图说明
34.通过参照下面的附图,可以实现对于本说明书内容的本质和优点的进一步理解。
在附图中,类似组件或特征可以具有相同的附图标记。
35.图1示出了分布式图学习架构的示例示意图。
36.图2示出了图节点分区过程的示例流程图。
37.图3示出了图学习过程的示例示意图。
38.图4示出了根据本说明书的实施例的用于分布式图学习架构的数据存取方法的示例流程图。
39.图5a

图5b 示出了根据本说明书的实施例的图节点分布以及对应的图节点依赖表的示例示意图。
40.图6示出了根据本说明书的实施例的图节点排序过程的示例流程图。
41.图7示出了根据本说明书的实施例的缓存空间分配过程的示例流程图。
42.图8示出了根据本说明书的实施例的数据存取过程的示例流程图。
43.图9示出了根据本说明书的实施例的用于分布式图学习架构的数据存取装置的示例方框图。
44.图10示出了根据本说明书的实施例的图节点排序单元的示例方框图。
45.图11示出了根据本说明书的实施例的缓存空间分配单元的示例方框图。
46.图12示出了根据本说明书的实施例的数据存取单元的示例方框图。
47.图13示出了根据本说明书的实施例的基于计算机系统实现的用于分布式图学习架构的数据存取装置的示例示意图。
具体实施方式
48.现在将参考示例实施方式讨论本文描述的主题。应该理解,讨论这些实施方式只是为了使得本领域技术人员能够更好地理解从而实现本文描述的主题,并非是对权利要求书中所阐述的保护范围、适用性或者示例的限制。可以在不脱离本说明书内容的保护范围的情况下,对所讨论的元素的功能和排列进行改变。各个示例可以根据需要,省略、替代或者添加各种过程或组件。例如,所描述的方法可以按照与所描述的顺序不同的顺序来执行,以及各个步骤可以被添加、省略或者组合。另外,相对一些示例所描述的特征在其它例子中也可以进行组合。
49.如本文中使用的,术语“包括”及其变型表示开放的术语,含义是“包括但不限于”。术语“基于”表示“至少部分地基于”。术语“一个实施例”和“一实施例”表示“至少一个实施例”。术语“另一个实施例”表示“至少一个其他实施例”。术语“第一”、“第二”等可以指代不同的或相同的对象。下面可以包括其他的定义,无论是明确的还是隐含的。除非上下文中明确地指明,否则一个术语的定义在整个说明书中是一致的。
50.图学习架构是基于图节点数据进行图学习的架构。在本说明书中,图学习例如可以包括基于图节点数据的图学习模型训练等。图节点数据包括图节点和边数据。图节点包括节点属性数据,以及边数据包括边属性数据。节点属性数据和边属性数据可以与业务相关。比如,对于社交网络场景,节点属性数据可以包括年龄、学历、住址、职业等。边属性数据可以包括节点与节点之间的关系,即,人与人之间的关系,比如,同学/同事关系等。
51.在图学习架构中,如果所使用的图节点是超大规模图节点,则需要将图学习架构部署为分布式图学习架构,并且通过图分区算法来将图节点数据分散到图学习架构中的各
个分布式图学习设备上。在图节点被分散到各个分布式图学习设备后,对于临界节点,需要在其所在图学习设备中存储该临界节点的master节点,并且在该临界节点的其余邻居节点所在的其它图学习设备中创建该临界节点的mirror节点。
52.图1示出了分布式图学习架构100的示例示意图。在图1的示例中,示出了2个图学习设备110

1和110

2。在其它实施例中,分布式图学习架构100可以包括多于2个图学习设备。在本说明书中,图学习设备的示例例如可以包括但不限于各种图形处理设备,比如,gpu设备、cpu设备等。
53.如图1所示,在对分布式图学习架构100的图节点进行图分区后,图学习设备110

1具有图节点a、b、c和d,以及图学习设备110

2具有图节点e和f。此外,图学习设备110

2还具有图节点d的镜像节点(mirror节点)d’。在本说明书中,分布式图学习架构100所具有的真实图节点a、b、c、d、e和f可以称为master节点,以及所创建的镜像节点d’可以称为mirror节点。在图1的示例中,图节点a和d与图节点b之间具有邻居节点关系,以及图节点b、c、e和f与图节点d之间具有邻居节点关系。
54.图2示出了图节点分区过程200的示例流程图。
55.如图2所示,在210,确定分布式图学习架构的各个图节点的哈希(hash)值。例如,可以对图节点的部分或全部图节点数据进行hash计算来确定出hash值。图节点的图节点数据例如可以包括图节点的节点id、图节点的节点属性数据和/或边属性数据。例如,可以使用图节点的节点id进行hash计算来确定出hash值。
56.在220,基于所确定出的各个图节点的hash值进行图节点分区。例如,如图1所示,假设图节点a、b、c和d的hash值是1,则将图节点a、b、c和d分区到图学习设备110

1,图节点e和f的hash值是2,则将图节点e和f分区到图学习设备110

2。
57.在230,在完成图节点分区后,基于各条边的目的节点进行边数据分区。例如,边ab的目的节点是图节点b,并且图节点b被分区到图学习设备110

1,则边ab被分区到图学习设备110

1。而且,由于边ab的起始节点a也在图学习设备110

1,所以边ab不存在临界问题。边de的目的节点是图节点e,并且图节点e在图学习设备2上,所以边de被分区到图学习设备110

2。而且,由于边de的起始节点d被分区到图学习设备110

1,所以边de存在临界问题。
58.在230,在如上完成边数据分区后,针对具有临界问题的边,需要在该具有临界问题的边的目的节点所在的图学习设备上为其起始节点创建mirror节点。例如,针对具有临界问题的边de,在图学习设备110

2上为图节点d创建mirror节点d’。
59.图学习过程通常是gatter

apply

scatter 分层过程,分层层数表示图学习模型的深度。下面以2层图学习模型为例来说明图1中示出的分布式图学习架构的图学习的训练过程。这里,图学习模型的层次也可以称为图学习模型的模型深度,即,节点可以影响到的邻居节点的跳数。图3示出了图学习过程的示例示意图。在图3中,仅仅示出了第一层的图学习过程。
60.假设图节点a、b、c、d、e和f的初始值值分别是a(0)、b(0)、c(0)、d(0)、e(0)和f(0)。在第一层,首先,在图学习设备110

2,将图节点e和f的值e(0)和f(0)汇聚到mirror节点d’。接着,将mirror节点d’的汇聚值汇聚到其对应的图节点d。在本说明书中,汇聚操作可以是concat(拼接),也可以是add,pooling等其他神经网络操作。在图学习设备110

1,将图节点b和c的值b(0)和c(0)汇聚到图节点d。然后,将图节点d所得到的汇聚值(即,b(0)和c(0)的
汇聚值以及e(0)和f(0)的汇聚值)与图节点d本身具有的d(0)进行汇聚得到d(1),所得到的d(1)表示图节点d在第二层的数据。按照同样的方式对其余图节点b进行计算,得到a(1)、b(1)、c(1)、e(1)和f(1)。
61.在第二层,按照上述方式,图节点d汇聚邻居节点b、c、e和f的值b(1)、c(1)、e(1)和f(1),再将汇聚值与图节点d本身具有的d(0)进行汇聚,得到图节点d在第三层的数据d(2)。在进行第二层训练时,mirror节点d’是图节点e和f的邻居节点,由此在进行图节点e和f的汇聚计算时,需要将d(1)从图节点d发送给mirror节点d’。
62.在常规图节点数据存取方式下,在master节点的master数据发生数据更新时,如果该master节点具有对应的mirror节点,则需要同步更新分布在其它图学习设备中的对应mirror节点的mirror数据,以确保master节点与其mirror节点之间的数据一致性。按照这种处理方式,需要在各个mirror节点所在图学习设备中存储master数据的完整备份,从而造成图学习设备的存储空间浪费。
63.鉴于上述,本说明书的实施例提供一种数据存取方案。在该数据存取方案中,在具有mirror节点的图学习设备处设置公共缓冲区,用于缓存图学习需要使用的mirror节点的mirror数据。在存取用于图学习的mirror数据时,对该图学习设备处的图节点进行节点分组,所得到的多个图节点分组在进行mirror数据存取时具有基于图节点依赖关系确定出的优先级。根据图节点分组的优先级,从图学习设备的公共缓冲区中为各个图节点分组所依赖的镜像节点分配缓存空间。然后,针对完成缓存空间分配的图节点,向该图节点所依赖的镜像节点的对应图节点所在的图学习设备发起数据存取过程,由此拉取对应的图节点数据并缓存在所分配的缓存空间中。
64.利用上述数据存取方案,通过将图节点分组为具有基于图节点依赖关系确定出的存取优先级的各个图节点分组,并且基于存取优先级来从所设置的公共缓冲区中为各个图节点分组分配缓存空间。此外,在图节点完成缓存空间分配后,向其它图学习设备发起数据存取过程,所存储的mirror节点数据缓存在所分配的缓存空间中以供图学习使用,从而无需在各个mirror节点所在图学习设备的存储空间(内存)中持久性地存储master数据的完整备份,由此提升图学习设备的存储空间利用率。
65.图4示出了根据本说明书的实施例的用于分布式图学习架构的数据存取方法400的示例流程图。图4中示出的数据存取方法400由分布式图学习架构中的具有mirror节点的第一图学习设备执行。相对于第一图学习设备,分布式图学习架构中的其余图学习设备称为第二图学习设备。
66.如图4所示,在410,对第一图学习设备处的图节点进行节点分组,得到多个具有优先级的图节点分组。各个图节点分组的优先级基于图节点依赖关系确定。在本说明书中,优先级可以用于指示图节点分组的缓存空间分配优先级,或者用于指示图节点分组的数据存取优先级。图节点分组的优先级越高,越先为该图节点分组中的各个mirror节点分配缓存空间或存取图节点数据。在本说明书中,第一优先级的优先级最高,第二优先级次之,如此类推。优先级的数字越大,优先级越低。
67.在一个示例中,各个图节点分组具有规定大小的分组大小。这里,图节点分组的分组大小可以利用图节点分组所具有的节点个数来表征。例如,各个图节点分组的分组大小可以为64个节点。各个图节点分组的分组大小可以相同,也可以不同。在另一示例中,各个
图节点分组的分组大小可以是可配置的。
68.在本说明书中,图节点依赖关系用于反映图节点在图学习时相对于mirror节点的依赖性。例如,图节点e在进行图学习时需要使用mirror节点b’的图节点数据,则图节点e对mirror节点b’具有依赖关系。在一个示例中,图节点依赖关系可以在对分布式图学习架构的图节点数据进行图分区时预先生成。在另一示例中,图节点依赖关系也可以在进行数据存取时生成。
69.图5a示出了根据本说明书的实施例的图节点分布的示例示意图。对于图5a中示出的图节点分布,图节点e对mirror节点b’具有依赖关系,图节点f对mirror节点d’和h’具有依赖关系,图节点g对mirror节点b’和c’具有依赖关系,以及图节点i对mirror节点d’和h’具有依赖关系。
70.图5b 示出了图5a中示出的图节点分布所对应的图节点依赖关系的示例示意图。在图5b的示例中,图节点依赖关系被例示为图节点依赖表,该图节点依赖表的第一列示出了图节点a

i,以及第一行示出了mirror节点b’、c’、d’和h
ꢀ’
。图节点依赖关系中的值“0”表示不存在依赖关系,以及值“1”表示存在依赖关系。在其它实施例中,图节点依赖关系也可以采用其它合适的表征形式来表征,比如,图节点依赖关系图等。
71.在一些实施例中,在进行图节点分组时,可以对第一图学习设备处的图节点进行随机分组。然后,基于图节点依赖关系统计各个图节点分组中包含的图节点所依赖的mirror节点的节点数目,并根据所统计的各个图节点分组的mirror节点数目确定各个图节点分组的优先级。
72.在一些实施例中,在进行图节点分组时,可以基于图节点依赖关系对第一图学习设备处的图节点进行图节点排序。然后,根据图节点排序结果对第一图学习设备处的图节点进行节点分组,得到多个具有优先级的图节点分组。在这种情况下,图节点分组的优先级可以根据该图节点分组所具有的图节点的节点排序确定。优先级高的图节点分组中的任何一个图节点的节点排序不低于优先级低的图节点分组中的所有图节点的节点排序。
73.图6示出了根据本说明书的实施例的图节点排序过程600的示例流程图。
74.如图6所示,在610,基于图节点依赖关系,确定第一图学习设备处的各个图节点所依赖的mirror节点的节点数目。例如,如图5a所示,第一图学习设备为图学习设备110

2,图节点e所依赖的mirror节点的节点数目为1,以及图节点f所依赖的mirror节点的节点数目为2。
75.在620,根据各个图节点所依赖的mirror节点的节点数目,对第一图学习设备处的图节点进行排序。例如,在一个示例中,可以按照所依赖的mirror节点的节点数目从小到大的顺序来进行图节点排序,即,图节点所依赖的mirror节点的节点个数越少,图节点的图节点排序越高。例如,对于图节点e和f,图节点e所依赖的mirror节点为b’,以及图节点f所依赖的mirror节点为d’和h’,从而图节点e>图节点f。要说明的是,对于所具有的镜像节点的节点数目相同的图节点,在进行图节点排序时具有相同的排序。例如,图节点g、f和i所依赖的mirror节点的节点数目相同(都为2),图节点g、f和i的排序相同,即,图节点g=图节点f=图节点i。
76.在一些实施例中,在根据图节点排序结果对第一图学习设备处的图节点进行节点分组时,尽可能将依赖相同mirror节点的图节点分组到同一图节点分组。换言之,如果具有
相同依赖镜像节点的至少两个图节点可被分组到同一图节点分组中,则将该至少两个图节点分组到同一图节点分组。例如,在图5a中示出的示例中,图节点f和i都依赖mirror节点d’和h’,则将图节点f和i分组到同一图节点分组,除非该图节点分组不足以同时容纳图节点f和i,并且该图节点分组中已经容纳的图节点的分组优先级都优于图节点f和i。
77.在一些实施例中,在根据图节点排序结果对第一图学习设备处的图节点进行节点分组时,针对具有相同排序的图节点,可以根据所依赖的镜像节点中属于已分组图节点分组的镜像节点的数目确定图节点的分组优先级。然后,基于确定出的图节点的分组优先级来对该具有相同排序的图节点进行节点分组。
78.例如,在图5a中示出的示例中,图节点g、f和i都依赖2个mirror节点,则图节点g、f和i具有相同排序。在对图节点g、f和i进行节点分组时,根据图节点g、f和i所依赖的mirror节点中属于已分组图节点分组的mirror节点的数目确定图节点的分组优先级。具体地,图节点g所依赖的2个mirror节点b’和c’中存在1个mirror节点b’属于具有更高优先级的图节点分组中的图节点(图节点e)的对应mirror节点,以及图节点f和i所依赖的2个mirror节点d’和h’中不存在属于具有更高优先级的图节点分组中的图节点的对应mirror节点,则图节点g的分组优先级优于图节点f和i的分组优先级。在进行节点分组时,优先分组图节点g。
79.回到图4,在如上对第一图学习设备处的图节点进行节点分组后,在420,基于图节点依赖关系,确定各个图节点分组所依赖的mirror节点。具体地,对于每个图节点分组,基于图节点依赖关系,确定该图节点分组中的各个图节点所依赖的mirror节点。然后,将所得到的mirror节点集合作为该图节点分组所依赖的mirror节点。
80.在430,根据图节点分组的优先级,从第一图学习设备的公共缓冲区中为各个图节点分组所依赖的mirror节点分配缓存空间。在一些实施例中,可以基于图节点分组的优先级,逐图节点分组顺序进行缓存空间的分配。在另一些实施例中,也可以基于图节点分组的优先级,为图节点分组并行分配对应的缓存空间。比如,可以按照图节点分组的优先级,每次选择若干个图节点分组,然后为所选择出的图节点分组中的图节点分配缓存空间。
81.在本说明书中,第一图学习设备的公共缓冲区的大小是可配置的。在一个示例中,公共缓冲区的大小需要能够存储分布式图学习架构中的master节点的最大邻居数个邻居节点的节点数据。例如,对于图1中示出的分布式图节点架构,图节点d的邻居节点数最多,其邻居节点数为4,则公共缓冲区的大小需要至少能够存储4个图节点的节点数据。假设每个图节点的节点数据的数据量固定,则公共缓冲的大小可以利用图节点的节点个数来表征。
82.图7示出了根据本说明书的实施例的缓存空间分配过程700的示例流程图。
83.如图7所示,在710,针对第一图学习设备处的图节点,从第一图学习设备的公共缓冲区中为第一优先级的图节点分组的各个mirror节点分配缓存空间。接着,从第二优先级的图节点分组开始,循环执行720到780的操作,每次循环过程对应一个图节点分组的缓存空间分配操作。
84.具体地,在720,判断当前图节点分组所依赖的mirror节点中是否存在已分配缓存空间的mirror节点。如果存在已分配缓存空间的mirror节点,则在730,从所依赖的mirror节点中去除已分配缓存空间的mirror节点,并且确定剩余mirror节点所需缓存空间,作为当前图节点分组所需缓存空间。然后,进行到750。如果不存在已分配缓存空间的mirror节
点,则在740,确定该图节点分组所依赖的所有mirror节点所需缓存空间,作为当前图节点分组所需缓存空间。然后,进行到750。
85.在750,判断第一图学习设备的公共缓冲区的剩余缓存空间是否不小于当前图节点分组所需缓存空间。如果公共缓冲区的剩余缓存空间小于当前图节点分组所需缓存空间,则缓存空间分配过程结束。
86.如果公共缓冲区的剩余缓存空间不小于当前图节点分组所需缓存空间,在760,为当前图节点分组所依赖的mirror节点分配缓存空间。具体地,在存在已分配缓存空间的mirror节点时,为当前图节点分组的剩余mirror节点分配缓存空间。在不存在已分配缓存空间的mirror节点时,为当前图节点分组所依赖的所有mirror节点分配缓存空间。
87.在770,判断是否存在未进行缓存空间分配的图节点分组。如果不存在未进行缓存空间分配的图节点分组,则缓存空间分配过程结束。
88.如果存在未进行缓存空间分配的图节点分组,则在780,从未进行缓存空间分配的图节点分组中选出优先级最高的图节点分组,作为下一循环过程的当前图节点分组。然后,流程返回到720,执行下一循环过程。
89.要说明的是,图7中示出的仅仅是缓存空间的一个实现示例。在本说明书的其它实施例中,可以对图7中示出的示例进行各种修改,例如,可以去除图7中的部分步骤或者向图7的示例中增加步骤。
90.回到图4,在40,针对完成缓存空间分配的图节点,向该图节点所依赖的mirror节点的对应图节点所在的第二图学习设备发起数据存取过程。在一些实施例中,可以在每个图节点或若干图节点完成缓存空间分配后,向该图节点所依赖的mirror节点的对应图节点所在的第二图学习设备发起数据存取请求。第二图学习设备响应于数据存取请求来获取对应的图节点数据,并且将所获取的图节点数据返回给第一图学习设备。在这种数据存取过程中,以图节点为单位进行数据存取。在一些实施例中,可以针对完成缓存空间分配的图节点分组,向该图节点分组所依赖的mirror节点的对应图节点所在的第二图学习设备发起数据存取过程。在这种数据存取过程中,以图节点分组为单位进行数据存取。
91.图8示出了根据本说明书的实施例的数据存取过程800的示例流程图。
92.如图8所示,在810,针对完成缓存空间分配的图节点分组,检查该图节点分组所依赖的各个mirror节点的缓存空间,并且在820,判断各个mirror节点的缓存空间是否缓存有图节点数据。
93.如果存在其缓存空间未缓存有图节点数据的mirror节点,则在830,向该mirror节点的对应图节点所在的第二图学习设备发起数据存取过程。如果不存在其缓存空间未缓存有图节点数据的mirror节点,则在840,不发起数据存取过程。
94.要说明的是,图8示出的仅仅是数据存取过程的一个例示实施例。在其它实施例中,可以对图8中示出的实施例进行修改,例如,可以不包括缓存空间检查步骤及其相应处理步骤,而是直接发起数据存取过程。
95.回到图4,在从第二图学习设备获取响应于所述数据存取过程而获取的图节点数据后,在450,将所获取的mirror节点的图节点数据缓存在为该mirror节点分配的缓存空间中。
96.一旦针对图节点分组所依赖的所有mirror节点的图节点数据获取过程完成,并且
所有mirror节点的图节点数据被缓存到对应的缓存空间中,该图节点分组中的各个图节点可以使用各自的图节点数据以及所依赖的mirror节点的图节点数据来执行图学习过程。
97.在460,在第一图学习设备处,监测该图节点分组的各个图节点的图学习过程是否都执行完毕。如果未监测到该图节点分组的各个图节点的图学习过程都执行完毕,则继续监测。
98.如果监测到该图节点分组的各个图节点的图学习过程都执行完毕,则在470,根据图节点依赖关系,确定该图节点分组所依赖的mirror节点中是否存在未依赖mirror节点,所述未依赖mirror节点包括未被图学习过程未完成的图节点分组依赖的mirror节点。如果确定不存在未依赖mirror节点,则进行到490。
99.如果确定存在未依赖mirror节点,则在480,释放分配给未依赖mirror节点的缓存空间。然后,进行到490。
100.在490,判断是否存在未进行图学习的分层。如果存在未进行图学习的分层,则返回到430,执行下一循环过程。如果不存在未进行图学习的分层,则流程结束。
101.此外,可选地,在一些实施例中,响应于第一图学习设备完成图节点分组的各个图节点的图学习训练,可以直接释放为该图节点分组所依赖的所有mirror节点分配的缓存空间,而无需上述470的未依赖mirror节点确定过程。
102.如上参照图1到图8描述了根据本说明书的实施例的用于分布式图学习架构的数据存取方法。
103.在上述数据存取方法中,将图节点分组为具有基于图节点依赖关系确定出的存取优先级的各个图节点分组,并且基于存取优先级来从所设置的公共缓冲区中为各个图节点分组分配缓存空间。在图节点完成缓存空间分配后,才向其它图学习设备发起数据存取过程,所存储的mirror节点数据缓存在所分配的缓存空间中以供图学习使用。利用上述数据存取方法,无需在各个mirror节点所在的图学习设备的存储空间中持久性地存储master数据的完整备份,由此提升图学习设备的存储空间利用率。
104.此外,利用上述数据存取方法,通过将依赖相同mirror节点的至少两个图节点分组到同一图节点分组,从而使得针对该图节点分组的数据存取操作可以提供该至少两个图节点的图学习过程所需的mirror数据,由此提升分布式图学习架构的图学习效率。
105.此外,利用上述数据存取方法,通过针对具有相同排序的图节点,根据所依赖的镜像节点中属于已分组图节点分组的mirror节点的数目确定图节点的分组优先级,并且基于确定出的图节点的分组优先级来对该具有相同排序的图节点进行节点分组,从而使得已经存取的mirror节点的图节点数据可以较早地被所依赖的图节点使用来进行图学习,并且在完成图学习后释放该mirror数据的缓存空间,从而可以提升第一图学习设备的存储空间利用率。
106.利用上述数据存取方法,通过在为图节点分组所依赖的mirror节点分配缓存空间时,检查该图节点分组所依赖的mirror节点中是否存在已分配缓存空间的mirror节点,并且仅仅为未分配缓存空间的mirror节点分配缓存空间,由此提升第一图学习设备的公共缓冲区的缓存空间利用率。
107.利用上述数据存取方法,通过在向第二图学习设备发起数据存取过程时,检查图节点分组所依赖的mirror节点的缓存空间是否缓存有图节点数据,并且在缓存空间缓存有
节点数据时,针对该mirror节点不发起数据存取过程,由此提升mirror数据的数据存取效率。
108.利用上述数据存取方法,通过在第一图学习设备完成图节点分组的各个图节点的图学习训练后,释放为该图节点分组所依赖的所有mirror节点分配的缓存空间,可以使得所释放的缓存空间可以分配给其余图节点分组的mirror节点,从而提升公共缓冲区的缓存空间利用率。
109.利用上述数据存取方法,通过在第一图学习设备完成图节点分组的各个图节点的图学习训练后,仅仅释放为该图节点分组所依赖的所有mirror节点中的未依赖mirror节点分配的缓存空间,可以使得其它未完成图学习的图节点分组在进行图学习时,可以从缓存空间中获取所依赖的mirror节点的mirror数据,无需再次向第二图学习设备发起数据存取过程,同时释放未依赖mirror节点的缓存空间,以供分配给其余图节点分组的mirror节点,从而提升公共缓冲区的缓存空间利用率。
110.图9示出了根据本说明书的实施例的用于分布式图学习架构的数据存取装置900的示例方框图。数据存取装置900应用于分布式图学习架构的具有mirror节点的第一图学习设备。如图9所示,数据存取装置900包括节点分组单元910、镜像节点确定单元920、缓存空间分配单元930、数据存取单元940和数据缓存单元950。
111.节点分组单元910被配置为对第一图学习设备处的图节点进行节点分组,得到多个具有优先级的图节点分组,各个图节点分组的优先级基于图节点依赖关系确定出。节点分组单元910的操作可以参照上面参照图4的410描述的操作。镜像节点确定单元920被配置为基于图节点依赖关系,确定各个图节点分组所依赖的mirror节点。镜像节点确定单元920的操作可以参考上面参照图4的420描述的操作。
112.缓存空间分配单元930被配置为根据图节点分组的优先级,从第一图学习设备的公共缓冲区中为各个图节点分组所依赖的mirror节点顺序分配缓存空间。缓存空间分配单元930的操作可以参考上面参照图4的430描述的操作。
113.数据存取单元940被配置为针对完成缓存空间分配的图节点,向该图节点所依赖的mirror节点的对应图节点所在的第二图学习设备发起数据存取过程。数据存取单元940的操作可以参考上面参照图4的440描述的操作。
114.数据缓存单元950被配置为将响应于数据存取过程而返回的图节点数据缓存在所分配的缓存空间中。数据缓存单元950的操作可以参考上面参照图4的450描述的操作。
115.在一个示例中,图节点依赖关系可以在对分布式图学习架构的图节点数据进行图分区时预先生成。相应地,数据存取装置900还可以包括依赖关系存储单元(未示出)。所述依赖关系存储单元被配置为存储在对分布式图学习架构的图节点数据进行图分区时生成的图节点依赖关系。
116.在一个示例中,在对第一图学习设备处的图节点进行节点分组时,如果具有相同依赖镜像节点的至少两个图节点可被分组到同一图节点分组中,则节点分组单元910将该至少两个图节点分组到同一图节点分组。
117.可选地,在一个示例中,数据存取装置900还可以包括图节点排序单元(未示出)。图节点排序单元被配置为基于图节点依赖关系对第一图学习设备处的图节点进行排序。然后,节点分组单元910基于图节点排序结果对第一图学习设备处的图节点进行节点分组。
118.图10示出了根据本说明书的实施例的图节点排序单元1000的示例方框图。如图10所示,图节点排序单元1000包括镜像节点数目确定模块1010和图节点排序模块1020。
119.镜像节点数目确定模块1010被配置为基于图节点依赖关系,确定第一图学习设备处的各个图节点所依赖的mirror节点的节点数目。镜像节点数目确定模块1010的操作可以参考上面参照图6的610描述的操作。
120.图节点排序模块1020被配置为根据各个图节点所依赖的mirror节点的节点数目,对第一图学习设备处的图节点进行排序。图节点排序模块1020的操作可以参考上面参照图6的620描述的操作。
121.在一个示例中,在进行图节点排序时,所具有的mirror节点的节点数目相同的图节点具有相同的排序。相应地,在根据图节点排序结果对第一图学习设备处的图节点进行节点分组时,针对具有相同排序的图节点,节点分组单元910根据所依赖的mirror节点中属于已分组图节点分组的mirror节点的数目确定图节点的分组优先级,并根据图节点的分组优先级进行节点分组。
122.图11示出了根据本说明书的实施例的缓存空间分配单元1100的示例方框图。如图11所示,缓存空间分配单元1100可以包括缓存空间分配检查模块1110和缓存空间分配模块1120。
123.缓存空间分配检查模块1110被配置为针对各个图节点分组,检查该图节点分组所依赖的mirror节点是否被分配缓存空间。
124.缓存空间分配模块1120被配置为对于未分配缓存空间的mirror节点,从第一图学习设备的公共缓冲区中为该mirror节点分配缓存空间。
125.此外,可选地,缓存空间分配单元1100还可以包括缓存所需空间确定模块(未示出)和缓存判断模块(未示出)。所述缓存所需空间确定模块被配置为根据缓存空间分配检查模块1110的检查结果,确定图节点分组所需缓存空间。具体地,在缓存空间分配检查模块1110的检查结果指示存在已分配缓存空间的mirror节点时,所述缓存所需空间确定模块从图节点分组所依赖的mirror节点中去除已分配缓存空间的mirror节点,并且将剩余mirror节点所需缓存空间确定为该图节点分组所需缓存空间。在缓存空间分配检查模块1110的检查结果指示不存在已分配缓存空间的mirror节点时,所述缓存所需空间确定模块将图节点分组所依赖的所有mirror节点所需缓存空间确定为该图节点分组所需缓存空间。
126.所述缓存判断模块被配置为根据公共缓冲区的剩余缓存空间以及图节点分组所需缓存空间,判断是否可以为图节点分组分配缓存空间。在公共缓冲区的剩余缓存空间不小于图节点分组所需缓存空间时,所述缓存判断模块确定可以为图节点分组分配缓存空间。在公共缓冲区的剩余缓存空间小于图节点分组所需缓存空间时,所述缓存判断模块确定不可为图节点分组分配缓存空间。缓存空间分配模块1120被配置为在所述缓存判断模块确定可以为图节点分组分配缓存空间时,从第一图学习设备的公共缓冲区中为图节点分组所依赖的未分配缓存空间的mirror节点分配缓存空间。
127.图12示出了根据本说明书的实施例的数据存取单元1200的示例方框图。如图12所示,数据存取单元1200可以包括数据缓存检查模块1210和数据存取模块1220。
128.数据缓存检查模块1210被配置为针对完成缓存空间分配的图节点分组,检查该图节点分组所依赖的各个mirror节点的缓存空间是否缓存有图节点数据。数据缓存检查模块
1210的操作可以参考上面参照图8的810描述的操作。
129.数据存取模块1220被配置为对于未缓存有图节点数据的mirror节点,向该mirror节点的对应图节点所在的第二图学习设备发起数据存取过程。数据存取模块1220的操作可以参考上面参照图8的830描述的操作。
130.此外,可选地,在一个示例中,数据存取装置900还可以包括缓存空间释放单元(未示出)。响应于第一图学习设备完成图节点分组的各个图节点的图学习训练,所述缓存空间释放单元释放为该图节点分组所依赖的所有mirror节点分配的缓存空间。
131.此外,可选地,在一个示例中,数据存取装置900还可以包括未依赖镜像节点检查单元(未示出)和缓存空间释放单元(未示出)。所述未依赖镜像节点检查单元被配置为响应于第一图学习设备完成图节点分组的各个图节点的图学习训练,根据图节点依赖关系确定该图节点分组所依赖的mirror节点中是否存在未依赖mirror节点,所述未依赖mirror节点包括未被图学习过程未完成的图节点分组依赖的mirror节点。所述缓存空间释放单元被配置为在该图节点分组所依赖的mirror节点中存在未依赖mirror节点时,释放为该未依赖mirror节点分配的缓存空间。
132.如上参照图1到图12,对根据本说明书实施例的用于分布式图学习架构的数据存取方法和数据存取装置进行了描述。上面的数据存取装置可以采用硬件实现,也可以采用软件或者硬件和软件的组合来实现。
133.图13示出了根据本说明书的实施例的基于计算机系统实现的用于分布式图学习架构的数据存取装置1300的示意图。如图13所示,数据存取装置1300可以包括至少一个处理器1310、存储器(例如,非易失性存储器)1320、内存1330和通信接口1340,并且至少一个处理器1310、存储器1320、内存1330和通信接口1340经由总线1360连接在一起。至少一个处理器1310执行在存储器中存储或编码的至少一个计算机可读指令(即,上述以软件形式实现的元素)。
134.在一个实施例中,在存储器中存储计算机可执行指令,其当执行时使得至少一个处理器1310:对第一图学习设备处的图节点进行节点分组,得到多个具有优先级的图节点分组,各个图节点分组的优先级基于图节点依赖关系确定,图节点依赖关系用于反映图节点在图学习时相对于镜像节点的依赖性;基于图节点依赖关系,确定各个图节点分组所依赖的镜像节点;根据图节点分组的优先级,从第一图学习设备的公共缓冲区中为各个图节点分组所依赖的镜像节点分配缓存空间;针对完成缓存空间分配的图节点,向该图节点所依赖的镜像节点的对应图节点所在的第二图学习设备发起数据存取过程;以及将响应于数据存取过程而返回的图节点数据缓存在所分配的缓存空间中。
135.应该理解,在存储器中存储的计算机可执行指令当执行时使得至少一个处理器1310进行本说明书的各个实施例中以上结合图1

图12描述的各种操作和功能。
136.根据一个实施例,提供了一种比如机器可读介质(例如,非暂时性机器可读介质)的程序产品。机器可读介质可以具有指令(即,上述以软件形式实现的元素),该指令当被机器执行时,使得机器执行本说明书的各个实施例中以上结合图1

图12描述的各种操作和功能。具体地,可以提供配有可读存储介质的系统或者装置,在该可读存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机或处理器读出并执行存储在该可读存储介质中的指令。
137.在这种情况下,从可读介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此机器可读代码和存储机器可读代码的可读存储介质构成了本发明的一部分。
138.可读存储介质的实施例包括软盘、硬盘、磁光盘、光盘(如cd

rom、cd

r、cd

rw、dvd

rom、dvd

ram、dvd

rw、dvd

rw)、磁带、非易失性存储卡和rom。可选择地,可以由通信网络从服务器计算机上或云上下载程序代码。
139.根据一个实施例,提供一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序当被处理器执行时,使得处理器执行本说明书的各个实施例中以上结合图1

图12描述的各种操作和功能。
140.本领域技术人员应当理解,上面公开的各个实施例可以在不偏离发明实质的情况下做出各种变形和修改。因此,本公开的保护范围应当由所附的权利要求书来限定。
141.需要说明的是,上述各流程和各系统结构图中不是所有的步骤和单元都是必须的,可以根据实际的需要忽略某些步骤或单元。各步骤的执行顺序不是固定的,可以根据需要进行确定。上述各实施例中描述的装置结构可以是物理结构,也可以是逻辑结构,即,有些单元可能由同一物理实体实现,或者,有些单元可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。
142.以上各实施例中,硬件单元或模块可以通过机械方式或电气方式实现。例如,一个硬件单元、模块或处理器可以包括永久性专用的电路或逻辑(如专门的处理器,fpga或asic)来完成相应操作。硬件单元或处理器还可以包括可编程逻辑或电路(如通用处理器或其它可编程处理器),可以由软件进行临时的设置以完成相应操作。具体的实现方式(机械方式、或专用的永久性电路、或者临时设置的电路)可以基于成本和时间上的考虑来确定。
143.上面结合附图阐述的具体实施方式描述了示例性实施例,但并不表示可以实现的或者落入权利要求书的保护范围的所有实施例。在整个本说明书中使用的术语“示例性”意味着“用作示例、实例或例示”,并不意味着比其它实施例“优选”或“具有优势”。出于提供对所描述技术的理解的目的,具体实施方式包括具体细节。然而,可以在没有这些具体细节的情况下实施这些技术。在一些实例中,为了避免对所描述的实施例的概念造成难以理解,公知的结构和装置以框图形式示出。
144.本公开内容的上述描述被提供来使得本领域任何普通技术人员能够实现或者使用本公开内容。对于本领域普通技术人员来说,对本公开内容进行的各种修改是显而易见的,并且,也可以在不脱离本公开内容的保护范围的情况下,将本文所定义的一般性原理应用于其它变型。因此,本公开内容并不限于本文所描述的示例和设计,而是与符合本文公开的原理和新颖性特征的最广范围相一致。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜