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/23 11:19:16 阅读更多 →
模拟优选算法:从原理到工业级实现

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

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

2026/11/11 5:01:17 阅读更多 →
从游戏残局到团队协作:静音协作法解决信息过载

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

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

2026/11/8 16:36:33 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/12 5:00:00 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/12 5:13:20 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/12 5:13:20 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/11 17:16:37 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/11 17:16:37 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/12 5:13:20 阅读更多 →

日新闻

周新闻

月新闻