RAG 入门到精通 - Rerank  Hybrid Search
在前两天的版本中我一直在重复地进行评估 - 补数据 - 重建数据集。看上去像是在告诉大家只要数据整好了RAG就可用了。但是真实情况不是这样。之所以我在不停的补数据其实是因为自己还是有一点咖啡知识的。作为一个手冲咖啡党我知道平时我买豆子的时候关心什么问题哪些数据是一定要的我是有感觉的。只是我一下子没法全给你列出来所以我需要通过不断地评估来让我回想起一些关键的行业知识。回到正题。要想对上个版本进行优化我们还得先看看数据集补充完了之后的效果。这里我想提醒下Agent 给的建议只能参考不能全信。首先 R13、R21 这两个问题不属于产品的范围准确地说这是冲煮咖啡的知识。这类问题完全依赖模型的回答是对的没有必要把所有通用的知识补充给模型。在我看来重点问题是R14和R23。这两个问题的答案确实是文档中有的但是仍然召不回。还有 R09看上去是召回了但实际上我重跑一遍之后发现这个问题的在实际RAG的时候也是没有被召回的这里Agent 属于是解读错误。反正不管怎么看召回的问题都很大。所以我们接下来优先需要解决的是召回漏的问题。由于我也没有什么很好的优化手段所以我还是让 Agent 给我出了优化的建议。基于 Agent 的建议这里我的判断是 P0 问题并不关键。因为在选择方案之前我还把这些问题一个个去跑了RAG。看了返回的 结果 和 chunks 之后发现本质问题还是上下文不对上下文召回的top-5中和问题相关联的内容还是太少了有些顺序还在很后面。而且Promt 应该是在上下文正确的情况下去优化而不是在上下文都不对的情况下去优化这是在浪费时间。因此我还是决定先解决召回的问题。Hybrid Search混合检索其实就是结合RAG和全文匹配。RAG 能召回语义相近的 chunks而全文匹配能精确的知道 query 中的词根在 chunks 中出现的频率。利用语义和词频加权得到的结果能提升精确查找这种场景下的召回率。为了方便计算我并没有直接使用全文搜索引擎。而是通过 jieba 给 query 分词然后遍历所有文档用 rank_bm25 来计算得到 query 在每个文档中的 score。这种方式最简单。因为我只有十个不到的文档遍历本身就很快。而且这样还不需要额外引入一个搜索引擎一举两得。Rerank这里的重排有个理解上的误区。它的意思并不是在召回的 top-5上去给chunks排序而是在超额召回的基础上利用 Rerank 来计算 score。最后再在 score 排序之后的列表中取 top-5。在上个版本中我召回数量是5。很多时候召不回真正相关的文档因为真正相关的文档排名比较靠后。我推测是因为当前的 embedding 模型是 Chroma 的默认模型语义匹配能力比较弱。我这个版本的 Rerank新增了一个 RERANK_RATIO4 参数作为放大召回的倍数。也就是说召回从5个变成了20个。然后再在20个中间做 CrossEncoder 计算 score最后取 top-5。下面是我集成 Hybrid Search 和 Reranker 之后的效果可以看到现在召回的内容很全召回的问题基本被解决了。接下来再通过 Prompt 解决质量问题就比较快啦。我把我做的项目也贴上感兴趣的朋友们可以去看看。GitHub - dkisser/rag_learn: rag study · GitHub

相关新闻

DNF私服技术架构解析:从70版本微变到安徒恩副本稳定性

DNF私服技术架构解析:从70版本微变到安徒恩副本稳定性

如果你是一位资深 DNF 私服玩家,最近可能已经注意到一个现象:打着"70版本""异界套""安徒恩"旗号的服务端如雨后春笋般涌现。但真正能稳定运行一年以上的服务器却凤毛麟角。今天要分析的"王者归来新开70dnf经典微变&q…

2026/10/9 11:50:10 阅读更多 →
模拟优选算法:从原理到工业级实现

