System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及相似搜索的,尤其是涉及一种相似性搜索算法的实现方法、装置、设备及存储介质。
技术介绍
1、在当今信息爆炸的时代,相似性搜索算法成为处理大规模高维向量数据的重要工具,这些算法在多个行业中得到广泛应用,尤其是在图像检索、视频检索等领域,其中ivfpq算法以其高效的性能成为备受关注的算法之一。ivfpq算法是一种为大规模高维向量搜索设计的高效算法,结合了倒排文件思想(ivf)和乘积量化技术(pq),将每个向量映射到一个或多个簇中,每个簇中存储了具有相似性的向量列表。
2、对于ivfpq算法的检索,目前主要使用cpu+gpu的组合进行检索计算,gpu负责大规模的并行计算,cpu负责一些串行和控制流程的任务。
3、然而,cpu的并行性能有限,对于需要大规模并行计算的情况,cpu的性能常常无法满足需求,导致搜索效率较低;gpu是通用的硬件加速器,虽然能够处理大规模的并行计算,但由于其通用性,对于定制化的计算需求,gpu的通用性会带来一定的局限,进而导致使用cpu+gpu的组合进行检索计算总体效率低下。
技术实现思路
1、为了提升相似性搜索算法的实现效率,本申请提供一种相似性搜索算法的实现方法、装置、设备及存储介质。
2、第一方面,本申请提供一种相似性搜索算法的实现方法,采用如下的技术方案:所述方法应用于相似检索算法实现系统,所述相似检索算法实现系统包括主机单元和硬件单元,所述硬件单元包括ivf模块和pq模块,所述方法包括:
3、所述主机
4、所述硬件单元接收所述待查询向量,使用ivf模块确定与所述待查询向量最相似的粗聚类中心列表;基于所述粗聚类中心列表,使用pq模块计算所述待查询向量对应的查询结果向量,将所述结果向量传输至所述主机单元;
5、所述主机单元接收并显示所述结果向量。
6、在一个具体的可实施方案中,在所述主机单元获取查询向量之前,还包括:
7、所述主机单元获取训练好的数据集文件,将所述数据集文件发送至所述硬件单元,所述数据集文件包括聚类中心列表、压缩码表和压缩数据集;
8、所述硬件单元接收并存储所述数据集文件。
9、在一个具体的可实施方案中,在所述硬件单元接收并存储所述数据集文件之后,还包括:
10、所述硬件单元在所述聚类中心列表之间插入预设容量的预留空间,所述预设容量为所述聚类中心列表总容量的预设比例。
11、在一个具体的可实施方案中,所述确定与所述待查询向量最相似的粗聚类中心列表包括:
12、所述硬件单元控制所述ivf模块分段读取所述待查询向量对应的若干第一查询子向量;并行计算分段后的所述第一查询子向量与所述聚类中心列表对应的中心向量的距离;分别确定与若干所述第一查询子向量距离最近的第一相似向量,将若干所述第一相似向量进行合并得到粗聚类中心列表。
13、在一个具体的可实施方案中,所述基于所述粗聚类中心列表计算所述查询向量对应的结果向量包括:
14、所述硬件单元基于预设的查询范围参数,确定所述粗聚类中心列表中的目标中心列表;通过所述压缩码表对所述目标中心列表对应的压缩数据集执行还原操作,得到若干参考向量;使用所述pq模块分别计算所述待查询向量与若干所述参考向量的相似距离,根据所述相似距离确定与所述待查询向量对应的查询结果向量。
15、在一个具体的可实施方案中,所述pq模块包括若干计算子模块,所述使用所述pq模块计算所述待查询向量与所述参考向量的相似距离包括:
16、所述硬件单元控制所述pq模块分段读取所述待查询向量对应的若干第二查询子向量;根据所述查询范围参数,确定需要使用的所述计算子模块的有效数量;使用所述计算子模块并行计算若干所述第二查询子向量与所述参考向量的相似距离。
17、在一个具体的可实施方案中,所述根据所述相似距离确定与所述待查询向量对应查询结果向量包括:
18、所述硬件模块根据所述待查询向量与若干所述参考向量的距离从小到大的顺序,对所述参考向量进行排序;基于预设的输出数量参数,在排序后的所述参考向量中确定所述待查询向量对应的查询结果向量。
19、第二方面,本申请提供一种相似性搜索算法的实现装置,采用如下技术方案:所述装置包括:
20、查询向量获取模块,用于获取查询向量,将所述查询向量传输至所述硬件单元;
21、结果向量计算模块,用于接收所述待查询向量,使用ivf模块确定与所述待查询向量最相似的粗聚类中心列表;基于所述粗聚类中心列表,使用pq模块计算所述待查询向量对应的查询结果向量,将所述结果向量传输至所述主机单元;
22、结果向量接收模块,用于接收并显示所述结果向量。
23、第三方面,本申请提供一种计算机设备,采用如下技术方案:包括存储器和处理器,所述存储器上存储有能够被处理器加载并执行如上述任一种相似性搜索算法的实现方法的计算机程序。
24、第四方面,本申请提供一种计算机可读存储介质,采用如下技术方案:存储有能够被处理器加载并执行上述任一种相似性搜索算法的实现方法的计算机程序。
25、综上所述,本申请具有以下有益技术效果:
26、1、通过将查询向量传输至硬件单元进行处理,软件仅需要简单的硬件操控和数据传输,即可完成高效的ivfpq算法应用,由于硬件性能利用率更好,对开发者也更友好,不需要复杂的gpu编程,实现了硬件加速,减轻了程序设计难度,降低了对软件开发者的技术要求,提升了相似性搜索算法的易用性;
27、2、将硬件单元划分为ivf模块和pq模块,分别负责粗聚类和量化计算的任务,这种明确的模块划分使得每个模块可以专注于特定的功能,提高了系统的可维护性和可扩展性,并且每个模块的功能相对独立,使得在系统维护和更新时更容易管理;
28、3、与通用性较强的gpu相比,用户可以根据应用场景、数据特性以及性能需求来个性化定制硬件单元,例如模块的规模、工作频率等,大大提升了相似性搜索算法的灵活性;
29、4、硬件单元模块化设计使得ivf模块和pq模块可以在硬件上并行运行,从而加速相似性搜索的过程,提高了整个相似性搜索算法的计算效率。
本文档来自技高网...【技术保护点】
1.一种相似性搜索算法的实现方法,其特征在于,所述方法应用于相似检索算法实现系统,所述相似检索算法实现系统包括主机单元和硬件单元,所述硬件单元包括IVF模块和PQ模块,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,在所述主机单元获取查询向量之前,还包括:
3.根据权利要求2所述的方法,其特征在于,在所述硬件单元接收并存储所述数据集文件之后,还包括:
4.根据权利要求2所述的方法,其特征在于,所述使用IVF模块确定与所述待查询向量最相似的粗聚类中心列表包括:
5.根据权利要求2所述的方法,其特征在于,所述基于所述粗聚类中心列表,使用PQ模块计算所述待查询向量对应的查询结果向量包括:
6.根据权利要求5所述的方法,其特征在于,所述PQ模块包括若干计算子模块,所述使用所述PQ模块分别计算所述待查询向量与若干所述参考向量的相似距离包括:
7.根据权利要求2所述的方法,其特征在于,所述根据所述相似距离确定与所述待查询向量对应的查询结果向量包括:
8.一种相似性搜索算法的实现装置,其特征在于,所述
9.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器上存储有能够被处理器加载并执行如权利要求1至7中任一种方法的计算机程序。
10.一种计算机可读存储介质,其特征在于,存储有能够被处理器加载并执行如权利要求1至7中任一种方法的计算机程序。
...【技术特征摘要】
1.一种相似性搜索算法的实现方法,其特征在于,所述方法应用于相似检索算法实现系统,所述相似检索算法实现系统包括主机单元和硬件单元,所述硬件单元包括ivf模块和pq模块,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,在所述主机单元获取查询向量之前,还包括:
3.根据权利要求2所述的方法,其特征在于,在所述硬件单元接收并存储所述数据集文件之后,还包括:
4.根据权利要求2所述的方法,其特征在于,所述使用ivf模块确定与所述待查询向量最相似的粗聚类中心列表包括:
5.根据权利要求2所述的方法,其特征在于,所述基于所述粗聚类中心列表,使用pq模块计算所述待查询向量对应的查询结果向量...
【专利技术属性】
技术研发人员:请求不公布姓名,
申请(专利权)人:深存科技无锡有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。