Rerank模型
RAG中embedding与rerank之间的区别?
Embedding 阶段是将查询和文档(或候选答案)映射到向量空间,并通过向量之间的相似度来进行文档检索,目的是从大量文档中快速找到相关的候选文档。
而 Re-ranking 阶段则是在初步检索到的候选文档中,使用更复杂的模型对文档进行深度排序,以提高结果的精确度。重排序器通过查询和文档的深度交互来进一步优化相关性排序,确保最相关的文档被排在前面。
追问:embedding模型存在的问题
embedding模型只是将文本信息压缩为固定长度的向量,可能会导致语义信息丢失、理解多义词困难、长文本语义平均化等问题。
因为在用户提出问题之前就已经为文档创建了嵌入,无法理解用户问题的上下文信息。
embedding模型计算整个查询和文档之间的相似度,难以捕捉捕捉词级、句级或精确语义关系。
追问:embedding与rerank的模型架构的区别?
embedding模型通常使用bi-encoder的架构 ,负责快速将查询和文档转化为向量表示并进行相似度检索。查询和文档是独立编码的,可以在检索时使用预先计算好的向量进行快速匹配,这使得它可以高效处理大规模文档库的检索任务,但由于缺乏查询和文档的交互,精度可能较低。 re-ranking模型通常使用cross-encoder的架构,它将查询和文档拼接在一起并共同输入同一个模型,查询和候选文档 拼接(例如通过 "[QUERY] [SEP] [DOCUMENT]" 的格式)一起输入到同一个模型中,模型通过 自注意力机制(self-attention) 计算查询和文档之间的交互关系,输出一个联合表示,通过计算这个联合表示的相关性分数,对候选文档进行排序。由于查询和文档之间有了深度的交互,模型能够更好地捕捉两者之间的细节关系,因此精度通常比bi-encoder更高,适合于重排序阶段以精细化检索结果。但又由于每次都需要重新计算查询和文档的交互,它的计算效率相对较低,特别是在面对大量文档时。 总结:在大规模文档检索时,bi-encoder 更为高效,而在需要更高精度的排序时,cross-encoder 具有优势。
追问:了解哪些rerank模型
cohere-reranker-v3.5:Cohere Reranker v3.5 是由人工智能公司 Cohere 推出的一款先进的重排序模型,旨在提高搜索和检索增强生成(RAG)系统中呈现信息的相关性。拥有多语言能力、长上下文理解、更强的推理能力,这是一个闭源模型,暂不了解更多的技术细节。
BGE-M3:由北京智源研究院(BAAI)开发,基于交叉编码器(Cross-Encoder)架构,使用预训练的Transformer模型( XLM-RoBERTa)对用户查询和文档进行联合编码,直接输出二者的相关性分数。该模型支持多语言、多种检索方式。主要技术特点有:
混合检索:统一了密集检索、词汇(稀疏)检索和多向量检索。
自蒸馏:集成不同检索功能的教师信号,显著提升模型鲁棒性
高效批处理:保障训练时batch-size足够大,充分学习文本之间的差异。
mGTE:阿里巴巴通义实验室推出的GTE-Multilingual系列模型,具备高性能、长文档支持、多语言处理及弹性向量表示等特性,显著提升了RAG系统的检索与排序效果。mGTE构建了两阶段RAG的训练流程:
首先利用RoPE和unpadding方法训练的编码器,该编码器经过两阶段MLM预训练得到
基于编码器训练用于检索的混合文本表示模型(TRM)用作第一阶段粗排,和rerank模型用作第二阶段精排。
Rerank的作用
提升检索结果相关性:RAG粗排返回的文档质量和相关性可能较差,rerank采用更精细的语义匹配模型,过滤掉与用户问题相关性较低的文档,以及噪声和不相关的信息。
复杂语义理解:rerank能帮助大模型更好地理解和利用检索到的信息,强化相关文档的影响,从而提升生成结果的相关性和准确性。
降低生成模型负担:RAG检索到的文档数量较多,通过Rerank能较少输入文档数量,缩短上下文长度。
为什么Rerank精度更高?
reranker不进行预计算,而是将用户查询和一个文档一起输入到transformer中,能更好的捕捉两者之间语义和上下文信息。
embedding模型将用户查询和文档压缩到低维向量中,可能丢失细粒度语义。
总结下ReRank模型的一些技术特点
使用Cross-Encoder,将用户查询和文档拼接起来,交给Transformer编码器,能更好的建模两者之间的语义关系。
一般都采用多阶段训练的方式,逐步扩充上下文长度。
损失函数大多采用InfoNCE损失,并在对比学习中加入难负样本,增强模型的鲁棒性。
为了加速训练和节省显存,可能采用deepspeed、混合精度训练、激活检查点、动态批次划分等技术。
在性能上,使用了Rerank模型后的精度往往更高
怎么评价RAG
准确率/召回率评评估
MRR(Mean Reciprocal Rank,平均倒数排名):关注第一个相关结果出现的位置,反映用户是否能很快找到答案 。MRR是所有查询 Reciprocal Rank 的平均值,其中每个查询的 Reciprocal Rank = 1/(相关结果的排名)。如果相关结果总是排在第一,MRR=1;如果相关结果平均排在第三位,MRR≈0.33。MRR适合评估问答场景下第一个正确答案的易得性。
NDCG(Normalized Discounted Cumulative Gain,归一化折损累计增益):考察整个排名列表的质量,包括多个相关结果的贡献 。它考虑结果的相关性等级和排名次序,通过折损因子(如1/log2(rank+1))给排名靠后的相关结果降低权重。NDCG进行归一化以便不同查询间可比,值在0到1之间,1表示理想排序。NDCG@K通常用于评估Top K结果的综合相关性排序。
Precision@K(P@K,前K精度):衡量在返回的前K个结果中,有多少比例是相关的。例如Precision@5 = 前5个结果中相关结果数量/5。它直接反映用户看前K条结果能找到多少正确答案,不考虑顺序(非rank-aware指标)。常和Recall@K(在所有相关文档中前K找到多少)一起使用。
Recall@K(召回率):相关文档中有多大比例在前K结果里。由于问答系统往往每问只需一两个相关片段即可回答,有时Precision和MRR更受关注,但在多文档综合场景下Recall也重要。
可信度评估
衡量生成的答案在多大程度上有文档支持,以及答案内容和检索到的文档是否一致、可靠。具体包括:
答案与支持文档匹配度:验证生成答案中的关键信息是否能在检索文档中找到。可以计算答案和支持文档之间的相似度或重合率,例如关键词重叠度。
文档覆盖率:检查检索到的文档是否覆盖了回答所需的所有要点。如果答案涉及多个要点,评估这些要点是否均能在提供的文档集合中找到依据。
响应速度评估
评估RAG系统处理查询的速度,包括:
平均响应时间:系统处理单个查询的平均用时。
P95/P99 延迟:95%和99%的请求在多少时间内完成(尾部延迟),用于评估最慢响应的情况。
整体响应分布:可以绘制响应时间分布图(如直方图)来了解大部分查询的延迟范围。
可扩展性评估
测试RAG系统在不同数据规模和负载下的性能表现,包括:
数据规模扩展:增大知识库或文档集规模,观察检索和生成性能的变化(如响应时间是否随数据量线性增长,检索准确率是否保持稳定)。
吞吐量:衡量系统每秒可处理的查询数(QPS),以及在高并发情况下的性能表现。
用户体验评估
系统给用户带来的主观感受和易用性,包括:
人工满意度评价:通过人工评估或用户反馈来打分,衡量用户对答案的满意度。例如收集用户评分(1-5分)或对答案是否解决问题的二元反馈,以计算平均满意度分或满意率。
答案可读性:评价生成答案表述的清晰易懂程度。可以使用可读性评分(如基于句子长度和词汇复杂度的指标)来定量分析答案文本的可读性,确保答案语言简洁明了,便于用户理解。