图数据存储、访问、处理方法、训练方法、设备及介质转让专利

申请号 : CN202310188954.9

文献号 : CN116309002B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王贤明吴志华吴鑫烜冯丹蕾姚雪峰于佃海

申请人 : 北京百度网讯科技有限公司

摘要 :

本公开提供了一种图数据存储、访问、处理方法、训练方法、设备及介质,涉及人工智能技术领域,尤其涉及图神经网络技术、计算机视觉和深度学习技术领域。具体实现方案为:响应于接收到图数据存储请求,对待存储图数据进行划分,得到至少两个待存储图切片数据;根据至少两个待存储图切片数据,得到目标图切片数据和关联图切片数据;将目标图切片数据存储至图形处理器GPU;将关联图切片数据存储至内部存储器;将至少两个待存储图切片数据存储至外部存储器。

权利要求 :

1.一种图数据存储方法,包括:

响应于接收到图数据存储请求,对待存储图数据进行划分,得到至少两个待存储图切片数据;

根据所述至少两个待存储图切片数据,得到目标图切片数据和关联图切片数据;

将所述目标图切片数据存储至图形处理器GPU;

将所述关联图切片数据存储至内部存储器;以及

将所述至少两个待存储图切片数据存储至外部存储器;

其中,所述响应于接收到图数据存储请求,对待存储图数据进行划分,得到至少两个待存储图切片数据,包括:响应于接收到所述图数据存储请求,基于节点的图切分算法或基于边的图切分算法对所述待存储图数据进行划分,得到所述至少两个待存储图切片数据;

其中,基于图切分算法对所述待存储图数据进行划分要满足以下条件,所述条件包括:至少两个节点权重和之间相等,所述至少两个节点权重和与所述至少两个待存储图切片数据一一对应,与所述待存储图切片数据对应的节点权重和是根据所述待存储图切片数据包括的节点的节点权重确定的,所述节点权重是根据与条件采样策略相关的标注数据确定的。

2.根据权利要求1所述的方法,其中,所述根据所述至少两个待存储图切片数据,得到目标图切片数据和关联图切片数据,包括:从所述至少两个待存储图切片数据中确定所述目标图切片数据;以及根据所述目标图切片数据,从所述待存储图数据中确定所述关联图切片数据。

3.根据权利要求1或2或所述的方法,其中,所述GPU包括至少一个GPU卡;

其中,所述将所述目标图切片数据存储至图形处理器GPU,包括:对所述目标图切片数据进行划分,得到至少一个目标图分区数据;以及将所述至少一个目标图分区数据存储至至少一个GPU卡。

4.根据权利要求3所述的方法,其中,所述对所述目标图切片数据进行划分,得到至少一个目标图分区数据,包括:基于第一哈希算法对所述目标图切片数据进行划分,得到所述至少一个目标图分区数据。

5.根据权利要求1或2所述的方法,其中,所述内部存储器包括至少一个内部存储区域;

其中,所述将所述关联图切片数据存储至内部存储器,包括:

对所述关联图切片数据进行划分,得到至少一个关联图分区数据;以及将所述至少一个关联图分区数据存储至所述至少一个内部存储区域。

6.根据权利要求5所述的方法,其中,所述对所述关联图切片数据进行划分,得到至少一个关联图分区数据,包括:基于第二哈希算法对所述关联图切片数据进行划分,得到所述至少一个关联图分区数据。

7.根据权利要求1或2所述的方法,其中,所述目标图切片数据与所述关联图切片数据之间的关系包括以下之一:所述目标图切片数据与所述关联图切片数据之间无交集和所述关联图切片数据包括所述目标图切片数据。

8.根据权利要求1或2所述的方法,其中,所述目标图切片数据包括目标节点相关数据和目标邻居节点相关数据中的至少之一,所述目标节点相关数据包括目标节点数据和目标节点特征数据中的至少之一,所述目标邻居节点相关数据包括目标邻居节点数据和目标邻居节点特征数据中的至少之一;

其中,所述关联图切片数据包括关联节点相关数据和关联邻居节点相关数据中的至少之一,所述关联节点相关数据包括关联节点数据和关联节点特征数据中的至少之一,所述关联邻居节点相关数据包括关联邻居节点数据和关联邻居节点特征数据中的至少之一。

9.一种图数据访问方法,包括:

响应于接收到图数据访问请求,获取待访问标识;以及

在确定目标图切片数据中存在与所述待访问标识相匹配的匹配标识的情况下,根据所述匹配标识,从所述目标图切片数据中获取访问结果,其中,所述目标图切片数据是权利要求1~8中任一项所述的方法中存储于图形处理器GPU中的待存储图数据。

10.根据权利要求9所述的方法,其中,所述GPU包括至少一个GPU卡;

其中,所述在确定目标图切片数据中存在与所述待访问标识相匹配的匹配标识的情况下,根据所述匹配标识,从所述目标图切片数据中获取访问结果,包括:在确定当前目标图分区数据中存在与所述待访问标识相匹配的匹配标识的情况下,根据所述匹配标识,从所述目标图切片数据中获取所述访问结果;以及在确定所述当前目标图分区数据中不存在与所述待访问标识相匹配的匹配标识的情况下,确定与所述待访问标识对应的GPU卡;

向与所述待访问标识对应的GPU卡发送所述待访问标识,以便与所述待访问标识对应的GPU卡在确定与所述待访问标识对应的GPU卡的目标图分区数据中存在与所述待访问标识相匹配的匹配标识的情况下,根据所述匹配标识,从所述目标图切片数据中获取访问结果;以及响应于接收到来自与所述待访问标识对应的GPU卡的访问结果。

11.根据权利要求10所述的方法,还包括:

在确定与所述待访问标识对应的GPU卡的目标图分区数据中不存在与所述待访问标识相匹配的匹配标识的情况下,向内部存储器发送所述待访问标识,以便所述内部存储器在确定关联图切片数据中存在与所述待访问标识相匹配的匹配标识的情况下,根据所述匹配标识,从所述关联图切片数据中获取所述访问结果,其中,所述关联图切片数据是权利要求

1~8中任一项所述的方法中存储于所述内部存储器中的待存储图数据;以及响应于接收到来自与所述待访问标识对应的GPU卡的访问结果,其中,与所述待访问标识对应的GPU卡获得的所述访问结果是响应于接收到来自所述内部存储器的所述访问结果。

12.根据权利要求9~11中任一项所述的方法,还包括:

根据所述待访问标识,创建第一访问任务;

将所述第一访问任务添加至与所述GPU对应的第一任务队列;

其中,所述在确定目标图切片数据中存在与所述待访问标识相匹配的匹配标识的情况下,根据所述匹配标识,从所述目标图切片数据中获取访问结果,包括:利用与所述GPU对应的线程从所述第一任务队列中获取第一头部任务;

利用与所述GPU对应的线程在确定所述第一头部任务是所述第一访问任务的情况下,从所述第一头部任务中获取所述待访问标识;以及利用与所述GPU对应的线程在确定所述目标图切片数据中存在与所述待访问标识相匹配的匹配标识的情况下,根据所述匹配标识,从所述目标图切片数据中获取所述访问结果。

13.一种图数据访问方法,包括:

响应于接收到来自图形处理器GPU的待访问标识,在确定关联图切片数据中存在与所述待访问标识相匹配的匹配标识的情况下,根据所述匹配标识,从所述关联图切片数据中获取访问结果,其中,所述关联图切片数据是权利要求1~8中任一项所述的方法中存储于所述内部存储器中的待存储图数据;以及向所述GPU发送所述访问结果。

14.根据权利要求13所述的方法,还包括:

在确定所述关联图切片数据中不存在与所述待访问标识相匹配的匹配标识的情况下,向外部存储器发送所述待访问标识,以便所述外部存储器从至少两个待存储图切片数据中获取所述访问结果,其中,所述至少两个待存储图切片数据是权利要求1~8中任一项所述的方法中的待存储数据;以及响应于接收到来自所述外部存储器的所述访问结果,向所述GPU发送所述访问结果。

15.根据权利要求13或14所述的方法,其中,所述响应于接收到来自图形处理器GPU的待访问标识,在确定关联图切片数据中存在与所述待访问标识相匹配的匹配标识的情况下,根据所述匹配标识,从所述关联图切片数据中获取访问结果,包括:响应于接收到来自所述GPU的待访问标识,根据所述待访问标识,创建第二访问任务;

将所述第二访问任务添加至与所述内部存储器对应的第二任务队列;

利用与所述内部存储器对应的线程从所述第二任务队列中获取第二头部任务;

利用与所述内部存储器对应的线程在确定所述第二头部任务是所述第二访问任务的情况下,从所述第二头部任务中获取所述待访问标识;以及利用与所述内部存储器对应的线程在确定所述关联图切片数据中存在与所述待访问标识相匹配的匹配标识的情况下,根据所述匹配标识,从所述关联图切片数据中获取所述访问结果。

16.一种图神经网络模型的训练方法,包括:

响应于接收到模型训练请求,基于采样策略,从目标图切片数据中确定至少一个目标采样节点,其中,所述目标图切片数据是权利要求1~8中任一项所述的方法中存储于图形处理器GPU中的待存储数据;

根据所述至少一个目标采样节点,从所述目标图切片数据、关联图切片数据和至少两个待存储图切片数据之一中获取与所述至少一个目标采样节点对应的至少一阶邻居节点,其中,所述关联图切片数据是权利要求1~8中任一项所述的方法中存储于内部存储器中的待存储图数据,所述至少两个待存储图切片数据是权利要求1~8中任一项所述的方法中存储于外部存储器中的待存储图数据;

根据所述至少一个目标采样节点的目标采样节点相关数据和所述至少一阶邻居节点的邻居节点相关数据,得到至少一阶子图数据;以及向深度学习平台发送所述至少一阶子图数据,以便所述深度学习平台利用所述至少一阶子图数据训练所述图神经网络模型。

17.根据权利要求16所述的方法,其中,所述响应于接收到模型训练请求,基于采样策略,从目标图切片数据中确定至少一个目标采样节点,包括以下之一:响应于接收到所述模型训练请求,基于遍历采样策略,将所述目标图切片数据中的全部目标节点确定为所述目标采样节点;以及响应于接收到所述模型训练请求,基于条件采样策略,将所述目标图切片数据中的部分目标节点确定为所述至少一个目标采样节点。

18.根据权利要求16或17所述的方法,还包括:

