RAG(Retrieval-Augmented Generation) 的核心流程说起:
1)用户输入(query)转换成向量
2)检索(Recall):在知识库中找到若干候选文档
3)重排序(Reranking):重新评估这些候选文档和 query 之间的相关性,把最相关的排在前面
4. 生成(Generation):把排好序的文档输入到生成模型(如 LLM),生成答案
初步检索(Recall)通常追求高召回率,但牺牲了精确度,这一步的模型可能是快速的、粗粒度的,比如基于向量相似度(余弦距离、内积)。通常会使用双塔模型(Bi-Encoder)在召回阶段,其原理是通过量化用户提示词和向量数据库中的文档查询近似向量。双塔模型结构分为左右双塔,两个塔参数可以共享或部分共享,目标是让相关 query-文档的向量相似度尽可能大,不相关的尽可能小。
双塔模型的特点:
- 查询和文档编码分开:可以提前离线编码知识库文档向量,存到向量数据库
- 在线召回速度快:用户发来 query 时,只需计算 query 向量,再与库中文档向量计算相似度,快速返回 top K 文档。
Query 塔 Document 塔
[用户query文本] ---> 编码器Q [文档文本] ---> 编码器D
↓ ↓
向量 q 向量 d
\ /
sim(q,d) ---> 相关性得分
-
两个塔通常是相同架构(比如 BERT-base),但参数可以共享或不共享。
-
训练阶段:
- 输入一批 query
- 同时输入这些 query 的正样本文档(label 是“相

最低0.47元/天 解锁文章
618

被折叠的 条评论
为什么被折叠?



