【技术实现步骤摘要】
单机大规模知识图谱嵌入系统及方法
[0001]本专利技术涉及知识图谱嵌入训练以及异构计算领域,具体地,涉及一种单机大规模知识图谱嵌入系统及方法,更为具体地,主要是利用非易失性内存与GPU,使得在单机上能对大规模知识图谱进行快速训练。
技术介绍
[0002]专利文献CN112685573A(申请号:202110013880.6)公开了一种知识图谱嵌入训练方法和相关装置,方法包括:获取知识图谱图结构中的网络拓扑信息;根据相似度计算方法和所述网络拓扑信息,计算所述知识图谱图中不同实体节点之间的第一相似度距离;基于所述第一相似度距离、所述知识图谱图中正样例和负样例包括的实体节点,计算所述正样例和负样例之间的第二相似度距离;根据各所述负样例对应的所述第二相似度距离,计算该负样例对应的综合权重;根据所述正样例、所述负样例和各所述负样例和对应的综合权重进行对应类型的模型训练,得到知识图谱嵌入表示。
[0003]在知识图谱嵌入训练任务中,所需要处理的知识图谱规模越来越大,单机的内存已经不能容下处理较大规模知识图谱嵌入训练过程中的各种数据。与此同时,知识图谱嵌入训练需要有一定算力支持,仅仅使用CPU来进行知识图谱嵌入训练动辄需要上月的时间。为了处理知识图谱嵌入训练中的这两个问题,以往的做法通常是使用分布式来进行大规模知识图谱嵌入训练。通过在训练之前对知识图谱进行划分操作,把划分之后的子知识图谱交给各个分布式计算节点进行嵌入训练,解决了在进行大规模知识图谱嵌入训练的过程中,单机服务器容量有限的问题;而针对CPU算力有限的问题,以 ...
【技术保护点】
【技术特征摘要】
1.一种单机大规模知识图谱嵌入方法,其特征在于,包括:步骤S1:根据关系对知识图谱进行划分操作,得到多个子知识图谱;步骤S2:将各个子知识图谱与GPU绑定,利用GPU对子知识图谱进行训练,得到知识图谱中每个实体与关系对应的嵌入向量。2.根据权利要求1所述的单机大规模知识图谱嵌入方法,其特征在于,所述步骤S2采用:步骤S2.1:读取每个子知识图谱的原始数据,并存放在知识图谱类中,将当前知识图谱类数据存放在非易失性内存中;步骤S2.2:为每个子知识图谱中的实体与关系进行嵌入向量的初始化,初始化的嵌入向量存放在DRAM中,且声明实体的嵌入向量为统一内存空间;步骤S2.3:初始化每个子知识图谱对应的采样池,每个采样池都包含两份缓存,GPU处理其中一个缓存池数据,CPU为另一个缓存池采样数据;步骤S2.4:将每个知识图谱的初始化嵌入向量传输到相应的GPU的共享内存中,将每个子知识图谱实体的别名表传入相应GPU的共享内存中,将逻辑表数据写入GPU的常量内存中;步骤S2.5:CPU线程在对应的子知识图谱中进行正采样操作,搜集到正采样得到的实体与关系的嵌入向量,而后将正采样得到的数据传输到GPU共享内存中;步骤S2.6:GPU根据相应子知识图谱中实体的别名表进行负采样,并通过PCIe读入采样得到的实体对应的嵌入向量;步骤S2.7:GPU利用共享内存中的正采样数据与负采样数据,根据逻辑表进行梯度下降的前向传播与反向传播,更新正采样样例与负采样样例中实体与关系对应的嵌入向量;步骤S2.8:将更新的嵌入向量写入DRAM中,CPU根据映射关系将GPU传回的嵌入向量写入原对应的嵌入向量中,完成对嵌入向量的更新;重复触发步骤S2.1至步骤S2.8,直至嵌入向量收敛。3.根据权利要求1所述的单机大规模知识图谱嵌入方法,其特征在于,在GPU端进行第n次训练的过程中,CPU端准备第n+1次训练所需要的数据。4.根据权利要求2所述的单机大规模知识图谱嵌入方法,其特征在于,所述步骤S2.5采用:使用多线程采样三元组,并搜集三元组中的关系与实体对应的嵌入向量,放入采样池中的一个缓存中,而后将搜集得到的嵌入向量传到相应的GPU共享内存中。5.根据权利要求2所述的单机大规模知识图谱嵌入方法,其特征在于,根据每个子知识图谱中的实体出现的频率制作相应的别名表,并对别名表进行压缩。6.根据权利要求5所述的单机大规模知识图谱嵌入方法,其特征在于,所述对别名表进行压缩采用:步骤S3:统计每个子知识图谱中实体出现的概率,根据出现的概率,对实体进行排序,得到排好序的数组sorted_array;步骤S4:根据知识图谱数据中实体出现的概率符合幂律分布,利用Kolmogorov
‑
Smirnov方法,计算得到常数a;y=x
‑
a (1)其中,y表示概率;x表示实体的度;a表示常数;
步骤S5:基于计算得到的常数a,将实体的度x从1到max(x)分为n份,让每一份的面积相同,均为1/n;步骤S6:利用大小为n的偏移数组,数组中的每个元素记录下每一份开始的x在sorted_array中的偏移。7.根据权利要求6所述的单机大规模知识图谱嵌入方法,其特征在于,所述步骤S2.6采用:在负采样的过程中,随机取一个1
‑
n的随机数m,根据m与偏移数组,得到数组sorted_array中的第m块,在第m块中随机取一个节点,完成实体采样。8.根据权利要求2所述的单机大规模知识图谱嵌入方法,其特征在于,所述步骤S2.6采用:步骤S2.6.1:在声明实体所对应的嵌入向量时,将当前嵌入向量标记为统一内存空间;步骤S2.6.2:在进行负采样时,在CPU端根据压缩后别名表的采样操作对实体进行采样,得到...
【专利技术属性】
技术研发人员:姚建国,程建南,张亚林,
申请(专利权)人:上海燧原科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。