RAG文本召回模型
目录
- 本文主要介绍RAG中文本召回的相关基础知识,和经典模型。
基础知识
召回环节中,需要使用文本向量检索模型 embedding模型来进行两个环节处理,一个是将搜集的数据知识库进行向量化,另一个是将用户的query进行向量化。而embedding模型一般分为两类,一类是机遇bert,gpt等深度学习模型等稠密向量模型,另一类是以TF-IDF,BM25为代表的稀疏向量模型。
- embedding模型的主要作用就是将文本映射到向量空间。
- 良好的文本向量空间应具有两个特点:
- 相似文本在映射到向量空间后应该具有接近的距离,这可以用对齐性来描述;
- 向量空间应该是各向同性,即向量应该均匀的分布在整个向量空间里,而不是聚集在某个区域中。
RAG召回的主要流程,就是向量化用户query后,计算topk相似度的K个文本片段。(计算相似度 常见的 有余弦相似度和欧式距离两种)
文本检索分为两个类别:对称检索和非对称检索。对称检索要求查询内容和答案内容具有相近的意思。而非对称检索指的是根据问题召回答案。显然,在RAG的场景下,非对称检索更有效。
稠密向量检索模型
SimCSE
SBERT
CoSENT
WhiteBERT
SGPT
前四个基本机遇transformer的encoder架构,而SGPT则机遇transformer的decoder架构,主要是一些交叉熵损失函数的区别
- RAG 场景下主流做法是采用基于深度学习的稠密向量检索模型进行相关文本召回,这类模型可以更好的捕捉文本中的上下文语义信息,效果一般比TF-IDF,BM25等基于关键词的稀疏向量检索模型更好。
稀疏向量检索模型
朴素词袋
- 核心逻辑就是统计词频,化为维度,每个维度对应在qiuery中出现的频率,丢失语义信息较多。
TF-IDF
- Term Frequency-inverse document frequency 词频-逆文件频率。
BM25
- 直接根据query文本和候选文本计算相似度(而不是向量化)
重排序模型
-
重排序类似于搜索广告等流程等精排,利用交叉编码器,对于输入文本和粗召回等文本输入到交叉编码器中进行相似度预测,可以提高召回的精度。
-
现实RAG两阶段召回,第一个阶段,利用embedding模型从向量数据库中召回i个相关文本片段。第二个阶段,利用交叉编码器从i个相关文本片段中挑出j段相关成本。
-
两阶段召回的方法,既提高效率,也提高精度。