一种Milvus数据库参数确定方法、设备及存储介质技术

技术编号:36357029 阅读:16 留言:0更新日期:2023-01-14 18:13
本发明专利技术提供了一种Milvus数据库参数确定方法、设备及存储介质,涉及信息检索领域,该方法包括:获取输入的目标召回率S0;确定初始nprobe值L1和初始nlist值L2;从外部矢量数据库中随机取出一数据向量,并确定为第一待比对向量;根据第一待比对向量、L1和L2,分别对Milvus数据库和外部矢量数据库中的数据向量进行向量比对,得到第一召回率S1;根据第二待比对向量、S0、S1、L3、L1和L2,确定目标nprobe值L3和目标nlist值L4。以每次得出的召回率与目标召回率做比较,来确定nprobe值和nlist值的枚举方向,使得可在短时间内获取准确的nprobe值和nlist值。和nlist值。和nlist值。

【技术实现步骤摘要】
一种Milvus数据库参数确定方法、设备及存储介质


[0001]本专利技术涉及信息检索领域,特别是涉及一种Milvus数据库参数确定方法、设备及存储介质。

技术介绍

[0002]Milvus数据库为一种数据向量库,旨在解决数据向量在普通关系型数据库中检索效率太低的问题。Milvus数据库通过使用多种索引来实现数据向量的高效率检索,但使用索引进行数据向量的检索虽提升了效率,但还存在召回率降低的问题。
[0003]目前使用较多的为IVF

SQ8索引,在建立索引和检索时,需要用到的主要参数为nlist和nprobe,nlist为在进行数据向量检索时所有向量的组数,nprobe为在进行数据向量检索时相似向量的组数。经实验证明,nlist和nprobe对召回率和检索时间有着很大的影响。虽然Milvus官方给出了nlist的推荐设置值,但多种实验证明推荐值并不能适配所有场景。nprobe的设置也没有确切的值,需要大量实验才可得出,会耗费大量测试时间。且现有的nlist和nprobe参数值与召回率的对应参数表也不为准确,在数据向量检索时会产生误差。

技术实现思路

