CN113609310B - 单机大规模知识图谱嵌入系统及方法 - Google Patents
单机大规模知识图谱嵌入系统及方法 Download PDFInfo
- Publication number
- CN113609310B CN113609310B CN202110983670.XA CN202110983670A CN113609310B CN 113609310 B CN113609310 B CN 113609310B CN 202110983670 A CN202110983670 A CN 202110983670A CN 113609310 B CN113609310 B CN 113609310B
- Authority
- CN
- China
- Prior art keywords
- knowledge graph
- entity
- sampling
- gpu
- sub
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 81
- 239000013598 vector Substances 0.000 claims abstract description 195
- 230000015654 memory Effects 0.000 claims abstract description 148
- 238000012549 training Methods 0.000 claims abstract description 120
- 238000005070 sampling Methods 0.000 claims description 158
- 238000013507 mapping Methods 0.000 claims description 14
- 238000012163 sequencing technique Methods 0.000 claims description 7
- 238000004891 communication Methods 0.000 abstract description 3
- 238000013144 data compression Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/36—Creation of semantic tools, e.g. ontology or thesauri
- G06F16/367—Ontology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- 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)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Animal Behavior & Ethology (AREA)
- Artificial Intelligence (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Complex Calculations (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种单机大规模知识图谱嵌入方法及系统,包括:步骤S1:根据关系对知识图谱进行划分操作,得到多个子知识图谱;步骤S2:将各个子知识图谱与GPU绑定,利用GPU对子知识图谱进行训练,得到知识图谱中每个实体与关系对应的嵌入向量。相比于传统使用分布式集群来进行大规模知识图谱嵌入训练的方法,本发明使用非易失性内存大容量的特性,并且合理分配知识图谱训练过程中的数据在非易失性内存、GPU显存与DRAM的位置,能够克服分布式训练过程中网络通信所带来的性能开销,使得在不影响最终嵌入向量质量的情况下,总体训练效率提升40%‑50%;同时还能大大节约搭建分布式集群的费用,具有经济上的优势。
Description
技术领域
本发明涉及知识图谱嵌入训练以及异构计算领域,具体地,涉及一种单机大规模知识图谱嵌入系统及方法,更为具体地,主要是利用非易失性内存与GPU,使得在单机上能对大规模知识图谱进行快速训练。
背景技术
专利文献CN112685573A(申请号:202110013880.6)公开了一种知识图谱嵌入训练方法和相关装置,方法包括:获取知识图谱图结构中的网络拓扑信息;根据相似度计算方法和所述网络拓扑信息,计算所述知识图谱图中不同实体节点之间的第一相似度距离;基于所述第一相似度距离、所述知识图谱图中正样例和负样例包括的实体节点,计算所述正样例和负样例之间的第二相似度距离;根据各所述负样例对应的所述第二相似度距离,计算该负样例对应的综合权重;根据所述正样例、所述负样例和各所述负样例和对应的综合权重进行对应类型的模型训练,得到知识图谱嵌入表示。
在知识图谱嵌入训练任务中,所需要处理的知识图谱规模越来越大,单机的内存已经不能容下处理较大规模知识图谱嵌入训练过程中的各种数据。与此同时,知识图谱嵌入训练需要有一定算力支持,仅仅使用CPU来进行知识图谱嵌入训练动辄需要上月的时间。为了处理知识图谱嵌入训练中的这两个问题,以往的做法通常是使用分布式来进行大规模知识图谱嵌入训练。通过在训练之前对知识图谱进行划分操作,把划分之后的子知识图谱交给各个分布式计算节点进行嵌入训练,解决了在进行大规模知识图谱嵌入训练的过程中,单机服务器容量有限的问题;而针对CPU算力有限的问题,以往的工作引入GPU来进行知识图谱嵌入训练中的梯度计算、更新操作。
利用分布式集群来进行大规模知识图谱嵌入训练有两个缺点,第一,无论是自己租用还是搭建分布式集群都是一笔很大的开销;第二,在利用分布式集群进行知识图谱嵌入任务的过程中,需要通过网络进行计算节点之间的数据交换,这会对整个嵌入训练速度造成较大影响。而非易失性内存具有容量大、读写速度与DRAM同一个数量级的优点,这让在单机上进行知识图谱嵌入训练成为了可能。本项目利用非易失性内存大容量的特性,同时引入GPU,将对算力要求较高的操作卸载到GPU上执行,实现了一个完整的在单机上对大规模知识图谱进行嵌入训练的端到端的设计方案。
非易失性内存能够达到与DRAM同一个数量级的读写性能,但是分别针对读操作与写操作,两者又有不同的差异。具体而言,非易失性内存在读操作上速度与DRAM相差不大,但是在写操作上,针对不同的负载,要比DRAM慢3-7倍。同时在本项目中又有GPU上的显存,GPU上的显存可以分为共享内存、本地内存、常量内存等等,每一种都适用于不同的读写操作。本项目针对非易失性内存,DRAM,GPU中的显存对不同类型读写操作的性能差异,同时结合在知识图谱嵌入训练过程中所用到的各个数据的特点,对这些数据在上述几种内存中的数据分布,从而既能利用非易失性内存大容量的特性,又能在单机上快速进行知识图谱嵌入训练。
在知识图谱嵌入训练的过程中,为了能根据实体或者关系出现的频率进对实体或者关系进行采样,需要用到别名表这一数据结构。别名表这一数据结构能够实现在O(1)的时间内按照概率对离散事件进行采样空间,其复杂度是O(n),与实体或者关系的数目相同。这使得别名表与知识图谱原始数据占用了较多的内存空间。针对这一情况,我们对别名表进行了数据压缩的操作。我们观察到对于一般的社交网络图数据,其中的顶点出现的频率满足长尾分布,而对于我们的知识图谱数据,而是满足长尾分布。针对这种情况,我们对别名表进行数据压缩,在不影响最终嵌入向量质量的情况下,减少别名表所占用的空间。
在知识图谱嵌入训练的过程中,需要进行负采样的操作。负采样的具体流程是首先根据别名表对实体或者关系进行采样;然后将获取采样得到的实体或者关系的嵌入向量;而后将这一部分嵌入向量复制到GPU显存中,开始训练;最后将训练好的嵌入向量写回DRAM中,并按照映射关系对原始嵌入向量进行更新。在这一部分操作中,无论是根据获取采样得到的实体或者关系对应的的嵌入向量,还是最后按照映射关系对原始嵌入向量进行更新,都需要大量GPU的介入。而且由于这两步操作是对嵌入向量的离散读写,其读写速度也比较慢。针对这一现象,我们利用CUDA中的统一内存空间,将关系与实体的嵌入向量映射到DRAM与GPU都能能访问的内存空间上。通过这一方式既减少了负采样过程中对CPU资源的消耗,又将CPU对DRAM的读写操作转化为PCIe的读写操作,加快了读写速度。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种单机大规模知识图谱嵌入方法及系统。
根据本发明提供的一种单机大规模知识图谱嵌入方法,包括:
步骤S1:根据关系对知识图谱进行划分操作,得到多个子知识图谱;
步骤S2:将各个子知识图谱与GPU绑定,利用GPU对子知识图谱进行训练,得到知识图谱中每个实体与关系对应的嵌入向量。
优选地,所述步骤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,直至嵌入向量收敛。
优选地,在GPU端进行第n次训练的过程中,CPU端准备第n+1次训练所需要的数据。
优选地,所述步骤S2.5采用:使用多线程采样三元组,并搜集三元组中的关系与实体对应的嵌入向量,放入采样池中的一个缓存中,而后将搜集得到的嵌入向量传到相应的GPU共享内存中。
优选地,根据每个子知识图谱中的实体出现的频率制作相应的别名表,并对别名表进行压缩。
优选地,所述对别名表进行压缩采用:
步骤S3:统计每个子知识图谱中实体出现的概率,根据出现的概率,对实体进行排序,得到排好序的数组sorted_array;
步骤S4:根据知识图谱数据中实体出现的概率符合幂律分布,利用Kolmogorov-Smirnov方法,计算得到常数a;
y=x-a(1)
其中,y表示概率;x表示实体的度;a表示常数;
步骤S5:将实体的度x从1到max(x)分为n份,让每一份的面积相同,均为1/n;
步骤S6:利用大小为n的偏移数组,数组中的每个元素记录下每一份开始的x在sorted_array中的偏移。
优选地,所述步骤S2.6采用:在负采样的过程中,随机取一个1-n的随机数m,根据m与偏移数组,得到数组sorted_array中的第m块,在第m块中随机取一个节点,完成实体采样。
优选地,所述步骤S2.6采用:
步骤S2.6.1:在声明实体所对应的嵌入向量时,将当前嵌入向量标记为统一内存空间;
步骤S2.6.2:在进行负采样时,在CPU端根据压缩后别名表的采样操作对实体进行采样,得到实体标号数组,并传入GPU共享内存中;
步骤S2.6.3:根据采样得到的实体标号数组,通过统一内存访问读取每个实体对应的嵌入向量;
步骤S2.6.4:训练嵌入向量,对嵌入向量进行更新。
根据本发明提供的一种单机大规模知识图谱嵌入系统,包括:
模块M1:根据关系对知识图谱进行划分操作,得到多个子知识图谱;
模块M2:将各个子知识图谱与GPU绑定,利用GPU对子知识图谱进行训练,得到知识图谱中每个实体与关系对应的嵌入向量。
优选地,所述模块M2采用:
模块M2.1:读取每个子知识图谱的原始数据,并存放在知识图谱类中,将当前知识图谱类数据存放在非易失性内存中;
模块M2.2:为每个子知识图谱中的实体与关系进行嵌入向量的初始化,初始化的嵌入向量存放在DRAM中,且声明实体的嵌入向量为统一内存空间;
模块M2.3:初始化每个子知识图谱对应的采样池,每个采样池都包含两份缓存,GPU处理其中一个缓存池数据,CPU为另一个缓存池采样数据;
模块M2.4:将每个知识图谱的初始化嵌入向量传输到相应的GPU的共享内存中,将每个子知识图谱实体的别名表传入相应GPU的共享内存中,将逻辑表数据写入GPU的常量内存中;
模块M2.5:CPU线程在对应的子知识图谱中进行正采样操作,搜集到正采样得到的实体与关系的嵌入向量,而后将正采样得到的数据传输到GPU共享内存中;
模块M2.6:GPU根据相应子知识图谱中实体的别名表进行负采样,并通过PCIe读入采样得到的实体对应的嵌入向量;
模块M2.7:GPU利用共享内存中的正采样数据与负采样数据,根据逻辑表进行梯度下降的前向传播与反向传播,更新正采样样例与负采样样例中实体与关系对应的嵌入向量;
模块M2.8:将更新的嵌入向量写入DRAM中,CPU根据映射关系将GPU传回的嵌入向量写入原对应的嵌入向量中,完成对嵌入向量的更新;重复触发模块M2.1至模块M2.8,直至嵌入向量收敛;
在GPU端进行第n次训练的过程中,CPU端准备第n+1次训练所需要的数据;
所述模块M2.5采用:使用多线程采样三元组,并搜集三元组中的关系与实体对应的嵌入向量,放入采样池中的一个缓存中,而后将搜集得到的嵌入向量传到相应的GPU共享内存中;
根据每个子知识图谱中的实体出现的频率制作相应的别名表,并对别名表进行压缩;
所述对别名表进行压缩采用:
模块M3:统计每个子知识图谱中实体出现的概率,根据出现的概率,对实体进行排序,得到排好序的数组sorted_array;
模块M4:根据知识图谱数据中实体出现的概率符合幂律分布,利用Kolmogorov-Smirnov方法,计算得到常数a;
y=x-a(1)
其中,y表示概率;x表示实体的度;a表示常数;
模块M5:将实体的度x从1到max(x)分为n份,让每一份的面积相同,均为1/n;
模块M6:利用大小为n的偏移数组,数组中的每个元素记录下每一份开始的x在sorted_array中的偏移;
所述模块M2.6采用:在负采样的过程中,随机取一个1-n的随机数m,根据m与偏移数组,得到数组sorted_array中的第m块,在第m块中随机取一个节点,完成实体采样;
所述模块M2.6采用:
模块M2.6.1:在声明实体所对应的嵌入向量时,将当前嵌入向量标记为统一内存空间;
模块M2.6.2:在进行负采样时,在CPU端根据压缩后别名表的采样操作对实体进行采样,得到实体标号数组,并传入GPU共享内存中;
模块M2.6.3:根据采样得到的实体标号数组,通过统一内存访问读取每个实体对应的嵌入向量;
模块M2.6.4:训练嵌入向量,对嵌入向量进行更新。
与现有技术相比,本发明具有如下的有益效果:相比于传统使用分布式集群来进行大规模知识图谱嵌入训练的方法,本发明使用非易失性内存大容量的特性,并且合理分配知识图谱训练过程中的数据在非易失性内存、GPU显存与DRAM的位置,能够克服分布式训练过程中网络通信所带来的性能开销,使得在不影响最终嵌入向量质量的情况下,总体训练效率提升40%-50%;同时还能大大节约搭建分布式集群的费用,具有经济上的优势。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为大规模知识图谱嵌入训练系统架构图。
图2为大规模知识图谱嵌入训练系统数据分布示意图。
图3为排序实体数组与偏移表的映射关系示意图。
图4为知识图谱嵌入训练流程图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
实施例1
本发明的是针对大规模知识图谱的嵌入训练,是针对大规模知识图谱进行嵌入训练的一套端到端的训练模型。本发明包括针对大规模知识图谱嵌入训练的端对端的训练量流程、数据分布方式、别名表数据压缩以及负采样过程优化四个方面。本发明利用非易失性内存大容量的特性,通过合理组织训练过程中的数据分布,实现在单机对大规模知识图谱进行快速嵌入训练。在训练的过程中,通过压缩别名表节省了存储空间,同时通过统一内存空间,减少了CPU的负载。
本发明设计基于知识图谱嵌入训练与非易失性内存,整个项目的架构图如图1所示。在进行知识图谱嵌入训练之前,首先会根据关系对知识图谱进行划分操作,得到数个子知识图谱;在训练的过程中,各个子知识图谱会与GPU绑定,每一个GPU负责一个或者多个子知识图谱的训练。在训练正式开始时,系统首先读入每个子知识图谱的原始数据,为每个子知识图谱中的实体与关系进行嵌入向量的初始化,并初始化采样线程池;每个子知识图谱的关系嵌入向量会被先传输到GPU的共享内存中,而训练中用到的逻辑表会被写入到GPU的常量内存中;之后系统会进行mini-batch的梯度更新操作:cpu线程会在对应的子知识图谱中进行正采样操作,搜集到正采样得到的实体与关系的嵌入向量,而后将正采样得到的数据传输到GPU显存中;而后在GPU中进行负采样操作,搜集到负采样得到的实体与关系的嵌入向量,这一部分用到了上文提到的统一内存空间;在GPU中对嵌入向量进行前向传播、反向传播,更新嵌入向量;最后把更新过的嵌入向量写回DRAM中,根据映射关系对原来的嵌入向量进行更新。整个训练过程会对此mini-batch进行重复执行,直到嵌入向量收敛。同时,在GPU端进行第n次mini-batch训练的过程中,CPU端准备第n+1次mini-batch训练所需要的数据,这样避免了GPU,CPU相互等待,能够充分利用算力。
根据本发明提供的一种单机大规模知识图谱嵌入方法,如图1至4所示,包括:
步骤S1:根据关系对知识图谱进行划分操作,得到多个子知识图谱;
步骤S2:将各个子知识图谱与GPU绑定,利用GPU对子知识图谱进行训练,得到知识图谱中每个实体与关系对应的嵌入向量。
具体地,所述步骤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,直至嵌入向量收敛。
具体地,在GPU端进行第n次训练的过程中,CPU端准备第n+1次训练所需要的数据。
具体地,所述步骤S2.5采用:使用多线程采样三元组,并搜集三元组中的关系与实体对应的嵌入向量,放入采样池中的一个缓存中,而后将搜集得到的嵌入向量传到相应的GPU共享内存中。
具体地,根据每个子知识图谱中的实体出现的频率制作相应的别名表,并对别名表进行压缩。
具体地,所述对别名表进行压缩采用:
步骤S3:统计每个子知识图谱中实体出现的概率,根据出现的概率,对实体进行排序,得到排好序的数组sorted_array;
步骤S4:根据知识图谱数据中实体出现的概率符合幂律分布,利用Kolmogorov-Smirnov方法,计算得到常数a;
y=x-a(1)
其中,y表示概率;x表示实体的度;a表示常数;
步骤S5:将实体的度x从1到max(x)分为n份,让每一份的面积相同,均为1/n;
步骤S6:利用大小为n的偏移数组,数组中的每个元素记录下每一份开始的x在sorted_array中的偏移。
具体地,所述步骤S2.6采用:在负采样的过程中,随机取一个1-n的随机数m,根据m与偏移数组,得到数组sorted_array中的第m块,在第m块中随机取一个节点,完成实体采样。
具体地,所述步骤S2.6采用:
步骤S2.6.1:在声明实体所对应的嵌入向量时,将当前嵌入向量标记为统一内存空间;
步骤S2.6.2:在进行负采样时,在CPU端根据压缩后别名表的采样操作对实体进行采样,得到实体标号数组,并传入GPU共享内存中;
步骤S2.6.3:根据采样得到的实体标号数组,通过统一内存访问读取每个实体对应的嵌入向量;
步骤S2.6.4:训练嵌入向量,对嵌入向量进行更新。
根据本发明提供的一种单机大规模知识图谱嵌入系统,包括:
模块M1:根据关系对知识图谱进行划分操作,得到多个子知识图谱;
模块M2:将各个子知识图谱与GPU绑定,利用GPU对子知识图谱进行训练,得到知识图谱中每个实体与关系对应的嵌入向量。
具体地,所述模块M2采用:
模块M2.1:读取每个子知识图谱的原始数据,并存放在知识图谱类中,将当前知识图谱类数据存放在非易失性内存中;
模块M2.2:为每个子知识图谱中的实体与关系进行嵌入向量的初始化,初始化的嵌入向量存放在DRAM中,且声明实体的嵌入向量为统一内存空间;
模块M2.3:初始化每个子知识图谱对应的采样池,每个采样池都包含两份缓存,GPU处理其中一个缓存池数据,CPU为另一个缓存池采样数据;
模块M2.4:将每个知识图谱的初始化嵌入向量传输到相应的GPU的共享内存中,将每个子知识图谱实体的别名表传入相应GPU的共享内存中,将逻辑表数据写入GPU的常量内存中;
模块M2.5:CPU线程在对应的子知识图谱中进行正采样操作,搜集到正采样得到的实体与关系的嵌入向量,而后将正采样得到的数据传输到GPU共享内存中;
模块M2.6:GPU根据相应子知识图谱中实体的别名表进行负采样,并通过PCIe读入采样得到的实体对应的嵌入向量;
模块M2.7:GPU利用共享内存中的正采样数据与负采样数据,根据逻辑表进行梯度下降的前向传播与反向传播,更新正采样样例与负采样样例中实体与关系对应的嵌入向量;
模块M2.8:将更新的嵌入向量写入DRAM中,CPU根据映射关系将GPU传回的嵌入向量写入原对应的嵌入向量中,完成对嵌入向量的更新;重复触发模块M2.1至模块M2.8,直至嵌入向量收敛。
具体地,在GPU端进行第n次训练的过程中,CPU端准备第n+1次训练所需要的数据。
具体地,所述模块M2.5采用:使用多线程采样三元组,并搜集三元组中的关系与实体对应的嵌入向量,放入采样池中的一个缓存中,而后将搜集得到的嵌入向量传到相应的GPU共享内存中。
具体地,根据每个子知识图谱中的实体出现的频率制作相应的别名表,并对别名表进行压缩。
具体地,所述对别名表进行压缩采用:
模块M3:统计每个子知识图谱中实体出现的概率,根据出现的概率,对实体进行排序,得到排好序的数组sorted_array;
模块M4:根据知识图谱数据中实体出现的概率符合幂律分布,利用Kolmogorov-Smirnov方法,计算得到常数a;
y=x-a(1)
其中,y表示概率;x表示实体的度;a表示常数;
模块M5:将实体的度x从1到max(x)分为n份,让每一份的面积相同,均为1/n;
模块M6:利用大小为n的偏移数组,数组中的每个元素记录下每一份开始的x在sorted_array中的偏移。
具体地,所述模块M2.6采用:在负采样的过程中,随机取一个1-n的随机数m,根据m与偏移数组,得到数组sorted_array中的第m块,在第m块中随机取一个节点,完成实体采样。
具体地,所述模块M2.6采用:
模块M2.6.1:在声明实体所对应的嵌入向量时,将当前嵌入向量标记为统一内存空间;
模块M2.6.2:在进行负采样时,在CPU端根据压缩后别名表的采样操作对实体进行采样,得到实体标号数组,并传入GPU共享内存中;
模块M2.6.3:根据采样得到的实体标号数组,通过统一内存访问读取每个实体对应的嵌入向量;
模块M2.6.4:训练嵌入向量,对嵌入向量进行更新。
实施例2
实施例2是实施例1的优选例
本发明设计基于知识图谱嵌入训练与非易失性内存,整个项目的架构图如图1所示。在进行知识图谱嵌入训练之前,首先会根据关系对知识图谱进行划分操作,得到数个子知识图谱;在训练的过程中,各个子知识图谱会与GPU绑定,每一个GPU负责一个或者多个子知识图谱的训练。
在训练正式开始时,系统首先读入每个子知识图谱的原始数据,为每个子知识图谱中的实体与关系进行嵌入向量的初始化,并初始化采样线程池;
每个子知识图谱的关系嵌入向量会被先传输到GPU的共享内存中,而训练中用到的逻辑表会被写入到GPU的常量内存中;之后系统会进行mini-batch的梯度更新操作:
cpu线程会在对应的子知识图谱中进行正采样操作,搜集到正采样得到的实体与关系的嵌入向量,而后将正采样得到的数据传输到GPU显存中;而后在GPU中进行负采样操作,搜集到负采样得到的实体与关系的嵌入向量,这一部分用到了上文提到的统一内存空间;在GPU中对嵌入向量进行前向传播、反向传播,更新嵌入向量;最后把更新过的嵌入向量写回DRAM中,根据映射关系对原来的嵌入向量进行更新。整个训练过程会对此mini-batch进行重复执行,直到嵌入向量收敛。
同时,在GPU端进行第n次mini-batch训练的过程中,CPU端准备第n+1次mini-batch训练所需要的数据,这样避免了GPU,CPU相互等待,能够充分利用算力。
相比于传统使用分布式来进行大规模知识图谱嵌入训练的方法,此方法不仅能够克服分布式训练过程中网络通信所带来的性能开销,还能大大节约搭建分布式集群的费用,具有经济上的优势。
本发明包括知识图谱嵌入训练模型、数据分布模型、别名表压缩、统一内存模式下的负采样等模块。
本知识图谱嵌入训练系统中,存储方面存在着硬盘、DRAM、非易失性内存、GPU显存;计算单元方面存在着CPU,GPU。系统任务是将知识图谱数据降维,通过知识图谱嵌入训练的方式将知识图谱中的高维数据用关系或者实体的嵌入向量表示。系统的输入是知识图谱数据集,通过多轮mini-batch训练得到嵌入向量;系统的输出就是训练得到的嵌入向量。
针对大规模知识图谱嵌入任务的知识图谱嵌入训练端到端模型,包括如下步骤:
步骤1:知识图谱嵌入训练系统从硬盘中加载知识图谱数据,将其按照关系进行划分,得到子知识图谱;将子知识图谱数据写入文件,存放在硬盘中。
步骤2:知识图谱嵌入训练系统将子知识图谱数据从硬盘中加载,存放在知识图谱类中,该类数据存放在非易失性内存中;为每个子知识图谱中的实体与关系初始化对应的嵌入向量,嵌入向量存放在DRAM中,并初始化每个子知识图谱对应的采样池,每个采样池都包含两份缓存,这样可以在GPU处理其中一个缓存池数据的时候,CPU为另一个缓存池采样数据。最后,系统根据每个子知识图谱中的实体的出现的频率,制作相应的别名表,并对别名表压缩。
步骤3:知识图谱嵌入训练系统将每个子知识图谱中的关系嵌入向量传到相应GPU中的共享内存中;将每个子知识图谱实体的别名表传入相应GPU的共享内存中;将逻辑表数据传到GPU的常量内存中。
步骤4:知识图谱嵌入训练系统使用多线程采样三元组,并搜集三元组中的关系与实体对应的嵌入向量,放入采样池中的一个缓存中,而后将这部分数据传到相应GPU的共享内存中;GPU根据相应子知识图谱中实体的别名表进行负采样,并通过PCIe读入采样得到的实体对应的嵌入向量。
步骤5:GPU利用在共享内存中的正采样数据与负采样数据,进行梯度下降的前向传播与反向传播,更新正采样样例与负采样样例中实体与关系对应的嵌入向量。
步骤6:一次mini-batch完成之后,GPU将现存中的实体的嵌入向量写回到DRAM中;在host端,CPU根据映射关系将GPU传回的嵌入向量写入到原来对应的嵌入向量中,完成对嵌入向量的更新。重复触发步骤4,5,6,直到训练收敛。
步骤7:将训练得到的嵌入向量写入文件,保存在硬盘中。
数据分配策略是快速完成知识图谱嵌入训练的端到端过程中重要因素。在知识图谱嵌入训练系统中存在的非易失性内存,DRAM,GPU显存。我们针对知识图谱嵌入训练时所用到的数据的读写特点,设计了在使用非易失性内存与DRAM混合内存进行知识图谱嵌入训练的数据分布。具体来说,在知识图谱嵌入训练的过程中主要用到的数据有:子知识图谱原始数据、用来根据实体或者关系出现的频率采样的实体与关系的别名表数据结构、实体与关系对应的嵌入向量、以及嵌入向量前向传播所用到的逻辑函数表数据结构。我们合理分配这几种数据,使得既利用了DRAM读写性能高的优点,又利用了非易失性内存容量大的特点,还能针对GPU显存对训练效率进行了优化,具体的数据分配策略与原因如下:
子知识图谱原始数据需要进行频繁的读,而不进行写操作,所以我们将其保存在非易失性内存中。
实体对应的嵌入向量需要进行频繁的读操作与写操作,所以我们将其放入DRAM中。
对于用来根据实体或者关系出现的频率采样的实体与关系的别名表数据结构,因为负采样是在GPU中进行的,我们将其放在GPU的显存中。
对于关系对应的向量,若将其与实体对应的向量一样放在DRAM中,不仅会带来DRAM与GPU显存之间的数据交换开销,而且带来多GPU训练时跨GPU的数据交换,从而严重影响训练速度。为了解决这个问题,我们在训练开始前对知识图谱按照关系进行划分,而后将关系对应的嵌入向量放在GPU显存中。
对于前向传播所用到的逻辑函数表数据结构较小,而且在知识图谱嵌入训练的过程中需要被非常频繁的读,所以我们将其放入GPU的常量内存中。
最后在我们的系统中,数据在DRAM、非易失性内存、GPU内存中的分布如图2所示。
针对别名表的数据压缩,包括如下步骤:
步骤8:统计每个子知识图谱中实体出现的概率,根据出现的概率,对实体进行排序,得到排好序的数组sorted_array。
步骤9:知识图谱数据中,实体出现的概率符合幂律分布,若用y表示概率,x表示实体的度,那知识图谱数据中满足公式(1)。我们利用Kolmogorov-Smirnov方法求出a。
y=x-a(1)
其中,a表示在此公式中,y表示实体出现的概率,x表示实体的度,a是常数。
步骤10:利用公式(1),将x从1到max(x)分为n份,让每一份的面积相同,为1/n。
步骤11:利用大小为n的偏移数组,数组中的每个元素记录下每一份开始的x在sorted_array中的偏移。
在不使用此优化的情况下,存储知识图谱原始数据与别名表数据需要的空间是2n,n为知识图谱内实体的数目,而使用此处得到的偏移,再用下面的采样方式进行采样,能把要占用的空间压缩到n,这就是此处提到的数据压缩。
通过上述操作,我们得到了压缩过后的别名表。在负采样的过程中,我们随机取一个1-n的随机数m,然后根据m与偏移数组,找到sorted_array中的第m块,最后我们在该块中随机取一个节点,就是我们要采样的实体。可见通过这种方式,我们随机采样的过程中仍然是常数事件,但是将别名表占用的空间大大缩小。这部分排好序的实体数组与偏移表的映射关系如图3所示。
统一内存模式下的负采样步骤如下:
步骤12:在声明实体所对应的嵌入向量时,将其标记为统一内存空间。
步骤13:在进行负采样时,首先在CPU端根据上述针对压缩后的别名表的采样的操作进行对实体的采样,得到实体标号数组,而后将其传入GPU内存中。
步骤14:根据采样得到的实体标号数组,通过统一内存访问读取每个实体对应的嵌入向量。
步骤15:训练嵌入向量,对嵌入向量进行更新。
通过将实体的嵌入向量标记为统一内存,减少了在负采样过程中CPU的负载,同时加快了数据的读取写入操作。
实施例3
实施例3是实施例1和/或实施例2的优选例
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
本发明利用非易失性内存大容量的特性,同时引入GPU,将对算力要求较高的操作卸载到GPU上执行,实现了一个完整的在单机上对大规模知识图谱进行嵌入训练的端到端的设计方案。除此之外,本发明针对非易失性内存,DRAM,GPU中的显存对不同类型读写操作的性能差异,同时结合在知识图谱嵌入训练过程中所用到的各个数据的特点,对这些数据在上述几种内存中的数据分布,从而既能利用非易失性内存大容量的特性,又能在单机上快速进行知识图谱嵌入训练。针对别名表数据结构占用空间较大的情况,本发明注意到知识图谱中实体数据分布满足长尾分布(或称为幂律分布),对别名表数据结构进行了数据压缩。最后,本发明利用统一内存空间,减少了负采样过程中CPU的负载,并提高了此过程中嵌入向量的读写效率。
以下通过举例来详细说明本发明的运行过程:
假设我们要处理的知识图谱数据集是FB15k,一个常用的知识图谱数据集。我们的实验环境是一台具有4颗GPU的服务器。
在进行知识图谱嵌入训练之前,首先会根据关系对FB15k进行划分操作,得到4个子知识图谱;在训练的过程中,这4个子知识图谱会与GPU绑定,每一个GPU负责一个或者多个子知识图谱的训练。在训练正式开始时,系统首先读入每个子知识图谱的原始数据,为每个子知识图谱中的实体与关系进行嵌入向量的初始化,并初始化采样线程池;每个子知识图谱的关系嵌入向量会被先传输到GPU的共享内存中,而训练中用到的逻辑表会被写入到GPU的常量内存中;之后系统会进行mini-batch的梯度更新操作:cpu线程会在对应的子知识图谱中进行正采样操作,搜集到正采样得到的实体与关系的嵌入向量,而后将正采样得到的数据传输到GPU显存中;而后在GPU中进行负采样操作,搜集到负采样得到的实体与关系的嵌入向量,这一部分用到了上文提到的统一内存空间;在GPU中对嵌入向量进行前向传播、反向传播,更新嵌入向量;最后把更新过的嵌入向量写回DRAM中,根据映射关系对原来的嵌入向量进行更新。整个训练过程会对此mini-batch进行重复执行,直到嵌入向量收敛。最后,将训练得到的嵌入向量写入文件,保存在硬盘中。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。
Claims (2)
1.一种单机大规模知识图谱嵌入方法,其特征在于,包括:
步骤S1:根据关系对知识图谱进行划分操作,得到多个子知识图谱;
步骤S2:将各个子知识图谱与GPU绑定,利用GPU对子知识图谱进行训练,得到知识图谱中每个实体与关系对应的嵌入向量;
所述步骤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,直至嵌入向量收敛;
在GPU端进行第n次训练的过程中,CPU端准备第n+1次训练所需要的数据;
所述步骤S2.5采用:使用多线程采样三元组,并搜集三元组中的关系与实体对应的嵌入向量,放入采样池中的一个缓存中,而后将搜集得到的嵌入向量传到相应的GPU共享内存中;
根据每个子知识图谱中的实体出现的频率制作相应的别名表,并对别名表进行压缩;
所述对别名表进行压缩采用:
步骤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中的偏移;
所述步骤S2.6采用:在负采样的过程中,随机取一个1-n的随机数m,根据m与偏移数组,得到数组sorted_array中的第m块,在第m块中随机取一个节点,完成实体采样;
所述步骤S2.6采用:
步骤S2.6.1:在声明实体所对应的嵌入向量时,将当前嵌入向量标记为统一内存空间;
步骤S2.6.2:在进行负采样时,在CPU端根据压缩后别名表的采样操作对实体进行采样,得到实体标号数组,并传入GPU共享内存中;
步骤S2.6.3:根据采样得到的实体标号数组,通过统一内存访问读取每个实体对应的嵌入向量;
步骤S2.6.4:训练嵌入向量,对嵌入向量进行更新。
2.一种单机大规模知识图谱嵌入系统,其特征在于,包括:
模块M1:根据关系对知识图谱进行划分操作,得到多个子知识图谱;
模块M2:将各个子知识图谱与GPU绑定,利用GPU对子知识图谱进行训练,得到知识图谱中每个实体与关系对应的嵌入向量;
所述模块M2采用:
模块M2.1:读取每个子知识图谱的原始数据,并存放在知识图谱类中,将当前知识图谱类数据存放在非易失性内存中;
模块M2.2:为每个子知识图谱中的实体与关系进行嵌入向量的初始化,初始化的嵌入向量存放在DRAM中,且声明实体的嵌入向量为统一内存空间;
模块M2.3:初始化每个子知识图谱对应的采样池,每个采样池都包含两份缓存,GPU处理其中一个缓存池数据,CPU为另一个缓存池采样数据;
模块M2.4:将每个知识图谱的初始化嵌入向量传输到相应的GPU的共享内存中,将每个子知识图谱实体的别名表传入相应GPU的共享内存中,将逻辑表数据写入GPU的常量内存中;
模块M2.5:CPU线程在对应的子知识图谱中进行正采样操作,搜集到正采样得到的实体与关系的嵌入向量,而后将正采样得到的数据传输到GPU共享内存中;
模块M2.6:GPU根据相应子知识图谱中实体的别名表进行负采样,并通过PCIe读入采样得到的实体对应的嵌入向量;
模块M2.7:GPU利用共享内存中的正采样数据与负采样数据,根据逻辑表进行梯度下降的前向传播与反向传播,更新正采样样例与负采样样例中实体与关系对应的嵌入向量;
模块M2.8:将更新的嵌入向量写入DRAM中,CPU根据映射关系将GPU传回的嵌入向量写入原对应的嵌入向量中,完成对嵌入向量的更新;重复触发模块M2.1至模块M2.8,直至嵌入向量收敛;
在GPU端进行第n次训练的过程中,CPU端准备第n+1次训练所需要的数据;
所述模块M2.5采用:使用多线程采样三元组,并搜集三元组中的关系与实体对应的嵌入向量,放入采样池中的一个缓存中,而后将搜集得到的嵌入向量传到相应的GPU共享内存中;
根据每个子知识图谱中的实体出现的频率制作相应的别名表,并对别名表进行压缩;
所述对别名表进行压缩采用:
模块M3:统计每个子知识图谱中实体出现的概率,根据出现的概率,对实体进行排序,得到排好序的数组sorted_array;
模块M4:根据知识图谱数据中实体出现的概率符合幂律分布,利用Kolmogorov-Smirnov方法,计算得到常数a;
y=X-a (1)
其中,y表示概率;x表示实体的度;a表示常数;
模块M5:将实体的度x从1到max(x)分为n份,让每一份的面积相同,均为1/n;
模块M6:利用大小为n的偏移数组,数组中的每个元素记录下每一份开始的x在sorted_array中的偏移;
所述模块M2.6采用:在负采样的过程中,随机取一个1-n的随机数m,根据m与偏移数组,得到数组sorted_array中的第m块,在第m块中随机取一个节点,完成实体采样;
所述模块M2.6采用:
模块M2.6.1:在声明实体所对应的嵌入向量时,将当前嵌入向量标记为统一内存空间;
模块M2.6.2:在进行负采样时,在CPU端根据压缩后别名表的采样操作对实体进行采样,得到实体标号数组,并传入GPU共享内存中;
模块M2.6.3:根据采样得到的实体标号数组,通过统一内存访问读取每个实体对应的嵌入向量;
模块M2.6.4:训练嵌入向量,对嵌入向量进行更新。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110983670.XA CN113609310B (zh) | 2021-08-25 | 2021-08-25 | 单机大规模知识图谱嵌入系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110983670.XA CN113609310B (zh) | 2021-08-25 | 2021-08-25 | 单机大规模知识图谱嵌入系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113609310A CN113609310A (zh) | 2021-11-05 |
CN113609310B true CN113609310B (zh) | 2023-08-08 |
Family
ID=78341981
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110983670.XA Active CN113609310B (zh) | 2021-08-25 | 2021-08-25 | 单机大规模知识图谱嵌入系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113609310B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108776833A (zh) * | 2018-06-05 | 2018-11-09 | 郑州云海信息技术有限公司 | 一种数据处理方法、系统及计算机可读存储介质 |
WO2019005606A1 (en) * | 2017-06-30 | 2019-01-03 | Visa International Service Association | GPU ENHANCED GRAPH MODEL CONSTRUCTION AND SCANNING ENGINE |
CN110298437A (zh) * | 2019-06-28 | 2019-10-01 | Oppo广东移动通信有限公司 | 神经网络的分割计算方法、装置、存储介质及移动终端 |
CN110414669A (zh) * | 2019-07-02 | 2019-11-05 | 四川大学 | 一种加速神经网络结构选择的方法 |
CN110942138A (zh) * | 2019-11-13 | 2020-03-31 | 华中科技大学 | 一种混合内存环境下深度神经网络的训练方法和系统 |
CN111400428A (zh) * | 2020-02-17 | 2020-07-10 | 浙江创课网络科技有限公司 | 一种知识图谱体系搭建方法 |
CN112069370A (zh) * | 2019-06-11 | 2020-12-11 | 北京地平线机器人技术研发有限公司 | 神经网络结构搜索方法、装置、介质和设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190378016A1 (en) * | 2018-06-07 | 2019-12-12 | International Business Machines Corporation | Distributed computing architecture for large model deep learning |
-
2021
- 2021-08-25 CN CN202110983670.XA patent/CN113609310B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019005606A1 (en) * | 2017-06-30 | 2019-01-03 | Visa International Service Association | GPU ENHANCED GRAPH MODEL CONSTRUCTION AND SCANNING ENGINE |
CN108776833A (zh) * | 2018-06-05 | 2018-11-09 | 郑州云海信息技术有限公司 | 一种数据处理方法、系统及计算机可读存储介质 |
CN112069370A (zh) * | 2019-06-11 | 2020-12-11 | 北京地平线机器人技术研发有限公司 | 神经网络结构搜索方法、装置、介质和设备 |
CN110298437A (zh) * | 2019-06-28 | 2019-10-01 | Oppo广东移动通信有限公司 | 神经网络的分割计算方法、装置、存储介质及移动终端 |
CN110414669A (zh) * | 2019-07-02 | 2019-11-05 | 四川大学 | 一种加速神经网络结构选择的方法 |
CN110942138A (zh) * | 2019-11-13 | 2020-03-31 | 华中科技大学 | 一种混合内存环境下深度神经网络的训练方法和系统 |
CN111400428A (zh) * | 2020-02-17 | 2020-07-10 | 浙江创课网络科技有限公司 | 一种知识图谱体系搭建方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113609310A (zh) | 2021-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102047241B (zh) | 本地与全局数据共享 | |
CN104765589B (zh) | 基于mpi的网格并行预处理方法 | |
CN110516810B (zh) | 一种量子程序的处理方法、装置、存储介质和电子装置 | |
CN113360286B (zh) | 一种基于知识图谱嵌入的链接预测方法 | |
CN112882663B (zh) | 一种随机写的方法、电子设备及存储介质 | |
CN113313247B (zh) | 基于数据流架构的稀疏神经网络的运算方法 | |
CN112906865B (zh) | 神经网络架构搜索方法、装置、电子设备及存储介质 | |
CN110597627B (zh) | 基于虚拟fpga的数据库运算加速装置及加速方法 | |
CN106227506A (zh) | 一种内存压缩系统中的多通道并行压缩解压系统及方法 | |
US20150170731A1 (en) | Apparatuses and methods for writing masked data to a buffer | |
CN113609310B (zh) | 单机大规模知识图谱嵌入系统及方法 | |
CN113257352A (zh) | 一种基因测序数据排序方法、集成电路及排序设备 | |
CN112558869A (zh) | 基于大数据遥感影像缓存方法 | |
CN103117748B (zh) | 一种bwt实现方法中对后缀进行排序的方法及系统 | |
CN109800867B (zh) | 一种基于fpga片外存储器的数据调用方法 | |
CN112416368A (zh) | 缓存部署与任务调度方法、终端和计算机可读存储介质 | |
CN111191774B (zh) | 面向精简卷积神经网络的低代价加速器架构及其处理方法 | |
CN114780368B (zh) | 表数据同步方法与装置 | |
CN113112084B (zh) | 一种教练机后机身研发流程优化方法及装置 | |
CN111273865B (zh) | 一种基于可变便笺式存储器的任务分配及调度方法 | |
CN110377601B (zh) | 一种基于B树数据结构的MapReduce计算过程优化方法 | |
CN102622318B (zh) | 一种存储器控制电路及其控制的向量数据寻址方法 | |
CN112037874A (zh) | 一种基于映射归约的分布式数据处理方法 | |
CN113642724B (zh) | 一种高带宽存储的cnn加速器 | |
US11500632B2 (en) | Processor device for executing SIMD instructions |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: 200240 No. 800, Dongchuan Road, Shanghai, Minhang District Patentee after: SHANGHAI JIAO TONG University Country or region after: China Patentee after: Shanghai Suiyuan Technology Co.,Ltd. Address before: 200240 No. 800, Dongchuan Road, Shanghai, Minhang District Patentee before: SHANGHAI JIAO TONG University Country or region before: China Patentee before: SHANGHAI ENFLAME TECHNOLOGY Co.,Ltd. |
|
CP03 | Change of name, title or address |