和网站开发公司如何签合同,绍兴市越城区建设局网站,企业网站的布局,建设创意网站09. 检索结果重排序与优化-重排序基本原理 1. 概述 #x1f4da; 我们将学习重排序的基本原理#xff0c;了解它在RAG流程中的重要作用。重排序能够对初步召回的结果进行二次筛选和打分#xff0c;把最相关的文档排在前面#xff0c;过滤掉不相关的内容#xff0c;提升检索…09. 检索结果重排序与优化-重排序基本原理1. 概述 我们将学习重排序的基本原理了解它在RAG流程中的重要作用。重排序能够对初步召回的结果进行二次筛选和打分把最相关的文档排在前面过滤掉不相关的内容提升检索效果。2. 为什么需要重排序 我们将理解为什么需要在检索流程中引入重排序环节 。通过上篇文档的学习我们掌握了混合检索技术它能够结合稀疏检索和稠密检索的优势提升召回率 。但在实际应用中我们发现单纯依靠向量相似度或关键词匹配进行召回往往会面临一些难以解决的问题 ⚠️。第一个问题是语义相似但不相关。向量检索通过计算查询和文档的向量相似度来召回结果但相似度高并不代表真正相关。比如用户搜索IT部在哪办公向量检索可能召回IT部负责办公设备维修因为这两个句子在语义上很相似但实际上回答的是完全不同的问题 ❌。第二个问题是召回率与精确率的矛盾⚖️。为了提高召回率我们通常需要召回更多的候选文档比如Top 50但这会导致精确率下降 。在这50个候选文档中真正相关的可能只有5个其余45个都是干扰信息。如果把这些干扰信息全部送给大模型会严重影响生成质量 。第三个问题是上下文窗口的限制。大模型的上下文窗口是有限的我们无法把所有召回的文档都送进去。即使上下文窗口足够大还存在迷失中间现象——模型对长上下文的开头和结尾关注度高中间部分容易被忽略 。重排序就是解决这些问题的关键 。它像一个阅卷老师 ‍对初步召回的结果进行二次筛选和打分把最相关的文档排在前面过滤掉不相关的内容 ✨。这样既能保证高召回率又能提高精确率还能减少送给大模型的文档数量提升整体效果 。接下来我们将学习重排序的基本原理了解它是如何工作的 。3. 重排序的基本原理 ⚙️我们将学习重排序的基本原理了解它是如何工作的 。重排序的核心是使用交叉编码器Cross-Encoder模型它与我们之前学习的双编码器Bi-Encoder有很大的区别。3.1 双编码器与交叉编码器的区别在之前的文档中我们学习了向量检索使用的双编码器模型。它的工作方式是分别对查询和文档进行编码生成独立的向量然后通过计算向量相似度来召回结果。这种方式速度快但精度相对较低容易出现语义相似但不相关的问题。交叉编码器则完全不同。它不生成独立的向量而是将查询和文档拼接在一起输入模型直接输出两者的相关性分数。这样可以更深入地分析查询和文档之间的逻辑关系精准识别微小的语义差异区分相关与无关内容。对比项双编码器Bi-Encoder交叉编码器Cross-Encoder编码方式分别编码查询和文档生成独立向量拼接查询和文档联合编码计算方式向量相似度计算直接输出相关性分数精度较低较高速度较快较慢适用场景召回阶段Top 50重排序阶段Top 53.2 重排序的工作流程重排序的工作流程通常包括以下几个步骤初步召回使用混合检索稀疏稠密召回较多的候选文档如Top 50重排序打分使用交叉编码器模型对每个候选文档进行打分重新排序根据打分结果重新排序选择最相关的文档如Top 5送给大模型将重排序后的文档送给大模型生成回答这样既能保证高召回率又能提高精确率还能减少送给大模型的文档数量提升整体效果 。3.3 重排序的优势重排序相比单纯的向量检索有以下优势更高的精度能够精准识别查询和文档之间的语义关系更好的区分度可以区分语义相似但不相关的内容减少干扰信息过滤掉不相关的文档提高生成质量更合理的排序将最相关的文档排在前面符合用户需求