一种数据搜索方法、装置和电子设备与流程

文档序号:28503382发布日期:2022-01-15 05:15阅读:74来源:国知局
一种数据搜索方法、装置和电子设备与流程

1.本发明涉及计算机技术领域,具体涉及一种数据搜索方法、装置和电子设备。


背景技术:

2.在向量索引数据库中,对于给定的数据集,针对不同的索引方法以及索引参数,会有不同的索引性能,例如,召回率、索引速度等;因此选择合适的索引方法和索引参数对索引性能存在重要的影响。
3.现有技术中获取最优的索引参数的方法包括网格搜索和贝叶斯优化,但是上述两种方法不仅存在各自的缺点,而且也无法用于向量索引数据库。
4.因此,如何在给定数据集的情况下,获取较为合适的索引方法和索引参数,提高索引性能和用户的使用体验是目前需要解决的问题。


技术实现要素:

5.有鉴于此,本发明实施例提供了一种数据搜索方法、装置和电子设备,可以获取较优的索引方法和索引参数,提高索引性能,进而提高用户的使用体验。
6.第一方面,本发明实施例提供了一种数据搜索方法,用于电子设备,该方法包括:
7.获取数据集以及确定所述数据集对应的第一索引类型;
8.根据bohb算法,在预设的索引构建参数集合中确定所述索引类型对应的第一索引构建参数;
9.根据bohb算法,在预设的索引搜索参数集合中确定所述第一索引构建参数对应的第一索引搜索参数;
10.输出所述第一索引搜索参数。
11.可选的,所述确定所述数据集对应的第一索引类型,具体包括:
12.根据bohb算法,在预设的索引类型集合中确定所述第一索引类型。
13.可选的,所述根据bohb算法,在预设的索引类型集合中确定所述第一索引类型,具体包括:
14.根据bohb算法,在预设的索引类型集合中确定满足设定评估函数的所述第一索引类型。
15.可选的,所述根据bohb算法,在预设的索引构建参数集合中确定所述索引类型对应的第一索引构建参数,具体包括:
16.根据bohb算法,在预设的索引构建参数集合中确定满足设定评估函数的所述索引类型对应的第一索引构建参数。
17.可选的,所述根据bohb算法,在预设的索引搜索参数集合中确定所述第一索引构建参数对应的第一索引搜索参数,具体包括:
18.根据bohb算法,遍历所述预设的索引搜索参数集合;
19.每次迭代过程中,根据搜索结果调整所述bohb算法中对应的参数;
20.遍历完所述预设的索引搜索参数集合中的预设的索引搜索参数后,确定满足设定评估函数的所述第一索引构建参数对应的第一索引搜索参数。
21.可选的,所述设定评估函数包括召回率和或索引速度,其中,所述索引速度包括索引构建速度和索引查询速度。
22.可选的,所述方法还包括:
23.根据所述第一索引类型、所述第一索引构建参数以及所述第一索引搜索参数对新的数据集进行索引。
24.第二方面,本发明实施例提供了一种数据搜索装置,该装置包括:
25.获取单元,用于获取数据集以及确定所述数据集对应的第一索引类型;
26.确定单元,用于根据bohb算法,在预设的索引构建参数集合中确定所述索引类型对应的第一索引构建参数;
27.所述确定单元还用于,根据bohb算法,在预设的索引搜索参数集合中确定所述第一索引构建参数对应的第一索引搜索参数;
28.输出单元,用于输出所述第一索引搜索参数。
29.可选的,所述确定单元具体用于,根据bohb算法,在预设的索引类型集合中确定所述第一索引类型。
30.可选的,所述确定单元具体用于,根据bohb算法,在预设的索引类型集合中确定满足设定评估函数的所述第一索引类型。
31.可选的,所述确定单元具体用于,根据bohb算法,在预设的索引构建参数集合中确定满足设定评估函数的所述索引类型对应的第一索引构建参数。
32.可选的,所述确定单元具体用于,根据bohb算法,遍历所述预设的索引搜索参数集合;
33.每次迭代过程中,根据搜索结果调整所述bohb算法中对应的参数;
34.遍历完所述预设的索引搜索参数集合中的预设的索引搜索参数后,确定满足设定评估函数的所述第一索引构建参数对应的第一索引搜索参数。
35.可选的,所述设定评估函数包括召回率和或索引速度,其中,所述索引速度包括索引构建速度和索引查询速度。
36.可选的,所述获取单元还用于:
37.根据所述第一索引类型、所述第一索引构建参数以及所述第一索引搜索参数对新的数据集进行索引。
38.第三方面,本发明实施例提供了一种电子设备,包括存储器和处理器,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被处理器执行以实现如第一方面或第一方面任一种可能中任一项所述的方法。
39.第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行以实现如第一方面或第一方面任一种可能中任一项所述的方法。
40.本发明实施例通过获取数据集以及确定所述数据集对应的第一索引类型;根据bohb算法,在预设的索引构建参数集合中确定所述索引类型对应的第一索引构建参数;根据bohb算法,在预设的索引搜索参数集合中确定所述第一索引构建参数对应的第一索引搜索参数;输出所述第一索引搜索参数。通过上述方法,通过bohb算法可以获取较优的第一索
引类型、第一索引构建参数和第一索引搜索参数,即获取了较优的索引方法和索引参数,可以提高索引性能,进而提高用户的使用体验。
附图说明
41.通过以下参照附图对本发明实施例的描述,本发明的上述以及其它目的、特征和优点将更为清楚,在附图中:
42.图1是本发明实施例中一种数据搜索方法流程图;
43.图2是本发明实施例中一种数据搜索方法流程图;
44.图3是本发明实施例中一种数据搜索方法流程图;
45.图4是本发明实施例中一种数据搜索方法流程图;
46.图5是本发明实施例中一种数据搜索装置示意图;
47.图6是本发明实施例的一种电子设备示意图。
具体实施方式
48.以下基于实施例对本发明公开进行描述,但是本发明公开并不仅仅限于这些实施例。在下文对本发明公开的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明公开。为了避免混淆本发明公开的实质,公知的方法、过程、流程、元件和电路并没有详细叙述。
49.此外,本领域普通技术人员应当理解,在此提供的附图都是为了说明的目的,并且附图不一定是按比例绘制的。
50.除非上下文明确要求,否则整个申请文件中的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。
51.在本发明公开的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明公开的描述中,除非另有说明,“多个”的含义是两个或两个以上。
52.现有技术中,获取最优的索引参数的索引方法包括网格搜索和贝叶斯优化,其中,所述网格搜索等价于对于所有的参数进行无差别的遍历,从而获得最优的参数,需要处理的参数较多;所述贝叶斯优化利用给定参数及对应的反馈,估计参数分布,从而获取参数和输出的概率分布,获取最优输出的参数,处理过程相对较为复杂;并且,对于所述网格搜搜和所述贝叶斯优化也存在超参数,需要对超参数进行赋值,将处理过程更加复杂化;上述两种方法不仅存在各自的缺点,而且也无法用于向量索引数据库。综上所述,在向量索引数据库中,如何在给定数据集的情况下,获取较为合适的索引方法和索引参数,提高索引性能和用户的使用体验是目前需要解决的问题。
53.本发明实施例中,为了解决如何在给定数据集的情况下,获取较为合适的索引方法和索引参数的问题,具体如图1所示,图1是本发明实施例的一种数据搜索方法,该方法包括如下步骤:
54.步骤s100、获取数据集以及确定所述数据集对应的第一索引类型。
55.具体的,获取所述数据集之后,需要确定所述数据集对应的第一索引类型,其中,确定所述数据集对应的第一索引类型,具体包括:
56.根据bohb算法,在预设的索引类型集合中确定所述第一索引类型。
57.在一种可能的实现方式中,所述根据bohb算法,在预设的索引类型集合中确定所述第一索引类型,具体包括:
58.根据bohb算法,在预设的索引类型集合中确定满足设定评估函数的所述第一索引类型;其中,所述设定评估函数包括召回率和或索引速度,其中,所述索引速度包括索引构建速度和索引查询速度。
59.在一种可能的实现方式中,所述bohb算法中,bo表示搜索,hb表示限制,具体的,即通过hb控制每一次参数搜索的预算budget,然后通过bo在上述hb控制的预算中进行搜索,在预算范围内确定出最优的索引类型或索引参数,由于通过所述bohb算法对搜索范围进行了限制,优化了搜索次数,减少了索引时间,进一步的,在通过hb控制每一次搜索的预算budget时,可以通过贝叶斯优化确定预算budget内的参数。
60.在一种可能的实现方式中,虽然bohb算法对搜索范围进行了限制,但是可以对于有可能的最优参数给予尽可能多的搜索次数,从而调高搜索出最优参数的可能性;同时给予稀疏概率的参数一定的搜索次数,确保搜索空间的广度。
61.本发明实施例中,根据bohb算法的原理,在确定第一索引类型时,首先通过贝叶斯优化确定预设的索引类型集合中包括的至少一个索引类型,然后逐一对所述预设的索引类型集合中索引类型进行索引,确定出满足设定召回率和或索引速度的索引类型,例如,满足召回率大于或等于90%的索引类型,其中,所述召回率和索引速度根据具体情况确定,本发明实施例对其不做限定。
62.在一种可能的实现方式中,假设存在多个满足设定召回率和或索引速度的索引类型,选择其中最优的索引类型。
63.本发明实施例中,所述索引类型可以为ivf_flat,hnsw,此处仅仅为示例性说明。
64.步骤s101、根据bohb算法,在预设的索引构建参数集合中确定所述索引类型对应的第一索引构建参数。
65.具体的,在确定出最优的索引类型后,需要进行下一层的检索,即需要确定所述索引类型对应的第一索引构建参数。
66.本发明实施例中,根据bohb算法,在预设的索引构建参数集合中确定所述索引类型对应的第一索引构建参数,具体包括:
67.根据bohb算法,在预设的索引构建参数集合中确定满足设定评估函数的所述索引类型对应的第一索引构建参数。
68.在一种可能的实现方式中,所述预设的索引构建参数集合中的索引构建参数可以是工作人员根据常见的索引构建参数预先设置的,也可以通过其他方式获取的,本发明实施例对其不做限定。
69.本发明实施例中,根据bohb算法的原理,在确定第一索引构建参数时,首先确定预设的索引构建参数集合中包括的至少一个索引构建参数,然后逐一对所述预设的索引构建参数集合中索引构建参数进行索引,确定出满足设定召回率和或索引速度的索引构建参数,例如,满足召回率大于或等于90%的索引构建参数,其中,所述召回率和索引速度根据具体情况确定,本发明实施例对其不做限定。
70.在一种可能的实现方式中,假设存在多个满足设定召回率和或索引速度的索引构
建参数,选择其中最优的索引构建参数。
71.步骤s102、根据bohb算法,在预设的索引搜索参数集合中确定所述第一索引构建参数对应的第一索引搜索参数。
72.具体的,所述根据bohb算法,在预设的索引搜索参数集合中确定所述第一索引构建参数对应的第一索引搜索参数,如图2所示,包括如下步骤:
73.步骤s200、根据bohb算法,遍历所述预设的索引搜索参数集合。
74.在一种可能的实现方式中,所述预设的索引搜索参数集合中的索引搜索参数可以是工作人员根据常见的索引搜索参数预先设置的,也可以通过其他方式获取的,本发明实施例对其不做限定。
75.步骤s201、每次迭代过程中,根据搜索结果调整所述bohb算法中对应的参数。
76.具体的,所述搜索结果包括环境env和损失loss,评估函数会基于向量数据库的搜索结果进行调整。
77.步骤s202、遍历完所述预设的索引搜索参数集合中的预设的索引搜索参数后,确定满足设定评估函数的所述第一索引构建参数对应的第一索引搜索参数。
78.具体的,根据bohb算法的原理,在确定第一索引搜索参数时,首先确定预设的索引搜索参数集合中包括的至少一个索引搜索参数,然后逐一对所述预设的索引搜索参数集合中索引搜索参数进行索引,确定出满足设定召回率和或索引速度的索引搜索参数,例如,满足召回率大于或等于90%的索引搜索参数,其中,所述召回率和索引速度根据具体情况确定,本发明实施例对其不做限定。
79.本发明实施例中,通过上述方法可以确定出最优的第一索引搜索参数
80.步骤s103、输出所述第一索引搜索参数。
81.本发明实施例中,根据输出的第一索引搜索参数、以及确定的第一索引类型和所述第一索引构建参数共同用于向量数据库的索引,由于获取的第一索引类型、第一索引构建参数和第一索引搜索参数都是较优的参数,因此采用上述参数进行索引时,可以提高索引性能,提高用户的使用体验。
82.在一种可能的实现方式中,在步骤s103输出第一索引搜索参数的同时,也确定了所述第一索引类型和所述第一索引构建参数,用户可以直接使用所述第一索引类型、所述第一索引构建参数以及所述第一索引搜索参数进行向量数据库的索引,因此,在步骤s103之后,还包括如下步骤,具体如图3所示:
83.步骤s104、根据所述第一索引类型、所述第一索引构建参数以及所述第一索引搜索参数对新的数据集进行索引。
84.本发明实施例中,通过获取数据集以及确定所述数据集对应的第一索引类型;根据bohb算法,在预设的索引构建参数集合中确定所述索引类型对应的第一索引构建参数;根据bohb算法,在预设的索引搜索参数集合中确定所述第一索引构建参数对应的第一索引搜索参数;输出所述第一索引搜索参数。通过上述方法,通过bohb算法可以获取较优的第一索引类型、第一索引构建参数和第一索引搜索参数,即获取了较优的索引方法和索引参数,可以提高索引性能,进而提高用户的使用体验。
85.在一种可能的实现方式中,在向量数据库中进行数据索引时,可以分为两种情况:
86.情况一、向量数据库已经建立。
87.情况二、向量数据未建立。
88.针对上述情况一,若向量数据库已经建立,索引类型和索引构建参数已知,只需要确定最优的索引搜索参数即可。
89.针对上述情况二,若向量数据库未建立,索引类型、索引构建参数、和索引搜索参数都是未知的,需要根据上述数据搜索方法分布确定最优的索引类型、最优的索引构建参数、和最优的索引搜索参数用于向量数据库的数据索引。
90.下面通过一个完成的实施例对数据搜索进行完整的说明,具体如图4所示,包括如下步骤:
91.步骤s400、获取数据集以及所述数据集对应的索引类型集合,通过bohb算法,遍历索引所述索引类型集合中的至少一个索引类型。
92.步骤s401、确定所述索引类型集合中的第一索引类型。
93.具体的,所述第一索引类型为所述索引类型集合中的最优索引类型。
94.步骤s402、根据所述第一索引类型确定其对应的索引构建参数集合。
95.步骤s403、通过bohb算法,索引所述索引构建参数集合中的至少一个索引构建参数。
96.步骤s404、确定所述索引构建参数集合中的第一索引构建参数。
97.具体的,所述第一索引构建参数为所述索引构建参数集合中的最优索引构建参数。
98.步骤s405、根据所述第一索引构建参数确定其对应的索引搜索参数集合。
99.步骤s406、通过bohb算法,索引所述索引搜索参数集合中的至少一个索引搜索参数。
100.步骤s407、确定所述索引搜索参数集合中的第一索引搜索参数。
101.具体的,所述第一索引搜索参数为所述索引构建参数集合中的最优索引搜索参数。
102.步骤s408、根据所述第一索引搜索参数调整环境env和损失loss。
103.在一种可能的实现方式中,在步骤s408之后,根据调整后的环境env和损失loss对步骤s400、步骤s403和步骤s406中索引使用的bohb算法进行调整。
104.图5是本发明实施例的数据搜索装置的示意图。如图5所示,数据搜索装置包括请求获取单元501、确定单元502和输出单元503。
105.其中,获取单元501,用于获取数据集以及确定所述数据集对应的第一索引类型;
106.确定单元502,用于根据bohb算法,在预设的索引构建参数集合中确定所述索引类型对应的第一索引构建参数;
107.所述确定单元502还用于,根据bohb算法,在预设的索引搜索参数集合中确定所述第一索引构建参数对应的第一索引搜索参数;
108.输出单元503,用于输出所述第一索引搜索参数。
109.进一步地,所述确定单元还用于,确定所述数据集对应的第一索引类型。
110.进一步地,所述确定单元具体用于,根据bohb算法,在预设的索引类型集合中确定所述第一索引类型。
111.进一步地,所述确定单元具体用于,根据bohb算法,在预设的索引类型集合中确定
满足设定评估函数的所述第一索引类型。
112.进一步地,所述确定单元具体用于,根据bohb算法,在预设的索引构建参数集合中确定满足设定评估函数的所述索引类型对应的第一索引构建参数。
113.进一步地,所述确定单元具体用于,根据bohb算法,遍历所述预设的索引搜索参数集合;
114.每次迭代过程中,根据搜索结果调整所述bohb算法中对应的参数;
115.遍历完所述预设的索引搜索参数集合中的预设的索引搜索参数后,确定满足设定评估函数的所述第一索引构建参数对应的第一索引搜索参数。
116.进一步地,所述设定评估函数包括召回率和或索引速度,其中,所述索引速度包括索引构建速度和索引查询速度。
117.进一步地,所述获取单元还用于:
118.根据所述第一索引类型、所述第一索引构建参数以及所述第一索引搜索参数对新的数据集进行索引。
119.图6是本发明实施例的电子设备的示意图。如图6所示,图6所示的电子设备为通用地址查询装置,其包括通用的计算机硬件结构,其至少包括处理器60和存储器61。处理器60和存储器61通过总线62连接。存储器61适于存储处理器60可执行的指令或程序。处理器60可以是独立的微处理器,也可以是一个或者多个微处理器集合。由此,处理器60通过执行存储器61所存储的指令,从而执行如上所述的本发明实施例的方法流程实现对于数据的处理和对于其它装置的控制。总线62将上述多个组件连接在一起,同时将上述组件连接到显示控制器63和显示装置以及输入/输出(i/o)装置64。输入/输出(i/o)装置64可以是鼠标、键盘、调制解调器、网络接口、触控输入装置、体感输入装置、打印机以及本领域公知的其他装置。典型地,输入/输出装置64通过输入/输出(i/o)控制器56与系统相连。
120.如本领域技术人员将意识到的,本发明实施例的各个方面可以被实现为系统、方法或计算机程序产品。因此,本发明实施例的各个方面可以采取如下形式:完全硬件实施方式、完全软件实施方式(包括固件、常驻软件、微代码等)或者在本文中通常可以都称为“电路”、“模块”或“系统”的将软件方面与硬件方面相结合的实施方式。此外,本发明实施例的各个方面可以采取如下形式:在一个或多个计算机可读介质中实现的计算机程序产品,计算机可读介质具有在其上实现的计算机可读程序代码。
121.可以利用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是如(但不限于)电子的、磁的、光学的、电磁的、红外的或半导体系统、设备或装置,或者前述的任意适当的组合。计算机可读存储介质的更具体的示例(非穷尽列举)将包括以下各项:具有一根或多根电线的电气连接、便携式计算机软盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或闪速存储器)、光纤、便携式光盘只读存储器(cd-rom)、光存储装置、磁存储装置或前述的任意适当的组合。在本发明实施例的上下文中,计算机可读存储介质可以为能够包含或存储由指令执行系统、设备或装置使用的程序或结合指令执行系统、设备或装置使用的程序的任意有形介质。
122.计算机可读信号介质可以包括传播的数据信号,所述传播的数据信号具有在其中如在基带中或作为载波的一部分实现的计算机可读程序代码。这样的传播的信号可以采用
多种形式中的任何形式,包括但不限于:电磁的、光学的或其任何适当的组合。计算机可读信号介质可以是以下任意计算机可读介质:不是计算机可读存储介质,并且可以对由指令执行系统、设备或装置使用的或结合指令执行系统、设备或装置使用的程序进行通信、传播或传输。
123.可以使用包括但不限于无线、有线、光纤电缆、rf等或前述的任意适当组合的任意合适的介质来传送实现在计算机可读介质上的程序代码。
124.用于执行针对本发明实施例各方面的操作的计算机程序代码可以以一种或多种编程语言的任意组合来编写,所述编程语言包括:面向对象的编程语言如java、smalltalk、c++等;以及常规过程编程语言如“c”编程语言或类似的编程语言。程序代码可以作为独立软件包完全地在用户计算机上、部分地在用户计算机上执行;部分地在用户计算机上且部分地在远程计算机上执行;或者完全地在远程计算机或服务器上执行。在后一种情况下,可以将远程计算机通过包括局域网(lan)或广域网(wan)的任意类型的网络连接至用户计算机,或者可以与外部计算机进行连接(例如通过使用因特网服务供应商的因特网)。
125.上述根据本发明实施例的方法、设备(系统)和计算机程序产品的流程图图例和/或框图描述了本发明实施例的各个方面。将要理解的是,流程图图例和/或框图的每个块以及流程图图例和/或框图中的块的组合可以由计算机程序指令来实现。这些计算机程序指令可以被提供至通用计算机、专用计算机或其它可编程数据处理设备的处理器,以产生机器,使得(经由计算机或其它可编程数据处理设备的处理器执行的)指令创建用于实现流程图和/或框图块或块中指定的功能/动作的装置。
126.还可以将这些计算机程序指令存储在可以指导计算机、其它可编程数据处理设备或其它装置以特定方式运行的计算机可读介质中,使得在计算机可读介质中存储的指令产生包括实现在流程图和/或框图块或块中指定的功能/动作的指令的制品。
127.计算机程序指令还可以被加载至计算机、其它可编程数据处理设备或其它装置上,以使在计算机、其它可编程设备或其它装置上执行一系列可操作步骤来产生计算机实现的过程,使得在计算机或其它可编程设备上执行的指令提供用于实现在流程图和/或框图块或块中指定的功能/动作的过程。
128.以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1