从原理、训练、索引迁移和质量评估说明Token Pooling如何降低多向量检索成本。
多向量检索为什么越来越贵
传统向量检索常为每个文档生成一个向量,速度快但可能丢失局部语义。多向量模型为多个Token或片段保存向量,查询中的不同词可以匹配文档不同位置,检索质量通常更好,代价是索引体积、内存、网络传输和相似度计算显著增加。Token Pooling的思路是把相近的文档Token向量聚合成更少的代表向量,并在训练阶段让模型适应这种压缩,而不是上线后简单平均导致质量突然下降。
先测清楚当前基线
从真实搜索日志抽取至少500个查询,人工标记相关文档和关键段落。记录原模型的Recall@10、MRR或nDCG、平均响应时间、P95延迟、每篇文档向量数、索引总容量和单次查询计算量。按短文、长文、表格、代码和多语言内容分组,否则总体平均值会掩盖某类资料的退化。对没有点击日志的新系统,可由业务人员建立小而准确的黄金集。
压缩策略与训练方法
先尝试保守池化比例,例如将向量数减少25%,再逐步提高到50%和75%。相似Token可按聚类合并,但标题、字段名、数字和实体词应避免被过度稀释。使用池化感知训练或微调,让模型在目标压缩率下优化检索目标。训练集要包含难负样本,尤其是主题相近但答案不同的文档。每次调整只改变一个变量,防止无法判断质量变化来自模型、分块还是池化。
索引迁移不能一次切换
为新向量建立独立版本索引,文档ID保持一致,先双写新增内容,再离线回填历史数据。查询端进行影子对比,保存新旧Top-K差异但只返回旧结果。达到质量阈值后开放少量流量,并保留快速切回旧索引的开关。若系统还有Rerank层,应同时观察候选召回和最终排序,因为池化可能降低初筛召回,而重排无法找回根本没有进入候选集的文档。
何时值得使用
当索引成本或P95延迟已成为瓶颈、多向量数量随文档长度快速增长时,Token Pooling价值最大。若语料很小、单向量已满足需求,增加训练和迁移复杂度可能得不偿失。上线指标应同时包含搜索质量、存储节省、延迟、构建时间和更新失败率。任何压缩都不是免费午餐,合格方案是在业务可接受的召回损失内显著降低资源,而不是只展示索引缩小比例。
站内相关阅读
参考来源
官方资料与技术说明。本文基于公开资料独立整理,并结合实际部署流程补充,功能、价格和可用范围以官方最新页面为准。