搜索方法、可读存储介质和电子设备技术

技术编号:26762876 阅读:11 留言:0更新日期:2020-12-18 23:17
本发明专利技术实施例公开了一种搜索方法、可读存储介质和电子设备,本发明专利技术实施例使用图形处理器对基于图的向量搜索方法进行加速,并通过对向量集合进行划分、并行搜索和流水执行等技术解决了图形处理器在主存容量、数据传输效率等多方面对向量搜索的限制,有效的提升了搜索效率。

【技术实现步骤摘要】
搜索方法、可读存储介质和电子设备
本专利技术涉及计算机
,尤其涉及一种搜索方法、可读存储介质和电子设备。
技术介绍
在人工智能和机器学习应用中通常使用向量来表示数据的特征。其中,向量是由固定维度的若干数据构成的特殊数据类型。例如,在内容推荐应用中,用户的兴趣特征是通常是由一个多维向量表示。于此同时被推荐的内容特征通常也是由一个具有相同维度的向量进行表示的。为了准确的向用户推荐其感兴趣的内容,需要在所有内容的特征向量中寻找与用户兴趣最为相似的向量,该向量所对应的内容则被认为是最有可能引起用户兴趣的内容。与上述过程对应的,在一个给定的向量集合中查找与特定向量最为相似的若干个向量的问题,被称为向量搜索问题。随着现代应用数据的飞速增长,向量搜索的集合范围也变得越来越大,传统的向量搜索方案将逐渐难以满足应用的需求。现有的向量搜索方案主要分为两类,一类是基于数据划分的方法,另一类是基于图的方法。其中基于图的向量搜索方法均为基于中央处理器(CPU)的方法,由于中央处理器计算能力的限制,无法高效的解决大规模的向量搜索问题。
技术实现思路
有鉴于此,本专利技术实施例提供一种搜索方法、可读存储介质和电子设备,旨在使用图形处理器对基于图的向量搜索方法进行加速。第一方面,本专利技术实施例提供一种搜索方法,包括:将向量集合划分为至少两个向量子集,并确定每个向量子集对应的搜索图,所述搜索图的节点用于表征对应的向量子集的向量;确定至少一个搜索请求的搜索向量;将所述搜索图传输至图形处理器;对于各搜索请求,并行地在不同搜索图内确定与所述搜索向量匹配的目标节点;根据确定的目标节点输出查询结果。进一步地,所述将向量集合划分为至少两个向量子集,并确定每个向量子集对应的搜索图包括:确定配置信息和向量集合中的元素数,所述配置信息包括所述图形处理器的全局内存容量、向量的维度、数据类型和搜索过程中所产生的临时数据量的大小;根据所述配置信息确定每个向量子集中能容纳的元素数,并根据所述向量集合中的元素数和每个向量子集中能容纳的元素数确定所述向量子集的数目;根据所述向量子集的数目创建向量子集,将所述向量集合中的元素分配至每个向量子集;确定并储存每个向量子集对应的搜索图。进一步地,所述确定至少一个搜索请求的搜索向量包括:确定图形处理器的最大搜索数量;创建缓存区,所述缓存区的容量根据所述最大搜索数量确定;将搜索请求存储至所述缓存区;响应于所述缓存区内的内存用尽,获取所述缓存区内的搜索请求的搜索向量。进一步地,所述对于各搜索请求,并行地在不同搜索图内确定与所述搜索向量匹配的目标节点包括:为每一个搜索请求分配与所述搜索图数量相同的线程组数量;控制每个线程组并行地在不同搜索图内确定与所述搜索向量匹配的目标节点。进一步地,所述控制每个线程组并行地在不同搜索图内确定与所述搜索向量匹配的目标节点包括:确定候选节点列表和所述搜索图内的至少一个搜索起始节点;由所述搜索起始节点开始以迭代方式计算所述搜索图中节点与所述搜索向量的匹配度,每次迭代完成后,将匹配度更高的节点更新至所述候选节点列表中,直到一次迭代过程中搜索到节点的匹配度不高于所述候选节点列表中节点的匹配度;响应于所述搜索图完成搜索,确定所述候选节点列表中的节点为目标节点。进一步地,所述每个迭代过程包括:确定与所述候选节点列表中的候选节点相邻的节点;筛选出未与所述搜索向量进行过匹配度计算的所述相邻的节点;计算所述筛选后的节点和所述搜索向量的匹配度。进一步地,所述根据确定的目标节点输出查询结果包括:对全部搜索图内确定的所述目标节点进行汇总处理,输出查询结果。进一步地,所述将所述搜索图传输至图形处理器的过程和对每个搜索请求进行搜索的过程以流水线方式顺序进行。第二方面,本专利技术实施例还提供一种电子设备,包括存储器和处理器,所述存储器用于存储一条或多条计算机程序指令,其中,所述一条或多条计算机程序指令被所述处理器执行以实现如第一方面任一项所述的方法。第三方面,本专利技术实施例还提供一种计算机可读存储介质,用于存储计算机程序指令,所述计算机程序指令在被处理器执行时实现如第一方面任一项所述的方法。本专利技术实施例使用图形处理器对基于图的向量搜索方法进行加速,并通过对向量集合进行划分、并行搜索和流水执行等技术解决了图形处理器在主存容量、数据传输效率等多方面对向量搜索的限制,有效的提升了搜索效率。附图说明通过以下参照附图对本专利技术实施例的描述,本专利技术的上述以及其它目的、特征和优点将更为清楚,在附图中:图1为一种异构计算机架构示意图;图2为本专利技术实施例的搜索方法的流程图;图3为本专利技术实施例一个可选方式在搜索图内确定与所述搜索向量匹配的目标节点的流程图;图4为本专利技术实施例中将所述搜索图传输至图形处理器的过程和对每个搜索请求进行搜索的过程构建的流水线示意图;图5为本专利技术实施例一个可选实现方式为每一个搜索请求分配线程组的示意图;图6为本专利技术实施例的示例性搜索图的示意图;图7为本专利技术实施例的电子设备的示意图。具体实施方式以下基于实施例对本专利技术进行描述,但是本专利技术并不仅仅限于这些实施例。在下文对本专利技术的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本专利技术。为了避免混淆本专利技术的实质,公知的方法、过程、流程并没有详细叙述。此外,本领域普通技术人员应当理解,在此提供的附图都是为了说明的目的,并且附图不一定是按比例绘制的。除非上下文明确要求,否则整个说明书和权利要求书中的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。在本专利技术的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本专利技术的描述中,除非另有说明,“多个”的含义是两个或两个以上。图1为一种异构计算机架构的示意图,如图1所示,所述异构计算机架构由中央处理器(CPU)和图形处理器(GPU)组成,所述中央处理器和图形处理器通过高速串行总线(PCIe-bus)连接。具体地,所述中央处理器和所述图形处理器的运算核心包括控制单元(control)10、运算器(ALU)11、高速缓冲存储器(cache)12和动态随机存取存储器(DRAM)13。由图可见,中央处理器中的中的运算核心较少而图形处理器中的运算核心较多,使得所述图形处理器更为适合执行计算简单但并行性高的任务,而所述中央处理器更为适合执行计算复杂但并行性低的任务。在本专利技术实施例提供的搜索方法过程中,可以通过中央处理器处理计算复杂且并行性较低的任务,例如将向量集合划分为至少两个向量子集等过程。同时可以通过图形处理器处理计算简单但本文档来自技高网...

