CN116306867A - 图数据采样、图神经网络训练方法及系统、设备和介质 - Google Patents
图数据采样、图神经网络训练方法及系统、设备和介质 Download PDFInfo
- Publication number
- CN116306867A CN116306867A CN202310200463.1A CN202310200463A CN116306867A CN 116306867 A CN116306867 A CN 116306867A CN 202310200463 A CN202310200463 A CN 202310200463A CN 116306867 A CN116306867 A CN 116306867A
- Authority
- CN
- China
- Prior art keywords
- sampling
- sampled
- node
- data
- graph
- 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
- 238000005070 sampling Methods 0.000 title claims abstract description 510
- 238000000034 method Methods 0.000 title claims abstract description 151
- 238000012549 training Methods 0.000 title claims abstract description 98
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 85
- 230000015654 memory Effects 0.000 claims description 81
- 230000008569 process Effects 0.000 claims description 68
- 238000003062 neural network model Methods 0.000 claims description 17
- 230000011218 segmentation Effects 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 20
- 238000012545 processing Methods 0.000 description 11
- 238000013459 approach Methods 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 6
- 230000001174 ascending effect Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000013598 vector Substances 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 239000003814 drug Substances 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000000059 patterning Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供一种图数据采样、图神经网络训练方法及系统、设备和介质,其中图数据采样方法应用于第一节点设备,包括:获取采样任务,并确定采样任务对应的多个待采样对象;对于任一待采样对象,根据预设的分配关系,确定存放待采样对象的目标数据切片;如果目标数据切片存储于第一节点设备,使用第一节点设备的资源对待采样对象执行采样任务,以得到待采样对象的采样结果;如果目标数据切片存储于第二节点设备,调用第二节点设备的资源对待采样对象执行采样任务,以得到待采样对象的采样结果;根据各待采样对象的采样结果,得到采样任务的采样结果。本申请实施例可以提升图数据的采样效率,进而提升图神经网络的训练效率。
Description
技术领域
本申请实施例涉及数据处理技术领域,具体涉及一种图数据采样、图神经网络训练方法及系统、设备和介质。
背景技术
图数据是一种描述实体和实体间关系的数据结构,可以在较多应用场景下建模数据关系。随着神经网络技术的发展,处理图数据的图神经网络(Graph Neural Network,GNN)应运而生;图神经网络可以视为是处理图数据的神经网络模型,其广泛应用在数据推荐、安全风控、药物分子预测等应用场景下。
在训练图神经网络时,需要对作为训练数据的图数据进行采样,因此如何提升图数据的采样效率,进而提升图神经网络的训练效率,成为了本领域技术人员亟需解决的技术问题。
发明内容
有鉴于此,本申请实施例提供一种图数据采样、图神经网络训练方法及系统、设备和介质,以提升图数据的采样效率,进而提升图神经网络的训练效率。
为实现上述目的,本申请实施例提供如下技术方案。
第一方面,本申请实施例提供一种图数据采样方法,应用于第一节点设备,所述方法包括:
获取采样任务,并确定所述采样任务对应的多个待采样对象;
对于任一待采样对象,根据预设的分配关系,确定存放所述待采样对象的目标数据切片;所述分配关系至少记录有切分后的图数据所分配的数据切片,其中,切分后的图数据分配到多个数据切片进行存放,多个数据切片存储在多个节点设备;
如果所述目标数据切片存储于第一节点设备,使用第一节点设备的资源对所述待采样对象执行采样任务,以得到所述待采样对象的采样结果;
如果所述目标数据切片存储于第二节点设备,调用第二节点设备的资源对所述待采样对象执行采样任务,以得到所述待采样对象的采样结果;
根据各待采样对象的采样结果,得到所述采样任务的采样结果。
第二方面,本申请实施例提供一种图神经网络训练方法,包括:
获取图数据的采样结果;所述图数据的采样结果基于上述第一方面所述的图数据采样方法确定;
根据图数据的采样结果,训练图神经网络。
第三方面,本申请实施例提供一种图神经网络训练系统,包括:
存储层,所述存储层用于实现图数据的切分,以及数据切片在对应节点设备的分布式存储;
图算子层,所述图算子层提供CPU的算子和GPU的算子;
接口层和分布式采样层,所述接口层和分布式采样层至少提供采样器的接口,所述采样器被配置为执行如上述第一方面所述的图数据采样方法;
模型层,用于支持图神经网络的训练。
第四方面,本申请实施例提供一种节点设备,包括至少一个存储器和至少一个处理器,所述存储器存储一条或多条计算机可执行指令,所述处理器调用所述一条或多条计算机可执行指令,以执行如上述第一方面所述的图数据采样方法,或者如上述第二方面所述的图神经网络训练方法。
第五方面,本申请实施例提供一种存储介质,所述存储介质存储一条或多条计算机可执行指令,所述一条或多条计算机可执行指令被执行时实现如上述第一方面所述的图数据采样方法,或者如上述第二方面所述的图神经网络训练方法。
第六方面,本申请实施例提供一种计算机程序,所述计算机程序被执行时实现如上述第一方面所述的图数据采样方法,或者如上述第二方面所述的图神经网络训练方法。
本申请实施例提供的图数据采样方法可在对图数据进行切分和分布式存储的基础上进行,切分后的图数据可分配到多个数据切片进行存放,并且多个数据切片存储在多个节点设备,切分后的图数据所分配的数据切片可通过分配关系进行记录。从而,在对图数据进行采样时,第一节点设备可获取采样任务,并确定所述采样任务对应的多个待采样对象;对于任一待采样对象,第一节点设备可根据预设的分配关系,确定存放待采样对象的目标数据切片;如果目标数据切片存储于第一节点设备,则本申请实施例可使用第一节点设备的资源对待采样对象执行采样任务,以得到待采样对象的采样结果;如果目标数据切片存储于第二节点设备,则本申请实施例可调用第二节点设备的资源对待采样对象执行采样任务,以得到待采样对象的采样结果;进而,第一节点设备可根据各待采样对象的采样结果,得到所述采样任务的采样结果。
可见,在将切分后的图数据分配给多个数据切片,并且多个数据切片存储在多个节点设备后,节点设备在处理采样任务时,只对采样任务中本地数据切片所存放的待采样对象执行采样任务;对于非本地数据切片存放的待采样对象,节点设备通过调用非本地数据切片对应的其他节点设备来执行采样任务,因此采样任务对应的多个待采样对象可以在多个节点设备异步的并行执行采样任务,从而高效利用多个节点设备的资源来执行多个待采样对象的采样任务,实现多个节点设备之间的资源合理分配和负载均衡,提升图数据的采样效率。可见,本申请实施例提供的图数据采样方法可以显著提升图数据的采样效率,进而为提升图神经网络的训练效率提供基础。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1A为图数据的结构示例图。
图1B为图数据的示例图。
图2A为基于批次的图神经网络的训练过程示例图。
图2B为采样子图的示例图。
图3A为本申请实施例提供的图数据采样的过程示例图。
图3B为本申请实施例提供的图数据采样的实现示例图。
图4A为本申请实施例提供的图数据切分的方法流程图。
图4B为本申请实施例提供的分布式存储的方法流程图。
图4C为本申请实施例提供的确定热数据特征和冷数据特征的方法流程图。
图4D为分布式存储的实现示例图。
图5为本申请实施例提供的图数据采样的方法流程图。
图6A为本申请实施例提供的子图采样的方法流程图。
图6B为子图采样的实现示例图。
图6C为本申请实施例提供的子图特征采样的方法流程图。
图7A为本申请实施例提供的图神经网络训练方法的流程图。
图7B为本申请实施例提供的图神经网络训练系统的架构框图。
图8A为本申请实施例提供的进程部署的示例图。
图8B为本申请实施例提供的进程部署的另一示例图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图数据是一种表示实体和实体间关系的数据结构,很多应用场景下的数据均可以使用图数据来表示,比如社交网络、数据推荐、交通网络等应用场景下的数据均可以使用图数据来表示。在图数据中,节点可用于表示实体,节点之间的边(有向边或无向边)可用于表示实体之间的关系;在图数据中,节点和边可以具有特征,特征可以是整数和浮点数构成的向量。因此在图数据的示例结构中,图数据可以包括节点、边、节点特征以及边特征。
为便于理解,以三个节点为例,图1A示例性的示出了图数据的结构示例图,如图1A所示,图数据中的节点1、2和3可以分别表示3个实体,节点之间连接的边可以表示实体之间的关系;例如,边11表示节点1所表示的实体与节点2所表示的实体之间的关系,边12表示节点2所表示的实体与节点3所表示的实体之间的关系,边13表示节点1所表示的实体与节点3所表示的实体之间的关系。对于节点1、2和3,以及边11、12和13,每个节点和每个边可以具有特征。
在一个示例中,图1B示例性的示出了图数据的示例图,以人、房屋、土地这三个实体为例,在图数据中,人、房屋、土地可分别使用节点进行表示,并且人对房屋的所有关系使用相应节点之间连接的边表示,土地对房屋的包含关系使用相应节点之间连接的边表示,人对土地的使用关系使用节点之间连接的边表示。
需要说明的是,在实际应用场景下,图数据的规模可能较大,例如图数据的节点数量较多、边数量较多,并且节点和边具有多种类型以及丰富的特征。以数据推荐、安全风控等应用场景为例,图数据中边的数量可能达到十亿甚至百亿的级别,节点数量可能为亿至十亿的级别,并且节点和边上具有丰富的特征。因此图数据的具体规模需要基于实际应用场景而定,图1A和图1B仅是通过示例来简要的说明图数据结构,不应对具体的图数据结构和规模造成限制。
另外需要说明的是,对于有向边连接的两个节点而言,发出有向边的节点可称为源节点,有向边指向的节点可称为目的节点。例如,在图1A示例性中,节点1通过边11(边11为有向边的形式)指向节点2,则节点1为源节点,节点2为目的节点。
图学习是深度学习在图数据上的应用,以图神经网络(GNN)为代表的图学习技术在数据推荐、安全风控、分子预测等应用场景下具有广泛的应用。图神经网络的训练方式可以分为基于全图的训练和基于批次的训练,对于图数据规模较大的应用场景(例如数据推荐、安全风控等应用场景),可以采用基于批次的训练方式来训练图神经网络。图2A示例性的示出了基于批次的图神经网络的训练过程示例图,如图2A所示,在基于批次的训练方式中,图神经网络的训练过程可以分为:采样阶段210和训练阶段220。
采样阶段210主要是对作为训练数据的图数据进行采样,从而得到带有特征的多个子图。采样阶段210可以进一步细分为子图采样阶段211以及子图特征采样阶段212。
子图采样阶段211主要用于采样得到多个子图,子图可以由节点以及节点的邻居节点构成。在子图采样阶段211,可以通过指定待采样节点或者待采样边,从而采样得到由节点以及邻居节点构成的子图。可选的,在子图采样阶段211,针对指定的待采样节点或者待采样边,可以通过采样待采样节点的邻居节点构成子图,或者采样待采样边所连接的节点以及邻居节点构成子图。例如,对于待采样节点,可采样待采样节点的邻居节点,从而由待采样节点和待采样节点的邻居节点构成子图。又例如,对于待采样边,可采样待采样边所连接的两个节点以及该两个节点的邻居节点,从而由待采样边所连接的两个节点以及该两个节点的邻居节点构成子图。
为便于理解,图2B示例性的示出了采样子图的示例图,如图2B所示,假设指定待采样节点为节点1、2、3和4,则可采样节点1的邻居节点5和6、采样节点2的邻居节点7和9、采样节点3的邻居节点6和8、采样节点4的邻居节点7,从而由各待采样节点以及各待采样节点的邻居节点构成子图。需要说明的是,在基于批次的图数据采样中,通过多次指定待采样节点来采样子图(一次可以指定多个待采样节点),则可得到多个子图。
子图特征采样阶段212主要查找每个子图的特征(例如,查找每个子图中每个节点的特征或每条边的特征),得到带有特征的子图。
训练阶段220主要是通过图神经网络对带有特征的子图进行学习训练。例如,通过消息传递的方式迭代更新子图中节点或边的嵌入(embedding)表示,从而最终用嵌入表示向量来表示节点或者边的信息。
在图神经网络的训练过程中,训练阶段220的计算量相比于采样阶段210较小,图神经网络的训练瓶颈主要集中在采样阶段210。因此如何提升采样阶段210的效率是提升图神经网络的训练效率的关键所在。
基于此,本申请实施例提供改进的图数据采样方案,通过分布式的采样方式,对待采样对象(待采样节点或者待采样边)进行分布式采样,从而提升图数据的采样效率。可选的,分布式的采样方式可以通过分布式的采样器执行实现,分布式的采样器是指分布式的具有图数据采样能力的多个采样器。本申请实施例可以设置具有图数据采用能力多个分布式采样器(多个分布式采样器可运行于多个节点设备,一个节点设备可运行至少一个采样器),从而对待采样对象(待采样节点或者待采样边)进行分布式采样,进而提升图数据的采样效率。在本申请实施例中,分布式的采样器可以用于对待采样对象(待采样节点或者待采样边),进行子图采样和/或子图特征采样。
作为可选实现,基于图数据的数据量较大,单个节点设备可能无法存储容纳图数据,因此本申请实施例可以将图数据切分为多个数据切片,并在多个节点设备中存储数据切片。此处所指的节点设备可以是具有数据处理能力的电子设备,例如终端设备、服务器设备等。可选的,本申请实施例可以是在对图数据进行切分和分布式存储的基础上,利用多个节点设备中运行的采样器,对图数据进行分布式采样。例如,在进行图数据采样之前,本申请实施例可以对图数据进行切分,使得切分后的图数据分配到多个数据切片上,多个数据切片可以在多个节点设备中进行存储,并且一个节点设备可以运行至少一个采样器(例如一个节点设备运行一个或多个采样器),从而多个节点设备运行的采样器可以通过分布式的方式,实现图数据采样。
可选的,图3A示例性的示出了本申请实施例提供的图数据采样的过程示例图,如图3A所示,该过程可以包括图数据切分阶段31,分布式存储阶段32和采样阶段210。图数据切分阶段31主要是对图数据进行切分,使得切分后的图数据分配到多个数据切片上。分布式存储阶段32主要是在节点设备上,对数据切片进行分布式存储。采样阶段210主要是基于数据切片,利用分布式的采样器对待采样节点或待采样边进行子图采样和子图特征采样。
为便于理解,以图数据被切分为两个数据切片为例,图3B示例性的示出了本申请实施例提供的图数据采样的可选实现示例图,如图3B所示,基于单个节点设备无法存储容纳图数据,图数据可以被切分为数据切片301和数据切片302,数据切片301可以在节点设备311进行存储,数据切片302可以在节点设备312进行存储;同时,节点设备311可运行多个采样器321至32n(n为节点设备311所运行的采样器数量),并且节点设备312也可运行多个采样器331至33m(m为节点设备312所运行的采样器数量),n与m可以相同也可以不同。
在进行图数据采样时,如果一个采样器获取到采样任务,则针对采样任务指示的任一待采样节点或者待采样边(采样任务可指示多个待采样节点或者待采样边),采样器可确定待采样节点或者待采样边所位于的目标数据切片;如果目标数据切片对应的节点设备与采样器对应的节点设备属于相同节点设备,则采样器可通过本地采样方式对待采样节点或者待采样边进行子图采样和子图特征采样,例如利用本地资源对待采样节点或者待采样边进行子图采样和子图特征采样;如果目标数据切片对应的节点设备与采样器对应的节点设备不属于相同节点设备,则采样器可通过远程采样方式对待采样节点或者待采样边进行采样,例如将待采样节点或者待采样边传递给目标数据切片对应的节点设备,由目标数据切片对应的节点设备中运行的采样器对待采样节点或者待采样边进行子图采样和子图特征采样。
在一个示例中,结合图3B所示,假设节点设备311运行的采样器321获取到一个采样任务,针对采样任务指示的任一待采样节点,如果待采样节点对应的数据切片为数据切片301,由于数据切片301存储于节点设备311,并且采样器321也运行于节点设备311,因此采样器321可调用节点设备311的本地资源,对待采样节点进行子图采样和子图特征采样;如果待采样节点对应的数据切片为数据切片302,由于数据切片302存储于节点设备312,而采样器321运行于节点设备311,因此采样器321需通过远程采样方式,将待采样节点传递给节点设备312,从而由节点设备312中运行的采样器调用节点设备312的资源,对待采样节点进行子图采样和子图特征采样。
基于上述思路,下面分别对本申请实施例提供的图数据切分阶段31,分布式存储阶段32和采样阶段210的可选实现进行介绍。
作为可选实现,图数据可以包括节点、边、节点特征以及边特征,因此对图数据进行切分并分配到多个数据切片,可以视为是将图数据中的节点、边、节点特征以及边特征分配到多个数据切片;节点、边、节点特征以及边特征可在所分配的数据切分进行存放。可选的,图4A示例性的示出了本申请实施例提供的图数据切分的方法流程图,上述描述的图数据切分阶段31可通过图4A所示方法流程实现。参照图4A,该方法流程可以包括如下步骤。
在步骤S410中,对于图数据中的节点,从多个数据切片中确定为节点分配的数据切片,其中,多个数据切片存储在多个节点设备,一个节点设备存储至少一个数据切片。
本申请实施例可设置用于存放数据的多个数据切片,并且多个数据切片存储在多个节点设备,一个节点设备存储至少一个数据切片。可选的,每个节点设备所存储的数据切片的数量可以相同或不同,每个数据切片的数据存放量可以相同或不同,具体可视实际情况而定,本申请实施例并不设限。在设置多个数据切片后,本申请实施例可为图数据中的各节点分配数据切片,使得节点在所分配的数据切片进行存放;此处为节点分配数据切片是指,为节点分配存放节点数据的数据切片。
作为可选实现,对于图数据的节点,本申请实施例可根据节点的标识以及数据切片的数量,从多个数据切片中确定为节点分配的数据切片。在图数据中,节点和边可以具有标识,节点的标识可用于区分不同的节点,边的标识可以用于区分不同的边,标识可以是ID形式,标识的数值可选为整数。在实现示例中,对于节点,本申请实施例可根据节点的标识以及数据切片的数量进行哈希(hash)运算,将哈希运算的结果作为节点分配的数据切片的序号(即为节点分配的数据切片的序号与哈希运算的结果相对应),以确定出为节点分配的数据切片。以哈希运算为取模运算为例,则本申请实施例可使用节点的标识对数据切片的数量进行取模运算,从而将取模运算的结果作为节点分配的数据切片的序号。
在一个具体示例中,对于一个节点,假设节点的标识为15(节点的标识的数值可以为整数),数据切片的数量为4(对应的数据切片序号为0、1、2和3),则可利用节点的标识(15)对数据切片的数量(4)进行取模运算,得到取模运算结果为3(15%4=3);从而为节点分配序号为3的数据切片,即节点可分配到序号为3的数据切片进行存放。
在可选实现中,步骤S410可以是为图数据的源节点分配数据切片;例如,对于图数据的源节点,本申请实施例可根据源节点的标识以及数据切片的数量,从多个数据切片中确定为源节点分配的数据切片;可选实现过程可参照前文相应部分的描述。
在步骤S411中,对于图数据中的边,按照边的源节点所位于的数据切片,为边分配数据切片。
在为边分配数据切片时,本申请实施例可将边分配到边的源节点所分配的数据切片上,即边按照其源节点所位于的数据切片进行分配。此处为边分配数据切片是指,为边分配存放边数据的数据切片。
在步骤S412中,对于图数据中的特征,从多个数据切片中确定为特征分配的数据切片。
图数据中的特征可以是图数据中节点的特征以及边的特征。在可选实现中,对于图数据中的特征,本申请实施例可以按照随机分配方式或者基于被采样概率的分配方式,为特征分配数据切片。可选的,随机分配是指将特征随机的分配到不同的数据切片上;例如,针对图数据中的特征,本申请实施例可从多个数据切片中随机确定数据切片,将特征分配到随机确定的数据切片进行存放。
可选的,基于被采样概率的分配方式是指:根据节点的被采样概率对节点进行排序(可以是根据节点的被采样概率进行升序或降序排序);进而按照排序顺序,将节点关联的特征(节点关联的特征可能是节点的特征,也可能是目的节点对应的边所对应的特征),以循环方式依次分配到各个数据切片上。由于节点的数量一般大于数据切片的数量,因此在按照排序顺序,将节点关联的特征依次分配到各个数据切片上时,是以循环方式进行;也就是说,在按照排序顺序,将节点关联的特征依次分配到数据切片上时,如果节点关联的特征分配到了最后一个数据切片,则循环回第一个数据切片,并继续按照排序顺序,为剩余节点关联的特征依次分配数据切片,直至所有特征完成数据切片的分配。在一个实现示例中,假设节点的数量为5个,数据切片的数量为4个(对应的数据切片序号为0、1、2和3),且在基于节点的被采样概率进行排序后,排序顺序为(节点2、节点3、节点1、节点4和节点5);则按照排序顺序,节点2关联的特征分配到数据切片0,节点3关联的特征分配到数据切片1,节点1关联的特征分配到数据切片2,节点4关联的特征分配到数据切片3,然后循环回数据切片0,将节点5关联的特征分配到数据切片0。
在步骤S413中,记录图数据的节点、边以及特征,与数据切片的分配关系。
在将图数据的节点、边以及特征(节点的特征和边的特征)分配到数据切片后,本申请实施例可记录节点、边以及特征所分配的数据切片,从而记录得到节点、边以及特征,与数据切片的分配关系。也就是说,分配关系中记录有任一节点所分配的数据切片、任一边所分配的数据切片、以及任一特征(任一节点的特征以及任一边的特征)所分配的数据切片。
在可选实现中,本申请实施例可以通过表记录上述分配关系,例如,设置切分路由表,由切分路由表记录上述分配关系。比如,切分路由表可记录节点、边以及特征,与数据切片的分配关系。所述分配关系可以在各个节点设备进行保存,或者所述分配关系可以保存在各个节点设备可以读取的存储设备中。
在实现图数据切分,并将切分后的图数据存放到多个数据切片后,本申请实施例可在各个节点设备对数据切片进行分布式存储。也就是说,在一个数据切片存放所分配的节点、边以及特征的基础上,存储该数据切片的节点设备可以对该数据切片中存放的节点、边以及特征进行分布式存储。可选的,图4B示例性的示出了本申请实施例提供的分布式存储的方法流程图,上述描述的分布式存储阶段32可通过图4B所示方法流程实现。参照图4B,该方法流程可以包括如下步骤。
在步骤S420中,对于数据切片中存放的节点和边,将节点和边存放在节点设备的CPU锁页内存或者GPU显存中。
对于数据切片中存放的节点和边,存储数据切片的节点设备可将节点和边存储到GPU显存或者CPU锁页内存中。可选的,节点设备可以按照节点设备实际的存储资源,选择将节点和边存放在CPU锁页内存或者GPU显存中。例如,如果节点设备的GPU显存足以存储数据切片的节点和边,则可将数据切片的节点和边存储在GPU显存中;如果节点设备的GPU显存不足以存储数据切片的节点和边,则可将数据切片的节点和边存储在CPU锁页内存中。
其中,CPU锁页内存是指:为使GPU能直接访问CPU内存,避免过多的复制操作,操作系统可以将CPU内存进行锁页(pinned page),锁页的CPU内存称为CPU锁页内存;CPU锁页内存会被操作系统标记为不可被换出,从而GPU可以直接访问CPU锁页内存。
在步骤S421中,对于数据切片中存放的特征,确定热数据特征和冷数据特征,将热数据特征存储到节点设备的GPU显存,将冷数据特征存储到节点设备的CPU锁页内存。
在可选实现中,节点设备的CPU内存和GPU内存可以通过统一张量(UnifiedTensor)进行统一管理,从而减少GPU和CPU之间的数据传输和数据拷贝。从而数据切片中存放的特征可以通过Unified Tensor进行存储;在存储数据切片中存放的特征时,本申请实施例可区分数据切片中存放的热数据特征和冷数据特征,从而将热数据特征存储到节点设备的GPU显存,将冷数据特征存储到节点设备的CPU锁页内存。可选的,如果节点设备的GPU组是通过NVLink连接,则热数据特征可均匀存储在NVLink连接的GPU组显存中的每个GPU显存。需要说明的是,NVLink是一种总线及其通信协议;NVLink采用点对点结构、串列传输,用于CPU与GPU之间的连接,也可用于多个GPU之间的相互连接。
在可选实现中,本申请实施例可根据特征关联的节点的入度或者被采样概率,确定特征是热数据特征还是冷数据特征,热数据特征所关联的节点的入度或者被采样概率,高于冷数据特征所关联的节点的入度或者被采样概率。作为可选实现,图4C示例性的示出了本申请实施例提供的确定热数据特征和冷数据特征的方法流程图,参照图4C,该方法流程可以包括如下步骤。
在步骤S430中,对于数据切片中存放的特征,确定特征关联的节点;将特征关联的节点,按照节点的入度或者被采样概率进行节点排序。
可选的,在特征为节点的特征时,特征关联的节点为特征对应的节点;在特征为边的特征时,特征关联的节点为特征对应的边所连接的节点(例如特征对应的边所连接的目的节点)。对于数据切片中存放的各个特征,本申请实施例可确定各个特征所关联的节点,从而将各个特征所关联的节点,按照节点的入度或者被采样概率进行排序(例如升序排序或者降序排序)。
在可选实现中,节点的入度是指向节点的边的总数。有向边指向的节点为目的节点时,节点的入度可以视为是节点作为目的节点时,目的节点所连接的边的总数。节点的被采样概率是指节点被采样为邻居节点的概率;需要说明的是,在采样节点的邻居节点的过程中,每个节点被访问的次数不一样,呈现概率分布,有些节点被采样的概率较大,有些节点被采样到的概率小。
在步骤S431中,根据节点排序,确定热数据特征和冷数据特征。
在将特征关联的节点按照入度或者被采样概率进行节点排序后,基于热数据特征所关联的节点的入度或者被采样概率,高于冷数据特征所关联的节点的入度或者被采样概率,本申请实施例可根据节点排序,从数据切片中存放的特征中确定热数据特征和冷数据特征。可选的,本申请实施例可以设置排序阈值,在按照节点的入度或者被采样概率进行升序排序时,本申请实施例可将排序顺序高于排序阈值的节点所关联的特征,确定为热数据特征;将排序顺序不高于排序阈值的节点所关联的特征,确定为冷数据特征。排序阈值可以是排序顺序的阈值(整数形式),也可以是排序比例的阈值。
在进一步的可选实现中,由于特征是按照随机分配方式或者基于被采样概率的分配方式,分配到各个数据切片,因此对于一个数据切片而言,该数据切片存放的是分配到该数据切片的特征,而没有存放图数据的全局高热数据特征。基于此,本申请实施例可确定图数据的全局高热数据特征,将图数据的全局高热数据特征在每个数据切片均进行存放,使得每个数据切分均存放有图数据的全局高热数据特征。也就是说,在可选实现中,一个数据切片除存放分配到该数据切片的节点、边和特征外,还可以存放图数据的全局高热数据特征。
在可选实现中,图数据的全局高热数据特征是指:对于图数据整体而言,入度或者被采样概率的排序处于排序预设值之前的节点所关联的特征。可选的,本申请实施例将图数据中的节点按照入度或者被采样概率进行排序,将排序处于排序预设值之前的节点所关联的特征确定为图数据整体的全局高热数据特征;从而将图数据的全局高热数据特征在每个数据切片进行缓存,使得每个数据切片均具有图数据的全局高热数据特征的缓存。例如,将图数据中的节点按照入度或者被采样概率进行排序后,将排序靠前的预设个节点所关联的特征确定为图数据整体的全局高热数据特征。
可选的,排序预设值可以是对图数据的所有节点按照入度或者被采样概率进行排序基础上,预先设置的排序顺序值或者排序比例值;而前文描述的排序阈值是在对数据切片存放的特征所关联的节点按照入度或者被采样概率进行排序基础上,预先设置的排序顺序值或者排序比例值。排序阈值和排序预设值的具体选取方式可根据实际情况而定,本申请实施例并不设限。
在可选实现中,对于数据切片中存放的图数据的全局高热数据特征,本申请实施例可将全局高热数据特征存储在节点设备的GPU显存中。例如,对于节点设备中的数据切片所存放的全局高热数据特征,本申请实施例可将全局高热数据特征存储在该节点设备的GPU显存中。
为便于进一步理解分布式存储,图4D示例性的示出了分布式存储的实现示例图,如图4D所示,以数据切片301的分布式存储为例,假设数据切片301在节点设备311进行存储,则数据切片301存放有分配的节点、边、特征以及图数据的全局高热数据特征;数据切片301中存放的节点和边可存储在节点设备311的CPU锁页内存或者GPU显存(例如,数据切片301中存放的节点和边,择一存储在节点设备311的CPU锁页内存或者GPU显存)。对于数据切片301中存放的热数据特征,可在节点设备311的GPU显存中存储;对于数据切片301中存放的冷数据特征,可在节点设备311的CPU锁页内存中存储。同时,数据切片301中存放的图数据的全局高热数据特征,可存储在节点设备311的GPU显存中。
本申请实施例对图数据进行切分并且分布式存储可以至少具有如下效果:
减少CPU和GPU之间的数据传输和数据拷贝,加快后续采样阶段的子图采样和子图特征采样,为提升后续的图数据采样效率提供支持;
通过图数据的切分和分布式存储,能够支持大规模、多特征、异构图等图数据的高效存储;例如,对于一个百亿边,十亿节点,每个节点包含百维特征的图数据而言,图数据的数据量可能达到TGB(1TB等于1024GB),因此单个节点设备的CPU内存和GPU显存可能难以满足图数据的存储,此时将图数据进行切分和分布式存储,可以满足大规模、多特征、异构图等形式的图数据的高效存储;异构图是指包含一种以上类型的节点或者一种以上类型的边的图数据;
支持将数据切片中的热数据特征和冷数据特征分开存储,并且支持缓存全局高热数据特征,可以减少节点设备之间的跨机通信,提高节点设备在后续进行图数据采样时的整体吞吐。
基于图数据的切分和分布式存储,本申请实施例可通过多个节点设备运行的采样器,实现异步分布式图数据采样,例如实现异步分布式的子图采样和子图特征采样,以实现采样阶段210。作为可选实现,图5示例性的示出了本申请实施例提供的图数据采样的方法流程图,该方法流程可应用于第一节点设备,第一节点设备可以是运行采样器的任一节点设备,如图5所示,该方法流程可以包括如下步骤。
在步骤S510中,获取采样任务,并确定所述采样任务对应的多个待采样对象。
基于批次的图数据采样可以通过不同批次的采样任务实现,因此本申请实施例可通过不同批次的多个采样任务,实现对图数据进行采样。在可选实现中,基于图数据采样涉及子图采样和子图特征采样,采样任务可以分为子图采样任务以及子图特征采样任务;子图采样任务可通过指定多个待采样节点或者多个待采样边实现采样子图;子图特征采样任务主要对子图中各待采样节点或者各待采样边进行特征查找(即查询子图中各待采样对象的特征),以得到子图的特征。
在第一节点设备获取到采样任务后,第一节点设备可以确定采样任务对应的多个待采样对象。待采样对象可以是待采样节点或者待采样边。例如,在子图采样任务中,子图采样任务可以指定多个待采样节点或者多个待采样边,以进行子图采样。又例如,在子图特征采样任务中,基于得到的子图,可以在子图特征采样任务中指定子图的各个待采样节点或者各个待采样边(比如,子图中的每个节点可视为是子图特征采样任务中的待采样节点,或者,子图中的每条边可以视为是子图特征采样任务中的待采样边)。
在步骤S511中,对于任一待采样对象,根据预设的分配关系,确定存放所述待采样对象的目标数据切片。
如前文所述,所述分配关系至少记录有切分后的图数据所分配的数据切片(例如,图数据的节点、边以及特征所分配的数据切片);其中,切分后的图数据分配到多个数据切片进行存放,多个数据切片存储在多个节点设备,一个节点设备存储至少一个数据切片。
在确定采样任务对应的多个待采样对象后,针对于采样任务对应的任一待采样对象,本申请实施例可根据预设的分配关系,确定存放该待采样对象的目标数据切片;为便于说明,针对采样任务对应的任一待采样对象,存放该待采样对象的数据切片称为目标数据切片。在可选实现中,如果待采样对象为待采样节点,则本申请实施例可根据预设的分配关系,确定存放该待采样节点的目标数据切片。在可选实现中,如果待采样对象为待采样边,则本申请实施例可根据预设的分配关系,确定存放该待采样边的目标数据切片。
可选的,本申请实施例可根据预设的切分路由表记录所述分配关系,从而本申请实施例可根据预设的切分路由表,确定存放待采样对象的目标数据切片。
在步骤S512中,如果目标数据切片存储于第一节点设备,使用第一节点设备的资源对所述待采样对象执行采样任务,以得到所述待采样对象的采样结果。
针对采样任务对应的任一待采样对象,存放该待采样对象的目标数据切片可能存储在第一节点设备(即目标数据切片在第一节点设备本地存储),也可能存储在与第一节点设备不同的第二节点设备(即目标数据切片在非本地的第二节点设备存储)。针对目标数据切片的不同存储情况,本申请实施例可使用不同的资源对待采样对象执行采样任务。
在可选实现中,本申请实施例可以根据数据切片与节点设备的对应存储关系(即各节点设备对应存储的数据切片的关系),确定存储目标数据切片的节点设备。例如,每个节点设备均可以保存数据切片与节点设备的对应存储关系,从而第一节点设备在确定目标数据切片后,可以根据该对应存储关系,确定存储目标数据切片的节点设备。
可选的,如果目标数据切片存储于第一节点设备,则由于目标数据切片在第一节点设备本地存储,因此第一节点设备可直接使用第一节点设备的本地资源,对待采样对象执行采样任务。执行采样任务的资源可以是GPU资源也可以是CPU资源。如果本申请实施例是使用分布式GPU进行图数据采样,则第一节点设备可直接使用第一节点设备的GPU资源,对待采样对象执行采样任务。当然,本申请实施例也可支持第一节点设备使用第一节点设备的CPU资源,对待采样对象执行采样任务。
可选的,如果采样任务为子图采样任务,则对待采样对象执行采样任务可以是,基于待采样对象,采样待采样对象对应的子图。例如,如果待采样对象为待采样节点,则本申请实施例以待采样节点为源节点,采样待采样节点对应的目的节点(即待采样节点通过有向边指向的邻居节点),从而结合待采样节点以及待采样节点对应的目的节点,确定出待采样节点对应的子图。又例如,如果待采样对象为待采样边,则本申请实施例可确定待采样边连接的源节点和目的节点,从而采样源节点对应的邻居节点以及目的节点对应的邻居节点,结合源节点、目的节点以及源节点和目的节点分别对应的邻居节点,确定出待采样边对应的子图。
可选的,如果采样任务为子图特征采样特征,则对待采样对象执行采样任务可以是,基于待采样对象,采样待采样对象的特征。例如,如果待采样对象为子图中的待采样节点,则本申请实施例可以采样待采样节点的特征。又例如,如果待采样对象为子图中的待采样边,则本申请实施例可以采样待采样边的特征。
在步骤S513中,如果目标数据切片存储于第二节点设备,调用第二节点设备的资源对所述待采样对象执行采样任务,以得到所述待采样对象的采样结果。
在可选实现中,如果目标数据切片存储于与第一节点设备不同的第二节点设备,则由于目标数据切片不在第一节点设备的本地进行存储,因此第一节点设备可通过远程调用方式,调用第二节点设备的资源对待采样对象执行采样任务,以得到待采样对象的采样结果。例如,第一节点设备通过RPC(Remote Procedure Call,远程过程调用)等远程调用方式,请求第二节点设备对待采样对象执行采样任务,从而第二节点设备可使用第二节点设备的资源对待采样对象执行采样任务,并将得到的待采样对象的采样结果返回给第一节点设备。可选的,第二节点设备的资源可以是第二节点设备的GPU资源,也可以是第二节点设备的CPU资源。可选的,第一节点设备在通过RPC等远程调用方式,请求第二节点设备对待采样对象执行采样任务后,可以响应下一个采样任务并进行处理而不阻塞。
在可选实现中,节点设备可以运行至少一个采样器,节点设备运行的采样器可以获取采样任务并进行处理(例如,由节点设备运行的采样器执行图5所示流程)。可选的,本申请实施例可以在多个节点设备实现异步的分布式采样器,从而对不同输入批次的采样任务进行流水线处理并同时执行;进一步的,节点设备运行的每个采样器可以维护一个Python的EventLoop(事件循环),以实现采样任务的异步并发处理。
例如,第一节点设备运行的采样器可以获取采样任务,采样器中的EventLoop可以按照切分路由表,确定采样任务中由本地数据切片存放的待采样对象,以及非本地数据切片存放的待采样对象;对于本地数据切片存放的待采样对象,采样器可以直接使用第一节点设备的GPU资源对待采样对象执行采样任务;对于非本地数据切片存放的待采样对象,采样器可通过异步RPC请求,调用该非本地数据切片对应的节点设备对待采样对象执行采样任务;从而,第一节点设备运行的采样器可以响应下一个采样任务并进行处理而不阻塞。
可选的,在采样任务为子图采样任务时,第二节点设备针对待采样对象执行采样任务可以是基于待采样对象,采样待采样对象对应的子图;在采样任务为子图特征采样任务时,第二节点设备针对待采样对象执行采样任务可以是基于待采样对象,查询待采样对象的特征。相关内容可参照前文相应部分的描述。
可选的,各节点设备(涵盖第一节点设备和第二节点设备的各个节点设备)在使用资源执行采样任务时,可以基于节点设备的机器环境选择使用CPU资源还是GPU资源执行采样任务。例如,如果节点设备只有CPU资源,则使用CPU资源执行采样任务,如果节点设备具有GPU资源,则推荐使用GPU资源执行采样任务(相比于CPU资源,GPU资源的运算性能提升较大)。需要说明的是,在训练图神经网络时,图神经网络模型的模型参数较少,如果以分布式CPU采样为主进行图神经网络的训练,则可能存在GPU利用率较低的情况,因此在进行图数据采样时(采样子图和子图特征时),可以以分布式的GPU采样为主进行图数据的分布式采样,从而将空闲的GPU资源利用起来,提升GPU利用率。
在步骤S514中,根据各待采样对象的采样结果,得到所述采样任务的采样结果。
在得到采样任务对应的各个待采样对象的采样结果后(可能包含第一节点设备通过本地资源得到的待采样对象的采样结果,以及第二节点设备传递回的待采样对象的采样结果),第一节点设备可将各待采样对象的采样结果进行拼接,从而得到采样任务的采样结果。采样任务的采样结果可以视为是采样任务对应的多个待采样对象整体的采样结果。例如,在采样任务为子图采样任务时,子图采样任务的采样结果可以是子图采样任务指定的多个待采样对象对应的子图;又例如,在采样任务为子图特征采样任务时,子图特征采样任务的采样结果为子图中每条边的特征或者每个节点的特征。
在可选实现中,本申请实施例可按照采样任务对应的多个待采样对象的顺序,将各待采样对象的采样结果进行拼接,从而得到采样任务的采样结果。
在进一步的可选实现中,第一节点设备可将采样任务的采样结果存放到由共享内存和锁页内存实现的预取缓存中。
可选的,在由采样器执行图数据采样时,第一节点设备运行的采样器在等待采样任务对应的所有待采样对象均完成采样任务后,可以将采样任务对应的各待采样对象的采样结果进行拼接,得到采样任务对应的采样结果,并在第一节点设备的预取缓存中进行存储。
需要说明的是,图5是以第一节点设备为例,来说明一个节点设备(例如一个节点设备中的采样器)在获取到采样任务后,如何响应和处理采样任务;每个节点设备在获取到采样任务后,均可基于图5所示流程原理响应和处理采样任务。例如,一个节点设备在获取到采样任务后,对于采样任务对应的多个待采样对象,可区分由本地数据切片存放的待采样对象,以及非本地数据切片存放的待采样对象(即其他节点设备的数据切片存放的待采样对象);从而使用本地资源对本地数据切片存放的待采样对象执行采样任务,并将非本地数据切片存放的待采样对象,传递给非本地数据切片对应的节点设备执行采样任务。由于节点设备只对本地数据切片存放的待采样对象执行采样任务,因此节点设备在将将非本地数据切片存放的待采样对象传递给对应的节点设备后,可以立即响应下一个采样任务并进行处理而不被阻塞;同时,在非本地数据切片存放的待采样对象执行完成采样任务后,节点设备可将采样任务对应的多个待采样对象的采样结果进行拼接,得到采样任务对应的采样结果,本申请实施例通过这种异步分布式的采样方式,可以显著的提升采样效率。
在可能的情况下,第一节点设备获取的采样任务中,采样任务对应的多个待采样对象可能均存放于第一节点设备的数据切片,此时采样任务对应的多个待采样对象可以均使用第一节点设备的资源执行采样任务。也可能是,采样任务对应的多个待采样对象均不存放于第一节点设备的数据切片,此时采样任务对应的各个待采样对象,需要分别传递给对应数据切片所在的其他节点设备执行采样任务。
本申请实施例提供的图数据采样方法可在对图数据进行切分和分布式存储的基础上进行,切分后的图数据可分配到多个数据切片进行存放,并且多个数据切片存储在多个节点设备,切分后的图数据所分配的数据切片可通过分配关系进行记录。从而,在对图数据进行采样时,第一节点设备可获取采样任务,并确定所述采样任务对应的多个待采样对象;对于任一待采样对象,第一节点设备可根据预设的分配关系,确定存放待采样对象的目标数据切片;如果目标数据切片存储于第一节点设备,则本申请实施例可使用第一节点设备的资源对待采样对象执行采样任务,以得到待采样对象的采样结果;如果目标数据切片存储于第二节点设备,则本申请实施例可调用第二节点设备的资源对待采样对象执行采样任务,以得到待采样对象的采样结果;进而,第一节点设备可根据各待采样对象的采样结果,得到所述采样任务的采样结果。
可见,在将切分后的图数据分配给多个数据切片,并且多个数据切片存储在多个节点设备后,节点设备在处理采样任务时,只对采样任务中本地数据切片所存放的待采样对象执行采样任务;对于非本地数据切片存放的待采样对象,节点设备通过调用非本地数据切片对应的其他节点设备来执行采样任务,因此采样任务对应的多个待采样对象可以在多个节点设备异步的并行执行采样任务,从而高效利用多个节点设备的资源来执行多个待采样对象的采样任务,实现多个节点设备之间的资源合理分配和负载均衡,提升图数据的采样效率。可见,本申请实施例提供的图数据采样方法可以显著提升图数据的采样效率,进而为提升图神经网络的训练效率提供基础。
需要说明的是,图5所示的异步分布式采样方式,可以适用于子图采样,也可以适用于子图特征采样。当然,本申请实施例也可支持对子图采样和子图特征采样中的一者,使用图5所示的异步分布式采样方式;例如,子图采样由图5所示的异步分布式采样方式实现,而子图特征采样由其他方式(比如传统方式)实现;又例如,子图特征采样由图5所示的异步分布式采样方式实现,而子图采样由其他方式(比如传统方式)实现。从提升采样效率的角度来看,子图采样和子图特征采样均使用图5所示的异步分布式采样方式,是提升采样效率的较佳方式;但可以理解的是,仅是对子图采样或者子图特征采样使用图5所示的异步分布式采样方式,也能够提升采样效率。
作为可选实现,采样任务对应的待采样对象可以是待采样节点和待采样边中的任一项;采样任务可以是子图采样任务和子图特征采样任务中的任一项,其中,子图采样任务用于采样多个待采样对象对应的子图,子图特征采样任务用于采样子图中各待采样对象的特征。
基于图5所示的异步分布式采样方式的原理,下面从对子图采样和子图特征采样的可选实现过程进行介绍。
可选的,图6A示例性的示出了本申请实施例提供的子图采样的方法流程图,该方法流程可由第一节点设备执行实现,参照图6A,该方法流程可以包括如下步骤。
在步骤S610中,获取子图采样任务,并确定子图采样任务对应的多个待采样节点。
子图采样任务为采样任务的一种形式,子图采样任务可以指示多个待采样对象,图6A以待采样对象为待采样节点进行示例,当然,本申请实施例也可支持子图采样任务指示的多个待采样对象为多个待采样边。
在步骤S611中,对于任一待采样节点,根据预设的分配关系,确定存放所述待采样节点的目标数据切片。
可选的,本申请实施例可根据预设的切分路由表,确定存放待采样节点的目标数据切分。
在步骤S612中,如果目标数据切片存储于第一节点设备,使用第一节点设备的GPU资源对所述待采样节点采样子图,以得到所述待采样节点的子图。
在步骤S613中,如果目标数据切片存储于第二节点设备,使用异步RPC调用第二节点设备的GPU资源对所述待采样节点采样子图,以得到所述待采样节点的子图。
针对子图采样任务对应的任一待采样节点,存放待采样节点的目标数据切片可能位于第一节点设备,也可能位于第二节点设备。在目标数据切片位于第一节点设备时,第一节点设备使用本地GPU资源对待采样节点采样子图;在目标数据切片位于第二节点设备时,第一节点设备可使用异步RPC请求来调用第二节点设备的GPU资源,从而对待采样节点采样子图。可选的,在对待采样节点采样子图时,本申请实施例以待采样节点为源节点,采样待采样节点对应的目的节点(即待采样节点通过有向边指向的邻居节点),从而结合待采样节点以及待采样节点对应的目的节点,确定出待采样节点对应的子图。
进一步的,在执行步骤S613之后,第一节点设备可获取并响应下一个子图采样任务。
在步骤S614中,根据子图采样任务对应的多个待采样节点的顺序,将各待采样节点对应的子图进行拼接,得到所述子图采样任务对应的子图。
在步骤S615中,将所述子图采样任务对应的子图,保存在第一节点设备的预取缓存中。
子图采样任务对应的子图可以视为是,子图采样任务指定的多个待采样节点整体对应的子图。
在一个实现示例中,一个节点设备可运行至少一个采样器,多个采样器分布于多个节点设备;从而第一节点设备中运行的采样器可负责执行图6A所示方法流程。例如,第一节点设备中运行的采样器可维护一个Python的EventLoop,以进行子图采样的异步并发处理;在第一节点设备获取到子图采样任务后,第一节点设备运行的采样器中的EventLoop可以根据预设的切分路由表,从子图采样任务指定的多个待采样节点中,确定存放在第一节点设备的本地数据切片的待采样节点,以及存放在非本地数据切片的待采样节点;从而,对于存放在本地数据切片的待采样节点,第一节点设备的采样器可使用第一节点设备的GPU,操作第一节点设备的CPU锁页内存或者GPU显存(图数据的节点和边存储在节点设备的CPU锁页内存或者GPU显存中),以对待采样节点采样子图;对于存放在非本地数据切片的待采样节点,第一节点设备的采样器可使用异步RPC请求,调用其他节点设备中的采样器,来使用其他节点设备的GPU资源,对待采样节点采样子图;此时,第一节点设备的采样器可以响应下一个子图采样任务而不被阻塞;等待非本地数据切片的待采样节点完成子图采样后,第一节点设备的采样器可基于子图采样任务指定的各待采样节点的顺序,将各待采样节点的子图进行拼接,得到子图采样任务对应的子图;从而第一节点设备的采样器可将子图采样任务对应的子图,保存在第一节点设备的预取缓存中。
为便于理解,图6B示例性的示出了子图采样的实现示例图,如图6B所示,假设第一节点设备的采样器所获取的子图采样任务中指定节点1、2、3和4为待采样节点,则第一节点设备的采样器可根据切分路由表,分别确定存放节点1、2、3和4的数据切片;假设存放节点1和3的数据切片为数据切片601,数据切片601存储在第一节点设备,存放节点2和4的数据切片为数据切片602,数据切片602存储在第二节点设备;基于此,第一节点设备的采样器可使用第一节点设备的GPU资源,分别以节点1和3为源节点,在第一节点设备的CPU锁页内存或者GPU显存中,采样节点1的邻居节点以及节点3的邻居节点,以实现采样节点1和3的子图;并且,第一节点设备的采样器可使用异步RPC请求,来调用第二节点设备的采样器,对节点2和4采样子图。假设,节点1的邻居节点为节点5和6(节点1的子图为节点1、5和6),节点3的邻居节点为节点6和8(节点3的子图为节点3、6和8),节点2的邻居节点为节点7和9(节点2的子图为节点2、7和9),节点4的邻居节点为节点7(节点4的子图为节点4和7);从而第一节点设备的采样器可按照节点1、2、3和4的顺序,将各节点的子图进行拼接,得到子图采样任务对应的子图。
可选的,图6C示例性的示出了本申请实施例提供的子图特征采样的方法流程图,该方法流程可由第一节点设备执行实现,参照图6C,该方法流程可以包括如下步骤。
在步骤S630中,获取子图特征采样任务,并确定子图中的各个待采样节点。
子图特征采样任务为采样任务的一种形式,子图特征采样任务可以指示子图中的各个待采样节点,图6C以待采样对象为待采样节点进行示例,当然,本申请实施例也可支持子图特征采样任务指示子图中的各条待采样边。
在步骤S631中,对于任一待采样节点,根据预设的分配关系,确定存放所述待采样节点的目标数据切片。
在步骤S632中,如果目标数据切片存储于第一节点设备,使用第一节点设备的GPU资源对待采样节点采样特征,以得到待采样节点的特征。
在步骤S633中,如果目标数据切片存储于第二节点设备,根据网络配置,使用异步RPC调用第二节点设备的CPU资源或者GPU资源,对待采样节点采样特征,以得到待采样节点的特征。
可以看出,子图特征采样与子图采样具有类似的异步处理逻辑,对于子图中需要采样特征的待采样节点,如果待采样节点在第一节点设备的本地数据切片进行存放,则可使用第一节点设备的GPU资源操作第一节点设备的GPU显存和CPU锁页内存(数据切片存放的热数据特征存储在对应节点设备的GPU显存、冷数据特征存储在对应节点设备的CPU锁页内存、图数据的全局高热数据特征存储在对应节点设备的GPU显存中),从而查找到待采样节点的特征;如果待采样节点在第二节点设备的数据切片中存放,则第一节点设备可根据网络配置,使用异步RPC调用第二节点设备的CPU资源或者GPU资源,来操作第二节点设备的GPU显存和CPU锁页内存,从而对待采样节点采样特征,以得到待采样节点的特征。
在可选实现中,如果网络配置支持RDMA(Remote direct memory access,远程直接内存访问)或者GPU-Direct RDMA(GPU直接远程访问内存),则第一节点设备可使用异步RPC调用第二节点设备的GPU资源,对待采样节点采样特征;如果网络配置为TCP(Transmission Control Protocol,传输控制协议)配置,则第一节点设备可使用异步RPC调用第二节点设备的CPU资源,对待采样节点采样特征。
进一步的,在执行步骤S633之后,第一节点设备可获取并响应下一个子图特征采样任务。
在步骤S634中,根据子图中各待采样节点的顺序,将各待采样节点的特征进行拼接,得到子图的特征。
在步骤S635中,将子图的特征保存在第一节点设备的预取缓存中。
在一个实现示例中,第一节点设备中运行的采样器可维护一个Python的EventLoop,以进行子图特征采样的异步并发处理;在第一节点设备获取到子图特征采样任务后,第一节点设备运行的采样器中的EventLoop可以根据预设的切分路由表,从子图特征采样任务指定的待采样节点中,确定存放在第一节点设备的本地数据切片的待采样节点,以及存放在非本地数据切片的待采样节点;从而,对于存放在本地数据切片的待采样节点,第一节点设备的采样器可使用第一节点设备的GPU资源,查找待采样节点的特征;对于存放在非本地数据切片的待采样节点,第一节点设备的采样器可在网络配置支持RDMA或者GPU-Direct RDMA时,使用异步RPC请求调用其他节点设备中的采样器,来使用其他节点设备的GPU资源,查找待采样节点的特征;如果网络配置为TCP配置,则第一节点设备的采样器使用异步RPC请求调用其他节点设备中的采样器,来使用其他节点设备的CPU资源,查找待采样节点的特征;同时,第一节点设备的采样器可以响应下一个子图特征采样任务而不被阻塞。等待非本地数据切片的待采样节点完成特征采样后,第一节点设备的采样器可基于子图中各待采样节点的顺序,将各待采样节点的特征进行拼接,得到子图的特征;从而第一节点设备的采样器可将子图的特征,保存在第一节点设备的预取缓存中。
在完成图数据采样后,本申请实施例可利用图数据的采样结果,训练图神经网络。可选的,图7A示例性的示出了本申请实施例提供的图神经网络训练方法的流程图,如图7A所示,该方法流程可以包括如下步骤。
在步骤S710中,获取图数据的采样结果。
图数据的采样结果可以基于本申请实施例提供的图数据采样方法确定。可选的,图数据的采样结果可以包括采样的子图以及子图特征。结合前文描述,在完成子图采样和子图特征采样后,子图和子图特征可以保存在节点设备的预取缓存中,从而在训练图神经网络时,本申请实施例可以从节点设备的预取缓存中加载图数据的采样结果(子图和子图特征),以实现获取图数据的采样结果。
在步骤S711中,根据图数据的采样结果,训练图神经网络。
在可选实现中,本申请实施例可利用PyTorch分布式训练技术,来根据图数据的采样结果,训练图神经网络。可选的,本申请实施例可以编写PyTorch或者PyG代码来构建图神经网络模型,然后开始训练图神经网络模型,并在训练图神经网络模型后,利用图神经网络模型进行预测任务。训练图神经网络模型时,可以通过加载器(Loader)从节点设备的预取缓存中加载子图和子图特征。本申请实施例提供的图数据采样(涉及子图采样和子图特征采样),以及图神经网络的训练可以是异步执行的。
作为可选实现,结合图数据采样和图神经网络训练,本申请实施例可提供分布式的图神经网络训练系统,该图神经网络训练系统可以充分利用GPU、NVLink、RDMA网络等硬件以及图神经网络模型的特点,来加速单机和分布式的图神经网络训练。可选的,图7B示例性的示出了本申请实施例提供的图神经网络训练系统的架构框图,如图7B所示,该系统架构可以包括:存储层721、图算子层722、接口层和分布式采样层723、模型层724。
其中,存储层721主要实现图数据的切分,以及数据切片在对应节点设备的分布式存储。在利用GPU实现图数据的分布式采样时,CPU和GPU之间的数据传输可能成为主要的性能瓶颈,因此为了加快图数据采样(涉及子图采样和子图特征采样),本申请实施例可以在存储层721实现了统一张量存储,以统一CPU和GPU的内存管理,减少CPU和GPU之间数据传输和数据拷贝。存储层721在实现数据切片的分布式存储时,可以将数据切片存放的节点和边,存储到数据切片对应的节点设备的GPU显存或者CPU锁页内存中。对于数据切片存放的特征来说,按照特征关联的节点的入度或者被采样概率,区分热数据特征和冷数据特征;热数据特征存储到数据切片对应的节点设备的GPU显存里(对于有NVLink连接的GPU组,热数据特征可以均匀存储在GPU组的每个GPU显存里),冷数据特征存储到数据切片对应的节点设备的CPU锁页内存里;同时,节点设备的GPU显存存储数据切片存放的全局高热数据特征。
图算子层722提供CPU的算子和GPU的算子,CPU的算子可以视为是使用CPU资源的运算,GPU的算子可以视为使用GPU资源的运算。例如,图算子层可以为邻居节点采样、子图采样、子图特征采样等任务,提供基于CPU的算子支持和基于GPU的算子支持。基于CPU的算子在执行子图采样、子图特征采样等任务时,可以使用多线程实现并行加速;基于GPU的算子在实现子图采样、子图特征采样等任务时,可以使用CUDA(Compute Unified DeviceArchitecture,统一计算架构)核函数实现并行处理。由于图数据的节点、边和特征保存在GPU显存或者CPU锁页内存里,因此使用GPU的算子能够直接访问GPU显存或者CPU锁页内存中的数据,能够减少数据从CPU往GPU拷贝的耗时。
接口层和分布式采样层723可以提供接口,以支持图数据的分布式采样。在接口方面,为了降低用户学习难度,本申请实施例可以采用兼容PyTorch的Python接口,同时兼容PyG等图学习框架;这样用户可以修改较少的代码来对PyG模型进行加速。接口层和分布式采样层723提供的接口可以包括图对象(边和节点)、采样器、特征等。可选的,接口层和分布式采样层723可以至少提供采样器的接口,采样器可以执行本申请实施例提供的图数据采样方法。
可选的,为了防止远程数据访问阻碍图数据采样的进度和图神经网络的训练进度,本申请实施例可以在PyTorch的RPC之上实现了一个高效的RPC框架,支持TCP和RDMA网络,并采用异步的分布式子图采样和特征采样方式,来隐藏网络延迟(可选实现方式可参照前文相应部分的描述),进而提高节点设备之间的吞吐量。可选的,本申请实施例可以在Python层实现分布式图对象,分布式采样器和分布式特征等。
模型层724用于支持图神经网络的训练,本申请实施例支持不同的图神经网络模型,以适应不同应用场景下不同规模的图数据。模型层724允许用户将图神经网络的训练和图数据采样放在同一进程中,或者分开到不同的进程,甚至不同的节点设备上。模型层724的模型接口可以兼容PyG等图神经网络框架,也可以直接使用这些图神经网络框架的模型,配合本申请实施例的Python接口进行训练。PyG是基于PyTorch开发的开源图神经网络框架,PyTorch是一个开源的Python机器学习库。
作为可选实现,一个节点设备的一个进程可以执行图数据采样和图神经网络训练,并且一个节点设备可以通过多个进程并行执行图数据采样和图神经网络训练,而多个节点设备的多个进程可以分布式的执行图数据采样和图神经网络训练。可选的,图8A示例性的示出了本申请实施例提供的进程部署的示例图,图8A示出了图数据采样和图神经网络训练通过一个进程在同节点设备部署的示例。
如图8A所示,图数据被切分为2个数据切片,分为数据切片0和数据切片1,数据切片0和数据切片1被存储到两个不同的机器上,比如数据切片0被存储到节点设备801,数据切片1被存储到节点设备802。每个节点设备可以运行多个进程(图8A以一个节点设备运行两个进程进行示例),一个进程运行多个采样器(图8A以一个进程运行两个采样器进行示例),采样器通过接口层和分布式采样层提供的接口,可以执行本申请实施例提供的图数据采样方法(图数据采样方法的相应内容可参照前文相应部分的描述);同时,一个进程运行有加载器和模型(图神经网络模型),进程中运行的采样器和加载器通过共享内存通道连接,从而加载器可获取图数据的采样结果,以用于训练图神经网络模型。需要说明的是,在一个进程执行图数据采样和图神经网络训练,并且同机部署的情况下,节点设备的预取缓存实际存在CPU共享内存和CPU锁页内存里,因此采样器采样得到图数据的采样结果后,加载器可以直接使用GPU访问图数据的采样结果。可以看出,一个节点设备的一个进程可运行多个采样器以及加载器,加载器通过共享内存通道连接采样器,以使用节点设备的GPU资源访问预取缓存中的图数据的采样结果,来训练图神经网络模型。
作为可选实现,图数据采样和图神经网络训练可以通过不同进程执行,并且部署在不同的机器。本申请实施例可将用于图数据采样的进程称为采样进程,用于图神经网络训练的进程称为训练进程;可选的,采样进程可以部署在服务节点设备,训练进程可以部署在客户节点设备;同时,一个服务节点设备运行多个采样进程并行执行图数据采样,多个服务节点设备运行的采样进程,分布式的执行图数据采样;一个客户节点设备运行多个训练进程,以并行执行图神经网络的训练,多个客户节点设备运行的训练进程,分布式的执行图神经网络的训练。可选的,图8B示例性的示出了本申请实施例提供的进程部署的另一示例图,图8B示出了采样进程和训练进程在不同节点设备部署的示例。
如图8B所示,采样进程被部署到两个服务节点设备811和812,训练进程则被部署到了两个客户节点设备813和814。图数据被切片后,数据切片存储在服务节点设备,例如数据切片0被存储到服务节点设备811,数据切片1被存储到服务节点设备812。一个服务节点设备运行多个采样进程(图8B以一个服务节点设备运行两个采样进程进行示例),一个采样进程中可运行多个采样器(图8B以一个采样进程运行两个采样器进行示例)。一个客户节点设备可以运行多个训练进程(图8B以一个客户节点设备运行两个训练进程进行示例),一个训练进程运行有加载器和模型(图神经网络模型)。采样器和加载器之间通过远程通道(Remote Channel)连接,例如采样器采样的图数据的采样结果可以保存到对应服务节点设备的预取缓存,然后在图神经网络训练时,加载器通过远程通道从服务节点设备的预取缓存中读取图数据的采样结果,以用于训练图神经网络模型。
本申请实施例提供的方案将图数据进行切分,并将数据切片分布式存储在GPU显存或者CPU锁页内存里,并通过异步并发采样来实现图数据采样,从而实现了高效的子图采样和子图特征采样。本申请实施例支持多节点设备和多GPU的分布式图数据采样以及图神经网络训练,能够提升图数据采样的采样效率以及图神经网络的训练效率。因此,本申请实施例提供的方案能够解决大规模图数据采样和训练的性能问题,以及提升GPU资源利用率。
进一步的,本申请实施例支持对全局高热数据特征进行缓存,可以减少跨节点设备的通信量,提高整体吞吐。本申请实施例可以支持百亿级别的边规模的图数据的分布式训练,相比DGL(Deep Graph Library,深度图库)等技术,在对十亿边规模的图数据进行采样和图神经网络训练时,本申请实施例能够具有1至2倍的加速效果,并且GPU利用率得到2至3倍的提升。进一步的,将图数据采样和图神经网络的训练设计成服务节点设备和客户节点设备的架构,将图数据采样和图神经网络的训练放到不同进程中进行不同机部署,或者,将图数据采样和图神经网络的训练放到相同进程进行同机部署,能够提供进程级别的资源分配,从而可以根据图数据采样和图神经网络训练的特点使用不同的资源,进行资源的合理分配,并且做到负载均衡。
本申请实施例还提供一种节点设备,该节点设备可以包括至少一个存储器和至少一个处理器,所述存储器存储一条或多条计算机可执行指令,所述处理器调用所述一条或多条计算机可执行指令,以执行如本申请实施例提供的图数据采样方法,或者如本申请实施例提供的图神经网络训练方法。
本申请实施例还提供一种存储介质,所述存储介质存储一条或多条计算机可执行指令,所述一条或多条计算机可执行指令被执行时实现如本申请实施例提供的图数据采样方法,或者如本申请实施例提供的图神经网络训练方法。
本申请实施例还提供一种计算机程序,所述计算程序被执行时实现如本申请实施例提供的图数据采样方法,或者如本申请实施例提供的图神经网络训练方法。
上文描述了本申请实施例提供的多个实施例方案,各实施例方案介绍的各可选方式可在不冲突的情况下相互结合、交叉引用,从而延伸出多种可能的实施例方案,这些均可认为是本申请实施例披露、公开的实施例方案。
虽然本申请实施例披露如上,但本申请并非限定于此。任何本领域技术人员,在不脱离本申请的精神和范围内,均可作各种更动与修改,因此本申请的保护范围应当以权利要求所限定的范围为准。
Claims (14)
1.一种图数据采样方法,其中,应用于第一节点设备,所述方法包括:
获取采样任务,并确定所述采样任务对应的多个待采样对象;
对于任一待采样对象,根据预设的分配关系,确定存放所述待采样对象的目标数据切片;所述分配关系至少记录有切分后的图数据所分配的数据切片,其中,切分后的图数据分配到多个数据切片进行存放,多个数据切片存储在多个节点设备;
如果所述目标数据切片存储于第一节点设备,使用第一节点设备的资源对所述待采样对象执行采样任务,以得到所述待采样对象的采样结果;
如果所述目标数据切片存储于第二节点设备,调用第二节点设备的资源对所述待采样对象执行采样任务,以得到所述待采样对象的采样结果;
根据各待采样对象的采样结果,得到所述采样任务的采样结果。
2.根据权利要求1所述的方法,其中,所述待采样对象为待采样节点和待采样边中的任一项;所述采样任务为子图采样任务和子图特征采样任务中的任一项,其中,所述子图采样任务用于采样所述多个待采样对象对应的子图,所述子图特征采样任务用于采样所述子图中各待采样对象的特征。
3.根据权利要求2所述的方法,其中,所述待采样对象为待采样节点,所述采样任务为子图采样任务;所述如果所述目标数据切片存储于第一节点设备,使用第一节点设备的资源对所述待采样对象执行采样任务,以得到所述待采样对象的采样结果包括:
如果存放待采样节点的目标数据切片存储于第一节点设备,使用第一节点设备的GPU资源对待采样节点采样子图,以得到待采样节点的子图;
所述如果所述目标数据切片存储于第二节点设备,调用第二节点设备的资源对所述待采样对象执行采样任务,以得到所述待采样对象的采样结果包括:
如果存放待采样节点的目标数据切片存储于第二节点设备,使用异步RPC调用第二节点设备的GPU资源,对待采样节点采样子图,以得到待采样节点的子图;
所述根据各待采样对象的采样结果,得到所述采样任务的采样结果包括:
根据所述子图采样任务对应的多个待采样节点的顺序,将各待采样节点的子图进行拼接,得到所述子图采样任务对应的子图。
4.根据权利要求2所述的方法,其中,所述采样任务为子图特征采样任务;所述采样任务对应的多个待采样对象为子图中的各待采样节点;所述如果所述目标数据切片存储于第一节点设备,使用第一节点设备的资源对所述待采样对象执行采样任务,以得到所述待采样对象的采样结果包括:
如果存放待采样节点的目标数据切片存储于第一节点设备,使用第一节点设备的GPU资源对待采样节点采样特征,以得到待采样节点的特征;
所述如果所述目标数据切片存储于第二节点设备,调用第二节点设备的资源对所述待采样对象执行采样任务,以得到所述待采样对象的采样结果包括:
如果存放待采样节点的目标数据切片存储于第二节点设备,根据网络配置,使用异步RPC调用第二节点设备的CPU资源或者GPU资源,对待采样节点采样特征,以得到待采样节点的特征;
所述根据各待采样对象的采样结果,得到所述采样任务的采样结果包括:
根据子图中各待采样节点的顺序,将各待采样节点的特征进行拼接,得到子图的特征。
5.根据权利要求1所述的方法,其中,还包括:
在执行所述调用第二节点设备的资源对所述待采样对象执行采样任务的步骤之后,获取并响应下一个采样任务;
和/或,将所述采样任务的采样结果保存在第一节点设备的预取缓存中,第一节点设备的预取缓存由第一节点设备的CPU共享内存和CPU锁页内存实现。
6.根据权利要求1-5任一项所述的方法,其中,一个节点设备运行至少一个采样器,多个采样器分布于多个节点设备;节点设备中运行的采样器用于执行所述图数据采样方法。
7.根据权利要求3或4所述的方法,其中,所述分配关系至少记录有切分后的图数据所分配的数据切片包括:所述分配关系记录有图数据的节点、边以及特征所分配的数据切片;
其中,数据切片存放的节点和边存储在对应节点设备的CPU锁页内存或者GPU显存中;数据切片存放的特征中的热数据特征存储在对应节点设备的GPU显存,冷数据特征存储在对应节点设备的CPU锁页内存;各个数据切片还存放有图数据的全局高热数据特征,数据切片存放的全局高热数据特征存储在对应节点设备的GPU显存中;数据切片对应的节点设备为存储该数据切片的节点设备。
8.根据权利要求7所述的方法,其中,所述图数据中的节点根据节点标识以及数据切片的数量,确定分配的数据切片;所述图数据中的边存放在边的源节点所位于的数据切片;所述图数据中的特征,根据特征关联的节点的入度或者被采样概率,确定热数据特征和冷数据特征;其中,热数据特征所关联的节点的入度或者被采样概率,高于冷数据特征所关联的节点的入度或者被采样概率;对于图数据整体,图数据的全局高热数据特征为:入度或者被采样概率的排序处于排序预设值之前的节点所关联的特征。
9.一种图神经网络训练方法,其中,包括:
获取图数据的采样结果;所述图数据的采样结果基于权利要求1-8任一项所述的图数据采样方法确定;
根据图数据的采样结果,训练图神经网络。
10.一种图神经网络训练系统,其中,包括:
存储层,所述存储层用于实现图数据的切分,以及数据切片在对应节点设备的分布式存储;
图算子层,所述图算子层提供CPU的算子和GPU的算子;
接口层和分布式采样层,所述接口层和分布式采样层至少提供采样器的接口,所述采样器被配置为执行如权利要求1-8任一项所述的图数据采样方法;
模型层,用于支持图神经网络的训练。
11.根据权利要求10所述的图神经网络训练系统,其中,一个节点设备的一个进程执行图数据采样和图神经网络训练,并且一个节点设备通过多个进程并行执行图数据采样和图神经网络训练,多个节点设备运行的进程分布式的执行图数据采样和图神经网络训练;
其中,一个节点设备的一个进程运行有多个采样器以及加载器;加载器通过共享内存通道连接采样器,以使用节点设备的GPU资源访问预取缓存中的图数据的采样结果,来训练图神经网络模型。
12.根据权利要求10所述的图神经网络训练系统,其中,一个服务节点设备运行多个采样进程并行执行图数据采样,多个服务节点设备运行的采样进程分布式的执行图数据采样;一个客户节点设备运行多个训练进程并行执行图神经网络的训练,多个客户节点设备运行的训练进程分布式的执行图神经网络的训练;
其中,一个采样进程运行多个采样器,一个训练进程运行有加载器和图神经网络模型;采样器和加载器之间通过远程通道连接;加载器通过远程通道,读取采样器存放在对应服务节点设备的预取缓存中的图数据采样结果,以用于训练图神经网络模型。
13.一种节点设备,其中,包括至少一个存储器和至少一个处理器,所述存储器存储一条或多条计算机可执行指令,所述处理器调用所述一条或多条计算机可执行指令,以执行如权利要求1-8任一项所述的图数据采样方法,或者如权利要求9所述的图神经网络训练方法。
14.一种存储介质,其中,所述存储介质存储一条或多条计算机可执行指令,所述一条或多条计算机可执行指令被执行时实现如权利要求1-8任一项所述的图数据采样方法,或者如权利要求9所述的图神经网络训练方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310200463.1A CN116306867A (zh) | 2023-02-27 | 2023-02-27 | 图数据采样、图神经网络训练方法及系统、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310200463.1A CN116306867A (zh) | 2023-02-27 | 2023-02-27 | 图数据采样、图神经网络训练方法及系统、设备和介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116306867A true CN116306867A (zh) | 2023-06-23 |
Family
ID=86828205
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310200463.1A Pending CN116306867A (zh) | 2023-02-27 | 2023-02-27 | 图数据采样、图神经网络训练方法及系统、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116306867A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117235032A (zh) * | 2023-11-08 | 2023-12-15 | 支付宝(杭州)信息技术有限公司 | 一种分布式链接预测方法及装置 |
-
2023
- 2023-02-27 CN CN202310200463.1A patent/CN116306867A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117235032A (zh) * | 2023-11-08 | 2023-12-15 | 支付宝(杭州)信息技术有限公司 | 一种分布式链接预测方法及装置 |
CN117235032B (zh) * | 2023-11-08 | 2024-01-05 | 支付宝(杭州)信息技术有限公司 | 一种分布式链接预测方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10884812B2 (en) | Performance-based hardware emulation in an on-demand network code execution system | |
US11836516B2 (en) | Reducing execution times in an on-demand network code execution system using saved machine states | |
Hao et al. | Challenges and software architecture for fog computing | |
DE112019005604T5 (de) | Function-as-a-service-system-verbesserungen (faas-system-verbesserungen) | |
US9354938B2 (en) | Sequential cooperation between map and reduce phases to improve data locality | |
US20210117231A1 (en) | Task processing method and apparatus | |
CN105117497B (zh) | 基于Spark云网络的海洋大数据主从索引系统及方法 | |
CN111597148B (zh) | 用于分布式文件系统的分布式元数据管理方法 | |
US10193973B2 (en) | Optimal allocation of dynamically instantiated services among computation resources | |
KR101634403B1 (ko) | 공유 디스크 데이터베이스 시스템에서 락 통신들을 감소시키기 위한 접근 방법들 | |
CN114424172B (zh) | 虚拟存储器元数据管理 | |
CN116306867A (zh) | 图数据采样、图神经网络训练方法及系统、设备和介质 | |
CN110213265A (zh) | 图像获取方法、装置、服务器及存储介质 | |
Fan et al. | A live migration algorithm for containers based on resource locality | |
CN114139684A (zh) | 图神经网络生成方法、装置、系统、介质以及电子设备 | |
US20170371707A1 (en) | Data analysis in storage system | |
US11425219B1 (en) | Smart stream capture | |
CN111190963A (zh) | 一种区块链应用后端系统 | |
EP2726985B1 (fr) | Dispositif et procede de synchronisation de taches executees en parallele sur une plateforme comprenant plusieurs unites de calcul | |
US11388210B1 (en) | Streaming analytics using a serverless compute system | |
US11625358B1 (en) | Automatic object archiving based on user selections | |
SWAROOP | Cost Based Job Scheduling In Fog Computing | |
Bouhrour et al. | Towards leveraging collective performance with the support of MPI 4.0 features in MPC | |
CN115203133A (zh) | 数据处理方法、装置、归约服务器及映射服务器 | |
US20200301755A1 (en) | Deadlock resolution between distributed processes |
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 |