响应于接收到来自所述深度学习平台的训练完成指令,生成存储切换指令;以及响应于检测到所述存储切换指令,在根据所述至少两个待存储图切片数据得到新的目标图切片数据和新的关联图切片数据的情况下,重复执行获得所述至少一阶子图数据,向所述深度学习平台发送所述至少一阶子图数据,以便所述深度学习平台利用所述至少一阶子图数据训练所述图神经网络模型的操作,直至在将所述至少两个待存储图切片数据中预定数目的所述待存储图切片数据确定为所述目标图切片数据的情况下,执行完成利用所述目标图切片数据训练所述图神经网络模型的训练操作。

19.一种图数据处理方法,包括:

将目标图数据输入图神经网络模型,得到输出结果,其中,所述图神经网络模型是利用根据权利要求16~18中任一项所述的方法训练得到的。

20.一种图数据存储装置,包括:

第一获得模块,用于响应于接收到图数据存储请求,对待存储图数据进行划分,得到至少两个待存储图切片数据;

第二获得模块,用于根据所述至少两个待存储图切片数据,得到目标图切片数据和关联图切片数据;

第一存储模块,用于将所述目标图切片数据存储至图形处理器GPU;

第二存储模块,用于将所述关联图切片数据存储至内部存储器;以及第三存储模块,用于将所述至少两个待存储图切片数据存储至外部存储器;

其中,所述第一获得模块,用于:

响应于接收到所述图数据存储请求,基于节点的图切分算法或基于边的图切分算法对所述待存储图数据进行划分,得到所述至少两个待存储图切片数据;

其中,基于图切分算法对所述待存储图数据进行划分要满足以下条件,所述条件包括:至少两个节点权重和之间相等,所述至少两个节点权重和与所述至少两个待存储图切片数据一一对应,与所述待存储图切片数据对应的节点权重和是根据所述待存储图切片数据包括的节点的节点权重确定的,所述节点权重是根据与条件采样策略相关的标注数据确定的。

21.根据权利要求20所述的装置,其中,所述第二获得模块,包括:第一确定子模块,用于从所述至少两个待存储图切片数据中确定所述目标图切片数据;以及第二确定子模块,用于根据所述目标图切片数据,从所述待存储图数据中确定所述关联图切片数据。

22.根据权利要求20或21或所述的装置,其中,所述GPU包括至少一个GPU卡;

其中,所述第一存储模块,包括:

第一获得子模块,用于对所述目标图切片数据进行划分,得到至少一个目标图分区数据;以及第一存储子模块,用于将所述至少一个目标图分区数据存储至至少一个GPU卡。

23.根据权利要求22所述的装置,其中,所述第一获得子模块,包括:第一获得单元,用于基于第一哈希算法对所述目标图切片数据进行划分,得到所述至少一个目标图分区数据。

24.根据权利要求20或21所述的装置,其中,所述内部存储器包括至少一个内部存储区域;

其中,所述第二存储模块,包括:

第二获得子模块,用于对所述关联图切片数据进行划分,得到至少一个关联图分区数据;以及第二存储子模块,用于将所述至少一个关联图分区数据存储至所述至少一个内部存储区域。

25.根据权利要求24所述的装置,其中,所述第二获得子模块,包括:第二获得单元,用于基于第二哈希算法对所述关联图切片数据进行划分,得到所述至少一个关联图分区数据。

26.根据权利要求20或21所述的装置,其中,所述目标图切片数据与所述关联图切片数据之间的关系包括以下之一:所述目标图切片数据与所述关联图切片数据之间无交集和所述关联图切片数据包括所述目标图切片数据。

27.根据权利要求20或21所述的装置,其中,所述目标图切片数据包括目标节点相关数据和目标邻居节点相关数据中的至少之一,所述目标节点相关数据包括目标节点数据和目标节点特征数据中的至少之一,所述目标邻居节点相关数据包括目标邻居节点数据和目标邻居节点特征数据中的至少之一;

其中,所述关联图切片数据包括关联节点相关数据和关联邻居节点相关数据中的至少之一,所述关联节点相关数据包括关联节点数据和关联节点特征数据中的至少之一,所述关联邻居节点相关数据包括关联邻居节点数据和关联邻居节点特征数据中的至少之一。

28.一种图数据访问装置,包括:

第一获取模块,用于响应于接收到图数据访问请求,获取待访问标识;以及第二获取模块,用于在确定目标图切片数据中存在与所述待访问标识相匹配的匹配标识的情况下,根据所述匹配标识,从所述目标图切片数据中获取访问结果,其中,所述目标图切片数据是权利要求20~27中任一项所述的装置中存储于图形处理器GPU中的待存储图数据。

29.根据权利要求28所述的装置,其中,所述GPU包括至少一个GPU卡;

其中,所述第二获取模块,包括:

第一获取子模块,用于在确定当前目标图分区数据中存在与所述待访问标识相匹配的匹配标识的情况下,根据所述匹配标识,从所述目标图切片数据中获取所述访问结果;以及在确定所述当前目标图分区数据中不存在与所述待访问标识相匹配的匹配标识的情况下,第三确定子模块,用于确定与所述待访问标识对应的GPU卡;

发送子模块,用于向与所述待访问标识对应的GPU卡发送所述待访问标识,以便与所述待访问标识对应的GPU卡在确定与所述待访问标识对应的GPU卡的目标图分区数据中存在与所述待访问标识相匹配的匹配标识的情况下,根据所述匹配标识,从所述目标图切片数据中获取访问结果;以及接收子模块,用于响应于接收到来自与所述待访问标识对应的GPU卡的访问结果。

30.根据权利要求29所述的装置,还包括:

第一发送模块,用于在确定与所述待访问标识对应的GPU卡的目标图分区数据中不存在与所述待访问标识相匹配的匹配标识的情况下,向内部存储器发送所述待访问标识,以便所述内部存储器在确定关联图切片数据中存在与所述待访问标识相匹配的匹配标识的情况下,根据所述匹配标识,从所述关联图切片数据中获取所述访问结果,其中,所述关联图切片数据是权利要求20~27中任一项所述的装置中存储于所述内部存储器中的待存储图数据;以及接收模块,用于响应于接收到来自与所述待访问标识对应的GPU卡的访问结果,其中,与所述待访问标识对应的GPU卡获得的所述访问结果是响应于接收到来自所述内部存储器的所述访问结果。

31.根据权利要求28~30中任一项所述的装置,还包括:

创建模块,用于根据所述待访问标识,创建第一访问任务;

添加模块,用于将所述第一访问任务添加至与所述GPU对应的第一任务队列;

其中,所述第二获取模块,包括:

第二获取子模块,用于利用与所述GPU对应的线程从所述第一任务队列中获取第一头部任务;

第三获取子模块,用于利用与所述GPU对应的线程在确定所述第一头部任务是所述第一访问任务的情况下,从所述第一头部任务中获取所述待访问标识;以及第四获取子模块,用于利用与所述GPU对应的线程在确定所述目标图切片数据中存在与所述待访问标识相匹配的匹配标识的情况下,根据所述匹配标识,从所述目标图切片数据中获取所述访问结果。

32.一种图数据访问装置,包括:

第三获取模块,用于响应于接收到来自图形处理器GPU的待访问标识,在确定关联图切片数据中存在与所述待访问标识相匹配的匹配标识的情况下,根据所述匹配标识,从所述关联图切片数据中获取访问结果,其中,所述关联图切片数据是权利要求20~27中任一项所述的装置中存储于所述内部存储器中的待存储图数据;以及第二发送模块,用于向所述GPU发送所述访问结果。

33.根据权利要求32所述的装置,还包括:

在确定所述关联图切片数据中不存在与所述待访问标识相匹配的匹配标识的情况下,第三发送模块,用于向外部存储器发送所述待访问标识,以便所述外部存储器从至少两个待存储图切片数据中获取所述访问结果,其中,所述至少两个待存储图切片数据是权利要求20~27中任一项所述的装置中的待存储数据;以及第四发送模块,用于响应于接收到来自所述外部存储器的所述访问结果,向所述GPU发送所述访问结果。

34.根据权利要求32或33所述的装置,其中,所述第三获取模块,包括:创建子模块,用于响应于接收到来自所述GPU的待访问标识,根据所述待访问标识,创建第二访问任务;

添加子模块,用于将所述第二访问任务添加至与所述内部存储器对应的第二任务队列;

第五获取子模块,用于利用与所述内部存储器对应的线程从所述第二任务队列中获取第二头部任务;

第六获取子模块,用于利用与所述内部存储器对应的线程在确定所述第二头部任务是所述第二访问任务的情况下,从所述第二头部任务中获取所述待访问标识;以及第七获取子模块,用于利用与所述内部存储器对应的线程在确定所述关联图切片数据中存在与所述待访问标识相匹配的匹配标识的情况下,根据所述匹配标识,从所述关联图切片数据中获取所述访问结果。

35.一种图神经网络模型的训练装置,包括:

确定模块,用于响应于接收到模型训练请求,基于采样策略,从目标图切片数据中确定至少一个目标采样节点,其中,所述目标图切片数据是权利要求20~27中任一项所述的装置中存储于图形处理器GPU中的待存储数据;

第四获取模块,用于根据所述至少一个目标采样节点,从所述目标图切片数据、关联图切片数据和至少两个待存储图切片数据之一中获取与所述至少一个目标采样节点对应的至少一阶邻居节点,其中,所述关联图切片数据是权利要求20~27中任一项所述的装置中存储于内部存储器中的待存储图数据,所述至少两个待存储图切片数据是权利要求20~27中任一项所述的装置中存储于外部存储器中的待存储图数据;

第三获得模块,用于根据所述至少一个目标采样节点的目标采样节点相关数据和所述至少一阶邻居节点的邻居节点相关数据,得到至少一阶子图数据;以及第五发送模块,用于向深度学习平台发送所述至少一阶子图数据,以便所述深度学习平台利用所述至少一阶子图数据训练所述图神经网络模型。

36.根据权利要求35所述的装置,其中,所述确定模块,包括以下之一:第四确定子模块,用于响应于接收到所述模型训练请求,基于遍历采样策略,将所述目标图切片数据中的全部目标节点确定为所述目标采样节点;以及第五确定子模块,用于响应于接收到所述模型训练请求,基于条件采样策略,将所述目标图切片数据中的部分目标节点确定为所述至少一个目标采样节点。

37.根据权利要求35或36所述的装置,还包括:

生成模块,用于响应于接收到来自所述深度学习平台的训练完成指令,生成存储切换指令;以及执行模块,用于响应于检测到所述存储切换指令,在根据所述至少两个待存储图切片数据得到新的目标图切片数据和新的关联图切片数据的情况下,重复执行获得所述至少一阶子图数据,向所述深度学习平台发送所述至少一阶子图数据,以便所述深度学习平台利用所述至少一阶子图数据训练所述图神经网络模型的操作,直至在将所述至少两个待存储图切片数据中预定数目的所述待存储图切片数据确定为所述目标图切片数据的情况下,执行完成利用所述目标图切片数据训练所述图神经网络模型的训练操作。