【技术保护点】
1.一种搜索方法,其特征在于,包括:/n将向量集合划分为至少两个向量子集,并确定每个向量子集对应的搜索图,所述搜索图的节点用于表征对应的向量子集的向量;/n确定至少一个搜索请求的搜索向量;/n将所述搜索图传输至图形处理器;/n对于各搜索请求,并行地在不同搜索图内确定与所述搜索向量匹配的目标节点;/n根据确定的目标节点输出查询结果。/n

【技术特征摘要】
1.一种搜索方法,其特征在于,包括:
将向量集合划分为至少两个向量子集,并确定每个向量子集对应的搜索图,所述搜索图的节点用于表征对应的向量子集的向量;
确定至少一个搜索请求的搜索向量;
将所述搜索图传输至图形处理器;
对于各搜索请求,并行地在不同搜索图内确定与所述搜索向量匹配的目标节点;
根据确定的目标节点输出查询结果。


2.如权利要求1所述的方法,其特征在于,所述将向量集合划分为至少两个向量子集,并确定每个向量子集对应的搜索图包括:
确定配置信息和向量集合中的元素数,所述配置信息包括所述图形处理器的全局内存容量、向量的维度、数据类型和搜索过程中所产生的临时数据量的大小;
根据所述配置信息确定每个向量子集中能容纳的元素数,并根据所述向量集合中的元素数和每个向量子集中能容纳的元素数确定所述向量子集的数目;
根据所述向量子集的数目创建向量子集,将所述向量集合中的元素分配至每个向量子集;
确定并储存每个向量子集对应的搜索图。


3.如权利要求1所述的方法,其特征在于,所述确定至少一个搜索请求的搜索向量包括:
确定图形处理器的最大搜索数量;
创建缓存区,所述缓存区的容量根据所述最大搜索数量确定;
将搜索请求存储至所述缓存区;
响应于所述缓存区内的内存用尽,获取所述缓存区内的搜索请求的搜索向量。


4.如权利要求1所述的方法,其特征在于,所述对于各搜索请求,并行地在不同搜索图内确定与所述搜索向量匹配的目标节点包括:
为每一个搜索请求分配与所述搜索图数量相同的线程组数量;
控制每个线程组并行地在不同搜索图内确定与...

【专利技术属性】
技术研发人员:谢超易小萌
申请(专利权)人:上海赜睿信息科技有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1