索引 · 2024
上下文检索
在嵌入和建 BM25 索引之前,给每个块补上它在原文中的位置和含义。
要解决的问题
块一旦离开文档,「该公司当年的收入」就失去了公司名和年份。词法检索和向量检索都会因此失败。
相对前一代的变化
父子索引在检索之后补回大块。上下文检索在入库之前就把解释写进块本身,使小块自己可以被正确检索。
做法
Anthropic 在 2024 年的技术报告里用模型为每个块生成一段短上下文,拼到块前面,再同时建立 BM25 和向量索引,并用重排序收尾。
局限
每个块都要额外调用一次模型,入库成本上升。生成的上下文如果写错,错误会被写进索引。
在链路中的位置
发生在切块之后、建立两种索引之前,常和混合检索、重排序一起使用。