[0004]针对上述技术问题,本专利技术提供一种Milvus数据库参数确定方法、设备及存储介质,至少部分解决现有技术中存在的技术问题,本专利技术采用的技术方案为:根据本申请的一个方面,提供一种Milvus数据库参数确定方法,应用于参数确定系统,参数确定系统通信连接有Milvus数据库和外部矢量数据库,外部矢量数据库存储有与Milvus数据库节点相同的若干数据向量;Milvus数据库和外部矢量数据库的数据库类型不同,且Milvus数据库和外部矢量数据库的数据向量的比对方法不同。
[0005]所述Milvus数据库参数确定方法,包括如下步骤:S100、获取输入的目标召回率S0;S200、确定初始nprobe值L1和初始nlist值L2;S300、从外部矢量数据库中随机取出一数据向量,并将其确定为第一待比对向量;S400、根据第一待比对向量、L1和L2,分别对Milvus数据库和外部矢量数据库中的数据向量进行向量比对,以得到第一召回率S1;S500、将第一待比对向量放回外部矢量数据库,从外部矢量数据库中随机取出一数据向量,并将其确定为第二待比对向量;根据第二待比对向量、S0、S1、L1和L2,确定出L1对应的目标nprobe值L3;S600、根据第二待比对向量、S0、L3和L2,确定出L2对应的目标nlist值L4;S700、输出L3、L4和S3;其中,S3为根据第二待比对向量、L3和L4分别对Milvus数据库和外部矢量数据库中的数据向量进行向量比对后得到的第三召回率;S3≥S0。
[0006]在本申请的一种示例性实施例中,步骤S500,包括:
S510、获取L3=L1;S520、若S0<S1,则执行步骤S530;若S0≥S1,则执行步骤S532;S530、将数值调整方向确定为第一方向,并执行步骤S531;S531、获取L3=L3*α,并执行步骤S540;其中,α>1,α为第一预设系数;S532、将数值调整方向确定为第二方向,并执行步骤S533;其中,第二方向与第一方向互为反方向;S533、获取L3=L3/α,并执行步骤S540;S540、根据第二待比对向量、L3和L2,分别对Milvus数据库和外部矢量数据库中的数据向量进行向量比对,以得到第二召回率S2;S550、若|S2‑
S1|>β,则执行步骤S560;若|S2‑
S1|≤β,则执行步骤S600;其中,β为预设的召回率阈值;S560、在当前的数值调整方向为第一方向时,若S2<S0,则执行步骤S531;若S2≥S0,则执行步骤S600;在当前的数值调整方向为第二方向时,若S2≥S0,则执行步骤S533;若S2<S0,则执行步骤S600。
[0007]在本申请的一种示例性实施例中,步骤S600,包括:S610、获取L4=L2;S620、若S2<S0,则执行步骤S630;若S2≥S0,则执行步骤S632;S630、将数值调整方向确定为第二方向,并执行步骤S631;S631、获取L4=L4*γ,并执行步骤S640;其中,γ<1,γ为第二预设系数;S632、将数值调整方向确定为第一方向,并执行步骤S633;S633、获取L4=L4/γ,并执行步骤S640;S640、根据第二待比对向量、L3和L4,分别对Milvus数据库和外部矢量数据库中的数据向量进行向量比对,以得到第三召回率S3;S650、在当前的数值调整方向为第二方向时,若S3<S0,则执行步骤S631;若S3≥S0,则执行步骤S700;在当前的数值调整方向为第一方向时,若S3≥S0,则执行步骤S633;若S3<S0,则执行步骤S660;S660、获取L4=L4*γ,并执行步骤S700。
[0008]在本申请的一种示例性实施例中,初始nlist值L2=4m
1/2
,其中,m为Milvus数据库的数据存储层的数据段中实体的最大存储容量。
[0009]在本申请的一种示例性实施例中,初始nprobe值L1,通过以下步骤确定:S210、获取L0=L2*b;其中,b为预设的参数系数,b<1;S220、若L0<d,则确定L1=d;若L0≥d,则确定L1=L0;其中,d为预设的参数阈值。
[0010]在本申请的一种示例性实施例中,步骤S400,包括:S410、根据L1和L2,将第一待比对向量与Milvus数据库中每一数据向量进行向量比对处理,获取第一待比对向量与Milvus数据库中每一数据向量之间的相似度,得到第一相似度集Q={Q1,Q2,
……
,Q
i
,
……
,Q
n
};其中,i=1,2,
……
,n;n为Milvus数据库中数据向量的数量;Q
i
为第一待比对向量与Milvus数据库中第i个数据向量之间的相似度;S420、根据L1和L2,将第一待比对向量与外部矢量数据库中每一数据向量进行向量比对处理,获取第一待比对向量与外部矢量数据库中除第一待比对向量以外的每一数据向
量之间的相似度,得到第二相似度集E={E1,E2,
……
,E
j
,
……
,E
n
‑1};其中,j=1,2,
……
,n

1;E
j
为第一待比对向量与外部矢量数据库中第j个数据向量之间的相似度;S430、按照数值递减,对Q1,Q2,
……
,Q
i
,
……
,Q
n
进行排序,以得到第一排序列表W={W1,W2,
……
,W
i
,
……
,W
n
};其中,W
i
为W中第i个相似度;S440、按照数值递减,对E1,E2,
……
,E...

【技术保护点】

