news 2026/4/6 22:08:30

提升 RAG 准确率最常用的手段-重排序

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
提升 RAG 准确率最常用的手段-重排序

第一阶段: 先用 Naive RAG 进行粗召回。

Naive RAG 在这里召回的不是一整本操作手册,也不是随意的一段话,而是知识库(Knowledge Base)中具体的条目。Naive RAG 的任务是从成百上千条故障日志中,快速筛选出一批“大概率相关”的文档。为了进行筛选,例如,系统通常会先召回相关度最高的前 20 个文档(Top-20)作为候选 。这个列表是基于向量相似度排序的,但可能包含一些不够精准的噪音数据,所以被称为“粗”召回。

粗召回的技术原理:双流编码器 (Two-stream Encoder)

为了得到这个列表,Naive RAG 使用了双流编码器架构

  1. Query 编码:将用户的查询(例如:“TCU2 通信故障,转换器2被隔离,可能是什么故障?”)转化成一个向量。

  2. Document 编码:将上述清洗过的故障日志(现象+部位+类型)也转化成向量。

  3. 匹配计算:计算查询向量与文档向量之间的相似度(通常是余弦相似度)。

  4. 输出:输出相似度分数最高的那些文档(即 Top-K 列表)。

第二阶段: 引入一个重排序模型对检索回来的文档进行精细化的二次排序。

Rerank(重排序)方法随后会接过这个列表,用更精细的模型对这 20 条记录进行二次打分和排序,把真正最相关的几条排到最前面,丢弃不相关的。

Naive RAG (粗召回):Bi-Encoder 架构

在第一阶段(粗召回),系统为了快,使用的是Bi-Encoder

  • 机制:Query 和 Document 是独立进入模型的。模型分别算出 Query 向量和 Document 向量。

  • 计算:最后只计算两个向量的余弦相似度。

  • 缺点:这种方式丢失了 Query 和 Document 之间词与词的精细交互信息。模型在处理 Document 时还没见到 Query,所以只能提取一个泛泛的特征向量。

Ranking Model (精细重排):Cross-Encoder 架构

在第二阶段(重排序),数据量变少了(比如只剩 20 条),系统就可以使用更昂贵但更精准的Cross-Encoder

  • 机制:它将 Query 和 Document拼接在一起(通常用[SEP]分隔),作为一个整体输入到 BERT 等模型中。

  • 深度交互:在模型内部(Transformer 层),Query 中的每一个词都能注意到 Document 中的每一个词(Full Self-Attention)。

  • 输出:模型不输出向量,而是直接通过一个线性层(Linear Layer)输出一个0 到 1 之间的相关性分数(Score)

按照什么“标准”排序?

  • 精细化排序的标准不再是简单的“向量空间距离”,而是**“深层语义匹配度”**。

    具体到这篇论文的故障诊断场景,重排序模型会依据以下更深层的逻辑进行打分:

  • 精确匹配 (Exact Term Matching):

    • 粗召回标准:只要 Query 和 Document 都包含“故障”、“TCU”等词,向量距离就很近。

    • 精细化标准:重排序模型会看具体的修饰关系。例如,Query 问的是“TCU2 通信故障”,粗召回可能会拉回“TCU1 电源故障”(因为词重叠度高),但重排序模型通过全文注意力机制,能识别出“TCU2”和“TCU1”的不匹配,从而给“TCU1”的文档打低分。

  • 逻辑关系 (Logical Consistency):

    • 标准:文档内容是否真的回答了问题?

    • 如果 Query 是“导致转换器隔离的原因是什么?”,粗召回可能拉回包含“转换器隔离”这个词的所有文档(包括描述现象的、描述结果的)。

    • 重排序模型经过训练(通常是在 MS MARCO 等数据集上微调过),能更好地区分“原因”和“现象”的语境差异,将真正解释“原因”的文档排在前面。

实验中的具体流程

  1. 输入(Input):

    • Query:用户的问题。

    • Candidate List:Naive RAG 粗召回的Top-20个文档 3。

  2. 重排序(Reranking Process):

    • 模型将 Query 与这 20 个文档逐一配对:(Query, Doc 1), (Query, Doc 2) ... (Query, Doc 20)。

    • 将这 20 对文本送入 Ranking Model 进行深度推理。

    • 模型输出 20 个新的相关性得分。

  3. 截断(Truncation/Output):

    • 按照新得分从高到低排序。

    • 取前8 个(对应 $k_{hr}=8$)或前10 个(对应 $k_{hr}=10$)作为最终结果,去计算命中率(Hit Rate)4。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/30 18:21:39

12、Unix 系统脚本优化与系统管理技巧

Unix 系统脚本优化与系统管理技巧 在 Unix 系统的使用过程中,我们常常会遇到一些工具功能不足或者操作繁琐的问题。为了提升使用效率和体验,我们可以借助 shell 脚本对这些问题进行优化。下面将介绍几个实用的 shell 脚本及其使用方法。 增强版 grep 脚本:cgrep 在一些 U…

作者头像 李华
网站建设 2026/4/4 2:16:17

滤波器设计:LabVIEW中的信号净化之旅

Labview常见滤波器设计完整程序 实现所有功能!!在信号处理的世界里,滤波器就像一位细心的园丁,精心修剪着信号的枝叶,让有用的成分茁壮成长,而将干扰的杂草扼杀在摇篮之中。无论是音频处理、图像处理&#…

作者头像 李华
网站建设 2026/3/27 16:50:05

六自由度机械臂的 RRT 避障算法仿真之旅

机械臂仿真,RRT避障算法,六自由度机械臂 机械臂matlab仿真,RRT避障算法,六自由度机械臂避障算法,RRT避障算法,避障仿真,无机械臂关节碰撞机械臂 机器人 DH参数 运动学 正逆解 urdf建模 轨迹规划在机器人领域&#xff…

作者头像 李华
网站建设 2026/3/22 23:57:17

模型微调完全指南:从LLaMa Factory到Ollama,收藏级教程

本文详细介绍了模型微调的概念与流程,解释了微调是对预训练模型部分参数的调整,成本远低于训练全新模型。文章重点阐述了微调四大步骤:准备高质量数据、训练模型、评估结果和使用模型。通过LLaMA Factory平台,从数据格式准备到图形…

作者头像 李华
网站建设 2026/4/1 17:31:33

好用易上手的wordpress外贸主题推荐

Factory工厂wordpress外贸主题蓝色、黄色经典配色的wordpress外贸主题,适合工厂DTC品牌出海产品展示网站。https://www.jianzhanpress.com/?p8843虾皮wordpress外贸独立站主题简洁、实用的wordpress外贸独立站主题,适合做跨境生鲜、海产品的外贸公司使用…

作者头像 李华
网站建设 2026/4/5 12:21:01

25、分布式事务与消息队列技术解析

分布式事务与消息队列技术解析 1. 分布式事务基础 在更新多个事务性资源时,为确保系统完整性,事务需支持四个特性,即原子性、一致性、隔离性和持久性,统称为 ACID 特性。 1.1 资源管理器(RM) 资源管理器(RM)是管理特定类型事务性资源持久状态的软件组件,例如关系数…

作者头像 李华