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

配置说明

Milvus在创建Collection的时候需要指定向量的维度,测试工具会在读取数据集的时候将维度加载进来,但是KBest支持的维度是有范围的,而且指定的索引类型也是强规定区分大小写。现将测试工具ann_benchmarks的config.yml配置文件所有涉及的配置说明如表1所示。

建议用户在Milvus启动创建索引操作之后检查日志信息,若Milvus一直在日志里循环打印报错信息,表示配置参数错误,请根据报错信息进行问题定位,保证查询的正确进行。

表1 参数配置说明

参数名称

参数描述

类型范围

建议值

配置原则

index_type

测试时指定的索引类型

std::string,“KBEST”

KBEST

无。

metric_type

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

const char*,

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

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

dim

特征维度

int,[1,2999]

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

R

邻居节点数

int,[11,499]

[50]

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

L

构图时的候选节点列表

int,[11,1999]

[100]

该参数影响图构建耗时和最终索引质量,一般推荐使用100,过大可能会导致构建耗时过长。

A

构图剪枝时的角度阈值

int,[10,360]

[60]

对于IP数据集,一般使用120,L2数据集一般使用60。

init_builder_type

构建的索引算法名称

const std::string&,

  • “RNNDescent”
  • “NNDescent”

"RNNDescent"

无特殊情况,优先使用RNNDescent。

consecutive

块大小

int,[1,31]

[20]

根据实际情况自行调整。

efs

检索时的候选节点列表大小

int,[1,构图节点数]

[400]

对于小规模数据集,一般在10~500左右。更大的efs会带来更高的检索精度,但是检索性能也会降低。建议在精度达标情况下efs取较小值。

num_search_thread

查询时线程数

int,[1,cpu核数]

[1]

根据实际情况自行调整。

build_index_type

构图时的索引类型,选择邻居节点的策略

const std::string &

  • "HNSW"
  • "SSG"
  • "NSG"
  • "TSDG"

"SSG"

无特殊情况,优先使用"SSG"。

graph_opt_iter

构图时图索引自我迭代的轮数

int,[0, 30]

[6]

该参数影响图构建耗时和最终索引质量,过大可能会导致构建耗时过长。

reorder

构图之后是否重排

bool,true或false

[true]

该参数影响图构建耗时和最终索引质量,建议开启。

adding_pref

检索前超参候选集插入阈值

int,大于0

[52]

该参数用来限制搜索路径长度,提前停止检索。数值根据实际情况进行调整。

patience

检索耐心值

int,大于0

[80]

该参数用来限制搜索路径长度,提前停止检索。数值根据实际情况进行调整。

level

控制量化的等级。支持范围改变

int,[0,3]

[2]

level 1代表SQ8量化,level 2代表SQ4量化。对于IP数据集,一般使用1,L2数据集使用2。