【技术特征摘要】
1.一种Milvus数据库参数确定方法,其特征在于,应用于参数确定系统,所述参数确定系统通信连接有Milvus数据库和外部矢量数据库,所述外部矢量数据库存储有与所述Milvus数据库节点相同的若干数据向量;所述Milvus数据库和外部矢量数据库的数据库类型不同,且Milvus数据库和外部矢量数据库的数据向量的比对方法不同;所述Milvus数据库参数确定方法,包括如下步骤:S100、获取输入的目标召回率S0;S200、确定初始nprobe值L1和初始nlist值L2;S300、从所述外部矢量数据库中随机取出一数据向量,并将其确定为第一待比对向量;S400、根据所述第一待比对向量、L1和L2,分别对Milvus数据库和外部矢量数据库中的数据向量进行向量比对,以得到第一召回率S1;S500、将所述第一待比对向量放回所述外部矢量数据库,从所述外部矢量数据库中随机取出一数据向量,并将其确定为第二待比对向量;根据第二待比对向量、S0、S1、L1和L2,确定出L1对应的目标nprobe值L3;S600、根据所述第二待比对向量、S0、L3和L2,确定出L2对应的目标nlist值L4;S700、输出L3、L4和S3;其中,S3为根据第二待比对向量、L3和L4分别对Milvus数据库中的和外部矢量数据库中的数据向量进行向量比对后得到的第三召回率;S3≥S0。2.根据权利要求1所述的Milvus数据库参数确定方法,其特征在于,S500中,根据第二待比对向量、S0、S1、L1和L2,确定出L1对应的目标nprobe值L3,包括:S510、获取L3=L1;S520、若S0<S1,则执行步骤S530;若S0≥S1,则执行步骤S532;S530、将数值调整方向确定为第一方向,并执行步骤S531;S531、获取L3=L3*α,并执行步骤S540;其中,α>1,α为第一预设系数;S532、将数值调整方向确定为第二方向,并执行步骤S533;其中,所述第二方向与所述第一方向互为反方向;S533、获取L3=L3/α,并执行步骤S540;S540、根据第二待比对向量、L3和L2,分别对Milvus数据库和外部矢量数据库中的数据向量进行向量比对,以得到第二召回率S2;S550、若|S2‑
S1|>β,则执行步骤S560;若|S2‑
S1|≤β,则执行步骤S600;其中,β为预设的召回率阈值;S560、在当前的数值调整方向为第一方向时,若S2<S0,则执行步骤S531;若S2≥S0,则执行步骤S600;在当前的数值调整方向为第二方向时,若S2≥S0,则执行步骤S533;若S2<S0,则执行步骤S600。3.根据权利要求2所述的Milvus数据库参数确定方法,其特征在于,所述步骤S600,包括:S610、获取L4=L2;S620、若S2<S0,则执行步骤S630;若S2≥S0,则执行步骤S632;S630、将数值调整方向确定为第二方向,并执行步骤S631;S631、获取L4=L4*γ,并执行步骤S640;其中,γ<1,γ为第二预设系数;S632、将数值调整方向确定为第一方向,并执行步骤S633;
S633、获取L4=L4/γ,并执行步骤S640;S640、根据第二待比对向量、L3和L4,分别对Milvus数据库和外部矢量数据库中的数据向量进行向量比对,以得到第三召回率S3;S650、在当前的数值调整方向为第二方向时,若S3<S0,则执行步骤S631;若S3≥S0,则执行步骤S700;在当前的数值调整方向为第一方向时,若S3≥S0,则执行步骤S633;若S3<S0,则执行步骤S660;S660、获取L4=L4*γ,并执行步骤S700。4.根据权利要求1所述的Milvus数据库参数确定方法,其特征在于,所述初始nlist值L2=4m
1/2
,其中,m为所述Milvus数据库的数据存储层的数据段中实体的最大存储容量。5.根据权利要求4所述的Milvus数据库参数确定方法,其特征在于,所述初始nprobe值L1,通过以下步骤确定:S210、获取L0=L2*b;其中,b为预设的参数系数,b<1;S220、若L0<d,则确定L1=d;若L0≥d,则确定L1=L0;其中,d为预设的参数阈值。6.根据权利要求1所述的Milvus数据库参数确定方法,其特征在于,所述步骤S400,包括:S410、根据L1和L2,将所述第一待比对向量与所述Milvus数据库中每一数据向量进行向量比对处理,获取所述第一待比对向量与所述Milvus数据库中每一数据向量之间的相似度,得到第一相似度集Q={Q1,Q2,
……
,Q
i
,
……
,Q
n
};其中,i=1,2,
...

【专利技术属性】
技术研发人员:刘鑫鹏李凡平石柱国
申请(专利权)人:以萨技术股份有限公司
类型:发明
国别省市:

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

1