鲲鹏社区首页
中文
注册
开发者
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

配置说明

在创建Milvus Collection时,需要指定向量的维度。测试工具在读取数据集时会加载该维度,而且指定的索引类型需要严格区分大小写。下面是测试工具ann_benchmarks的config.yml配置文件中所有相关配置的说明,如表1所示。

建议用户在Milvus启动并创建索引操作之后检查日志信息。若Milvus在日志中持续循环打印报错信息,表示配置参数错误,请根据报错信息进行问题定位与解决,确保查询能够正确执行。

KScaNN不提供外部接口,是基于开源ScaNN算法进行了侵入式修改,并对开源接口进行了扩展。因此,KScaNN的内部接口未实施全面的参数限制。Milvus在对接KScaNN后,同样不会限制开源接口的参数,所有调整均由客户根据实际需求自行完成,以达到更佳的性能表现。

表1 参数配置说明

参数名称

参数描述

类型范围

建议值

配置原则

index_type

测试时指定的索引类型。

std::string,“KSCANN”

KSCANN

无。

metric_type

测试时指定的距离度量方式。

const char*,

  • “L2”:欧氏距离
  • “IP”:内积

数据集自带,无需手动配置。

dim

特征维度。

int

数据集自带,无需手动配置。

n_leaves

叶子节点数量。

int

[2000]

该参数影响图构建耗时和最终索引质量,过大可能会导致构建耗时过长以及搜索性能下降,过小则会影响检索精度。

dims_per_block

构图时的PQ阶段,多少维构成一个子向量块。

int

[4]

一般推荐使用4,根据实际情况自行调整。

avq_threshold

构图时的avq阈值。

float

None

该参数影响剪枝策略。对于IP数据集,一般使用0.2;L2数据集一般设置为空。

soar_lambda

控制正交性的参数,仅对IP数据集生效。

float,大于0

[-1]

-1表示不使用,IP数据集根据实际情况自行调整范围。

overretrieve_factor

指定过检索因子,与soar_lambda一起使用,仅对IP数据集生效。

float,[1,2]

[-1]

-1表示不使用,IP数据集根据实际情况自行调整范围。

train_thread

构图时的线程数。

int

[cpu核数]

无特殊情况,设置成cpu核数大小。

nprobe

查询时的复杂query所采用的子空间个数。

int,[1,n_leaves]

[250]

根据实际情况自行调整。

reorder

查询时在重排前保存结果的数量。

int,[k, 底库数量]

[900]

k是最终返回结果数量,reorder需根据实际情况自行调整。

adp_threshold

查询时的智能截断阈值。

预留参数,当前版本暂未使用,保留供后续版本扩展使用。

float,[0,0.8]

[0]

根据实际情况自行调整。

adp_refined

查询时简单query所采用的子空间个数

预留参数,当前版本暂未使用,保留供后续版本扩展使用。

int,[0,nprobe]

[0]

典型值为0,但是搜推设置范围为[1,nprobe],这里设置为[0,nprobe]。根据实际情况自行调整。

num_thread

查询时的线程数。

int,大于等于1

[1]

无特殊情况设置为1。

batch_size

并行自动分批时优先批次大小。

int,大于等于1

[1]

无特殊情况设置为1。