System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及信息处理领域,尤其涉及一种搜索方法及相关装置。
技术介绍
1、在针对查询内容在海量数据中进行查询,是在很多领域进行查询的基础任务,可以采用高位空间搜索给定查询点的若干最接近点的方式。其中,基于图的近似最近邻搜索(anns,approximate nearest neighbor search)是一种利用图结构来加速高维数据搜索的技术,该方法能够在大规模数据集中显著减少搜索路径和计算量,在查询速度和查询精度上具有优异性能,目前被广泛应用于各种海量数据搜索场景中。
2、相较于软件实现anns,通过硬件fpga(field-programmable gate array,现场可编程门阵列)等硬件通过对高维数据计算的并行加速,能实现更大的每秒处理量(qps,query per second)和更低的处理延迟。
3、但是通过fpga加速来实现anns也会面临与软件实现类似的问题,也就是需要将索引图的海量数据存放在内存中并用于每次计算迭代的查找读取,对内存的读取带宽要求很高,这也就导致fpga等硬件加速的算力优势不能得到有效利用,而内存数据的读取带宽成为整个系统的性能瓶颈,导致查询速度低。
技术实现思路
1、本申请第一方面提供一种搜索方法,包括:
2、获得查询向量;
3、依据所述查询向量,在第一精度量化的索引图中确定目标簇,所述目标簇包含具有关联关系的若干向量节点,所述第一精度量化的索引图包含至少两个簇,所述目标簇与所述查询向量的距离小
4、以设定n比特搜索精度至少在所述目标簇中搜索,得到与所述查询向量匹配的候选集合,所述候选集合包含若候选向量节点,n的取值是小于5的正整数。
5、在一种可能的实现中,所述以设定n比特搜索精度至少在所述目标簇中搜索,得到与所述查询向量匹配的候选集合,包括:
6、将所述目标簇存储到本地内存;
7、针对所述查询向量,以设定n比特搜索精度至少在所述内存中的目标簇搜索,得到候选集合。
8、在一种可能的实现中,所述依据所述查询向量,在第一精度量化的索引图中确定目标簇,包括:
9、确定本地存储的所述第一精度量化的索引图中各簇的信息;
10、依据所述簇的信息与所述查询向量,确定所述第一精度量化的索引图中各簇与所述查询向量的距离;
11、依据所述距离,在所述第一精度量化的索引图中确定目标簇。
12、在一种可能的实现中,所述针对所述查询向量,以设定n比特搜索精度至少在所述内存中的目标簇搜索,得到候选集合,包括:
13、针对所述查询向量,以设定n比特搜索精度,在所述内存中的目标簇搜索,得到第一序列;
14、若本次搜索所需的向量节点部分未在所述目标簇中,依据所述查询向量,以设定n比特搜索精度,在所述第一精度量化的索引图中搜索,得到第二序列;将所述第一序列中的向量节点和所述第二序列中的向量节点组合,得到候选集合;
15、若本次搜索所需的向量节点均在所述目标簇中,将第一序列中的向量节点作为候选集合。
16、在一种可能的实现中,所述以设定n比特搜索精度至少在所述目标簇中搜索,得到与所述查询向量匹配的候选集合,包括:
17、以设定n比特搜索精度在所述目标簇中搜索,得到第一候选序列;
18、若所述第一候选序列仅包括排序确定的第三序列,将所述第一候选序列作为候选集合,所述第三序列包含至少两个向量节点;
19、若所述第一候选序列包括排序确定的第三序列和排序未定的第四序列,提高搜索精度,依据所述第四序列中各向量节点,基于提高后的搜索精度在第二精度量化的索引图中搜索,得到第二候选序列,所述第四序列包含至少两个向量节点,所述第四序列中各向量节点与所述查询向量的距离相同,且小于所述第三序列中向量节点与所述查询向量的距离,提高后的搜索精度是n比特搜索精度的s倍,所述s是大于2的整数,第二精度高于第一精度;直至得到仅包含第三序列的候选序列;将各候选序列中的第三序列组合,得到候选集合。
20、在一种可能的实现中,所述获得查询向量之前,还包括:
21、获得当前查询策略;
22、相应的,在获得查询向量之后,包括:
23、依据所述查询策略是第一策略,执行所述依据所述查询向量,在第一精度量化的索引图中确定目标簇步骤;
24、基于所述查询策略是第二策略,依据所述查询向量,在目标精度量化的索引图中搜索,得到与所述查询向量匹配的候选集合,所述目标精度高于任意非目标精度。
25、在一种可能的实现中,还包括:
26、基于目标精度量化的索引图,对所述候选集合中的各候选向量节点排序,得到搜索结果,所述目标精度高于所述第一精度。
27、本申请第二方面提供一种搜索装置,包括:
28、第一接口,用于接收查询向量;
29、第二接口,用于与外部存储器传输信息;
30、处理器,用于基于所述查询向量,在第一精度量化的索引图中确定目标簇,所述目标簇包含具有关联关系的若干向量节点,所述第一精度量化的索引图包含至少两个簇,所述目标簇与所述查询向量的距离小于所述第一精度量化的索引图中非目标簇与所述查询向量的距离; 通过所述第二接口向存储结构请求以设定n比特搜索精度至少在所述目标簇中搜索,得到与所述查询向量匹配的候选集合,所述候选集合包含若候选向量节点,n的取值是小于5的正整数。
31、在一种可能的实现中,还包括:
32、内存,用于存储从外部存储器获取的目标簇,所述目标簇是通过第二接口向外部存储器请求得到;
33、相应的,所述处理器用于针对所述查询向量,以设定n比特搜索精度至少在所述内存中的目标簇搜索,得到候选集合。
34、本申请第三方面提供一种计算机程序产品,包括计算机可读指令,当所述计算机可读指令在电子设备上运行时,使得所述电子设备实现上述第一方面或第一方面任一实现方式的搜索方法。
35、本申请第四方面提供一种电子设备,包括至少一个处理器和与所述处理器连接的存储器,其中:
36、所述存储器用于存储计算机程序;
37、所述处理器用于执行所述计算机程序,以使所述电子设备能够实现上述第一方面或第一方面任一实现方式的搜索方法。
38、本申请第五方面提供一种计算机存储介质,所述存储介质承载有一个或多个计算机程序,当所述一个或多个计算机程序被电子设备执行时,能够使所述电子设备上述第一方面或第一方面任一实现方式的搜索方法。
本文档来自技高网...【技术保护点】
1.一种搜索方法,包括:
2.根据权利要求1所述的搜索方法,所述以设定N比特搜索精度至少在所述目标簇中搜索,得到与所述查询向量匹配的候选集合,包括:
3.根据权利要求2所述的搜索方法,所述依据所述查询向量,在第一精度量化的索引图中确定目标簇,包括:
4.根据权利要求2所述的搜索方法,所述针对所述查询向量,以设定N比特搜索精度至少在所述内存中的目标簇搜索,得到候选集合,包括:
5.根据权利要求1所述的搜索方法,所述以设定N比特搜索精度至少在所述目标簇中搜索,得到与所述查询向量匹配的候选集合,包括:
6.根据权利要求1所述的搜索方法,所述获得查询向量之前,还包括:
7.根据权利要求1-6任一项所述的搜索方法,还包括:
8.一种搜索装置,包括:
9.根据权利要求8所述的搜索装置,还包括:
10.一种计算机程序产品,包括计算机可读指令,当所述计算机可读指令在电子设备上运行时,使得所述电子设备实现上述权利要求1-7任一项实现的搜索方法。
【技术特征摘要】
1.一种搜索方法,包括:
2.根据权利要求1所述的搜索方法,所述以设定n比特搜索精度至少在所述目标簇中搜索,得到与所述查询向量匹配的候选集合,包括:
3.根据权利要求2所述的搜索方法,所述依据所述查询向量,在第一精度量化的索引图中确定目标簇,包括:
4.根据权利要求2所述的搜索方法,所述针对所述查询向量,以设定n比特搜索精度至少在所述内存中的目标簇搜索,得到候选集合,包括:
5.根据权利要求1所述的搜索方法,所述以设定n比...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。