System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本公开通常涉及提高图神经网络(graph neural networks,gnn)计算的效率,更具体地,本公开涉及在图神经网络(gnn)计算中有效量化的方法和系统。
技术介绍
1、虽然传统的深度学习模型善于通过捕获欧几里德数据(例如,图像、文本、视频)的隐藏模式来进行模式识别和数据挖掘,但图神经网络(gnn)已证明可以将机器学习的能力扩展到表示为具有对象之间的复杂关系和相互依赖关系的图的非欧几里德领域。研究表明,gnn在从分子推理到社区检测等应用领域的性能可以超过最先进的水平。
2、迄今为止,阻碍gnn在工业应用中被广泛采用的挑战之一是难以将其扩展到大型图。例如,一个合理规模的社交媒体可能有数亿个节点和数十亿条边,其中每个节点或边在gnn计算期间可以具有需要存储和访问的属性数据或特征向量。在gnn计算期间要存储、传输和处理的数据量是巨大的。
技术实现思路
1、本公开的各种实施例可包括用于在gnn计算中进行量化(quantization)的硬件电路、系统和方法。
2、根据一个方面,描述了一种用于执行乘积量化以提高gnn计算效率的计算机实现方法。该方法可以首先接收包含多个节点的作为gnn计算的输入的图,并且通过多个特征向量分别表示多个节点。在量化步骤之前,该方法还可以包括:将多个特征向量分割成多个子向量;将多个子向量分组为多组子向量;对多组子向量中的每组子向量执行向量聚类以生成多个质心(centroid);以及将多个质心存储为码本(codebook)。在码本准备
3、在一些实施例中,将多个特征向量分割成多个子向量并将多个子向量分组成多组子向量包括:将多个特征向量分割成预设子向量大小的多个子向量;以及基于对应特征向量内每个子向量的偏移量,将子向量分组为多组子向量。
4、在一些实施例中,在将多个特征向量分割成多个子向量之前,该方法还可以包括:对多个特征向量的稀疏度进行量化;基于稀疏度确定子向量大小,其中稀疏度与子向量大小成反比;以及将多个特征向量分割成具有所确定的子向量大小的多个子向量。
5、在一些实施例中,多个子向量中的每个子向量包括来自多个特征向量中的每个特征向量的相同偏移量处的一个子向量。
6、在一些实施例中,向量聚类包括k均值聚类(k-means clustering)或支持向量聚类(support vector clustering,svc)。
7、在一些实施例中,对多组子向量中的每组子向量执行向量聚类以生成多个质心包括:在多组子向量中的每组子向量内,通过执行向量聚类算法来确定多个质心,其中,多个质心中的每个质心包括与多个子向量中的每个子向量具有相同大小的向量。
8、在一些实施例中,在码本中存储多个质心包括:用多个索引索引多个质心;以及存储多个索引和多个质心之间的映射。
9、在一些实施例中,基于码本对每个特征向量内的子向量进行量化包括:对于属于多组子向量的一组子向量的每个子向量,确定多个质心中的对应于该一组子向量的一个或多个质心;确定该子向量和该一个或多个质心中每个质心之间的向量距离;识别该一个或多个质心中的具有到该子向量的最短向量距离的一个质心;以及使用所识别的一个质心的索引对该子向量进行编码,其中存储索引比存储子向量使用更少的字节数。
10、在一些实施例中,解码包括:接收对表示图节点的特征向量的请求;获取与所请求的特征向量相对应的索引映射,其中索引映射包括与多个质心中的一个或多个质心相对应的一个或多个索引;基于一个或多个索引和码本获得一个或多个质心;以及将一个或多个质心聚合为所请求的图节点的特征向量。
11、在一些实施例中,对多组子向量中的每组子向量执行向量聚类包括:从多个子向量中过滤出包含全零的子向量;从向量聚类中排除包含全零的子向量;分配特定质心来表示所有包含全零的子向量;以及对包含非零数据的子向量执行向量聚类。
12、在一些实施例中,存储码本和分配表包括:响应于片上存储器足以存储码本和分配表,将存储码本和分配表存储在片上存储器中;以及响应于片上存储器不足以存储码本和分配表,将码本存储在片上存储器中并且将分配表存储在片外存储器中。
13、在一些实施例中,该方法还可以包括:将多个节点分批处理为多个批次(batch),并将多个批次分配给多个处理单元以进行并行编码,其中并行编码包括:为多个批次中的每个批次生成码本和分配表。
14、在一些实施例中,分批处理包括:通过对多个节点的节点索引应用哈希函数,将多个节点分批处理为多个批次。
15、在一些实施例中,分批处理包括:基于图中每个节点的位置,将多个节点分批处理为多个批次。
16、根据另一方面,描述了一种用于加速图神经网络(gnn)计算的硬件加速器。硬件加速器可包括:一个或多个处理器,和一个或多个非暂时性计算机可读存储器,其与一个或多个处理器耦合,并配置有可由一个或多个处理器执行的指令,以使硬件加速器执行操作,该操作包括:接收包含多个节点的作为gnn计算的输入的图,其中通过多个特征向量分别表示多个节点;将多个特征向量分割成多个子向量;将多个子向量分组为多组子向量;对多组子向量中的每组子向量执行向量聚类以生成多个质心(centroid);以及将多个质心存储为码本(codebook);通过基于码本对多个特征向量中每个特征向量中的子向量进行量化,将每个特征向量编码为索引映射以获得多个索引映射,其中索引映射比每个特征向量占用的存储空间更小;以及将多个索引映射存储为分配表,以表示用于gnn计算的多个节点,其中gnn计算包括基于分配表和码本对多个索引映射进行解码。
17、根据又一方面,描述了一种用于加速图神经网络(gnn)计算的非暂时性计算机可读存储介质。该存储介质存储指令,当由一个或多个处理器执行时,使得一个或多个处理器执行操作,所述操作包括:接收包含多个节点的作为gnn计算的输入的图,其中通过多个特征向量分别表示多个节点;将多个特征向量分割成多个子向量;将多个子向量分组为多组子向量;对多组子向量中的每组子向量执行向量聚类以生成多个质心(centroid);以及将多个质心存储为码本(codebook);通过基于码本对多个特征向量中的每个特征向量中的子向量进行量化,将每个特征向量编码为索引映射以获得多个索引映射,其中索引映射比每个特征向量占用的存储空间更小;以及将多个索引映射存储为分配表,以表示用于gnn计算的多个节点,其中gnn计算包括基于分配表和码本对多个索引映射进行解码。
18、本公开描述了用于在gnn中有效量化的新颖硬件和软件设计,显著压缩了数据本文档来自技高网...
【技术保护点】
1.一种使用乘积量化加速图神经网络计算的加速方法,包括:
2.根据权利要求1所述的加速方法,其中,所述将所述多个特征向量分割为多个子向量,将所述多个子向量分组为多组子向量包括:
3.根据权利要求1所述的加速方法,其中,所述将所述多个特征向量分割为多个子向量之前,所述方法还包括:
4.根据权利要求1所述的加速方法,其中,所述多个子向量中的每个子向量包括来自所述多个特征向量中的每个特征向量的相同偏移量处的一个子向量。
5.根据权利要求1所述的加速方法,其中,所述向量聚类包括K均值聚类或支持向量聚类。
6.根据权利要求1所述的加速方法,其中,所述对所述多组子向量中的每组子向量执行向量聚类以生成多个质心包括:
7.根据权利要求1所述的加速方法,其中,在所述码本中存储所述多个质心包括:
8.根据权利要求1所述的加速方法,其中,基于所述码本对所述每个特征向量内的所述子向量进行量化包括:
9.根据权利要求1所述的加速方法,其中,所述解码包括:
10.根据权利要求1所述的加速方法,其中,对
11.根据权利要求1所述的加速方法,其中,所述方法还包括:
12.根据权利要求1所述的加速方法,其中,还包括:
13.根据权利要求12所述的加速方法,其中,所述分批处理包括:
14.根据权利要求12所述的加速方法,其中,所述分批处理包括:
15.一种用于基于乘积量化加速图神经网络计算的加速器,包括:
16.根据权利要求15所述的加速器,其中,基于所述码本对所述每个特征向量内的所述子向量进行量化包括:
17.根据权利要求15所述的加速器,其中,所述解码包括:
18.根据权利要求15所述的加速器,其中,为了对所述多组子向量中的每组子向量执行向量聚类,所述特征向量聚类电路还被配置为:
19.根据权利要求15所述的加速器,其中,所述码本在所述加速器的片上存储器具有比所述分配表更高的存储优先级,所述编码电路还被配置为:
20.根据权利要求15所述的加速器,其中,所述编码电路还被配置为:
21.一种加速器,包括:
22.一种非暂时性计算机可读存储介质,所述存储介质存储指令,当由一个或多个处理器执行时,使得所述一个或多个处理器执行上述权利要求1至14中任一项所述的方法。
...【技术特征摘要】
1.一种使用乘积量化加速图神经网络计算的加速方法,包括:
2.根据权利要求1所述的加速方法,其中,所述将所述多个特征向量分割为多个子向量,将所述多个子向量分组为多组子向量包括:
3.根据权利要求1所述的加速方法,其中,所述将所述多个特征向量分割为多个子向量之前,所述方法还包括:
4.根据权利要求1所述的加速方法,其中,所述多个子向量中的每个子向量包括来自所述多个特征向量中的每个特征向量的相同偏移量处的一个子向量。
5.根据权利要求1所述的加速方法,其中,所述向量聚类包括k均值聚类或支持向量聚类。
6.根据权利要求1所述的加速方法,其中,所述对所述多组子向量中的每组子向量执行向量聚类以生成多个质心包括:
7.根据权利要求1所述的加速方法,其中,在所述码本中存储所述多个质心包括:
8.根据权利要求1所述的加速方法,其中,基于所述码本对所述每个特征向量内的所述子向量进行量化包括:
9.根据权利要求1所述的加速方法,其中,所述解码包括:
10.根据权利要求1所述的加速方法,其中,对所述多组子向量中的每组子向量执行向量聚类包括:
11.根据权利要求1所述...
【专利技术属性】
技术研发人员:黄林勇,张喆,李双辰,郑宏忠,
申请(专利权)人:阿里巴巴中国有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。