向量簇召回适用于已完成离线聚类的大规模向量库,通过先选择候选簇、再检索文档,减少读取与计算开销,帮助控制查询延迟。业务先按向量相似性将文档分组,每组称为一个“向量簇”,用中心向量表示这一簇的特征;查询时,系统优先选择与查询向量相近的簇,在这些簇内执行 KNN。
适用场景
业务条件 | 建议 |
查询前已知租户、知识库或代码仓库 | 使用命名空间模式,直接指定业务范围。 |
已完成离线聚类,查询前不知道目标簇,且数据规模较大 | 使用向量簇召回,根据查询向量选择候选簇。 |
无法维护可靠的聚类中心,或数据较少、直接查询成本可接受 | 先使用普通索引或命名空间模式,无需额外引入簇管理。 |
查询必须覆盖指定范围的全部数据 | 显式选择该范围,不依赖自动选择候选簇。KNN 本身是否近似,仍取决于所用查询方式。 |
业务负责离线聚类、为文档分配簇,并随数据变化维护中心向量。Collection 不训练聚类模型,也不根据文档向量自动决定写入位置。
如何缩小查询范围
每个向量簇对应一个 Slice。业务注册 Slice 及其中心向量,再把文档写入对应 Slice。查询时,系统按查询向量与簇中心的余弦相似度进行近似检索,选出候选 Slice;文档检索只在这些 Slice 中进行。
未选中的簇不参与本次查询。增加候选簇数量通常有利于召回,同时增加读取和计算开销;候选数应通过真实业务数据的召回率、延迟和资源测试确定。
与 DiskBBQ 的关系
两者作用在不同层级:向量簇召回决定访问哪些 Slice,Sliced DiskBBQ 在选定 Slice 内检索文档向量,减少无关向量的读取与计算。基础 DiskBBQ 降低向量检索的常驻内存压力,两层能力的分工见DiskBBQ 与 Sliced DiskBBQ 向量检索。向量簇召回不是使用 DiskBBQ 或 KNN 的前提,普通索引和命名空间模式同样支持向量检索。
中心向量选簇的相似度固定为余弦相似度,文档向量可按模型要求选择相似度;向量簇模式须在创建 Collection 时指定,已有 Collection 不能切换模式。配置、中心向量注册和可执行示例见向量簇召回参考。