38.一种图数据处理装置,包括:

第四获得模块,用于将目标图数据输入图神经网络模型,得到输出结果,其中,所述图神经网络模型是利用根据权利要求35~37中任一项所述的装置训练得到的。

39.一种电子设备,包括:

至少一个处理器;以及

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1~19中任一项所述的方法。

40.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行权利要求1~19中任一项所述的方法。

说明书 :

图数据存储、访问、处理方法、训练方法、设备及介质

[0001] 本申请是申请日为2022年5月19日,申请号为202210573156.3,发明名称为“图数据存储、访问、处理方法、训练方法、设备及介质”的申请的分案申请。

技术领域

[0002] 本公开涉及人工智能技术领域,尤其涉及图神经网络技术、计算机视觉和深度学习技术领域。具体地,涉及一种图数据存储、访问、处理方法、训练方法、设备及介质。

背景技术

[0003] 随着计算机技术的不断发展,图数据也得到了发展。图数据可以应用图形理论表征节点和边信息。图数据广泛应用于知识图谱、金融反欺诈和社会关系挖掘等领域。

发明内容

[0004] 本公开提供了一种图数据存储、访问、处理方法、训练方法、设备及介质。
[0005] 根据本公开的一方面,提供了一种图数据存储方法,包括:响应于接收到图数据存储请求,对待存储图数据进行划分,得到至少两个待存储图切片数据;根据上述至少两个待存储图切片数据,得到目标图切片数据和关联图切片数据;将上述目标图切片数据存储至图形处理器GPU;将上述关联图切片数据存储至内部存储器;以及,将上述至少两个待存储图切片数据存储至外部存储器。
[0006] 根据本公开的另一方面,提供了一种图数据访问方法,包括:响应于接收到图数据访问请求,获取待访问标识;以及,在确定目标图切片数据中存在与上述待访问标识相匹配的匹配标识的情况下,根据上述匹配标识,从上述目标图切片数据中获取访问结果,其中,上述目标图切片数据是根据本公开上述的方法中存储于图形处理器GPU中的待存储图数据。
[0007] 根据本公开的另一方面,提供了一种图数据访问方法,包括:响应于接收到来自图形处理器GPU的待访问标识,在确定关联图切片数据中存在与上述待访问标识相匹配的匹配标识的情况下,根据上述匹配标识,从上述关联图切片数据中获取访问结果,其中,上述关联图切片数据是根据本公开上述的方法中存储于上述内部存储器中的待存储图数据;以及,向上述GPU发送上述访问结果。
[0008] 根据本公开的另一方面,提供了一种图神经网络模型的训练方法,包括:响应于接收到模型训练请求,基于采样策略,从目标图切片数据中确定至少一个目标采样节点,其中,上述目标图切片数据是根据本公开上述的方法中存储于图形处理器GPU中的待存储数据;根据上述至少一个目标采样节点,从上述目标图切片数据、关联图切片数据和至少两个待存储图切片数据之一中获取与上述至少一个目标采样节点对应的至少一阶邻居节点,其中,上述关联图切片数据是根据本公开上述的方法中存储于内部存储器中的待存储图数据,上述至少两个待存储图切片数据是根据本公开上述的方法中存储于外部存储器中的待存储图数据;根据上述至少一个目标采样节点的目标采样节点相关数据和上述至少一阶邻居节点的邻居节点相关数据,得到至少一阶子图数据;以及,向深度学习平台发送上述至少一阶子图数据,以便上述深度学习平台利用上述至少一阶子图数据训练上述图神经网络模型。
[0009] 根据本公开的另一方面,提供了一种图数据处理方法,包括:将目标图数据输入图神经网络模型,得到输出结果,其中,上述图神经网络模型是利用根据本公开上述的方法训练得到的。
[0010] 根据本公开的另一方面,提供了一种图数据存储装置,包括:第一获得模块,用于响应于接收到图数据存储请求,对待存储图数据进行划分,得到至少两个待存储图切片数据;第二获得模块,用于根据上述至少两个待存储图切片数据,得到目标图切片数据和关联图切片数据;第一存储模块,用于将上述目标图切片数据存储至图形处理器GPU;第二存储模块,用于将上述关联图切片数据存储至内部存储器;以及,第三存储模块,用于将上述至少两个待存储图切片数据存储至外部存储器。
[0011] 根据本公开的另一方面,提供了一种图数据访问装置,包括:第一获取模块,用于响应于接收到图数据访问请求,获取待访问标识;以及,第二获取模块,用于在确定目标图切片数据中存在与上述待访问标识相匹配的匹配标识的情况下,根据上述匹配标识,从上述目标图切片数据中获取访问结果,其中,上述目标图切片数据是根据本公开上述的装置中存储于图形处理器GPU中的待存储图数据。
[0012] 根据本公开的另一方面,提供了一种图数据访问装置,包括:第三获取模块,用于响应于接收到来自图形处理器GPU的待访问标识,在确定关联图切片数据中存在与上述待访问标识相匹配的匹配标识的情况下,根据上述匹配标识,从上述关联图切片数据中获取访问结果,其中,上述关联图切片数据是根据本公开上述的装置中存储于上述内部存储器中的待存储图数据;以及,第二发送模块,用于向上述GPU发送上述访问结果。
[0013] 根据本公开的另一方面,提供了一种图神经网络模型的训练装置,包括:
[0014] 确定模块,用于响应于接收到模型训练请求,基于采样策略,从目标图切片数据中确定至少一个目标采样节点,其中,上述目标图切片数据是根据本公开上述的装置中存储于图形处理器GPU中的待存储数据;第四获取模块,用于根据上述至少一个目标采样节点,从上述目标图切片数据、关联图切片数据和至少两个待存储图切片数据之一中获取与上述至少一个目标采样节点对应的至少一阶邻居节点,其中,上述关联图切片数据是根据本公开上述的装置中存储于内部存储器中的待存储图数据,上述至少两个待存储图切片数据是根据本公开上述的装置中存储于外部存储器中的待存储图数据;第三获得模块,用于根据上述至少一个目标采样节点的目标采样节点相关数据和上述至少一阶邻居节点的邻居节点相关数据,得到至少一阶子图数据;以及,第五发送模块,用于向深度学习平台发送上述至少一阶子图数据,以便上述深度学习平台利用上述至少一阶子图数据训练上述图神经网络模型。
[0015] 根据本公开的另一方面,提供了一种图数据处理装置,包括:将目标图数据输入图神经网络模型,得到输出结果,其中,上述图神经网络模型是利用根据本公开上述的装置训练得到的。
[0016] 根据本公开的另一方面,提供了一种电子设备,包括:至少一个处理器;以及与上述至少一个处理器通信连接的存储器;其中,上述存储器存储有可被上述至少一个处理器执行的指令,上述指令被上述至少一个处理器执行,以使上述至少一个处理器能够执行本公开所述的方法。
[0017] 根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,上述计算机指令用于使上述计算机执行本公开所述的方法。
[0018] 根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,上述计算机程序在被处理器执行时实现本公开所述的方法。
[0019] 应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。

附图说明

[0020] 附图用于更好地理解本方案,不构成对本公开的限定。其中:
[0021] 图1示意性示出了根据本公开实施例的可以应用图数据存储方法、图数据访问方法、图神经网络模型的训练方法和图数据处理方法及装置的示例性系统架构;
[0022] 图2示意性示出了根据本公开实施例的图数据存储方法的流程图;
[0023] 图3示意性示出了根据本公开实施例的图数据存储过程的示例示意图;
[0024] 图4示意性示出了根据本公开实施例的图数据访问方法的流程图;
[0025] 图5示意性示出了根据本公开另一实施例的图数据访问方法的流程图;
[0026] 图6示意性示出了根据本公开实施例的图神经网络模型的训练方法的流程图;
[0027] 图7示意性示出了根据本公开实施例的图神经网络模型的训练过程的示例示意图;
[0028] 图8示意性示出了根据本公开实施例的图数据处理方法的流程图;以及[0029] 图9示意性示出了根据本公开实施例的图数据存储装置的框图;
[0030] 图10示意性示出了根据本公开实施例的图数据访问装置的框图;
[0031] 图11示意性示出了根据本公开另一实施例的图数据访问装置的框图;
[0032] 图12示意性示出了根据本公开实施例的图神经网络模型的训练装置的框图;
[0033] 图13示意性示出了根据本公开实施例的图数据处理装置的框图;以及[0034] 图14示意性示出了根据本公开实施例的适于实现图数据存储方法、图数据访问方法、图神经网络模型的训练方法和图数据处理方法的电子设备的框图。

具体实施方式

