Bi-Encoder 和 Cross-Encoder
-
Cros-Encoder
- Cross encoder 能同时编码两个文本 并且 生成一个 [0, 1] 的值,代表输入对的相似度。
- 他们首先生成一个单独的嵌入,以捕获他们的关系和表示,这个嵌入是相互依赖的。
- 然而,如果需要比较成千上万的句子 cross encoder 是非常慢的,因为他们需要编码所有的句子对
-
Bi-Encoder
- Bi encoder 单独执行自注意力在输入和候选上。每个实体被单独的映射为一个稠密向量空间,然后这些表示在最后输出的时候被结合。
- Bi encoder 读取一块文本,理解他,谈话地区另一段。在理解他们两个之后,他们再决定这两个文本之间可能存在的联系。
- bi encoder 是更快的和更灵活的比起 cross encoder,但是没那么精确
-
结合 Bi-Encoder 和 Cros-Encoder 来提高 RAG 流水线
可以使用一个两阶段的查找流水线,首先使用 bi-encoder 快速高效的检索一个结果候选列表;然后使用 cross encoder 去重排序这些最相关的结果。
多级搜索管道可受益于 bi-encoder 的高效检索方法和 cross-encoder 的高精确度,从而在大规模数据集上进行有效搜索