索引 · 2023

父子索引

用小块检索,命中后把包含它的大块交给模型阅读。

常用 · 使用现成模型

要解决的问题

小块容易命中具体事实,但模型只看到这一小段时缺少条件、定义和上下文。大块不容易被向量精确命中。

相对前一代的变化

普通切块在检索单位和阅读单位之间只能选一个。父子索引把两者分开:子块负责被找到,父块负责被阅读。

做法

文档先切成较大的父块,再切成较小的子块。索引里放子块向量,并记下它属于哪个父块。检索命中子块后,替换或扩展成父块再送入生成。自动合并检索还会在同一父块下的多个子块都命中时,直接升到上一层。

局限

父块如果仍然太长,只是把噪声推迟到生成阶段。层级如果切得不对,子块会指向一份并不包含答案的父块。

在链路中的位置

改的是索引结构,位于切块和向量检索之间。