[0035] 以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0036] 图1示意性示出了根据本公开实施例的可以应用图数据存储方法、图数据访问方法、图神经网络模型的训练方法和图数据处理方法及装置的示例性系统架构。
[0037] 需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
[0038] 如图1所示,根据该实施例的系统架构100可以包括图引擎101、深度学习平台102和网络103。网络103用以在图引擎101和深度学习平台102之间提供通信链路的介质。网络103可以包括各种连接类型。例如,有线和/或无线通信链路等。
[0039] 图引擎101的存储结构可以包括GPU(Graphics Processing Unit,图形处理器)101_1、内部存储器102_2和外部存储器_3。内部存储器102_1可以包括CPU(Central Processing Unit,中央处理器)内存。外部存储器101_3可以包括以下至少之一:硬盘、软盘、光盘和U盘。硬盘可以包括以下至少之一:固态硬盘(Solid State Disk,SSD)和机械硬盘。
[0040] 图引擎101可以用于响应于接收到图数据存储请求,对待存储图数据进行划分,得到至少两个待存储图切片数据。根据至少两个待存储图切片数据,得到目标图切片数据和关联图切片数据。将目标图切片数据存储至GPU101_1。将关联图切片数据存储至内部存储器101_2。将至少两个待存储图切片数据存储至外部存储器101_3。
[0041] 图引擎101中的GPU101_1可以响应于接收到图数据访问请求,获取待访问标识。在确定目标图切片数据中存在与待访问标识相匹配的匹配标识的情况下,根据匹配标识,从目标图切片数据中获取访问结果。
[0042] 图引擎101中的内部存储器101_2可以响应于接收到来自GPU101_1的待访问标识,在确定关联图切片数据中存在与待访问标识相匹配的匹配标识的情况下,根据匹配标识,从关联图切片数据中获取访问结果。向GPU101_1发送访问结果。
[0043] 图引擎101响应于接收到模型训练请求,基于采样策略,从目标图切片数据中确定至少一个目标采样节点。根据至少一个目标采样节点,从目标图切片数据、关联图切片数据和至少两个待存储图切片数据之一中获取与至少一个目标采样节点对应的至少一阶邻居节点。根据至少一个目标采样节点的目标采样节点相关数据和至少一阶邻居节点的邻居节点相关数据,得到至少一阶子图数据。向深度学习平台102发送至少一阶子图数据,以便深度学习平台102利用至少一阶子图数据训练图神经网络模型。
[0044] 深度学习平台102可以响应于接收到来自图引擎101的至少一阶子图数据,利用至少一阶子图数据训练图神经网络模型。
[0045] 图引擎101可以是服务器或终端设备。深度学习平台102可以是服务器、服务器集群或终端设备。终端设备上可以安装有各种通讯客户端应用,例如,知识阅读类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端和/或社交平台软件等(仅为示例)。终端设备可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等。
[0046] 服务器可以是提供各种服务的各种类型的服务器。例如,服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务(Virtual Private Server,虚拟专用服务器)中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
[0047] 应该理解,图1中的图引擎、深度学习平台和网络的数目仅仅是示意性的。根据实现需要,可以具有任意数目的图引擎、深度学习平台和网络。
[0048] 应注意,以下方法中各个操作的序号仅作为该操作的表示以便描述,而不应被看作表示该各个操作的执行顺序。除非明确指出,否则该方法不需要完全按照所示顺序来执行。
[0049] 图2示意性示出了根据本公开实施例的图数据存储方法的流程图。
[0050] 如图2所示,该方法200包括操作S210~S250。
[0051] 在操作S210,响应于接收到图数据存储请求,对待存储图数据进行划分,得到至少两个待存储图切片数据。
[0052] 在操作S220,根据至少两个待存储图切片数据,得到目标图切片数据和关联图切片数据。
[0053] 在操作S230,将目标图切片数据存储至GPU。
[0054] 在操作S240,将关联图切片数据存储至内部存储器。
[0055] 在操作S250,将至少两个待存储图切片数据存储至外部存储器。
[0056] 根据本公开的实施例,图数据存储请求可以指用于存储待存储数据的请求。图数据可以指用节点数据和边数据来表征的数据。节点数据可以包括节点的至少一个节点标签和与节点标签对应的至少一个节点属性。边数据可以包括边的边标签和与边标签对应的至少一个边属性。边标签可以用于表征边连接的两个节点之间的关系。可以用来表征实体。边可以用来表征连接的两个节点之间的关系。节点可以用节点标识来表征。边可以用边标识来表征。此外,可以将与节点相关的边数据作为节点的依赖数据。可以将节点的依赖数据作为节点的节点特征数据。由此,图数据可以包括节点数据和节点特征数据。
[0057] 根据本公开的实施例,节点可以具有与该节点对应的邻居节点。邻居节点的数目可以包括一个或多个。邻居节点可以指与节点具有关系的节点。邻居节点可以具有阶级关系。例如,可以将根据节点直接确定的邻居节点确定为该节点的一阶邻居节点。根据该节点的一阶邻居节点确定的邻居节点确定为该节点的二阶邻居节点。以此类推,节点可以具有与该节点对应的至少一阶邻居节点。
[0058] 根据本公开的实施例,待存储图数据可以指待存储的图数据。待存储图数据可以具有与图数据相同的数据结构。
[0059] 根据本公开的实施例,图切片数据可以指对图数据进行划分得到的图数据。例如,可以利用图切分算法对图数据进行划分,得到至少两个图切片数据。图切分算法可以包括以下之一:基于节点的图切分算法和基于边的图切分算法。基于边的图切分算法可以指将图数据按照边进行划分的图切分算法。基于节点的图切分算法可以指将数据按照节点进行划分的图数据切分算法。图切分算法的实现需要满足以下三个条件之一,其一,切分的节点尽量是有关系的节点(即切分出来的待存储图切片数据中的边需要尽可能多,跨切片的边尽可能的少)。其二,各个待存储图切片数据彼此之间的数据量尽可能相等。其三,各个节点权重和彼此之间尽可能相等。每个待存储图切片数据具有与该待存储图切片数据对应的节点权重和。节点权重和可以根据待存储图切片数据包括的各个节点的节点权重确定。节点的节点权重可以根据节点是否具有标注数据来确定。例如,如果节点具有标注数据,则可以设置该节点的节点权重为大于且小于1的数。如果该节点不具有标注数据,则可以设置该节点的节点权重为0。节点的节点权重的设置方式可以根据实际业务需求进行配置,在此不作限定。需要各个节点权重和彼此之间尽可能相等的原因在于:如果基于图切分算法得到的某个目标图切片数据中的目标节点均是不具有标注数据的节点,而后续是利用基于条件采样策略进行采样,条件采样策略是将具有标注数据的目标节点确定为目标采样节点,则将导致该目标图切片数据中的目标节点均不满足条件,不能成为目标采样节点,由此,使得该目标图切数据没有被利用,降低了数据利用效率。
[0060] 根据本公开的实施例,待存储图切片数据可以指对待存储图数据进行划分得到的图数据。目标图切片数据可以是满足预定条件的待存储图切片数据。关联图切片数据可以是根据目标图切片数据得到的待存储图数据。预定条件可以根据实际业务需求进行配置,在此不作限定。
[0061] 根据本公开的实施例,目标图切片数据和关联图切片数据的关系可以包括以下之一:目标图切片数据可以与关联图切片数据之间无交集和目标图切片数据可以与关联图切片数据之间具有交集。在目标图切片数据可以与关联图切片数据之间无交集的情况下,可以将关联图切片数据称为目标图切片数据的互补图切片数据。目标图切片数据与关联图切片数据之间具有交集可以包括以下至少之一:关联图切片数据包括全部目标图切片数据和关联图切片数据包括部分目标图数据。
[0062] 根据本公开的实施例,根据至少两个待存储图切片数据,得到目标图切片数据和关联图切片数据,可以包括:根据至少两个待存储图切片数据,得到目标图切片数据。根据目标图切片数据,从至少一个其他待存储图切片数据中确定关联图切片数据。其他待存储图切片数据可以指至少两个待存储图切片数据中除目标图切片数据以外的任意一个待存储图切片数据。根据目标图切片数据,从至少一个其他待存储图切片数据中确定关联图切片数据,可以包括:根据目标图切片数据,从至少一个其他待存储图切片数据中提取预定数目的其他待存储图切片数据的至少部分,得到关联图切片数据。
[0063] 根据本公开的实施例,在获得目标图切片数据和关联图切片数据之后,可以将目标图切片数据存储至GPU。可以将关联图切片数据存储至内部存储器。将至少两个待存储图切片数据存储至外部存储器。
[0064] 根据本公开的实施例,将目标图切片数据存储至图形处理器GPU,将关联图切片数据存储至内部存储器,将至少两个待存储图切片数据存储至外部存储器,实现了基于单机的三级存储,降低了通信开销,并扩大了单机存储能力。
[0065] 根据本公开的实施例,操作S210可以包括如下操作。
[0066] 响应于接收到图数据存储请求,基于节点的图切分算法对待存储图数据进行划分,得到至少两个待存储图切片数据。
[0067] 根据本公开的实施例,可以利用基于节点的图切分算法从待存储图数据中确定节点数据和邻居节点数据。根据节点数据和邻居节点数据,得到至少两个待存储图切片数据。
[0068] 根据本公开的实施例,操作S220可以包括如下操作。
[0069] 从至少两个待存储图切片数据中确定目标图切片数据。根据目标图切片数据,从待存储图数据中确定关联图切片数据。
[0070] 根据本公开的实施例,可以基于预定确定策略,从至少两个待存储图切片数据中确定目标图切片数据。预定确定策略可以包括随机确定策略,即随机从至少两个待存储图切片数据中确定目标图切片数据。根据本公开的实施例,在确定目标图切片数据之后,可以根据目标图切片数据中第一预定节点与其他待存储图数据中第二预定节点之间的关联程度,从其他待存储图数据中确定与第一预定节点对应的目标预定节点。第一预定节点与第二预定节点之间的关联程度可以根据第一预定节点的出度和入度中的至少之一来确定。根据与第一预定节点对应的目标预定节点,得到与目标图切片数据对应的关联图切片数据。第二预定节点与第一预定节点之间的关联程度可以根据第二预定节点与第一预定节点之间的边的数目来确定。例如,第二预定节点与第一预定节点之间的边的数目大于或等于预定边数目阈值。预定边数目阈值可以根据实际业务需求进行配置,在此不作限定。
[0071] 根据本公开的实施例,GPU可以至少一个GPU卡。
[0072] 根据本公开的实施例,操作S230可以包括如下操作。
[0073] 对目标图切片数据进行划分,得到至少一个目标图分区数据。将至少一个目标图分区数据存储至至少一个GPU卡。
[0074] 根据本公开的实施例,目标图切片数据可以包括至少一个目标节点的目标节点数据和目标节点特征数据。可以用目标节点标识来表征目标节点。可以根据目标节点的目标节点标识,对目标图切片数据进行划分,得到至少一个目标图分区(即Partition)数据。例如,可以对至少一个目标节点标识进行处理,得到至少一个目标节点标识处理值。将与同一目标节点标识处理值对应的目标节点标识的目标节点数据确定为目标图分区数据,由此,每个目标图分区数据中的目标节点数据是与同一目标节点标识处理值对应的目标节点的目标节点数据。
[0075] 根据本公开的实施例,可以根据GPU卡和目标节点标识处理值的关联关系,将至少一个目标图分区数据存储至至少一个GPU卡。每个GPU卡可以用于存储与该GPU卡对应的目标图分区数据。
[0076] 例如,可以包括N个GPU卡,即GPU卡1、GPU卡2、……、GPU卡n、……、GPU卡N‑1和GPU卡N。可以包括N个目标图分区数据,即目标图分区数据1、目标图分区数据2、……、目标图分区数据n、……、目标图分区数据N‑1和目标图分区数据N。与GPU卡n对应的目标节点标识处理值为f(n)。与目标图分区数据n对应的目标节点标识处理值为f(n)。N可以是大于或等于1的整数。n∈{1,2,……,(N‑1),N}。
[0077] 根据本公开的实施例,对目标图切片数据进行划分,得到至少一个目标图分区数据,可以包括如下操作。
[0078] 基于第一哈希算法对目标图切片数据进行划分,得到至少一个目标图分区数据。
[0079] 根据本公开的实施例,可以利用哈希算法来处理节点标识,得到节点标识处理值。可以将利用哈希算法处理节点标识得到的节点标识处理值称为哈希值。
[0080] 根据本公开的实施例,可以利用第一哈希算法处理目标图切分数据中用于表征目标节点的目标节点标识,得到至少一个第一哈希值。将与同一第一哈希值对应的目标节点标识的目标节点数据确定为目标图分区数据。
[0081] 根据本公开的实施例,内部存储器可以包括至少一个内部存储区域。
[0082] 根据本公开的实施例,将关联图切片数据存储至内部存储器,可以包括如下操作。
[0083] 对关联图切片数据进行划分,得到至少一个关联图分区数据。将至少一个关联图分区数据存储至至少一个内部存储区域。
[0084] 根据本公开的实施例,每个内部存储区域可以用于存储与该内部存储区域对应的关联图分区数据根据本公开的实施例,关联图切片数据可以包括至少一个关联节点的关联节点数据和关联节点特征数据。可以用关联节点标识来表征关联节点。可以根据关联节点的关联节点标识,对关联图切片数据进行划分,得到至少一个关联图分区数据。例如,可以对至少一个关联节点标识进行处理,得到至少一个关联节点标识处理值。将与同一关联节点标识处理值对应的关联节点标识的关联节点数据确定为关联图分区数据,由此,每个关联图分区数据中的关联节点数据是与同一关联节点标识处理值对应的关联节点的关联节点数据。
[0085] 根据本公开的实施例,对关联图切片数据进行划分,得到至少一个关联图分区数据,可以包括如下操作。
[0086] 基于第二哈希算法对关联图切片数据进行划分,得到至少一个关联图分区数据。
[0087] 根据本公开的实施例,可以利用第二哈希算法处理关联图切分数据中用于表征关联节点的关联节点标识,得到至少一个第二哈希值。将与同一第二哈希值对应的关联节点标识的关联节点数据确定为关联图分区数据。
[0088] 根据本公开的实施例,上述图数据存储方法还可以包括如下操作。
[0089] 响应于检测到存储切换指令,根据至少两个待存储图切片数据,得到新的目标图切片数据和新的关联图切片数据。删除GPU中存储的目标图切片数据。删除内部存储器中存储的关联图切片数据。将新的目标图切片数据存储至GPU。将新的关联图切片数据存储至内部存储器。
[0090] 根据本公开的实施例,存储切换指令可以指用于重新确定存储于GPU的目标图切片数据和存储于内部存储器的关联图切片数据。存储切换指令可以是响应于接收到深度学习平台的训练完成指令而生成的。
[0091] 根据本公开的实施例,在检测到存储切换指令的情况下,可以删除存储于GPU的目标图切片数据。删除存储于内部存器的关联图切片数据。可以利用上文所述的方法根据至少两个待存储图切片数据,得到新的目标图切片数据和新的关联图切片数据。将新的目标图切片数据存储至GPU。将新的关联图切片数据存储至内部存储器。
[0092] 根据本公开的实施例,目标图切片数据与关联图切片数据之间的关系可以包括以下之一:目标图切片数据与关联图切片数据之间无交集和关联图切片数据可以包括目标图切片数据。
[0093] 根据本公开的实施例,目标图切片数据可以包括以下至少之一:节点相关数据和邻居节点相关数据。
[0094] 根据本公开的实施例,节点相关数据可以包括以下至少之一:节点数据和节点特征数据。
[0095] 根据本公开的实施例,邻居节点相关数据可以包括以下至少之一:邻居节点数据和邻居节点特征数据。
[0096] 根据本公开的实施例,关联图切片数据可以包括以下至少之一:关联节点相关数据和关联邻居节点相关数据。
[0097] 根据本公开的实施例,关联节点相关数据可以包括以下至少之一:关联节点数据和关联节点特征数据。
[0098] 根据本公开的实施例,关联邻居节点相关数据可以包括以下至少之一:关联邻居节点数据和关联邻居节点特征数据。
[0099] 根据本公开的实施例,节点的节点特征数据可以是根据与节点相关的边数据确定的。
[0100] 根据本公开的实施例,节点的节点数据和节点特征数据关联存储于同一存储设备。例如,目标节点A的目标节点数据存储于GPU,目标节点A的目标节点特征数据也存储于GPU,并且目标节点A的目标节点数据和目标节点特征数据可以存储于同一GPU卡。
[0101] 根据本公开的实施例,由于将节点特征数据和节点数据关联存储至同一存储设备,因此,可以提高后续数据的访问效率。
[0102] 下面参考图3,结合具体实施例对根据本公开实施例所述的图数据存储方法做进一步说明。
[0103] 图3示意性示出了根据本公开实施例的图数据存储过程的示例示意图。
[0104] 如图3所示,在300中,图引擎可以包括GPU显存301、CPU的内部存储器302和外部存储器303。GPU显存301可以包括T个GPU卡,即GPU卡301_1、GPU卡301_2、……、GPU卡301_t、……、GPU卡301_(T‑1)和GPU卡301_T。T是大于1的整数。t是大于或等于1且小于T的整数。
[0105] 内部存储器可以包括S个内部存储区域。S内部存储区域可以包括内部存储区域302_1、内部存储区域302_2、……、内部存储区域302_s、……、内部存储区域302_(S‑1)和内部存储区域302_S。S是大于1的整数。s是大于或等于1且小于S的整数。
[0106] 可以对待存储图数据进行划分,得到R个待存储图切片数据,即待存储图切片数据304_1、待存储图切片数据304_2、……、待存储图切片数据304_r、……、待存储图切片数据
304_(R‑1)和待存储图切片数据304_R。R是大于1的整数。r是大于或等于1且小于R的整数。
[0107] 可以从R个待存储图切片数据中确定待存储图切片数据304_2为目标图切片数据。根据目标图切片数据,从待存储图数据中确定关联图切片数据。
[0108] 可以对目标图切片数据进行划分,得到T目标图分区数据,即目标图分区数据304_2_1、目标图分区数据304_2_2、……、目标图分区数据304_2_t、……、目标图分区数据304_
2_(T‑1)和目标图分区数据304_2_T。将目标图分区数据304_2_t存储至GPU卡301_t。
[0109] 可以对关联图切片数据进行划分,得到S个关联图分区数据,即关联图分区数据305_1、关联图分区数据305_2、……、关联图分区数据305_s、……、关联图分区数据305_(S‑
1)和关联图分区数据305_S。将目标图分区数据305_s存储至内部存储区域302_s。
[0110] 将R个待存储图切片数据存储至外部存储器303。
[0111] 图4示意性示出了根据本公开实施例的图数据访问方法的流程图。
[0112] 如图4所示,该方法400包括操作S410~S420。
[0113] 在操作S410,响应于接收到图数据访问请求,获取待访问标识。
[0114] 在操作S420,在确定目标图切片数据中存在与待访问标识相匹配的匹配标识的情况下,根据匹配标识,从目标图切片数据中获取访问结果。
[0115] 根据本公开的实施例,目标图切片数据可以是根据本公开实施例所述的图数据存储方法中存储于GPU中的待存储图数据。
[0116] 根据本公开的实施例,图数据访问请求可以指用于访问待存储图数据的请求。访问可以包括以下至少之一:添加、删除、修改、查询和采样。待访问标识可以包括待访问节点标识。匹配标识可以包括匹配节点标识。
[0117] 根据本公开的实施例,GPU可以在获取待访问标识之后,确定目标图切片数据中是否存在与待访问标识相匹配的匹配标识。在确定目标图切片数据中存在与待访问标识相匹配的匹配标识的情况下,可以从目标图切片数据中获取与匹配标识对应的图数据,将与匹配标识对应的图数据确定为访问结果。例如,GPU可以确定目标图切片数据中是否存在与待访问标识一致的匹配标识。在确定目标图切片数据中存在与待访问标识一致的匹配标识的情况下,可以从目标图切片数据中获取与匹配标识对应的图数据,将与匹配标识对应的图数据确定为访问结果。待访问标识可以是待访问节点标识。匹配标识可以是匹配节点标识。
[0118] 根据本公开的实施例,可以从GPU中获取访问结果,提高了访问速度,降低了通信开销。
[0119] 根据本公开的实施例,GPU可以包括至少一个GPU卡。
[0120] 根据本公开的实施例,操作S420可以包括如下操作。
[0121] 在确定当前目标图分区数据中存在与待访问标识相匹配的匹配标识的情况下,根据匹配标识,从目标图切片数据中获取访问结果。在确定当前目标图分区数据中不存在与待访问标识相匹配的匹配标识的情况下,确定与待访问标识对应的GPU卡。向与待访问标识对应的GPU卡发送待访问标识,以便与待访问标识对应的GPU卡在确定与待访问标识对应的GPU卡的目标图分区数据中存在与待访问标识相匹配的匹配标识的情况下,根据匹配标识,从目标图切片数据中获取访问结果。响应于接收到来自与待访问标识对应的GPU卡的访问结果。
[0122] 根据本公开的实施例,可以将接收到图数据访问请求的GPU卡称为当前GPU卡。将存储于当前GPU卡中的目标图分区数据称为当前目标图分区数据。
[0123] 根据本公开的实施例,当前GPU卡确定当前目标图分区数据中是否存在与待访问标识相匹配的匹配标识。当前GPU卡在确定当前目标图分区数据中存在与待访问标识相匹配的匹配标识的情况下,可以根据匹配标识,从当前目标图切片数据中获取访问结果。
[0124] 根据本公开的实施例,当前GPU卡在确定当前目标图分区数据中不存在与待访问标识相匹配的匹配标识的情况下,可以根据待访问标识确定与待访问标识对应的GPU卡。与待访问标识对应的GPU卡可以包括至少一个。当前GPU卡可以向与待访问标识对应的GPU卡发送待访问标识。与待访问标识对应的GPU卡可以确定与待访问标识对应的GPU卡的目标图分区数据中是否存在与待访问标识相匹配的匹配标识。与待访问标识对应的GPU卡在确定与待访问标识对应的GPU卡中存在与待访问标识相匹配的匹配标识的情况下,可以根据匹配标识,从与待访问标识对应的目标图切分数据中获取访问结果。与待访问标识对应的GPU卡可以向当前GPU卡发送访问结果。
[0125] 根据本公开的实施例,上述图数据访问方法还可以包括如下操作。
[0126] 在确定与待访问标识对应的GPU卡的目标图分区数据中不存在与待访问标识相匹配的匹配标识的情况下,向内部存储器发送待访问标识,以便内部存储器在确定关联图切片数据中存在与待访问标识相匹配的匹配标识的情况下,根据匹配标识,从关联图切片数据中获取访问结果。响应于接收到来自与待访问标识对应的GPU卡的访问结果。与待访问标识对应的GPU卡获得的访问结果是响应于接收到来自内部存储器的访问结果。
[0127] 根据本公开的实施例,关联图切片数据可以是根据本公开实施例所述的图数据存储方法中存储于内部存储器中的待存储图数据。
[0128] 根据本公开的实施例,与待访问标识对应的GPU卡在确定与待访问标识对应的GPU卡中不存在与待访问标识相匹配的匹配标识的情况下,与待访问标识对应的GPU卡可以向内部存储器发送待访问标识。内部存储器可以确定关联图切片数据中是否存在与待访问标识相匹配的匹配标识。内部存储器在确定关联图切片数据中存在与待访问标识相匹配的匹配标识的情况下,可以根据匹配标识,从关联图切片数据中获取访问结果。内部存储器可以向与待访问标识对应的GPU卡发送访问结果。与待访问标识对应的GPU卡可以向当前GPU卡发送访问结果。
[0129] 根据本公开的实施例,内部存储器在确定关联图切片数据中不存在与待访问标识相匹配的匹配标识的情况下,可以向外部存储器发送待访问标识,以便外部存储器根据待访问标识,从至少两个待存储图切片数据中获取访问结果。外部存储器可以向内部存储器发送访问结果。内部存储器可以向与待访问标识对应的GPU卡发送访问结果。与待访问标识对应的GPU卡可以向当前GPU卡发送访问结果。
[0130] 根据本公开的实施例,可以通过多个GPU卡对任意一个目标图分区数据进行查询和采样。多个GPU卡的查询和采样功能支持高度并发。GPU卡可以同时向其他GPU卡发起请求。此外,GPU的并发性极强,GPU的采样速度可以是内部存储器的采样速度的400倍以上。
[0131] 根据本公开的实施例,上述图数据访问方法还可以包括如下操作。
[0132] 根据待访问标识,创建第一访问任务。将第一访问任务添加至与GPU对应的第一任务队列。
[0133] 根据本公开的实施例,操作S420可以包括如下操作。
[0134] 利用与GPU对应的线程从与GPU对应的任务队列中获取第一头部任务。利用与GPU对应的线程在确定第一头部任务是第一访问任务的情况下,从第一头部任务中获取待访问标识。利用与GPU对应的线程在确定目标图切片数据中存在与待访问标识相匹配的匹配标识的情况下,根据匹配标识,从目标图切片数据中获取访问结果。
[0135] 根据本公开的实施例,与GPU对应的线程可以以任务队列的方式来执行第一访问任务。与GPU对应的线程可以访问与GPU对应的第一任务队列,获取第一任务队列中的第一头部任务。与GPU对应的线程在确定第一头部任务是第一访问任务的情况下,与GPU对应的线程可以执行第一访问任务。
[0136] 根据本公开的实施例,上述图数据访问方法还可以包括如下操作。
[0137] 利用与GPU对应的线程在确定第一访问任务执行完毕的请下,将第一访问任务从第一任务队列中删除。
[0138] 图5示意性示出了根据本公开另一实施例的图数据访问方法的流程图。
[0139] 如图5所述,该方法500包括操作S510~S520。
[0140] 在操作S510,响应于接收到来自图形处理器GPU的待访问标识,在确定关联图切片数据中存在与待访问标识相匹配的匹配标识的情况下,根据匹配标识,从关联图切片数据中获取访问结果。
[0141] 在操作S520,向GPU发送访问结果。
[0142] 根据本公开的实施例,关联图切片数据可以是根据本公开实施例所述的图数据存储方法中存储于内部存储器中的待存储图数据。
[0143] 根据本公开的实施例,上述图数据存储方法还可以包括如下操作。
[0144] 在确定关联图切片数据中不存在与待访问标识相匹配的匹配标识的情况下,向外部存储器发送待访问标识,以便外部存储器从至少两个待存储图切片数据中获取访问结果。响应于接收到来自外部存储器的访问结果,向GPU发送访问结果。
[0145] 根据本公开的实施例,至少两个待存储图切片数据可以是根据本公开实施例所述的图数据存储方法中的待存储数据。
[0146] 根据本公开的实施例,操作S510可以包括如下操作。
[0147] 响应于接收到来自GPU的待访问标识,根据待访问标识,创建第二访问任务。将第二访问任务添加至与内部存储器对应的第二任务队列。利用与内部存储器对应的线程从第二任务队列中获取第二头部任务。利用与内部存储器对应的线程在确定第二头部任务是第二访问任务的情况下,从第二头部任务中获取待访问标识。利用与内部存储器对应的线程在确定关联图切片数据中存在与待访问标识相匹配的匹配标识的情况下,根据匹配标识,从关联图切片数据中获取访问结果。
[0148] 根据本公开的实施例,与内部存储器对应的线程可以以任务队列的方式来执行第二访问任务。与内部存储器对应的线程可以访问与内部存储器对应的第二任务队列,获取第二任务队列中的第二头部任务。与内部存储器对应的线程在确定第二头部任务是第二访问任务的情况下,与内部存储器对应的线程可以执行第二访问任务。
[0149] 根据本公开的实施例,内部存储器可以包括至少一个内部存储区域。关联图分区数据可以存储于内部存储区域。可以具有与内部存储区域对应的线程。具有与内部存储区域对应的第二任务队列。
[0150] 根据本公开的实施例,任务队列的设计使得后续策略开发的过程中不需要关注线程并发带来的一致性问题,从而专注于数据处理逻辑。此外,也避免了开发者在操作数据的时候进行加锁减锁,增加系统延时,从而提高效率,降低开发成本,减少出错概率。
[0151] 根据本公开的实施例,上述图数据访问方法还可以包括如下操作。
[0152] 利用与内部存储器对应的线程在确定第二访问任务执行完毕的请下,将第二访问任务从第二任务队列中删除。
[0153] 图6示意性示出了根据本公开实施例的图神经网络模型的训练方法的流程图。
[0154] 如图6所示,该方法600包括操作S610~S640。
[0155] 在操作S610,响应于接收到模型训练请求,基于采样策略,从目标图切片数据中确定至少一个目标采样节点。
[0156] 在操作S620,根据至少一个目标采样节点,从目标图切片数据、关联图切片数据和至少两个待存储图切片数据之一中获取与至少一个目标采样节点对应的至少一阶邻居节点。
[0157] 在操作S630,根据至少一个目标采样节点的目标采样节点相关数据和至少一阶邻居节点的邻居节点相关数据,得到至少一阶子图数据。
[0158] 在操作S640,向深度学习平台发送至少一阶子图数据,以便深度学习平台利用至少一阶子图数据训练图神经网络模型。
[0159] 根据本公开的实施例,目标图切片数据可以是根据本公开实施例所述的图数据存储方法中存储于GPU中的待存储数据。关联图切片数据可以是根据本公开实施例所述的图数据存储方法中存储于内部存储器中的待存储图数据。至少两个待存储图切片数据可以是根据本公开实施例所述的图数据存储方法中存储于外部存储器中的待存储图数据。
[0160] 根据本公开的实施例,图神经网络模型可以包括以下之一:图卷积神经网络(Graph Convolutional Network,GCN)模型、图循环神经网络(Graph Recurrent Network,GRN)模型、图注意力网络(Graph Attention Network,GAT)模型和图残差网络模型。可以利用图神经网络模型来生成节点的节点向量。
[0161] 根据本公开的实施例,模型训练请求可以指用于训练图神经网络模型的请求。模型训练请求可以是图引擎响应于接收到来自客户端的模型训练请求。备选地,模型训练请求可以是图引擎响应于检测到对象输入的模型训练操作而生成的。
[0162] 根据本公开的实施例,采样策略可以指用于确定采样节点的策略。采样策略可以包括以下之一:遍历采样策略和条件采样策略。
[0163] 根据本公开的实施例,可以将待存储图数据确定为用于训练图神经网络模型的样本图数据。待存储图数据可以根据本公开实施例所述的图数据存储方法进行存储。
[0164] 根据本公开的实施例,可以基于采样策略,从目标图切片数据中确定至少一个目标采样节点。针对至少一个目标采样节点,确定与目标采样节点对应的至少一个一阶邻居节点。例如,可以根据目标采样节点,确定存储于GPU的目标图切片数据中是否存在与目标采样节点对应的一阶邻居节点。在确定存储于GPU的目标图切片数据中存在与目标采样节点对应的一阶邻居节点的情况下,从存储于GPU的目标图切片数据中获取与目标采样节点对应的一阶邻居节点。在确定存储于GPU的目标图切片数据中不存在与目标采样节点对应的一阶邻居节点的情况下,可以确定存储于内部存储器的关联图切片数据中是否存在与目标采样节点对应的一阶邻居节点。在确定存储于内部存储器的关联图切片数据中存在与目标采样节点对应的一阶邻居节点的情况下,从存储于内部存储器的关联图切片数据中获取与目标采样节点对应的一阶邻居节点。在确定存储于内部存储器的关联图切片数据中不存在与目标采样节点对应的一阶邻居节点的情况下,从存储于外部存储器的至少两个待存储图切片数据中获取与目标采样节点对应的一阶邻居节点。由此,可以获得与目标采样节点对应的至少一个一阶邻居节点。
[0165] 根据本公开的实施例,可以针对与目标采样节点至少一个一阶邻居节点中的一阶邻居节点,利用与上述类似的方式确定与一阶邻居节点对应的至少一个邻居节点。与一阶邻居节点对应的邻居节点可以称为目标采样节点的二阶邻居节点。以此类推,可以获得与目标采样节点对应的预定阶数的邻居节点。预定阶数可以根据实际业务需求进行配置,在此不作限定。例如,预定阶数可以是三阶。
[0166] 根据本公开的实施例,上文所述的邻居节点的采样方式是先从GPU中查找,在确定GPU中不存在邻居节点的情况下,再从内部存储器中查找,在确定内部存储器不存在邻居节点的情况下,再从外部存储器中查找。此外,还可以根据实际业务需求配置采样方式。例如,可以在GPU中查找邻居节点,在确定GPU中不存在邻居节点的情况下,不再访问内部存储器和外部存储器。备选地,可以在GPU中查找,在确定GPU中不存在邻居节点的情况下,可以在内部存储器中查找,在确定内部存储器不存在邻居节点的情况下,不再访问外部存储器。
[0167] 根据本公开的实施例,针对至少一个目标采样节点中的目标采样节点,可以根据目标采样节点的目标采样节点相关数据和与目标采样节点对应的至少一阶邻居节点的邻居节点采样相关数据,得到与目标采样节点对应的至少一阶子图数据。由此,可以获得与至少一个目标采样节点各自对应的至少一阶子图数据。
[0168] 根据本公开的实施例,图引擎可以向深度学习平台发送与至少一个目标采样节点各自对应的至少一阶子图数据。深度学习平台可以利用至少一阶子图数据训练图神经网络模型。
[0169] 根据本公开的实施例,以采样为例,由于图切分算法保证了待存储图切片数据内部的点关联度比较高,因此,在GPU上进行一阶邻居采样的情况下,有比较高的概率从GPU中获取一阶邻居节点。基于一阶邻居节点进行二阶邻居节点采用,采样操作发生在GPU上的概率较大。在GPU中不存在邻居节点的情况下,才会向内部存储器和外部存储器发起查询请求。由于GPU的访问速度最快,内部存储器的访问速度次之,因此,能够实现将访问操作出现在GPU和内部存储器上的概率较大,从而提高了数据处理效率。此外,还可以支持用户配置采样策略。
[0170] 根据本公开的实施例,基于图数据存储方案和图数据访问方案来进行图神经网络模型的训练,提高了模型训练速度。
[0171] 根据本公开的实施例,上述图神经网络模型的训练方法还可以包括如下操作。
[0172] 响应于接收到来自深度学习平台的训练完成指令,生成存储切换指令。响应于检测到存储切换指令,在根据至少两个待存储图切片数据得到新的目标图切片数据和新的关联图切片数据的情况下,重复执行获得至少一阶子图数据,向深度学习平台发送至少一阶子图数据,以便深度学习平台利用至少一阶子图数据训练图神经网络模型的操作,直至在将至少两个待存储图切片数据中预定数目的待存储图切片数据确定为目标图切片数据的情况下,执行完成利用目标图切片数据训练图神经网络模型的训练操作。
[0173] 根据本公开的实施例,在利用目标图切片数据完成针对图神经网络模型的训练操作之后,可以根据至少两个待存储图切片数据,得到新的目标图切片数据和新的关联图切片数据。
[0174] 根据本公开的实施例,可以重复执行以下操作,直至满足预定结束条件。基于采样策略,从新的目标图切片数据中确定至少一个新的目标采样节点。根据至少一个新的目标采样节点,从新的目标图切片数据、新的关联图切片数据和至少两个待存储图切片数据之一中获取与至少一个新的目标采样节点对应的至少一阶新的邻居节点。根据至少一个新的目标采样节点的目标采样节点相关数据和至少一阶新的邻居节点的邻居节点相关数据,得到至少一阶新的子图数据。向深度学习平台发送至少一阶新的子图数据,以便深度学习平台利用至少一阶新的子图数据训练图神经网络模型。
[0175] 根据本公开的实施例,预定结束条件可以指在将至少两个待存储图切片数据中预定数目的待存储图切片数据确定为目标图切片数据的情况下,执行完成利用目标图切片数据训练图神经网络模型的训练操作。
[0176] 根据本公开的实施例,可以根据采样策略,对目标图切片数据中的目标采样点发起一轮采样,再将采样得到的至少一阶子图数据发送给深度学习平台,以便深度学习平台利用至少一阶子图数据训练图神经网络模型。由此,完成一个轮次的模型训练。上述方式操作会导致子图数据存在偏差,即子图数据大多数都是目标采样节点的邻居节点。为此,可以周期性地将新的目标图切片数据存储至GPU和将新的关联图切片数据存储至内部存储器,以便每个目标节点都有成为目标采样点的机会,由此,可以降低偏差。此外,系统也能够保持比较高的采样性能。
[0177] 根据本公开的实施例,操作S610可以包括如下之一操作。
[0178] 响应于接收到模型训练请求,基于遍历采样策略,将目标图切片数据中的全部目标节点确定为目标采样节点。
[0179] 响应于接收到模型训练请求,基于条件采样策略,将目标图切片数据中的部分目标节点确定为至少一个目标采样节点。
[0180] 根据本公开的实施例,条件采样策略可以指将满足预定采样条件的目标节点确定为目标采样节点的策略。例如,预定采样条件可以指目标采样节点是具有标注信息的目标节点。备选地,预定采样条件可以指目标采样节点的数目等于预定采样数目阈值。
[0181] 下面参考图7,结合具体实施例对根据本公开实施例所述的图神经网络模型的训练方法做进一步说明。
[0182] 图7示意性示出了根据本公开实施例的图神经网络模型的训练过程的示例示意图。
[0183] 如图7所示,在700中,图引擎可以包括图引擎模块1、图引擎模块2和图引擎模块3。图引擎模块1可以包括GPU。GPU可以包括4个GPU卡。此外,图引擎模块1可以包括多卡采样单元和汇聚单元。图引擎模块2可以包括关联图切片数据生成单元。图引擎模块3可以包括图切分单元。图引擎模块2和图引擎模块3会周期性运行用户配置的基于节点的图切分算法或系统集成的基于节点的图切分算法。
[0184] 图引擎模块3中的图切分单元,可以基于图切分算法,对待存储图数据进行划分,得到至少两个待存储图切片数据。可以将至少两个待存储图切片数据中的目标图切片数据(即图7中图引擎模块2中浅色的目标节点相关数据和目标邻居节点相关数据)通过图引擎模块2发送给图引擎模块1中的GPU。图引擎模块2基于图切分算法,根据目标图切片数据和至少两个待存储图数据,得到关联图切片数据(即图7中图引擎模块2中深色的关联节点相关数据和关联邻居节点相关数据)。图引擎模块2向目标图切片数据发送给图引擎模块1之后,图引擎模块2将存储于图引擎模块2中的目标图切片数据删除。图引擎模块2中最后保留关联图切片数据。
[0185] 图引擎模块1对目标图切片数据进行划分,得到4个目标图分区数据。将4个目标图分区数据存储至4个GPU卡。各个GPU卡存储的目标图切片数据彼此不同。
[0186] 图引擎模块1响应于接收到来自客户端采样请求,图引擎模块1中的多卡采样单元可以从4个目标图分区数据中进行采样,得到至少一阶子图数据。图引擎模块1中的汇聚单元对至少一阶子图数据进行汇聚。汇聚单元向客户端发送至少一阶子图数据。客户端向深度学习平台发送至少一阶子图数据。
[0187] 深度学习平台利用至少一阶子图数据训练图神经网络模型。可以利用图神经网络模型得到节点的节点向量。节点的节点向量和节点标识关联。
[0188] 图8示意性示出了根据本公开实施例的图数据处理方法的流程图。
[0189] 如图8所示,该方法800包括操作S810。
[0190] 在操作S810,将目标图数据输入图神经网络模型,得到输出结果。
[0191] 根据本公开的实施例,图神经网络模型可以是利用根据本公开实施例所述的图神经网络模型的训练方法训练得到的。
[0192] 根据本公开的实施例,图神经网络模型已经在监督、半监督、无监督和强化学习设置的广泛问题领域中进行了探索。图神经网络模型可以应用于多种领域,例如,推荐领域。
[0193] 本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
[0194] 以上仅是示例性实施例,但不限于此,还可以包括本领域已知的其他图数据存储方法、图数据访问方法、图神经网络模型的训练方法和图数据处理方法,只要能够降低通信开销和扩大单机存储能力即可。
[0195] 图9示意性示出了根据本公开实施例的图数据存储装置的框图。
[0196] 如图9所示,图数据存储装置900可以包括第一获得模块910、第二获得模块920、第一存储模块930、第二存储模块940和第三存储模块950。
[0197] 第一获得模块910,用于响应于接收到图数据存储请求,对待存储图数据进行划分,得到至少两个待存储图切片数据。
[0198] 第二获得模块920,用于根据至少两个待存储图切片数据,得到目标图切片数据和关联图切片数据。
[0199] 第一存储模块930,用于将目标图切片数据存储至GPU。
[0200] 第二存储模块940,用于将关联图切片数据存储至内部存储器。
[0201] 第三存储模块950,用于将至少两个待存储图切片数据存储至外部存储器。
[0202] 根据本公开的实施例,第二获得模块920可以包括第一确定子模块和第二确定子模块。
[0203] 第一确定子模块,用于从至少两个待存储图切片数据中确定目标图切片数据。
[0204] 第二确定子模块,用于根据目标图切片数据,从待存储图数据中确定关联图切片数据。
[0205] 根据本公开的实施例,GPU包括至少一个GPU卡。
[0206] 根据本公开的实施例,第一存储模块930可以包括第一获得子模块和第一存储子模块。
[0207] 第一获得子模块,用于对目标图切片数据进行划分,得到至少一个目标图分区数据。
[0208] 第一存储子模块,用于将至少一个目标图分区数据存储至至少一个GPU卡。
[0209] 根据本公开的实施例,第一获得子模块可以包括第一获得单元。
[0210] 第一获得单元,用于基于第一哈希算法对目标图切片数据进行划分,得到至少一个目标图分区数据。
[0211] 根据本公开的实施例,内部存储器包括至少一个内部存储区域。
[0212] 根据本公开的实施例,第二存储模块940可以包括第二获得子模块和第二存储子模块。
[0213] 第二获得子模块,用于对关联图切片数据进行划分,得到至少一个关联图分区数据。
[0214] 第二存储子模块,用于将至少一个关联图分区数据存储至至少一个内部存储区域。
[0215] 根据本公开的实施例,第二获得子模块可以包括第二获得单元。
[0216] 第二获得单元,用于基于第二哈希算法对关联图切片数据进行划分,得到至少一个关联图分区数据。
[0217] 根据本公开的实施例,第一获得模块910可以包括第三获得子模块。
[0218] 第三获得子模块,用于响应于接收到图数据存储请求,基于节点的图切分算法对待存储图数据进行划分,得到至少两个待存储图切片数据。
[0219] 根据本公开的实施例,上述图数据存储装置900还可以包括第二获得模块、第一删除模块、第二删除模块、第三存储模块和第四存储模块。
[0220] 第二获得模块,用于响应于检测到存储切换指令,根据至少两个待存储图切片数据,得到新的目标图切片数据和新的关联图切片数据。
[0221] 第一删除模块,用于删除GPU中存储的目标图切片数据。
[0222] 第二删除模块,用于删除内部存储器中存储的关联图切片数据。
[0223] 第三存储模块,用于将新的目标图切片数据存储至GPU。
[0224] 第四存储模块,用于将新的关联图切片数据存储至内部存储器。
[0225] 根据本公开的实施例,目标图切片数据与关联图切片数据之间的关系包括以下之一:目标图切片数据与关联图切片数据之间无交集和关联图切片数据包括目标图切片数据。
[0226] 根据本公开的实施例,目标图切片数据包括目标节点相关数据和目标邻居节点相关数据中的至少之一。目标节点相关数据包括目标节点数据和目标节点特征数据中的至少之一。目标邻居节点相关数据包括目标邻居节点数据和目标邻居节点特征数据中的至少之一。
[0227] 根据本公开的实施例,关联图切片数据包括关联节点相关数据和关联邻居节点相关数据中的至少之一。关联节点相关数据包括关联节点数据和关联节点特征数据中的至少之一。关联邻居节点相关数据包括以下至少之一:关联邻居节点数据和关联邻居节点特征数据。
[0228] 图10示意性示出了根据本公开实施例的图数据访问装置的框图。
[0229] 如图10所示,图数据访问装置1000可以包括第一获取模块1010和第二获取模块1020。
[0230] 第一获取模块1010,用于响应于接收到图数据访问请求,获取待访问标识。
[0231] 第二获取模块1020,用于在确定目标图切片数据中存在与待访问标识相匹配的匹配标识的情况下,根据匹配标识,从目标图切片数据中获取访问结果。
[0232] 根据本公开的实施例,目标图切片数据是根据本公开实施例的图数据存储装置中存储于图形处理器GPU中的待存储图数据。
[0233] 根据本公开的实施例,GPU包括至少一个GPU卡。
[0234] 根据本公开的实施例,第二获取模块1020可以包括第一获取子模块、第三确定子模块、发送子模块和接收子模块。
[0235] 第一获取子模块,用于在确定当前目标图分区数据中存在与待访问标识相匹配的匹配标识的情况下,根据匹配标识,从目标图切片数据中获取访问结果。
[0236] 在确定当前目标图分区数据中不存在与待访问标识相匹配的匹配标识的情况下,[0237] 第三确定子模块,用于确定与待访问标识对应的GPU卡。
[0238] 发送子模块,用于向与待访问标识对应的GPU卡发送待访问标识,以便与待访问标识对应的GPU卡在确定与待访问标识对应的GPU卡的目标图分区数据中存在与待访问标识相匹配的匹配标识的情况下,根据匹配标识,从目标图切片数据中获取访问结果。
[0239] 接收子模块,用于响应于接收到来自与待访问标识对应的GPU卡的访问结果。
[0240] 根据本公开的实施例,上述图数据访问装置1000还可以包括第一发送模块和接收模块。
[0241] 第一发送模块,用于在确定与待访问标识对应的GPU卡的目标图分区数据中不存在与待访问标识相匹配的匹配标识的情况下,向内部存储器发送待访问标识,以便内部存储器在确定关联图切片数据中存在与待访问标识相匹配的匹配标识的情况下,根据匹配标识,从关联图切片数据中获取访问结果。
[0242] 接收模块,用于响应于接收到来自与待访问标识对应的GPU卡的访问结果,其中,与待访问标识对应的GPU卡获得的访问结果是响应于接收到来自内部存储器的访问结果。
[0243] 根据本公开的实施例,关联图切片数据是根据本公开实施例的图数据存储方法中存储于内部存储器中的待存储图数。
[0244] 根据本公开的实施例,上述图数据访问装置1000还可以包括创建模块和添加模块。
[0245] 创建模块,用于根据待访问标识,创建第一访问任务。
[0246] 添加模块,用于将第一访问任务添加至与GPU对应的第一任务队列。
[0247] 根据本公开的实施例,第二获取模块1020可以包括第二获取子模块、第三获取子模块和第四获取子模块。
[0248] 第二获取子模块,用于利用与GPU对应的线程从第一任务队列中获取第一头部任务。
[0249] 第三获取子模块,用于利用与GPU对应的线程在确定第一头部任务是第一访问任务的情况下,从第一头部任务中获取待访问标识。
[0250] 第四获取子模块,用于利用与GPU对应的线程在确定目标图切片数据中存在与待访问标识相匹配的匹配标识的情况下,根据匹配标识,从目标图切片数据中获取访问结果。
[0251] 图11示意性示出了根据本公开另一实施例的图数据访问装置的框图。
[0252] 如图11所示,图数据访问装置1100可以包括第三获取模块1110和第二发送模块1120。
[0253] 第三获取模块1110,用于响应于接收到来自图形处理器GPU的待访问标识,在确定关联图切片数据中存在与待访问标识相匹配的匹配标识的情况下,根据匹配标识,从关联图切片数据中获取访问结果
[0254] 第二发送模块1120,用于向GPU发送访问结果。
[0255] 根据本公开的实施例,关联图切片数据是根据本公开实施例的图数据存储装置中存储于内部存储器中的待存储图数据。
[0256] 根据本公开的实施例,上述图数据访问装置1100还可以包括第三发送模块和第四发送模块。
[0257] 在确定关联图切片数据中不存在与待访问标识相匹配的匹配标识的情况下,[0258] 第三发送模块,用于向外部存储器发送待访问标识,以便外部存储器从至少两个待存储图切片数据中获取访问结果。
[0259] 第四发送模块,用于响应于接收到来自外部存储器的访问结果,向GPU发送访问结果。
[0260] 根据本公开的实施例,至少两个待存储图切片数据是根据本公开实施例的图数据存储装置中的待存储数据。
[0261] 根据本公开的实施例,第三获取模块1110可以包括创建子模块、添加子模块、第五获取子模块、第六获取子模块和第七获取子模块。
[0262] 创建子模块,用于响应于接收到来自GPU的待访问标识,根据待访问标识,创建第二访问任务。
[0263] 添加子模块,用于将第二访问任务添加至与内部存储器对应的第二任务队列。
[0264] 第五获取子模块,用于利用与内部存储器对应的线程从第二任务队列中获取第二头部任务。
[0265] 第六获取子模块,用于利用与内部存储器对应的线程在确定第二头部任务是第二访问任务的情况下,从第二头部任务中获取待访问标识。
[0266] 第七获取子模块,用于利用与内部存储器对应的线程在确定关联图切片数据中存在与待访问标识相匹配的匹配标识的情况下,根据匹配标识,从关联图切片数据中获取访问结果。
[0267] 图12示意性示出了根据本公开实施例的图神经网络模型的训练装置的框图。
[0268] 如图12所示,图神经网络模型的训练装置1200可以包括确定模块1210、第四获取模块1220、第三获得模块1230和第五发送模块1240。
[0269] 确定模块1210,用于响应于接收到模型训练请求,基于采样策略,从目标图切片数据中确定至少一个目标采样节点。
[0270] 第四获取模块1220,用于根据至少一个目标采样节点,从目标图切片数据、关联图切片数据和至少两个待存储图切片数据之一中获取与至少一个目标采样节点对应的至少一阶邻居节点。
[0271] 第三获得模块1230,用于根据至少一个目标采样节点的目标采样节点相关数据和至少一阶邻居节点的邻居节点相关数据,得到至少一阶子图数据。
[0272] 第五发送模块1240,用于向深度学习平台发送至少一阶子图数据,以便深度学习平台利用至少一阶子图数据训练图神经网络模型。
[0273] 根据本公开的实施例,目标图切片数据是根据本公开实施例的图数据存储装置中存储于图形处理器GPU中的待存储数据。关联图切片数据是根据本公开实施例的图数据存储装置中存储于内部存储器中的待存储图数据。至少两个待存储图切片数据是根据本公开实施例的图数据存储装置中存储于外部存储器中的待存储图数据。
[0274] 根据本公开的实施例,确定模块1210可以包括以下之一:
[0275] 第四确定子模块,用于响应于接收到模型训练请求,基于遍历采样策略,将目标图切片数据中的全部目标节点确定为目标采样节点。
[0276] 第五确定子模块,用于响应于接收到模型训练请求,基于条件采样策略,将目标图切片数据中的部分目标节点确定为至少一个目标采样节点。
[0277] 根据本公开的实施例,上述图神经网络模型的训练装置1200还可以包括生成模块和执行模块。
[0278] 生成模块,用于响应于接收到来自深度学习平台的训练完成指令,生成存储切换指令。
[0279] 执行模块,用于响应于检测到存储切换指令,在根据至少两个待存储图切片数据得到新的目标图切片数据和新的关联图切片数据的情况下,重复执行获得至少一阶子图数据,向深度学习平台发送至少一阶子图数据,以便深度学习平台利用至少一阶子图数据训练图神经网络模型的操作,直至在将至少两个待存储图切片数据中预定数目的待存储图切片数据确定为目标图切片数据的情况下,执行完成利用目标图切片数据训练图神经网络模型的训练操作。
[0280] 图13示意性示出了根据本公开实施例的图数据处理装置的框图。
[0281] 如图13所示,图数据处理装置1300可以包括第四获得模块1310。
[0282] 第四获得模块1310,用于将目标图数据输入图神经网络模型,得到输出结果。
[0283] 根据本公开的实施例,图神经网络模型是利用根据本公开实施例的图神经网络模型的训练装置训练得到的。
[0284] 根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
[0285] 根据本公开的实施例,一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行如上所述的方法。
[0286] 根据本公开的实施例,一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行如上所述的方法。
[0287] 根据本公开的实施例,一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现如上所述的方法。
[0288] 图14示意性示出了根据本公开实施例的适于实现图数据存储方法、图数据访问方法、图神经网络模型的训练方法和图数据处理方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
[0289] 如图14所示,电子设备1400包括计算单元1401,其可以根据存储在只读存储器(ROM)1402中的计算机程序或者从存储单元1408加载到随机访问存储器(RAM)1403中的计算机程序,来执行各种适当的动作和处理。在RAM 1403中,还可存储电子设备1400操作所需的各种程序和数据。计算单元1401、ROM 1402以及RAM 1403通过总线1404彼此相连。输入/输出(I/O)接口1405也连接至总线1404。
[0290] 电子设备1400中的多个部件连接至I/O接口1405,包括:输入单元1406,例如键盘、鼠标等;输出单元1407,例如各种类型的显示器、扬声器等;存储单元1408,例如磁盘、光盘等;以及通信单元1409,例如网卡、调制解调器、无线通信收发机等。通信单元1409允许电子设备1400通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
[0291] 计算单元1401可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1401的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元1401执行上文所描述的各个方法和处理,例如图数据存储方法、图数据访问方法、图神经网络模型的训练方法和图数据处理方法。例如,在一些实施例中,图数据存储方法、图数据访问方法、图神经网络模型的训练方法和图数据处理方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1408。在一些实施例中,计算机程序的部分或者全部可以经由ROM 1402和/或通信单元1409而被载入和/或安装到电子设备1400上。当计算机程序加载到RAM 1403并由计算单元1401执行时,可以执行上文描述的图数据存储方法、图数据访问方法、图神经网络模型的训练方法和图数据处理方法的一个或多个步骤。备选地,在其他实施例中,计算单元1401可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行图数据存储方法、图数据访问方法、图神经网络模型的训练方法和图数据处理方法。
[0292] 本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
[0293] 用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
[0294] 在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD‑ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
[0295] 为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
[0296] 可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
[0297] 计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端‑服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以是分布式系统的服务器,或者是结合了区块链的服务器。
[0298] 应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
[0299] 上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。