模拟优选算法:从原理到工业级实现

1. 为什么我们需要模拟优选算法?在计算机科学领域,算法优选是个永恒的话题。想象你面前有10条不同的路线可以回家,有的距离短但红绿灯多,有的绕远但全程高速,还有的可能正在施工——这就是算法优选要解决的典型问题。而…

2026/10/10 3:26:19 阅读更多 →
从游戏残局到团队协作:静音协作法解决信息过载

从游戏残局到团队协作:静音协作法解决信息过载

那天晚上,我正打着一局残局,队友突然在语音里喊:“你别动!放着我来!” 紧接着就是一阵密集的枪声和指挥。结果呢?他冲出去不到三秒就倒了,还怪我没跟上。那一瞬间,我脑子里就一个念头…

2026/10/14 18:47:47 阅读更多 →

最新新闻

王道操作系统课后选填题刷题法:错题滚动+答案隔离+三轮复盘

王道操作系统课后选填题刷题法:错题滚动+答案隔离+三轮复盘

简介:这份王道操作系统课后题选填文档是一份针对考研操作系统复习的选择题与填空题专项资料。内容以王道教材课后题为蓝本,按知识点整理出数十道填空与选择,覆盖进程管理、处理机调度、死锁、内存与虚拟存储、文件系统、设备管理及磁盘调度等…

2026/10/15 6:18:43 阅读更多 →
context-mode上下文感知模式:让命令行工具在多变环境中稳定运行

context-mode上下文感知模式:让命令行工具在多变环境中稳定运行

做了这么多年命令行工具和自动化脚本,我最怕听到这样一句话:“你在你机器上跑得好好的,怎么到我这儿就崩了?”大多数时候不是代码逻辑有问题,而是脚本压根没有感知环境上下文的能力。后来我给自己常用的几个脚本工具加…

2026/10/15 6:18:43 阅读更多 →
基于Matlab Simulink的单相光伏储能系统建模与仿真

基于Matlab Simulink的单相光伏储能系统建模与仿真

1. 单相光伏储能系统架构设计1.1 系统整体拓扑与能量流先交代一下背景。这套模型面向的是典型家用或小型工商业场景:屋顶光伏给本地负荷供电,多余的电存到蓄电池里,蓄电池再不够的话才从电网取;反过来,光伏发得多、蓄电…

2026/10/15 6:18:43 阅读更多 →
固件升级避坑指南:设备识别、校验与恢复全流程

固件升级避坑指南:设备识别、校验与恢复全流程

简介:面向系统维护与硬件调试人员的 NOVATEK 升级指导 V1.0 文档,专门解决 NOVATEK 系统在 XP/WIN7 32 位环境下的固件升级问题,并注明可支持整机不拆机直接升级,适合需要维护老平台的运维人员。文档覆盖完整升级链路,…

2026/10/15 6:18:43 阅读更多 →
粤语会议记录总转错?实测6款支持粤语的录音转文字工具,附场景选型清单

粤语会议记录总转错?实测6款支持粤语的录音转文字工具,附场景选型清单

一、为什么"支持粤语"这四个字,成了选型最大的坑先说个真实感受。上个月帮朋友的传媒公司整理一段40分钟的粤语访谈,我前后换了三款工具,出来的文稿依然需要逐句核对。粤语有九声六调,同一个字不同声调代表完全不同的意…

2026/10/15 6:18:43 阅读更多 →
从碎片需求到系统设计:REA框架实战解析

从碎片需求到系统设计:REA框架实战解析

1. 从“rea”这个碎片标题聊起:一个容易被忽略的高频词我平时泡社区的时候,经常看到有人只甩一个词就问“怎么做”,最近遇到的项目标题只有三个字母:“rea”。说实话,第一眼确实懵。没有上下文、没有细节、没有任何配套…

2026/10/15 6:17:43 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 7:53:34 阅读更多 →