CN117149813B - 输入特征的向量查找方法、装置和模型运算设备 - Google Patents
输入特征的向量查找方法、装置和模型运算设备 Download PDFInfo
- Publication number
- CN117149813B CN117149813B CN202311420869.7A CN202311420869A CN117149813B CN 117149813 B CN117149813 B CN 117149813B CN 202311420869 A CN202311420869 A CN 202311420869A CN 117149813 B CN117149813 B CN 117149813B
- Authority
- CN
- China
- Prior art keywords
- embedded vector
- target
- storage space
- embedded
- vector
- 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
- 239000013598 vector Substances 0.000 title claims abstract description 971
- 238000000034 method Methods 0.000 title claims abstract description 107
- 230000008569 process Effects 0.000 claims description 39
- 230000000977 initiatory effect Effects 0.000 claims description 22
- 238000012545 processing Methods 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 16
- 230000004044 response Effects 0.000 claims description 6
- 239000000758 substrate Substances 0.000 claims 10
- 239000000523 sample Substances 0.000 claims 6
- 230000000694 effects Effects 0.000 abstract description 6
- 230000000875 corresponding effect Effects 0.000 description 166
- 238000010586 diagram Methods 0.000 description 14
- 230000005540 biological transmission Effects 0.000 description 7
- 238000012549 training Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000007477 logistic regression Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000007637 random forest analysis Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000012706 support-vector machine Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000009365 direct transmission Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000000007 visual effect 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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2425—Iterative querying; Query formulation based on the results of a preceding query
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2237—Vectors, bitmaps or matrices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2264—Multidimensional index structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24564—Applying rules; Deductive queries
- G06F16/24566—Recursive queries
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了一种输入特征的向量查找方法、装置和模型运算设备,其中,该方法包括:获取目标特征维度;从第一存储空间中查找目标特征维度对应的嵌入向量,其中,第一存储空间用于存储与参考嵌入向量相关的第一嵌入向量;在从第一存储空间中未查找到目标特征维度对应的嵌入向量的情况下,从第二存储空间中查找目标特征维度对应的嵌入向量得到目标嵌入向量,并从第二存储空间中查找与目标嵌入向量相关的嵌入向量得到第二嵌入向量;将第二嵌入向量存储至第一存储空间。通过本申请,解决了查找输入特征的向量的效率较低的问题,进而达到了提高查找输入特征的向量的效率的效果。
Description
技术领域
本申请实施例涉及计算机领域,具体而言,涉及一种输入特征的向量查找方法、装置和模型运算设备。
背景技术
目前,尽管模型具体的设计各不相同,但大多数都是基于输入特征与向量查找构建的,现有技术中,模型基于输入特征从存储了全量特征维度的全量嵌入向量中查找对应的嵌入向量,由于进行查找操作的处理设备的内存空间有限,在每次查找都需要获取全量特征维度的全量嵌入向量就出现了由于嵌入查找导致的内存瓶颈,无法服务于大型模型。
针对相关技术中,查找输入特征的向量的效率较低等问题,尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种输入特征的向量查找方法、装置和模型运算设备,以至少解决相关技术中查找输入特征的向量的效率较低的问题。
根据本申请的一个实施例,提供了一种输入特征的向量查找方法,包括:
获取目标特征维度,其中,所述目标特征维度是待转换为嵌入向量的目标输入特征所包括的特征维度,所述目标输入特征是输入至模型进行运算的特征;
从第一存储空间中查找所述目标特征维度对应的嵌入向量,其中,所述第一存储空间用于存储与参考嵌入向量相关的第一嵌入向量,所述参考嵌入向量是上一次从第二存储空间中查找到的参考特征维度对应的嵌入向量,所述第二存储空间用于存储全量特征维度的全量嵌入向量;
在从所述第一存储空间中未查找到所述目标特征维度对应的嵌入向量的情况下,从所述第二存储空间中查找所述目标特征维度对应的嵌入向量得到目标嵌入向量,并从所述第二存储空间中查找与所述目标嵌入向量相关的嵌入向量得到第二嵌入向量;
将所述第二嵌入向量存储至所述第一存储空间,其中,所述目标嵌入向量用于将所述目标特征维度转换为嵌入向量。
在一个示例性实施例中,所述从所述第二存储空间中查找所述目标特征维度对应的嵌入向量得到目标嵌入向量,并从所述第二存储空间中查找与所述目标嵌入向量相关的嵌入向量得到第二嵌入向量,包括:从所述第二存储空间中记录的具有对应关系的特征维度和存储位置中查找所述目标特征维度所对应的目标存储位置,其中,在所述第二存储空间中按照存储位置存储具有相关性的嵌入向量;根据所述目标存储位置查找所述目标嵌入向量和所述第二嵌入向量。
在一个示例性实施例中,所述根据所述目标存储位置查找所述目标嵌入向量和所述第二嵌入向量,包括:从具有对应关系的特征维度和存储位置中获取距离所述目标存储位置在第一范围内的相关存储位置,其中,具有对应关系的特征维度和存储位置是按照特征维度之间的相关性顺序存储的;提取位于所述目标存储位置的嵌入向量作为所述目标嵌入向量,提取位于所述相关存储位置的嵌入向量作为所述第二嵌入向量。
在一个示例性实施例中,所述根据所述目标存储位置查找所述目标嵌入向量和所述第二嵌入向量,包括:提取位于所述目标存储位置的嵌入向量作为所述目标嵌入向量;提取距离所述目标嵌入向量在第二范围内的嵌入向量作为所述第二嵌入向量,其中,在所述第二存储空间中是按照特征维度之间的相关性顺序存储嵌入向量的。
在一个示例性实施例中,所述从所述第二存储空间中查找所述目标特征维度对应的嵌入向量得到目标嵌入向量,并从所述第二存储空间中查找与所述目标嵌入向量相关的嵌入向量得到第二嵌入向量,包括:从所述第二存储空间所存储的一个或者多个存储页中确定所述目标特征维度对应的嵌入向量所在的目标存储页,其中,在所述第二存储空间中是按照特征维度之间的相关性顺序存储嵌入向量形成所述一个或者多个存储页的;将所述目标存储页中除所述目标嵌入向量之外的嵌入向量确定为所述第二嵌入向量。
在一个示例性实施例中,所述将所述第二嵌入向量存储至所述第一存储空间,包括:将所述目标存储页从所述第二存储空间所在的目标外接存储设备拷贝至所述第一存储空间。
在一个示例性实施例中,所述从所述第二存储空间中查找所述目标特征维度对应的嵌入向量得到目标嵌入向量,并从所述第二存储空间中查找与所述目标嵌入向量相关的嵌入向量得到第二嵌入向量,包括:从所述第二存储空间所存储的嵌入表中查找所述目标特征维度对应的嵌入向量作为所述目标嵌入向量,其中,在所述第二存储空间中是按照特征维度之间的相关性顺序存储嵌入向量形成所述嵌入表;将所述嵌入表中位于所述目标嵌入向量第三范围内的嵌入向量确定为所述第二嵌入向量。
在一个示例性实施例中,所述将所述嵌入表中位于所述目标嵌入向量第三范围内的嵌入向量确定为所述第二嵌入向量,包括:从所述嵌入表所划分出的一个或者多个子嵌入表中查找所述目标嵌入向量所在的目标子嵌入表,其中,一个或者多个子嵌入表是按照特征类别对所述嵌入表进行划分得到的,每个所述子嵌入表是按照属于同一特征类别的特征维度之间的相关性顺序存储嵌入向量形成的;将所述目标子嵌入表中位于所述目标嵌入向量所述第三范围内的嵌入向量确定为所述第二嵌入向量。
在一个示例性实施例中,所述将所述第二嵌入向量存储至所述第一存储空间,包括:将所述目标嵌入向量和所述第二嵌入向量从所述第二存储空间所在的目标外接存储设备加载至所述第一存储空间。
在一个示例性实施例中,所述从所述第二存储空间中查找所述目标特征维度对应的嵌入向量得到目标嵌入向量,并从所述第二存储空间中查找与所述目标嵌入向量相关的嵌入向量得到第二嵌入向量,包括:向目标外接存储设备发起向量查询请求,其中,所述向量查询请求用于请求查询所述目标特征维度对应的嵌入向量以及与所述目标特征维度对应的嵌入向量相关的嵌入向量,所述第二存储空间是所述目标外接存储设备上的存储空间;接收所述目标外接存储设备响应所述向量查询请求返回的所述目标嵌入向量和所述第二嵌入向量。
在一个示例性实施例中,所述向目标外接存储设备发起向量查询请求,包括:向所述目标外接存储设备发起符合计算快速连接协议的所述向量查询请求,其中,所述目标外接存储设备是计算快速连接协议类型三设备,所述第一存储空间是部署了所述模型的设备的内存空间,所述第二存储空间是所述计算快速连接协议类型三设备的存储空间,所述第二存储空间允许作为所述部署了所述模型的设备的扩展内存使用。
在一个示例性实施例中,在所述向所述目标外接存储设备发起符合计算快速连接协议的所述向量查询请求之前,所述方法还包括:将所述第一存储空间和所述第二存储空间上报为部署了所述模型的设备的内存;对所述第一存储空间和所述第二存储空间按照统一地址进行地址编码。
在一个示例性实施例中,所述将所述第二嵌入向量存储至所述第一存储空间,包括以下之一:在所述第一存储空间中已存储了第三嵌入向量的情况下,将所述第二嵌入向量与所述第三嵌入向量进行合并;在所述第一存储空间中已存储了第三嵌入向量的情况下,将所述第三嵌入向量删除;将所述第二嵌入向量存储至所述第一存储空间;在所述第一存储空间中未存储嵌入向量的情况下,将所述第二嵌入向量存储至所述第一存储空间。
在一个示例性实施例中,所述将所述第二嵌入向量与所述第三嵌入向量进行合并,包括以下之一:将所述第二嵌入向量存储至所述第一存储空间,得到第四嵌入向量;对所述第四嵌入向量进行去重;提取所述第二嵌入向量与所述第三嵌入向量的并集,得到第五嵌入向量;将所述第三嵌入向量从所述第一存储空间中删除;将所述第五嵌入向量存储至所述第一存储空间;从所述第二嵌入向量中提取未落入所述第三嵌入向量的第六嵌入向量;将所述第六嵌入向量存储至所述第一存储空间。
在一个示例性实施例中,所述从第一存储空间中查找所述目标特征维度对应的嵌入向量,包括:在所述目标特征维度为所述目标输入特征的首个特征维度的情况下,确定所述第一存储空间中未存储嵌入向量;执行所述从所述第二存储空间中查找所述目标特征维度对应的嵌入向量得到目标嵌入向量的步骤;在所述目标特征维度为所述目标输入特征的非首个特征维度的情况下,从第一存储空间中查找所述目标特征维度对应的嵌入向量。
在一个示例性实施例中,在所述从所述第二存储空间中查找所述目标特征维度对应的嵌入向量得到目标嵌入向量,并从所述第二存储空间中查找与所述目标嵌入向量相关的嵌入向量得到第二嵌入向量之后,所述方法还包括:在所述目标特征维度为所述目标输入特征的最后一个特征维度的情况下,跳过所述将所述第二嵌入向量存储至所述第一存储空间的步骤;删除所述第一存储空间中存储的嵌入向量。
在一个示例性实施例中,所述跳过所述将所述第二嵌入向量存储至所述第一存储空间的步骤,包括:检测所述目标输入特征与下一个待转换为嵌入向量的参考输入特征之间的目标相似度;在所述目标相似度小于相似度阈值的情况下,跳过所述将所述第二嵌入向量存储至所述第一存储空间的步骤;在所述目标相似度大于或者等于所述相似度阈值的情况下,执行所述将所述第二嵌入向量存储至所述第一存储空间的步骤。
在一个示例性实施例中,在所述将所述第二嵌入向量存储至所述第一存储空间之后,所述方法还包括:在部署了所述模型的计算快速连接协议类型二设备对所述目标输入特征进行运算的过程中,通过快速连接协议的缓存协议将所述模型的每层更新后的权重参数存储至目标外接存储设备上的第三存储空间,其中,所述目标外接存储设备是计算快速连接协议类型三设备。
根据本申请的另一个实施例,提供了一种模型运算设备,包括:处理装置,第一存储空间和第二存储空间,所述模型运算设备用于将目标输入特征转换为嵌入向量并使用得到的嵌入向量进行模型运算,所述第二存储空间用于存储全量特征维度的全量嵌入向量,所述第一存储空间用于存储与参考嵌入向量相关的第一嵌入向量,所述参考嵌入向量是上一次从第二存储空间中查找到的参考特征维度对应的嵌入向量;所述处理装置用于执行上述任一项方法实施例中的步骤。
根据本申请的另一个实施例,提供了一种输入特征的向量查找装置,包括:
获取模块,用于获取目标特征维度,其中,所述目标特征维度是待转换为嵌入向量的目标输入特征所包括的特征维度,所述目标输入特征是输入至模型进行运算的特征;
第一查找模块,用于从第一存储空间中查找所述目标特征维度对应的嵌入向量,其中,所述第一存储空间用于存储与参考嵌入向量相关的第一嵌入向量,所述参考嵌入向量是上一次从第二存储空间中查找到的参考特征维度对应的嵌入向量,所述第二存储空间用于存储全量特征维度的全量嵌入向量;
第二查找模块,用于在从所述第一存储空间中未查找到所述目标特征维度对应的嵌入向量的情况下,从所述第二存储空间中查找所述目标特征维度对应的嵌入向量得到目标嵌入向量,并从所述第二存储空间中查找与所述目标嵌入向量相关的嵌入向量得到第二嵌入向量;
第一存储模块,用于将所述第二嵌入向量存储至所述第一存储空间,其中,所述目标嵌入向量用于将所述目标特征维度转换为嵌入向量。
根据本申请的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本申请的又一个实施例,还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
通过本申请,由于在查找参考特征维度对应的嵌入向量的过程中,已经将从第二存储空间中查找到的与参考嵌入向量相关的第一嵌入向量存储至第一存储空间中,因此在查找目标特征维度对应的嵌入向量的过程中,可以优先从第一存储空间中查找目标特征维度对应的嵌入向量,减少从存储全量特征维度的全量嵌入向量的第二存储空间中进行查找的过程,因此通过预先存储于上一参考嵌入向量相关的第一嵌入向量,可以解决查找输入特征的向量的效率较低问题,达到提高查找输入特征的向量的效率效果。
附图说明
图1是本申请实施例的一种输入特征的向量查找方法的服务器设备的硬件结构框图;
图2是根据本申请实施例的输入特征的向量查找方法的流程图;
图3是根据本申请实施例的一种模型的工作过程的示意图;
图4是根据本申请实施例的一种从嵌入表中查找目标嵌入向量以及第二嵌入向量的过程的示意;
图5是根据本申请实施例的一种第二存储空间的工作过程的示意图;
图6是根据本申请实施例的一种模型的训练过程的示意图;
图7是根据本申请实施例的模型运算设备的结构框图;
图8是根据本申请实施例的输入特征的向量查找装置的结构框图;
图9是根据本申请实施例的电子设备的结构框图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本申请的实施例。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请实施例中所提供的方法实施例可以在服务器设备或者类似的运算装置中执行。以运行在服务器设备上为例,图1是本申请实施例的一种输入特征的向量查找方法的服务器设备的硬件结构框图。如图1所示,服务器设备可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,其中,上述服务器设备还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述服务器设备的结构造成限定。例如,服务器设备还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本申请实施例中的输入特征的向量查找方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至服务器设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括服务器设备的通信供应方提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种输入特征的向量查找方法,图2是根据本申请实施例的输入特征的向量查找方法的流程图,如图2所示,该流程包括如下步骤:
步骤S202,获取目标特征维度,其中,所述目标特征维度是待转换为嵌入向量的目标输入特征所包括的特征维度,所述目标输入特征是输入至模型进行运算的特征;
步骤S204,从第一存储空间中查找所述目标特征维度对应的嵌入向量,其中,所述第一存储空间用于存储与参考嵌入向量相关的第一嵌入向量,所述参考嵌入向量是上一次从第二存储空间中查找到的参考特征维度对应的嵌入向量,所述第二存储空间用于存储全量特征维度的全量嵌入向量;
步骤S206,在从所述第一存储空间中未查找到所述目标特征维度对应的嵌入向量的情况下,从所述第二存储空间中查找所述目标特征维度对应的嵌入向量得到目标嵌入向量,并从所述第二存储空间中查找与所述目标嵌入向量相关的嵌入向量得到第二嵌入向量;
步骤S208,将所述第二嵌入向量存储至所述第一存储空间,其中,所述目标嵌入向量用于将所述目标特征维度转换为嵌入向量。
通过上述步骤,由于在查找参考特征维度对应的嵌入向量的过程中,已经将从第二存储空间中查找到的与参考嵌入向量相关的第一嵌入向量存储至第一存储空间中,因此在查找目标特征维度对应的嵌入向量的过程中,可以优先从第一存储空间中查找目标特征维度对应的嵌入向量,减少从存储全量特征维度的全量嵌入向量的第二存储空间中进行查找的过程,因此通过预先存储于上一参考嵌入向量相关的第一嵌入向量,可以解决查找输入特征的向量的效率较低问题,达到提高查找输入特征的向量的效率效果。
可选的,在本实施例中,本申请提出的输入特征的向量查找方法使用的场景广泛,可以但不限于包括:机器学习和深度学习领域、自动驾驶和智能交通领域、物联网和智能家居领域、安全和网络领域等模型的场景中,上述模型可以但不限于包括:逻辑回归模型、支持向量机模型、随机森林和梯度提升树模型、深度学习模型(比如:神经网络、卷积神经网络、循环神经网络等)、推荐系统模型、文本生成模型、图神经网络模型等等。在如下实施例中,可以但不限于以应用在推荐系统模型中为例,对上述输入特征的向量查找方法进行说明,但不对使用场景进行限定,任何输入特征的向量查找过程均可以使用本申请提出的输入特征的向量查找方法。
可选的,在本实施例中,上述输入特征的向量查找方法可以但不限于运行在多种处理器上,比如:CPU(Central Processing Unit,中央处理器)、GPU(Graphics ProcessingUnit,图形处理单元)、FPGA(Field Programmable Gate Array,现场可编程门阵列)、CPLD(Complex Programmable Logic Devic,复杂可编程逻辑器件)等。并且可以但不限于根据处理器的性能选择与处理任务相适应的处理器,比如:CPU适合处理序列性的任务,具备强大的控制和通用计算能力,能够高效地处理复杂的程序,但是在并行计算方面相对较弱,适合处理串行任务,对于大规模的数据并行计算速度较慢,而GPU适合处理大规模的并行计算任务,具备高度的并行计算能力,能够在相对短的时间内处理大量的并行计算任务,因此可以但不限于使用CPU与GPU配合的方式执行上述输入特征的向量查找方法等。
在上述步骤S202提供的技术方案中,可以但不限于通过将目标输入特征输入至模型,由模型对目标输入特征进行后续的运算,具体进行的运算操作可以但不限于是由模型的功能决定的,比如:使用逻辑回归模型进行分类问题的处理;使用支持向量机模型进行文本分类、图像分类等问题的处理;使用随机森林和梯度提升树模型进行文本、类别特征等问题的处理等。
可选的,在本实施例中,目标输入特征可以但不限于包括:连续的数值数据、离散的类别数据、自然语言文本数据、图像或视觉数据的特征、按时间顺序排列的数据、与地理位置或空间相关的数据、通过对其他特征进行组合生成的新特征、图数据中节点和边的特征、结合时间和空间信息的特征等。
由于目标输入特征中可以但不限于存在大部分的零值或者缺失值,这样具有稀疏性的目标输入特征会导致模型训练困难,因此模型可以用于通过升维或降维的方式减少数据的稀疏性,以提高模型的训练效果。进一步,目标输入特征还可以但不限于包括多个目标特征维度,在目标特征维度非常高的情况下,并不是所有的目标输入特征都对模型的预测能力有贡献,因此模型可以用于通过降维的方式去除冗余的特征,提高模型的泛化能力。
因此,在目标输入特征输入模型的情况下,模型可以但不限于用于将目标输入特征所包括的目标特征维度进行升维或降维等操作。
可选的,在本实施例中,目标输入特征所包括的目标特征维度可以但不限于是预先确定的,比如:以图像分类任务为例,可以但不限于预先规定输入模型的输入图像的尺寸和通道数,在输入图像的尺寸和通道数不符合要求的情况下,需要对输入图像进行预处理,将其调整为指定的维度。或者,也可以是根据模型的实际情况进行动态调整的,比如:以自然语言处理任务中的文本分类为例,输入的文本长度可以但不限于是不固定的,可以通过截断或填充文本来使其具有相同的长度,从而确定输入模型的维度等。因此,可以但不限于根据任务的需求、数据的特性以及模型的适应性等等方面决定目标输入特征所包括的目标特征维度。
在上述步骤S204提供的技术方案中,可以但不限于向模型输入多个输入特征,模型可以但不限于依次将每个输入特征确定为目标输入特征,并用于查找目标输入特征在目标特征维度对应的嵌入向量,目标输入特征可以但不限于包括一个或者多个特征维度,模型可以但不限于依次将每个特征维度确定为目标特征维度,并用于查找目标输入特征在目标特征维度对应的嵌入向量,对于目标特征维度来说,在模型用于查找目标特征维度对应的嵌入向量之前,还用于查找目标输入特征的上一个特征维度即参考特征维度对应的嵌入向量。
进一步,在模型查找参考特征维度对应的嵌入向量的过程中,可以但不限于在将参考嵌入向量存储至第一存储空间的情况下,还将与参考嵌入向量相关的一条或者多条嵌入向量即第一嵌入向量存储至第一存储空间。
因此,在模型查找目标特征维度对应的嵌入向量的过程中,可以但不限于从第一存储空间中存储的与参考嵌入向量相关的一条或者多条嵌入向量即第一嵌入向量中查找对应的嵌入向量。
可选的,在本实施例中,以使用CPU执行从第二存储空间中查找参考特征维度对应的嵌入向量为例,可以但不限于将CPU的一部分存储空间确定为第一存储空间,用于存储与参考嵌入向量相关的第一嵌入向量,比如:将CPU的缓存确定为第一存储空间。进一步,可以但不限于根据第一存储空间所需要的容量确定第一存储空间,比如:在第一存储空间所需要的容量较小的情况下,将L1 CPU缓存作为第一存储空间;或者,在第一存储空间所需要的容量较大的情况下,将L2 CPU缓存作为第一存储空间;或者,在第一存储空间所需要的容量更大的情况下,将L3 CPU缓存确定为第一存储空间等。
可选的,在本实施例中,由于第二存储空间存储了全量特征维度的全量嵌入向量,因此可以但不限于使用大容量的存储空间作为第二存储空间,比如:内存空间、硬盘空间等。在使用内存空间作为第二存储空间的情况下,由于内存存储的速度快,因此可以提供快速的读取和写入性能,但由于内存的存储空间有限,因此无法存储大规模的全量嵌入向量。在使用硬盘空间作为第二存储空间的情况下,硬盘空间可以存储大规模的数据,但硬盘空间的读取和写入速度相对较慢,因此不适合需要快速访问全量嵌入向量的场景。
因此,可以但不限于使用外接的存储设备作为第二存储空间,比如:通过CXL(Compute Express Link,计算快速连接协议)接口连接存储设备作为第二存储空间,能够提供高速的存储性能和低延迟的数据访问。
在一个示例性实施例中,可以但不限于采用以下方式从第一存储空间中查找所述目标特征维度对应的嵌入向量:在所述目标特征维度为所述目标输入特征的首个特征维度的情况下,确定所述第一存储空间中未存储嵌入向量;执行所述从所述第二存储空间中查找所述目标特征维度对应的嵌入向量得到目标嵌入向量的步骤;在所述目标特征维度为所述目标输入特征的非首个特征维度的情况下,从第一存储空间中查找所述目标特征维度对应的嵌入向量。
可选的,在本实施例中,可以但不限于向模型输入多个输入特征,模型可以但不限于依次将每个输入特征确定为目标输入特征,并用于查找目标输入特征在目标特征维度对应的嵌入向量,目标输入特征可以但不限于包括一个或者多个特征维度,模型可以但不限于依次将每个特征维度确定为目标特征维度,并用于查找目标输入特征在目标特征维度对应的嵌入向量,对于非首个目标特征维度来说,在模型用于查找目标特征维度对应的嵌入向量之前,还用于查找目标输入特征的上一个特征维度即参考特征维度对应的嵌入向量。
在模型完成对一个输入特征的每个特征维度对应的嵌入向量的查找的情况下,可以但不限于将下一个输入特征确定为目标输入特征,并查找目标输入特征在首个目标特征维度对应的嵌入向量,此时第一存储空间可以但不限于用于存储与上一个输入特征的最后一个特征维度相关的嵌入向量,由于输入特征发生了变化,因此当前第一存储空间中存储的嵌入向量与当前输入特征在首个目标特征维度对应的嵌入向量的相关度较低,因此可以但不限于直接从第二存储空间中查找目标特征维度对应的嵌入向量以及与目标特征维度的嵌入向量相关的嵌入向量。
并且,可以但不限于将第一存储空间中存储的与上一个输入特征的最后一个特征维度相关的嵌入向量进行删除操作以释放部分存储空间。或者,使用目标特征维度对应的嵌入向量以及与目标特征维度的嵌入向量相关的嵌入向量覆盖与上一个输入特征的最后一个特征维度相关的嵌入向量以对存储空间进行利用等。
可选的,在本实施例中,在所述从第一存储空间中查找所述目标特征维度对应的嵌入向量之后,可以但不限于通过以下方式得到目标嵌入向量:在从所述第一存储空间中查找到所述目标特征维度对应的嵌入向量的情况下,将查找到的嵌入向量确定为所述目标特征维度对应的所述目标嵌入向量。
在一个示例性实施例中,提供了一种模型的工作过程的示例。图3是根据本申请实施例的一种模型的工作过程的示意图,如图3所示,以模型为深度推荐模型为例执行推荐系统应用的工作,深度推荐模型可以但不限于通过预测点击率(CTR,Click-Through-Rate),即用户点击一个给定的产品的可能性有多大实现推荐系统应用。
将包括账户id(Identity document,标识)、区域信息、年龄和消费水平的一组特征作为模型的输入,其中,账户id和区域信息被编码为一个热向量(稀疏特征),而年龄、消费水平等则是密集特征,也就是说模型的输入特征包括稀疏特征和密集特征,模型可以但不限于采用以下过程工作:可以但不限于将每个稀疏特征在每个特征维度都转换为对应的索引,即一个稀疏特征可以但不限于能够转换得到一个或者多个索引,并根据索引先在第一存储空间中查找对应的嵌入向量得到一个或者多个嵌入向量,然后将一个稀疏特征的一个或者多个嵌入向量与密集特征连接。最后,将连接得到的嵌入向量作为顶部全连接(FC,Full Connection)层的输入,进行CTR预测,以确定CTR最高的产品。
在上述步骤S206提供的技术方案中,第一存储空间用于存储与参考嵌入向量相关的第一嵌入向量,第二存储空间用于存储全量特征维度的全量嵌入向量,在第一存储空间中未存储目标特征维度对应的嵌入向量的情况下,可以但不限于从全量嵌入向量中查找目标特征维度对应的嵌入向量即目标嵌入向量,以及与目标特征维度对应的嵌入向量相关的嵌入向量即第一嵌入向量。
可选的,在本实施例中,第二存储空间存储了每个输入特征的每个特征维度对应的嵌入向量,可以但不限于包括嵌入向量、嵌入向量与特征维度之间的对应关系以及特征维度与输入特征之间的对应关系等。可以但不限于通过多种方式记录嵌入向量,比如:记录嵌入向量的地址、记录嵌入向量的编码等。可以但不限于多种方式记录嵌入向量与输入特征以及特征维度之间的对应关系,比如:为每个输入特征的特征维度记录对应的嵌入向量的地址、为每个输入特征的特征维度记录对应的嵌入向量的编码等。
在一个示例性实施例中,可以但不限于采用以下方式从所述第二存储空间中查找所述目标特征维度对应的嵌入向量得到目标嵌入向量,并从所述第二存储空间中查找与所述目标嵌入向量相关的嵌入向量得到第二嵌入向量:从所述第二存储空间中记录的具有对应关系的特征维度和存储位置中查找所述目标特征维度所对应的目标存储位置,其中,在所述第二存储空间中按照存储位置存储具有相关性的嵌入向量;根据所述目标存储位置查找所述目标嵌入向量和所述第二嵌入向量。
可选的,在本实施例中,存储位置可以但不限于用于指示嵌入向量在第二存储空间中的地址、编码等。第二存储空间可以但不限于用于记录具有对应关系的特征维度和存储位置,根据目标特征维度在第二存储空间中获取目标特征维度对应的嵌入向量的存储位置即目标存储位置。
可选的,在本实施例中,可以但不限于将目标特征维度对应的嵌入向量即目标嵌入向量的存储位置以及与目标特征维度对应的嵌入向量相关的嵌入向量即第二嵌入向量的存储位置确定为目标存储位置,再根据目标存储位置从第二存储空间中查找得到目标嵌入向量和第二嵌入向量。
可选的,在本实施例中,第二存储空间用于存储多条嵌入向量以及每个嵌入向量的存储位置,可以但不限于通过多种方式确定嵌入向量之间的相关性,比如:在第二存储空间中将嵌入向量按照与嵌入向量对应的特征维度之间的相关性进行存储,并记录每个嵌入向量的存储位置,即对于特征维度来说,可以根据对应的嵌入向量之间的存储位置的距离确定特征维度之间的相关性。或者,按照特征维度之间的相关性记录对应的嵌入向量的存储位置,即对于特征维度来说,可以通过记录了对应的存储位置的条目之间的距离确定存储位置对应的嵌入向量之间的相关性等。
可选的,在本实施例中,第二存储空间可以但不限于按照多种方式存储特征维度对应的嵌入向量,比如:按照存储页的方式,在每页中存储相应的嵌入向量。或者,按照条目的方式,存储每一条嵌入向量等。
在一个示例性实施例中,可以但不限于采用以下方式根据所述目标存储位置查找所述目标嵌入向量和所述第二嵌入向量:从具有对应关系的特征维度和存储位置中获取距离所述目标存储位置在第一范围内的相关存储位置,其中,具有对应关系的特征维度和存储位置是按照特征维度之间的相关性顺序存储的;提取位于所述目标存储位置的嵌入向量作为所述目标嵌入向量,提取位于所述相关存储位置的嵌入向量作为所述第二嵌入向量。
可选的,在本实施例中,存储位置用于记录与特征维度对应的嵌入向量在第二存储空间的位置信息,可以但不限于将用于记录存储位置的条目按照对应的特征维度之间的相关性进行排列,在根据目标特征维度确定了目标存储位置的情况下,可以但不限于将与目标存储位置的条目的距离在第一范围内的存储位置都确定为相关存储位置。
可选的,在本实施例中,第一范围可以但不限于是预先确定的固定值,即对于每个目标存储位置都获取其固定范围内的存储位置作为相关存储位置。或者,可以但不限于是根据目标存储位置的不同而变化的,比如:在目标存储位置的条目为首个条目的情况下,可以但不限于确定后续的第一范围的存储位置为相关存储位置。或者,在目标存储位置的条目为最后一个条目的情况下,可以但不限于确定之前的第一范围的存储位置为相关存储位置等。
在一个示例性实施例中,可以但不限于采用以下方式根据所述目标存储位置查找所述目标嵌入向量和所述第二嵌入向量:提取位于所述目标存储位置的嵌入向量作为所述目标嵌入向量;提取距离所述目标嵌入向量在第二范围内的嵌入向量作为所述第二嵌入向量,其中,在所述第二存储空间中是按照特征维度之间的相关性顺序存储嵌入向量的。
可选的,在本实施例中,在第二存储空间中可以但不限于按照特征维度之间的相关性存储对应的嵌入向量,比如:特征维度之间的相关性越高,对应的嵌入向量的距离越近等。在查找得到目标存储位置的情况下,可以但不限于将目标存储位置的嵌入向量确定为目标嵌入向量,并将目标嵌入向量的第二范围内的嵌入向量作为第二嵌入向量。
可选的,在本实施例中,第二范围可以但不限于是预先确定的固定值,即对于每个目标嵌入向量都获取其固定范围内的嵌入向量作为第二嵌入向量。或者,可以但不限于是根据目标嵌入向量的不同而变化的,比如:在目标嵌入向量为首个嵌入向量的情况下,可以但不限于确定在目标嵌入向量后第二范围内的嵌入向量为第二嵌入向量。或者,在目标嵌入向量为最后一个嵌入向量的情况下,可以但不限于确定目标嵌入向量之前的第二范围的嵌入向量为第二嵌入向量等。
在一个示例性实施例中,可以但不限于采用以下方式从所述第二存储空间中查找所述目标特征维度对应的嵌入向量得到目标嵌入向量,并从所述第二存储空间中查找与所述目标嵌入向量相关的嵌入向量得到第二嵌入向量:从所述第二存储空间所存储的一个或者多个存储页中确定所述目标特征维度对应的嵌入向量所在的目标存储页,其中,在所述第二存储空间中是按照特征维度之间的相关性顺序存储嵌入向量形成所述一个或者多个存储页的;将所述目标存储页中除所述目标嵌入向量之外的嵌入向量确定为所述第二嵌入向量。
可选的,在本实施例中,可以但不限于按照存储页的方式存储嵌入向量,比如:在一个存储页中存储具有相关性的特征维度对应的嵌入向量。或者,在多个存储页中存储具有相关性的特征维度对应的嵌入向量,并根据存储页之间的相关性对存储页进行排列等。
可选的,在本实施例中,可以但不限于将目标特征维度对应的嵌入向量所在的存储页确定为目标存储页,目标存储页可以但不限于用于存储与目标特征维度对应的嵌入向量相关的嵌入向量,因此在确定了目标特征维度对应的嵌入向量所在的目标存储页的情况下,可以但不限于将目标存储页中除目标嵌入向量之外的嵌入向量确定为第二嵌入向量。
在一个示例性实施例中,可以但不限于采用以下方式将所述第二嵌入向量存储至所述第一存储空间:将所述目标存储页从所述第二存储空间所在的目标外接存储设备拷贝至所述第一存储空间。
可选的,在本实施例中,可以但不限于通过外接目标外接存储设备作为第二存储空间,目标外接设备可以但不限于包括外接硬盘,比如:机械硬盘(HDD,Hard Disk Drive)、固态硬盘(SSD,Solid State Disk)等。
可选的,在本实施例中,将目标存储页从第二存储空间所在的目标外接存储设备拷贝至第一存储空间可以但不限于包括:通过文件系统接口或者专用的软件工具实现将目标存储页复制至第一存储空间,由于文件系统接口是操作系统提供的文件系统抽象层进行读写操作,即通过文件路径指定目标存储页的文件位置,并使用文件句柄进行读写操作等。
在一个示例性实施例中,可以但不限于采用以下方式从所述第二存储空间中查找所述目标特征维度对应的嵌入向量得到目标嵌入向量,并从所述第二存储空间中查找与所述目标嵌入向量相关的嵌入向量得到第二嵌入向量:从所述第二存储空间所存储的嵌入表中查找所述目标特征维度对应的嵌入向量作为所述目标嵌入向量,其中,在所述第二存储空间中是按照特征维度之间的相关性顺序存储嵌入向量形成所述嵌入表;将所述嵌入表中位于所述目标嵌入向量第三范围内的嵌入向量确定为所述第二嵌入向量。
可选的,在本实施例中,可以但不限于按照嵌入表的方式存储全量特征维度对应的嵌入向量,比如:按照特征维度的相关性将特征维度对应的嵌入向量存入同一嵌入表,并根据特征维度的相关程度确定嵌入向量在嵌入表中的位置。或者,将具有相关性的特征维度对应的嵌入向量存入一个嵌入表得到多个嵌入表,根据嵌入表中嵌入向量对应的特征维度的相关程度确定嵌入向量在每个嵌入表中的位置,还根据特征维度的相关程度确定每个嵌入表之间的相关性等。
可选的,在本实施例中,可以但不限于从嵌入表中查找目标特征维度对应的目标嵌入向量,并将嵌入表中目标嵌入向量第三范围内的嵌入向量确定为第二嵌入向量。
可选的,在本实施例中,第三范围可以但不限于是预先确定的固定值,即对于每个目标嵌入向量都获取其固定范围内的嵌入向量作为第二嵌入向量。或者,可以但不限于是根据目标嵌入向量的不同而变化的,比如:在目标嵌入向量为嵌入表中的首个嵌入向量的情况下,可以但不限于确定在目标嵌入向量后第三范围内的嵌入向量为第二嵌入向量。或者,在目标嵌入向量为嵌入表中的最后一个嵌入向量的情况下,可以但不限于确定目标嵌入向量之前的第三范围内的嵌入向量为第二嵌入向量等。
在一个示例性实施例中,可以但不限于采用以下方式将所述嵌入表中位于所述目标嵌入向量第三范围内的嵌入向量确定为所述第二嵌入向量:从所述嵌入表所划分出的一个或者多个子嵌入表中查找所述目标嵌入向量所在的目标子嵌入表,其中,一个或者多个子嵌入表是按照特征类别对所述嵌入表进行划分得到的,每个所述子嵌入表是按照属于同一特征类别的特征维度之间的相关性顺序存储嵌入向量形成的;将所述目标子嵌入表中位于所述目标嵌入向量所述第三范围内的嵌入向量确定为所述第二嵌入向量。
可选的,在本实施例中,可以但不限于将全量特征维度对应的全量嵌入向量存储至一个嵌入表,再根据特征维度的特征类型将嵌入表中的嵌入向量进行划分,得到一个或者多个嵌入子表,每个嵌入子表可以但不限于用于存储同一特征类型的特征维度对应的嵌入向量,在单个嵌入子表中可以但不限于根据每个特征维度之间的相关性顺序将对应的嵌入向量进行排序,比如:获取嵌入向量,从当前嵌入子表中的剩余嵌入向量中确定与当前嵌入向量对应的特征维度相关性最高的嵌入向量作为下一个嵌入向量等。
可选的,在本实施例中,子嵌入表的特征类别可以但不限于包括:数量类别、位置类别等。在确定目标嵌入向量所在的目标子嵌入表的情况下,可以但不限于将目标子嵌入表中位于目标嵌入向量第三范围内的嵌入向量确定为第二嵌入向量。
在一个示例性实施例中,可以但不限于采用以下方式将所述第二嵌入向量存储至所述第一存储空间:将所述目标嵌入向量和所述第二嵌入向量从所述第二存储空间所在的目标外接存储设备加载至所述第一存储空间。
可选的,在本实施例中,可以但不限于通过外接目标外接存储设备作为第二存储空间,目标外接设备可以但不限于包括外接内存空间,比如:通过CXL实现内存扩展等。
可选的,在本实施例中,将目标存储页从第二存储空间所在的目标外接存储设备加载至第一存储空间可以但不限于包括:通过CXL接口直接传输,绕过文件系统的抽象层,直接访问第二存储空间的内存地址空间,也无需经过文件系统的路径解析和文件句柄关系,提高了传输的性能和速率,实现更快速的数据传输和加载等。
在一个示例性实施例中,可以但不限于采用以下方式从所述第二存储空间中查找所述目标特征维度对应的嵌入向量得到目标嵌入向量,并从所述第二存储空间中查找与所述目标嵌入向量相关的嵌入向量得到第二嵌入向量:向目标外接存储设备发起向量查询请求,其中,所述向量查询请求用于请求查询所述目标特征维度对应的嵌入向量以及与所述目标特征维度对应的嵌入向量相关的嵌入向量,所述第二存储空间是所述目标外接存储设备上的存储空间;接收所述目标外接存储设备响应所述向量查询请求返回的所述目标嵌入向量和所述第二嵌入向量。
可选的,在本实施例中,使用目标外接存储设备作为第二存储空间,目标外接存储设备可以但不限于包括:硬盘驱动器、固态硬盘、网络存储设备、RAID存储设备等。
可选的,在本实施例中,可以但不限于通过多种方式获取目标嵌入向量以及第二嵌入向量,比如:向目标外接设备发送向量查询请求,请求查询目标外接设备上存储的目标特征维度对应的嵌入向量以及与目标特征维度对应的嵌入向量相关的嵌入向量。或者,直接从目标外接设备获取目标嵌入向量以及第二嵌入向量等。
可选的,在本实施例中,可以但不限于通过多种方式发起向量查询请求,比如:根据目标外接存储设备的要求,发起符合目标外接存储设备要求的向量查询请求。或者,直接发起向量查询请求等。
可选的,在本实施例中,目标外接存储设备在接收到向量查询请求的情况下,可以但不限于用于响应向量查询请求返回对应的目标嵌入向量和第二嵌入向量。
在一个示例性实施例中,可以但不限于采用以下方式向目标外接存储设备发起向量查询请求:向所述目标外接存储设备发起符合计算快速连接协议的所述向量查询请求,其中,所述目标外接存储设备是计算快速连接协议类型三设备,所述第一存储空间是部署了所述模型的设备的内存空间,所述第二存储空间是所述计算快速连接协议类型三设备的存储空间,所述第二存储空间允许作为所述部署了所述模型的设备的扩展内存使用。
可选的,在本实施例中,在目标外接存储设备是计算快速连接协议(CXL,ComputeExpress Link)类型三(type 3)设备的情况下,可以但不限于向目标外接存储设备发起符合CXL协议的向量查询请求。
可选的,在本实施例中,第一存储空间用于部署模型的设备,第二存储空间用于为第一存储空间部署的模型的设备进行内存扩展,可以但不限于使用计算快速连接协议类型三设备为第一存储空间部署的模型的设备进行内存扩展,比如:以第一存储空间为CPU的缓存、第二内存空间为CXL type3设备为例,可以但不限于使用CXL type3设备为CPU进行内存扩展等。
在一个示例性实施例中,在所述向所述目标外接存储设备发起符合计算快速连接协议的所述向量查询请求之前,可以但不限于采用以下方式处理第一存储空间和第二存储空间:将所述第一存储空间和所述第二存储空间上报为部署了所述模型的设备的内存;对所述第一存储空间和所述第二存储空间按照统一地址进行地址编码。
可选的,在本实施例中,可以但不限于将第一存储空间和第二存储空间都上报为部署了模型的设备的内存,使得第一存储空间和所述第二存储空间按照统一地址进行地址编码。
在一个示例性实施例中,在所述从所述第二存储空间中查找所述目标特征维度对应的嵌入向量得到目标嵌入向量,并从所述第二存储空间中查找与所述目标嵌入向量相关的嵌入向量得到第二嵌入向量之后,可以但不限于采用以下方式处理第一存储空间中存储的嵌入向量:在所述目标特征维度为所述目标输入特征的最后一个特征维度的情况下,跳过所述将所述第二嵌入向量存储至所述第一存储空间的步骤;删除所述第一存储空间中存储的嵌入向量。
可选的,在本实施例中,在目标特征维度为目标输入特征的最后一个特征维度的情况下,可以但不限于根据目标输入特征与下一个输入特征之间的相关性,确定是否将第二嵌入向量存储至第一存储空间,比如:在目标输入特征与下一个输入特征之间的相关性较低的情况下,只将目标嵌入向量存储至第一存储空间。或者,在目标输入特征与下一个输入特征之间的相关性较高的情况下,将目标嵌入向量和第二嵌入向量都存储至第一存储空间等。
在一个示例性实施例中,可以但不限于采用以下方式跳过所述将所述第二嵌入向量存储至所述第一存储空间的步骤:检测所述目标输入特征与下一个待转换为嵌入向量的参考输入特征之间的目标相似度;在所述目标相似度小于相似度阈值的情况下,跳过所述将所述第二嵌入向量存储至所述第一存储空间的步骤;在所述目标相似度大于或者等于所述相似度阈值的情况下,执行所述将所述第二嵌入向量存储至所述第一存储空间的步骤。
可选的,在本实施例中,在目标输入特征为目标输入特征的最后一个特征维度的情况下,可以但不限于根据目标输入特征与下一个待转换为嵌入向量的参考输入特征之间的目标相似度确定是否将第二嵌入向量存储至第一存储空间。
可选的,在本实施例中,可以但不限于将目标输入特征的每个特征维度与下一个待转换为嵌入向量的参考输入特征的每个特征维度之间的相似度确定为目标相似度,比如:计算目标输入特征的每个特征维度的加权和与下一个待转换为嵌入向量的参考输入特征的每个特征维度的加权和,将其之间的差值确定为相似度等。
可选的,在本实施例中,相似度阈值可以但不限于是预先确定的固定值,或者根据目标输入特征的不同而发生变化等。
可选的,在本实施例中,在目标输入特征与下一个待转换为嵌入向量的参考输入特征之间的目标相似度小于相似度阈值的情况下,可以但不限于仅将目标嵌入向量存储至第一存储空间。或者,在目标相似度大于或者等于相似度阈值的情况下,将目标嵌入向量和第二嵌入向量都存储至第一存储空间等。
在一个示例性实施例中,提供了一种从嵌入表中查找目标嵌入向量以及第二嵌入向量的过程的示例。图4是根据本申请实施例的一种从嵌入表中查找目标嵌入向量以及第二嵌入向量的过程的示意图,如图4所示,以第二存储空间中存储了完整的嵌入表为例,可以但不限于在从第二存储空间中查找目标特征维度对应的嵌入向量之前,可以但不限于通过以下方式将嵌入表进行划分:
以根据3个特征类别将第二存储空间内的嵌入表中的嵌入向量进行聚类为例,将嵌入表拆分为3个子嵌入表(子嵌入表0、子嵌入表1和子嵌入表2)存储至第二存储空间,特征类别的数量等于子嵌入表的数量;对于第二存储空间中的3个子嵌入表,可以但不限于根据子嵌入表之间的特征距离作为子嵌入表之间的相关性,并将子嵌入表进行排序后的索引表保存在第二存储空间中;对于子嵌入表中的嵌入向量,可以但不限于根据嵌入向量之间的特征距离作为嵌入向量之间的相关性,并将嵌入向量进行排序后的索引表保存在第二存储空间中,完成嵌入表的划分。
在完成嵌入表的划分的情况下,以目标特征维度为特征维度A为例,可以但不限于通过以下方式从嵌入表中查找目标特征维度对应的目标嵌入向量以及第二嵌入向量:从第二存储空间所存储的嵌入表中查找目标特征维度“特征维度A”对应的嵌入向量作为目标嵌入向量;从嵌入表所划分出的子嵌入表中查找目标嵌入向量所在的目标子嵌入表即子嵌入表0,将子嵌入表0中位于目标嵌入向量第三范围内的嵌入向量确定为第二嵌入向量(即保留条目)可以但不限于包括特征维度B对应的嵌入向量、特征维度C对应的嵌入向量等。
在上述步骤S208提供的技术方案中,可以但不限于使用第二嵌入向量存储至第一存储空间,使得查找目标输入特征的下一个特征维度的过程中,能够从第一存储空间中存储的嵌入向量中进行查找。
可选的,在本实施例中,在完成对目标输入特征的全部特征维度的嵌入向量的提取的情况下,得到多个目标嵌入向量,可以但不限于使用得到的多个目标嵌入向量将目标输入特征转化为对应的嵌入向量。
在一个示例性实施例中,可以但不限于采用以下方式之一将所述第二嵌入向量存储至所述第一存储空间:在所述第一存储空间中已存储了第三嵌入向量的情况下,将所述第二嵌入向量与所述第三嵌入向量进行合并;在所述第一存储空间中已存储了第三嵌入向量的情况下,将所述第三嵌入向量删除;将所述第二嵌入向量存储至所述第一存储空间;在所述第一存储空间中未存储嵌入向量的情况下,将所述第二嵌入向量存储至所述第一存储空间。
可选的,在本实施例中,第三嵌入向量可以但不限于是第一存储空间中已经存储了的全部嵌入向量。在第一存储空间中,可以但不限于通过多种方式存储于目标嵌入向量具有相关性的第二嵌入向量,比如:将第二嵌入向量与第一存储空间中原本已经存储了的嵌入向量共同进行存储;或者,将第一存储空间中原本存储的嵌入向量进行删除,只存储新获取的第二嵌入向量;或者,在第一存储空间未存储任何嵌入向量的情况下,存储新获取的第二嵌入向量。
在一个示例性实施例中,可以但不限于采用以下方式之一将所述第二嵌入向量与所述第三嵌入向量进行合并:将所述第二嵌入向量存储至所述第一存储空间,得到第四嵌入向量;对所述第四嵌入向量进行去重;提取所述第二嵌入向量与所述第三嵌入向量的并集,得到第五嵌入向量;将所述第三嵌入向量从所述第一存储空间中删除;将所述第五嵌入向量存储至所述第一存储空间;从所述第二嵌入向量中提取未落入所述第三嵌入向量的第六嵌入向量;将所述第六嵌入向量存储至所述第一存储空间。
可选的,在本实施例中,可以但不限于将第二嵌入向量存储至第一存储空间,与第一存储空间中原本存储的嵌入向量进行合并得到第四嵌入向量。在得到第四嵌入向量的情况下,可以但不限于对第四嵌入向量进行去重,即去除第二嵌入向量和第一存储空间中原本存储的嵌入向量中发生重复的嵌入向量。
或者,可以但不限于计算第二嵌入向量与第三嵌入向量的并集作为第五嵌入向量,再删除第一存储空间中的第三嵌入向量之后将第五嵌入向量存储至第一存储空间。
或者,从第二嵌入向量中提取未第三嵌入向量发生重合的第六嵌入向量,再将第六嵌入向量存储至第一存储空间。
在一个示例性实施例中,在所述将所述第二嵌入向量存储至所述第一存储空间之后,可以但不限于采用以下方式存储模型的每层更新后的权重参数:在部署了所述模型的计算快速连接协议类型二设备对所述目标输入特征进行运算的过程中,通过快速连接协议的缓存协议将所述模型的每层更新后的权重参数存储至目标外接存储设备上的第三存储空间,其中,所述目标外接存储设备是计算快速连接协议类型三设备。
可选的,在本实施例中,可以但不限于使用多种处理设备作为部署了模型的计算快速连接协议(CXL)类型二(type 2)设备,比如:CPU、GPU等。
可选的,在本实施例中,以GPU作为部署了模型的计算快速连接协议类型二设备为例,在模型训练的过程中,可以但不限于使用GPU获取模型每层更新后的权重参数,并由GPU将模型每层更新后的权重参数通过快速连接协议的缓存协议(CXL.cache)存储至目标外接存储设备上的第三存储空间。
在一个示例性实施例中,提供了一种第二存储空间的工作过程的示例。图5是根据本申请实施例的一种第二存储空间的工作过程的示意图,如图5所示,第二存储空间可以但不限于通过以下方式工作:第二存储空间先接收大数据应用输入特征中需要进一步处理的稀疏特征,并通过CXL协议将稀疏特征转化为对应的嵌入向量,将嵌入向量与输入特征中无需处理的特征数据进行特征拼接、以及模型推理计算,并实时保存模型检查点。在模型的运行发生异常的情况下,第二存储空间可以但不限于用于将存储的模型检查点进行输出使得模型能够使用检查点数据进行恢复。
在一个示例性实施例中,提供了一种模型的训练过程的示例。图6是根据本申请实施例的一种模型的训练过程的示意图,如图6所示,以第二存储设备为计算快速连接协议类型三设备为例,模型的工作过程可以但不限于包括前向推理计算和后向梯度传播,以CPU作为执行主体可以但不限于通过以下方式执行前向推理计算的过程:
向模型输入一组特征集合,特征集合中可以但不限于包括稀疏特征和密集特征,将稀疏特征中的每个特征确定为目标输入特征查找目标输入特征对应的嵌入向量。
在第二存储空间中预先存储了全量输入特征对应的全量嵌入向量的情况下,CPU通过CXL内存协议(CXL.memory)从第二存储空间中获取目标输入特征对应的嵌入向量,第二存储空间可以但不限于是按照嵌入表的方式存储全量嵌入向量,即第二存储空间中存储了包括嵌入表0、嵌入表1至嵌入表N的多个嵌入表,每个嵌入表中可以但不限于存储了包括嵌入向量0、嵌入向量1至嵌入向量N的一个或者多个嵌入向量,因此,CPU可以但不限于根据目标输入特征从对应的嵌入表中获取对应的目标嵌入向量。在根据目标输入特征从对应的嵌入表中获取对应的目标嵌入向量的过程中,CPU可以但不限于通过CXL内存协议(CXL.memory)获取嵌入向量对应的索引从而获取对应的嵌入向量并存入CPU的第一存储空间中。
进一步,对于一个目标输入特征来说,可以但不限于有其对应的一个或者多个特征维度,模型可以但不限于用于获取目标输入特征在每个特征维度对应的嵌入向量从而得到目标输入特征对应的完整的嵌入向量,再与输入的密集特征进行特征拼接后由模型执行推理计算。
以GPU作为执行主体(计算快速连接协议类型二设备)可以但不限于通过以下方式执行模型的后向梯度传播的过程:
在模型根据完整特征进行模型推理运算之前,GPU可以但不限于通过快速连接协议的内存协议(CXL.memory)实时获取CPU存储在计算快速连接协议类型三设备中的嵌入向量,并在接收到CPU完成嵌入向量的存储的指示之后,进行模型推理运算,避免了多余的数据拷贝和搬运,提升了带宽利用率。
在模型根据完整特征进行模型推理运算的过程中,GPU可以但不限于通过计算损失函数更新模型在每一层的权重参数,并将更新后的权重参数通过快速连接协议的缓存协议(CXL.cache)存储在计算快速连接协议类型三设备(目标外接存储设备上的第三存储空间)中实现了减少与CPU交互(可以但不限于减少了CPU对GPU的控制流程,以及GPU响应CPU的过程等)的前提下,仍然能够完整保存模型在每一次更新后的检查点直至模型收敛。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
在本实施例中还提供了一种模型运算设备,该设备用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。
图7是根据本申请实施例的模型运算设备的结构框图,如图7所示,该设备包括:处理装置702,第一存储空间704和第二存储空间706,所述模型运算设备用于将目标输入特征转换为嵌入向量并使用得到的嵌入向量进行模型运算,所述第二存储空间用于存储全量特征维度的全量嵌入向量,所述第一存储空间用于存储与参考嵌入向量相关的第一嵌入向量,所述参考嵌入向量是上一次从第二存储空间中查找到的参考特征维度对应的嵌入向量;
所述处理装置用于执行上述任一项方法实施例中的步骤。
通过上述装置,由于在查找参考特征维度对应的嵌入向量的过程中,已经将从第二存储空间中查找到的与参考嵌入向量相关的第一嵌入向量存储至第一存储空间中,因此在查找目标特征维度对应的嵌入向量的过程中,可以优先从第一存储空间中查找目标特征维度对应的嵌入向量,减少从存储全量特征维度的全量嵌入向量的第二存储空间中进行查找的过程,因此通过预先存储于上一参考嵌入向量相关的第一嵌入向量,可以解决查找输入特征的向量的效率较低问题,达到提高查找输入特征的向量的效率效果。
在一个示例性实施例中,上述模型运算设备还用于所述从所述第二存储空间中查找所述目标特征维度对应的嵌入向量得到目标嵌入向量,并从所述第二存储空间中查找与所述目标嵌入向量相关的嵌入向量得到第二嵌入向量,包括:从所述第二存储空间中记录的具有对应关系的特征维度和存储位置中查找所述目标特征维度所对应的目标存储位置,其中,在所述第二存储空间中按照存储位置存储具有相关性的嵌入向量;根据所述目标存储位置查找所述目标嵌入向量和所述第二嵌入向量。
在一个示例性实施例中,上述模型运算设备还用于所述根据所述目标存储位置查找所述目标嵌入向量和所述第二嵌入向量,包括:从具有对应关系的特征维度和存储位置中获取距离所述目标存储位置在第一范围内的相关存储位置,其中,具有对应关系的特征维度和存储位置是按照特征维度之间的相关性顺序存储的;提取位于所述目标存储位置的嵌入向量作为所述目标嵌入向量,提取位于所述相关存储位置的嵌入向量作为所述第二嵌入向量。
在一个示例性实施例中,上述模型运算设备还用于所述根据所述目标存储位置查找所述目标嵌入向量和所述第二嵌入向量,包括:提取位于所述目标存储位置的嵌入向量作为所述目标嵌入向量;提取距离所述目标嵌入向量在第二范围内的嵌入向量作为所述第二嵌入向量,其中,在所述第二存储空间中是按照特征维度之间的相关性顺序存储嵌入向量的。
在一个示例性实施例中,上述模型运算设备还用于所述从所述第二存储空间中查找所述目标特征维度对应的嵌入向量得到目标嵌入向量,并从所述第二存储空间中查找与所述目标嵌入向量相关的嵌入向量得到第二嵌入向量,包括:从所述第二存储空间所存储的一个或者多个存储页中确定所述目标特征维度对应的嵌入向量所在的目标存储页,其中,在所述第二存储空间中是按照特征维度之间的相关性顺序存储嵌入向量形成所述一个或者多个存储页的;将所述目标存储页中除所述目标嵌入向量之外的嵌入向量确定为所述第二嵌入向量。
在一个示例性实施例中,上述模型运算设备还用于所述将所述第二嵌入向量存储至所述第一存储空间,包括:将所述目标存储页从所述第二存储空间所在的目标外接存储设备拷贝至所述第一存储空间。
在一个示例性实施例中,上述模型运算设备还用于所述从所述第二存储空间中查找所述目标特征维度对应的嵌入向量得到目标嵌入向量,并从所述第二存储空间中查找与所述目标嵌入向量相关的嵌入向量得到第二嵌入向量,包括:从所述第二存储空间所存储的嵌入表中查找所述目标特征维度对应的嵌入向量作为所述目标嵌入向量,其中,在所述第二存储空间中是按照特征维度之间的相关性顺序存储嵌入向量形成所述嵌入表;将所述嵌入表中位于所述目标嵌入向量第三范围内的嵌入向量确定为所述第二嵌入向量。
在一个示例性实施例中,上述模型运算设备还用于所述将所述嵌入表中位于所述目标嵌入向量第三范围内的嵌入向量确定为所述第二嵌入向量,包括:从所述嵌入表所划分出的一个或者多个子嵌入表中查找所述目标嵌入向量所在的目标子嵌入表,其中,一个或者多个子嵌入表是按照特征类别对所述嵌入表进行划分得到的,每个所述子嵌入表是按照属于同一特征类别的特征维度之间的相关性顺序存储嵌入向量形成的;将所述目标子嵌入表中位于所述目标嵌入向量所述第三范围内的嵌入向量确定为所述第二嵌入向量。
在一个示例性实施例中,上述模型运算设备还用于所述将所述第二嵌入向量存储至所述第一存储空间,包括:将所述目标嵌入向量和所述第二嵌入向量从所述第二存储空间所在的目标外接存储设备加载至所述第一存储空间。
在一个示例性实施例中,上述模型运算设备还用于所述从所述第二存储空间中查找所述目标特征维度对应的嵌入向量得到目标嵌入向量,并从所述第二存储空间中查找与所述目标嵌入向量相关的嵌入向量得到第二嵌入向量,包括:向目标外接存储设备发起向量查询请求,其中,所述向量查询请求用于请求查询所述目标特征维度对应的嵌入向量以及与所述目标特征维度对应的嵌入向量相关的嵌入向量,所述第二存储空间是所述目标外接存储设备上的存储空间;接收所述目标外接存储设备响应所述向量查询请求返回的所述目标嵌入向量和所述第二嵌入向量。
在一个示例性实施例中,上述模型运算设备还用于所述向目标外接存储设备发起向量查询请求,包括:向所述目标外接存储设备发起符合计算快速连接协议的所述向量查询请求,其中,所述目标外接存储设备是计算快速连接协议类型三设备,所述第一存储空间是部署了所述模型的设备的内存空间,所述第二存储空间是所述计算快速连接协议类型三设备的存储空间,所述第二存储空间允许作为所述部署了所述模型的设备的扩展内存使用。
在一个示例性实施例中,上述模型运算设备还用于在所述向所述目标外接存储设备发起符合计算快速连接协议的所述向量查询请求之前,所述方法还包括:将所述第一存储空间和所述第二存储空间上报为部署了所述模型的设备的内存;对所述第一存储空间和所述第二存储空间按照统一地址进行地址编码。
在一个示例性实施例中,上述模型运算设备还用于所述将所述第二嵌入向量存储至所述第一存储空间,包括以下之一:在所述第一存储空间中已存储了第三嵌入向量的情况下,将所述第二嵌入向量与所述第三嵌入向量进行合并;在所述第一存储空间中已存储了第三嵌入向量的情况下,将所述第三嵌入向量删除;将所述第二嵌入向量存储至所述第一存储空间;在所述第一存储空间中未存储嵌入向量的情况下,将所述第二嵌入向量存储至所述第一存储空间。
在一个示例性实施例中,上述模型运算设备还用于所述将所述第二嵌入向量与所述第三嵌入向量进行合并,包括以下之一:将所述第二嵌入向量存储至所述第一存储空间,得到第四嵌入向量;对所述第四嵌入向量进行去重;提取所述第二嵌入向量与所述第三嵌入向量的并集,得到第五嵌入向量;将所述第三嵌入向量从所述第一存储空间中删除;将所述第五嵌入向量存储至所述第一存储空间;从所述第二嵌入向量中提取未落入所述第三嵌入向量的第六嵌入向量;将所述第六嵌入向量存储至所述第一存储空间。
在一个示例性实施例中,上述模型运算设备还用于所述从第一存储空间中查找所述目标特征维度对应的嵌入向量,包括:在所述目标特征维度为所述目标输入特征的首个特征维度的情况下,确定所述第一存储空间中未存储嵌入向量;执行所述从所述第二存储空间中查找所述目标特征维度对应的嵌入向量得到目标嵌入向量的步骤;在所述目标特征维度为所述目标输入特征的非首个特征维度的情况下,从第一存储空间中查找所述目标特征维度对应的嵌入向量。
在一个示例性实施例中,上述模型运算设备还用于在所述从所述第二存储空间中查找所述目标特征维度对应的嵌入向量得到目标嵌入向量,并从所述第二存储空间中查找与所述目标嵌入向量相关的嵌入向量得到第二嵌入向量之后,所述方法还包括:在所述目标特征维度为所述目标输入特征的最后一个特征维度的情况下,跳过所述将所述第二嵌入向量存储至所述第一存储空间的步骤;删除所述第一存储空间中存储的嵌入向量。
在一个示例性实施例中,上述模型运算设备还用于所述跳过所述将所述第二嵌入向量存储至所述第一存储空间的步骤,包括:检测所述目标输入特征与下一个待转换为嵌入向量的参考输入特征之间的目标相似度;在所述目标相似度小于相似度阈值的情况下,跳过所述将所述第二嵌入向量存储至所述第一存储空间的步骤;在所述目标相似度大于或者等于所述相似度阈值的情况下,执行所述将所述第二嵌入向量存储至所述第一存储空间的步骤。
在一个示例性实施例中,上述模型运算设备还用于在所述将所述第二嵌入向量存储至所述第一存储空间之后,所述方法还包括:在部署了所述模型的计算快速连接协议类型二设备对所述目标输入特征进行运算的过程中,通过快速连接协议的缓存协议将所述模型的每层更新后的权重参数存储至目标外接存储设备上的第三存储空间,其中,所述目标外接存储设备是计算快速连接协议类型三设备。
在本实施例中还提供了一种输入特征的向量查找装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图8是根据本申请实施例的输入特征的向量查找装置的结构框图,如图8所示,该装置包括:
获取模块82,用于获取目标特征维度,其中,所述目标特征维度是待转换为嵌入向量的目标输入特征所包括的特征维度,所述目标输入特征是输入至模型进行运算的特征;
第一查找模块84,用于从第一存储空间中查找所述目标特征维度对应的嵌入向量,其中,所述第一存储空间用于存储与参考嵌入向量相关的第一嵌入向量,所述参考嵌入向量是上一次从第二存储空间中查找到的参考特征维度对应的嵌入向量,所述第二存储空间用于存储全量特征维度的全量嵌入向量;
第二查找模块86,用于在从所述第一存储空间中未查找到所述目标特征维度对应的嵌入向量的情况下,从所述第二存储空间中查找所述目标特征维度对应的嵌入向量得到目标嵌入向量,并从所述第二存储空间中查找与所述目标嵌入向量相关的嵌入向量得到第二嵌入向量;
第一存储模块88,用于将所述第二嵌入向量存储至所述第一存储空间,其中,所述目标嵌入向量用于将所述目标特征维度转换为嵌入向量。
通过上述装置,由于在查找参考特征维度对应的嵌入向量的过程中,已经将从第二存储空间中查找到的与参考嵌入向量相关的第一嵌入向量存储至第一存储空间中,因此在查找目标特征维度对应的嵌入向量的过程中,可以优先从第一存储空间中查找目标特征维度对应的嵌入向量,减少从存储全量特征维度的全量嵌入向量的第二存储空间中进行查找的过程,因此通过预先存储于上一参考嵌入向量相关的第一嵌入向量,可以解决查找输入特征的向量的效率较低问题,达到提高查找输入特征的向量的效率效果。
在一个示例性实施例中,所述第二查找模块,包括:
第一查找单元,用于从所述第二存储空间中记录的具有对应关系的特征维度和存储位置中查找所述目标特征维度所对应的目标存储位置,其中,在所述第二存储空间中按照存储位置存储具有相关性的嵌入向量;
第二查找单元,用于根据所述目标存储位置查找所述目标嵌入向量和所述第二嵌入向量。
在一个示例性实施例中,所述第二查找单元,还用于:从具有对应关系的特征维度和存储位置中获取距离所述目标存储位置在第一范围内的相关存储位置,其中,具有对应关系的特征维度和存储位置是按照特征维度之间的相关性顺序存储的;提取位于所述目标存储位置的嵌入向量作为所述目标嵌入向量,提取位于所述相关存储位置的嵌入向量作为所述第二嵌入向量。
在一个示例性实施例中,所述第二查找单元,还用于:提取位于所述目标存储位置的嵌入向量作为所述目标嵌入向量;提取距离所述目标嵌入向量在第二范围内的嵌入向量作为所述第二嵌入向量,其中,在所述第二存储空间中是按照特征维度之间的相关性顺序存储嵌入向量的。
在一个示例性实施例中,所述第二查找模块,包括:
第一确定单元,用于从所述第二存储空间所存储的一个或者多个存储页中确定所述目标特征维度对应的嵌入向量所在的目标存储页,其中,在所述第二存储空间中是按照特征维度之间的相关性顺序存储嵌入向量形成所述一个或者多个存储页的;
第二确定单元,用于将所述目标存储页中除所述目标嵌入向量之外的嵌入向量确定为所述第二嵌入向量。
在一个示例性实施例中,所述第一存储模块,还用于:将所述目标存储页从所述第二存储空间所在的目标外接存储设备拷贝至所述第一存储空间。
在一个示例性实施例中,所述第二查找模块,包括:
第三查找单元,用于从所述第二存储空间所存储的嵌入表中查找所述目标特征维度对应的嵌入向量作为所述目标嵌入向量,其中,在所述第二存储空间中是按照特征维度之间的相关性顺序存储嵌入向量形成所述嵌入表;
第三确定单元,用于将所述嵌入表中位于所述目标嵌入向量第三范围内的嵌入向量确定为所述第二嵌入向量。
在一个示例性实施例中,所述第三确定单元,还用于:从所述嵌入表所划分出的一个或者多个子嵌入表中查找所述目标嵌入向量所在的目标子嵌入表,其中,一个或者多个子嵌入表是按照特征类别对所述嵌入表进行划分得到的,每个所述子嵌入表是按照属于同一特征类别的特征维度之间的相关性顺序存储嵌入向量形成的;将所述目标子嵌入表中位于所述目标嵌入向量所述第三范围内的嵌入向量确定为所述第二嵌入向量。
在一个示例性实施例中,所述第一存储模块,还用于:将所述目标嵌入向量和所述第二嵌入向量从所述第二存储空间所在的目标外接存储设备加载至所述第一存储空间。
在一个示例性实施例中,所述第二查找模块,包括:
发起单元,用于向目标外接存储设备发起向量查询请求,其中,所述向量查询请求用于请求查询所述目标特征维度对应的嵌入向量以及与所述目标特征维度对应的嵌入向量相关的嵌入向量,所述第二存储空间是所述目标外接存储设备上的存储空间;
接收单元,用于接收所述目标外接存储设备响应所述向量查询请求返回的所述目标嵌入向量和所述第二嵌入向量。
在一个示例性实施例中,所述发起单元,还用于:向所述目标外接存储设备发起符合计算快速连接协议的所述向量查询请求,其中,所述目标外接存储设备是计算快速连接协议类型三设备,所述第一存储空间是部署了所述模型的设备的内存空间,所述第二存储空间是所述计算快速连接协议类型三设备的存储空间,所述第二存储空间允许作为所述部署了所述模型的设备的扩展内存使用。
在一个示例性实施例中,所述发起单元,还用于:在所述向所述目标外接存储设备发起符合计算快速连接协议的所述向量查询请求之前,所述方法还包括:
将所述第一存储空间和所述第二存储空间上报为部署了所述模型的设备的内存;
对所述第一存储空间和所述第二存储空间按照统一地址进行地址编码。
在一个示例性实施例中,所述第一存储模块,包括以下之一:
合并单元,用于在所述第一存储空间中已存储了第三嵌入向量的情况下,将所述第二嵌入向量与所述第三嵌入向量进行合并;
处理单元,用于在所述第一存储空间中已存储了第三嵌入向量的情况下,将所述第三嵌入向量删除;将所述第二嵌入向量存储至所述第一存储空间;
存储单元,用于在所述第一存储空间中未存储嵌入向量的情况下,将所述第二嵌入向量存储至所述第一存储空间。
在一个示例性实施例中,所述合并单元,还用于以下之一:将所述第二嵌入向量存储至所述第一存储空间,得到第四嵌入向量;对所述第四嵌入向量进行去重;提取所述第二嵌入向量与所述第三嵌入向量的并集,得到第五嵌入向量;将所述第三嵌入向量从所述第一存储空间中删除;将所述第五嵌入向量存储至所述第一存储空间;从所述第二嵌入向量中提取未落入所述第三嵌入向量的第六嵌入向量;将所述第六嵌入向量存储至所述第一存储空间。
在一个示例性实施例中,所述查找模块,包括:
第四确定单元,用于在所述目标特征维度为所述目标输入特征的首个特征维度的情况下,确定所述第一存储空间中未存储嵌入向量;执行所述从所述第二存储空间中查找所述目标特征维度对应的嵌入向量得到目标嵌入向量的步骤;
第四查找单元,用于在所述目标特征维度为所述目标输入特征的非首个特征维度的情况下,从第一存储空间中查找所述目标特征维度对应的嵌入向量。
在一个示例性实施例中,所述装置还包括:
跳过模块,用于在所述目标特征维度为所述目标输入特征的最后一个特征维度的情况下,跳过所述将所述第二嵌入向量存储至所述第一存储空间的步骤;
删除模块,用于删除所述第一存储空间中存储的嵌入向量。
在一个示例性实施例中,所述删除模块,包括:
检测单元,用于检测所述目标输入特征与下一个待转换为嵌入向量的参考输入特征之间的目标相似度;
跳过单元,用于在所述目标相似度小于相似度阈值的情况下,跳过所述将所述第二嵌入向量存储至所述第一存储空间的步骤;
执行单元,用于在所述目标相似度大于或者等于所述相似度阈值的情况下,执行所述将所述第二嵌入向量存储至所述第一存储空间的步骤。
在一个示例性实施例中,所述装置还包括:
第二存储模块,用于在部署了所述模型的计算快速连接协议类型二设备对所述目标输入特征进行运算的过程中,通过快速连接协议的缓存协议将所述模型的每层更新后的权重参数存储至目标外接存储设备上的第三存储空间,其中,所述目标外接存储设备是计算快速连接协议类型三设备。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
本申请的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本申请的实施例还提供了一种电子设备,图9是根据本申请实施例的电子设备的结构框图,如图9所示,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述电子设备还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (22)
1.一种输入特征的向量查找方法,其特征在于,
包括:
获取目标特征维度,其中,所述目标特征维度是待转换为嵌入向量的目标输入特征所包括的特征维度,所述目标输入特征是输入至模型进行运算的特征;
从第一存储空间中查找所述目标特征维度对应的嵌入向量,其中,所述第一存储空间用于存储与参考嵌入向量相关的第一嵌入向量,所述参考嵌入向量是上一次从第二存储空间中查找到的参考特征维度对应的嵌入向量,所述第二存储空间用于存储全量特征维度的全量嵌入向量,所述第二存储空间的存储顺序是按照特征维度之间的相关性顺序存储的;
在从所述第一存储空间中未查找到所述目标特征维度对应的嵌入向量的情况下,从所述第二存储空间中查找所述目标特征维度对应的嵌入向量得到目标嵌入向量,并从所述第二存储空间中查找与所述目标嵌入向量相关的嵌入向量得到第二嵌入向量;
将所述第二嵌入向量存储至所述第一存储空间,其中,所述目标嵌入向量用于将所述目标特征维度转换为嵌入向量。
2.根据权利要求1所述的方法,其特征在于,
所述从所述第二存储空间中查找所述目标特征维度对应的嵌入向量得到目标嵌入向量,并从所述第二存储空间中查找与所述目标嵌入向量相关的嵌入向量得到第二嵌入向量,包括:
从所述第二存储空间中记录的具有对应关系的特征维度和存储位置中查找所述目标特征维度所对应的目标存储位置,其中,在所述第二存储空间中按照存储位置存储具有相关性的嵌入向量;
根据所述目标存储位置查找所述目标嵌入向量和所述第二嵌入向量。
3.根据权利要求2所述的方法,其特征在于,
所述根据所述目标存储位置查找所述目标嵌入向量和所述第二嵌入向量,包括:
从具有对应关系的特征维度和存储位置中获取距离所述目标存储位置在第一范围内的相关存储位置,其中,具有对应关系的特征维度和存储位置是按照特征维度之间的相关性顺序存储的;
提取位于所述目标存储位置的嵌入向量作为所述目标嵌入向量,提取位于所述相关存储位置的嵌入向量作为所述第二嵌入向量。
4.根据权利要求2所述的方法,其特征在于,
所述根据所述目标存储位置查找所述目标嵌入向量和所述第二嵌入向量,包括:
提取位于所述目标存储位置的嵌入向量作为所述目标嵌入向量;
提取距离所述目标嵌入向量在第二范围内的嵌入向量作为所述第二嵌入向量,其中,在所述第二存储空间中是按照特征维度之间的相关性顺序存储嵌入向量的。
5.根据权利要求1所述的方法,其特征在于,
所述从所述第二存储空间中查找所述目标特征维度对应的嵌入向量得到目标嵌入向量,并从所述第二存储空间中查找与所述目标嵌入向量相关的嵌入向量得到第二嵌入向量,包括:
从所述第二存储空间所存储的一个或者多个存储页中确定所述目标特征维度对应的嵌入向量所在的目标存储页,其中,在所述第二存储空间中是按照特征维度之间的相关性顺序存储嵌入向量形成所述一个或者多个存储页的;
将所述目标存储页中除所述目标嵌入向量之外的嵌入向量确定为所述第二嵌入向量。
6.根据权利要求5所述的方法,其特征在于,
所述将所述第二嵌入向量存储至所述第一存储空间,包括:
将所述目标存储页从所述第二存储空间所在的目标外接存储设备拷贝至所述第一存储空间。
7.根据权利要求1所述的方法,其特征在于,
所述从所述第二存储空间中查找所述目标特征维度对应的嵌入向量得到目标嵌入向量,并从所述第二存储空间中查找与所述目标嵌入向量相关的嵌入向量得到第二嵌入向量,包括:
从所述第二存储空间所存储的嵌入表中查找所述目标特征维度对应的嵌入向量作为所述目标嵌入向量,其中,在所述第二存储空间中是按照特征维度之间的相关性顺序存储嵌入向量形成所述嵌入表;
将所述嵌入表中位于所述目标嵌入向量第三范围内的嵌入向量确定为所述第二嵌入向量。
8.根据权利要求7所述的方法,其特征在于,
所述将所述嵌入表中位于所述目标嵌入向量第三范围内的嵌入向量确定为所述第二嵌入向量,包括:
从所述嵌入表所划分出的一个或者多个子嵌入表中查找所述目标嵌入向量所在的目标子嵌入表,其中,一个或者多个子嵌入表是按照特征类别对所述嵌入表进行划分得到的,每个所述子嵌入表是按照属于同一特征类别的特征维度之间的相关性顺序存储嵌入向量形成的;
将所述目标子嵌入表中位于所述目标嵌入向量所述第三范围内的嵌入向量确定为所述第二嵌入向量。
9.根据权利要求7所述的方法,其特征在于,
所述将所述第二嵌入向量存储至所述第一存储空间,包括:
将所述目标嵌入向量和所述第二嵌入向量从所述第二存储空间所在的目标外接存储设备加载至所述第一存储空间。
10.根据权利要求1所述的方法,其特征在于,
所述从所述第二存储空间中查找所述目标特征维度对应的嵌入向量得到目标嵌入向量,并从所述第二存储空间中查找与所述目标嵌入向量相关的嵌入向量得到第二嵌入向量,包括:
向目标外接存储设备发起向量查询请求,其中,所述向量查询请求用于请求查询所述目标特征维度对应的嵌入向量以及与所述目标特征维度对应的嵌入向量相关的嵌入向量,所述第二存储空间是所述目标外接存储设备上的存储空间;
接收所述目标外接存储设备响应所述向量查询请求返回的所述目标嵌入向量和所述第二嵌入向量。
11.根据权利要求10所述的方法,其特征在于,
所述向目标外接存储设备发起向量查询请求,包括:
向所述目标外接存储设备发起符合计算快速连接协议的所述向量查询请求,其中,所述目标外接存储设备是计算快速连接协议类型三设备,所述第一存储空间是部署了所述模型的设备的内存空间,所述第二存储空间是所述计算快速连接协议类型三设备的存储空间,所述第二存储空间允许作为所述部署了所述模型的设备的扩展内存使用。
12.根据权利要求11所述的方法,其特征在于,
在所述向所述目标外接存储设备发起符合计算快速连接协议的所述向量查询请求之前,所述方法还包括:
将所述第一存储空间和所述第二存储空间上报为部署了所述模型的设备的内存;
对所述第一存储空间和所述第二存储空间按照统一地址进行地址编码。
13.根据权利要求1所述的方法,其特征在于,
所述将所述第二嵌入向量存储至所述第一存储空间,包括以下之一:
在所述第一存储空间中已存储了第三嵌入向量的情况下,将所述第二嵌入向量与所述第三嵌入向量进行合并;
在所述第一存储空间中已存储了第三嵌入向量的情况下,将所述第三嵌入向量删除;将所述第二嵌入向量存储至所述第一存储空间;
在所述第一存储空间中未存储嵌入向量的情况下,将所述第二嵌入向量存储至所述第一存储空间。
14.根据权利要求13所述的方法,其特征在于,
所述将所述第二嵌入向量与所述第三嵌入向量进行合并,包括以下之一:
将所述第二嵌入向量存储至所述第一存储空间,得到第四嵌入向量;对所述第四嵌入向量进行去重;
提取所述第二嵌入向量与所述第三嵌入向量的并集,得到第五嵌入向量;将所述第三嵌入向量从所述第一存储空间中删除;将所述第五嵌入向量存储至所述第一存储空间;
从所述第二嵌入向量中提取未落入所述第三嵌入向量的第六嵌入向量;将所述第六嵌入向量存储至所述第一存储空间。
15.根据权利要求1所述的方法,其特征在于,
所述从第一存储空间中查找所述目标特征维度对应的嵌入向量,包括:
在所述目标特征维度为所述目标输入特征的首个特征维度的情况下,确定所述第一存储空间中未存储嵌入向量;执行所述从所述第二存储空间中查找所述目标特征维度对应的嵌入向量得到目标嵌入向量的步骤;
在所述目标特征维度为所述目标输入特征的非首个特征维度的情况下,从第一存储空间中查找所述目标特征维度对应的嵌入向量。
16.根据权利要求1所述的方法,其特征在于,
在所述从所述第二存储空间中查找所述目标特征维度对应的嵌入向量得到目标嵌入向量,并从所述第二存储空间中查找与所述目标嵌入向量相关的嵌入向量得到第二嵌入向量之后,所述方法还包括:
在所述目标特征维度为所述目标输入特征的最后一个特征维度的情况下,跳过所述将所述第二嵌入向量存储至所述第一存储空间的步骤;
删除所述第一存储空间中存储的嵌入向量。
17.根据权利要求16所述的方法,其特征在于,
所述跳过所述将所述第二嵌入向量存储至所述第一存储空间的步骤,包括:
检测所述目标输入特征与下一个待转换为嵌入向量的参考输入特征之间的目标相似度;
在所述目标相似度小于相似度阈值的情况下,跳过所述将所述第二嵌入向量存储至所述第一存储空间的步骤;
在所述目标相似度大于或者等于所述相似度阈值的情况下,执行所述将所述第二嵌入向量存储至所述第一存储空间的步骤。
18.根据权利要求1所述的方法,其特征在于,
在所述将所述第二嵌入向量存储至所述第一存储空间之后,所述方法还包括:
在部署了所述模型的计算快速连接协议类型二设备对所述目标输入特征进行运算的过程中,通过快速连接协议的缓存协议将所述模型的每层更新后的权重参数存储至目标外接存储设备上的第三存储空间,其中,所述目标外接存储设备是计算快速连接协议类型三设备。
19.一种模型运算设备,其特征在于,
包括:处理装置,第一存储空间和第二存储空间,所述模型运算设备用于将目标输入特征转换为嵌入向量并使用得到的嵌入向量进行模型运算,所述第二存储空间用于存储全量特征维度的全量嵌入向量,所述第一存储空间用于存储与参考嵌入向量相关的第一嵌入向量,所述参考嵌入向量是上一次从第二存储空间中查找到的参考特征维度对应的嵌入向量;
所述处理装置用于执行权利要求1至18任一项中所述的方法的步骤。
20.一种输入特征的向量查找装置,其特征在于,
包括:
获取模块,用于获取目标特征维度,其中,所述目标特征维度是待转换为嵌入向量的目标输入特征所包括的特征维度,所述目标输入特征是输入至模型进行运算的特征;
第一查找模块,用于从第一存储空间中查找所述目标特征维度对应的嵌入向量,其中,所述第一存储空间用于存储与参考嵌入向量相关的第一嵌入向量,所述参考嵌入向量是上一次从第二存储空间中查找到的参考特征维度对应的嵌入向量,所述第二存储空间用于存储全量特征维度的全量嵌入向量,所述第二存储空间的存储顺序是按照特征维度之间的相关性顺序存储的;
第二查找模块,用于在从所述第一存储空间中未查找到所述目标特征维度对应的嵌入向量的情况下,从所述第二存储空间中查找所述目标特征维度对应的嵌入向量得到目标嵌入向量,并从所述第二存储空间中查找与所述目标嵌入向量相关的嵌入向量得到第二嵌入向量;
第一存储模块,用于将所述第二嵌入向量存储至所述第一存储空间,其中,所述目标嵌入向量用于将所述目标特征维度转换为嵌入向量。
21.一种计算机可读存储介质,其特征在于,
所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被处理器执行时实现权利要求1至18任一项中所述的方法的步骤。
22.一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,
所述处理器执行所述计算机程序时实现权利要求1至18任一项中所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311420869.7A CN117149813B (zh) | 2023-10-30 | 2023-10-30 | 输入特征的向量查找方法、装置和模型运算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311420869.7A CN117149813B (zh) | 2023-10-30 | 2023-10-30 | 输入特征的向量查找方法、装置和模型运算设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117149813A CN117149813A (zh) | 2023-12-01 |
CN117149813B true CN117149813B (zh) | 2024-02-09 |
Family
ID=88906517
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311420869.7A Active CN117149813B (zh) | 2023-10-30 | 2023-10-30 | 输入特征的向量查找方法、装置和模型运算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117149813B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220222235A1 (en) * | 2021-01-13 | 2022-07-14 | Google Llc | Efficient Embedding Table Storage and Lookup |
CN115203255A (zh) * | 2022-06-29 | 2022-10-18 | 腾讯科技(上海)有限公司 | 数据查询方法、装置、电子设备及存储介质 |
-
2023
- 2023-10-30 CN CN202311420869.7A patent/CN117149813B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220222235A1 (en) * | 2021-01-13 | 2022-07-14 | Google Llc | Efficient Embedding Table Storage and Lookup |
CN115203255A (zh) * | 2022-06-29 | 2022-10-18 | 腾讯科技(上海)有限公司 | 数据查询方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117149813A (zh) | 2023-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112199375B (zh) | 跨模态的数据处理方法、装置、存储介质以及电子装置 | |
KR102449191B1 (ko) | 이더넷 솔리드 스테이트 드라이브에서 데이터 패턴 매칭 및 기계 학습 알고리즘들을 지원하는 장치 및 방법 | |
CN111382868B (zh) | 神经网络结构搜索方法和神经网络结构搜索装置 | |
US11741157B2 (en) | Propagating multi-term contextual tags to digital content | |
US20110179002A1 (en) | System and Method for a Vector-Space Search Engine | |
CN111241345A (zh) | 一种视频检索方法、装置、电子设备和存储介质 | |
CN111125269B (zh) | 一种数据管理方法、血缘关系显示方法和相关装置 | |
CN113568940B (zh) | 数据查询的方法、装置、设备以及存储介质 | |
CN111125491A (zh) | 商品信息的搜索方法和装置、存储介质及电子装置 | |
CN116028618B (zh) | 文本处理、文本检索方法、装置、电子设备及存储介质 | |
CN113660541A (zh) | 新闻视频的摘要生成方法及装置 | |
CN114329004A (zh) | 数字指纹生成、数据推送方法、装置和存储介质 | |
CN117149813B (zh) | 输入特征的向量查找方法、装置和模型运算设备 | |
CN117251761A (zh) | 数据对象分类方法、装置、存储介质及电子装置 | |
CN116226681A (zh) | 一种文本相似性判定方法、装置、计算机设备和存储介质 | |
KR101592670B1 (ko) | 인덱스를 이용하는 데이터 검색 장치 및 이를 이용하는 방법 | |
CN109213972A (zh) | 确定文档相似度的方法、装置、设备和计算机存储介质 | |
CN114723454A (zh) | 身份识别方法、装置、电子设备及可读存储介质 | |
CN112597757A (zh) | 词的检测方法及装置、存储介质、电子装置 | |
CN114238572B (zh) | 基于人工智能的多数据库数据提取方法、装置及电子设备 | |
US11636167B2 (en) | Determining similarity between documents | |
US11029887B2 (en) | Data process execution device, storage medium, and data process execution system | |
Aathira et al. | An efficient approach towards image deduplication using WATSON | |
CN115795023A (zh) | 文档推荐方法、装置、设备以及存储介质 | |
Xu et al. | Towards path‐based semantic dissimilarity estimation for scene representation using bottleneck analysis |
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 |