Skip to content

向量索引详细参数

yuyang edited this page May 23, 2023 · 7 revisions

linear(线性)向量索引参数

{
    "dimension": "",
    "index_type": "linear",
    "build_metric_type": "l2",
    "search_metric_type": "l2"
}
  • dimension: 向量的维度,根据自己的数据来设置。
  • index_type: 向量索引类型,必须设置为 "linear"。
  • build_metric_type: 构建索引时的向量距离方式,可以设置为 "l2"(欧式距离)和"ip"(内积)。
  • search_metric_type: 召回时使用的向量距离方式,可以设置为 "l2"(欧式距离)和"ip"(内积),如果search_metric_type与build_metric_type不同,构建索引时用search_metric_type作为距离计算方式。

hc(分层聚类)向量索引参数

{
    "dimension": "",
    "index_type": "hc",
    "build_metric_type": "l2",
    "proxima.hc.builder.num_in_level_1": "1000",
    "proxima.hc.builder.num_in_level_2": "100",
    "proxima.hc.common.leaf_centroid_num": "100000",
    "proxima.general.builder.train_sample_count": "0",
    "proxima.general.builder.train_sample_ratio": "0.0",
    "search_metric_type": "",
    "proxima.hc.searcher.scan_num_in_level_1": "60",
    "proxima.hc.searcher.scan_num_in_level_2": "6000",
    "proxima.hc.searcher.max_scan_num": "50000",
    "use_linear_threshold":"10000",
    "use_dynamic_params":"1"
}
  • dimension: 向量的维度,根据自己的数据来设置。
  • index_type: 向量索引类型,必须设置为 "hc"。
  • build_metric_type: 构建索引时的向量距离方式, 必须设置为 "l2"(欧式距离)。
  • proxima.hc.builder.num_in_level_1: 可选参数,目前插件中层次聚类的层次设置为2, num_in_level_1代表第一层的中心点数量。
  • proxima.hc.builder.num_in_level_2: 可选参数,代表第二层的中心点数量。
  • proxima.hc.common.leaf_centroid_num: 可选参数,叶子中心点数据, 必须设定为num_in_level_1 和num_in_level_2的乘积值。
  • proxima.general.builder.train_sample_count: 可选参数,模型训练时的采样绝对数量, 默认不采样。
  • proxima.general.builder.train_sample_ratio:可选参数,模型训练时的采样比例,默认不采样。在设定了该参数和前一个参数后,会选择较大值,进行采样训练。例如,总的document数量为10000, train_sample_count为200, train_sample_ratio为0.1, 那么最终的采样数量为max(10000 * 0.1, 200), 即200。
  • search_metric_type: 召回时使用的向量距离方式,可选值为"l2"和"ip"(内积)。
  • proxima.hc.searcher.scan_num_in_level_1:可选参数,遍历第一层中心点的数量,默认为"60", 注意该值必须小于proxima.hc.builder.num_in_level_1
  • proxima.hc.searcher.scan_num_in_level_2:可选参数,遍历第二层中心点的数量,必须设定为scan_num_in_level_1 和 proxima.hc.builder.num_in_level_2的乘积值。
  • proxima.hc.searcher.max_scan_num:可选参数,在线查找文档截断数, 默认为50000。
  • use_linear_threshold: 可选参数,当文档数据少于该阈值时,使用FLAT方法构建索引,减少内存开销。建议在多类目构建索引的情况下,开启该选项,默认use_linear_threshold为0。
  • use_dynamic_params: 根据数据集的规模,动态设定参数proxima.hc.builder.num_in_level_1、proxima.hc.builder.num_in_level_2、proxima.hc.searcher.scan_num_in_level_1和proxima.hc.searcher.max_scan_num的参数。默认不开启。开启时,设定参数为"1"。 开启时的默认参数为:
#文档个数:proxima.hc.builder.num_in_level_1,proxima.hc.builder.num_in_level_2,proxima.hc.searcher.scan_num_in_level_1,proxima.hc.searcher.scan_num_in_level_2
50000:10,100,10,10000;
100000:20,100,20,10000;
150000:30,100,30,10000;
200000:40,100,40,10000;
250000:50,100,50,10000;
300000:60,100,60,20000;
400000:80,100,60,20000;
500000:100,100,60,20000;
1000000:400,100,60,50000;
2000000:1000,100,60,50000;

hnsw向量索引

{
    "dimension": "",
    "index_type": "graph",
    "build_metric_type": "l2",
    "proxima.graph.common.graph_type" : "hnsw",
    "proxima.graph.common.max_doc_cnt" : "50000000",
    "proxima.graph.common.max_scan_num" : "25000",
    "proxima.general.builder.memory_quota" : "0",
    "proxima.hnsw.builder.efconstruction" : "400",
    "proxima.hnsw.builder.max_level" : "6",
    "proxima.hnsw.builder.scaling_factor" : "50",
    "proxima.hnsw.builder.upper_neighbor_cnt" : "50",
    "search_metric_type": "l2"
    "proxima.hnsw.searcher.ef" : "200",
    "proxima.hnsw.searcher.max_scan_cnt" : "15000"
}
  • dimension: 向量的维度,根据自己的数据来设置。
  • index_type: 向量索引类型,必须设置为 "graph"。
  • build_metric_type: 构建索引时的向量距离方式, 必须设置为 "l2"(欧式距离)。
  • proxima.graph.common.graph_type: 可选参数,默认为hnsw。
  • proxima.graph.common.max_doc_cnt: 可选参数,索引可存储的最大文档数。
  • proxima.graph.common.max_scan_num: 可选参数,用于控制构图过程中的近邻考察范围,保证最坏情况的性能。
  • proxima.general.builder.memory_quota: 可选参数,提供的用于构建索引的内存,单位字节。0表示不对内存进行检验,构建索引环境内存由用户自行保证。
  • proxima.hnsw.builder.efconstruction: 可选参数,控制图构建过程中近邻扫描区域大小,该值越大,离线构图质量越好,索引构建越慢,默认值为400。
  • proxima.hnsw.builder.max_level: 可选参数,hnsw总层数,包含0层图和上层图。该值对效果影响不大,一般建议初始配置6。
  • proxima.hnsw.builder.scaling_factor: 可选参数,下层图是上层图数据的多少倍,指数关系。通常设置10-100之间。scaling_factor越大,实际生成的图层数越低,默认值为50。
  • search_metric_type: 召回时使用的向量距离方式,可选值为"l2"和"ip"(内积)。
  • proxima.hnsw.searcher.ef: 可选参数,用于控制在线检索时考察的子图范围大小。该值越大,召回越高,性能越差,默认值为500,建议取值[100,1000]。
  • proxima.hnsw.searcher.max_scan_cnt: 可选参数,最大截断数,保证最坏情况的性能。
Clone this wiki locally