基于SpringAI搭建的Rag系统调优分享-混合检索一
最近在进行rag调优的时候用到了混合检索混合检索就是通过关键字检索和向量检索相结合的一种检索方式这样可以让检索的文档更贴合实际需求。在这块儿调优的时候通过查询一些博客及算法论文对两个检索有了更新的认识我觉得能够实现这些检索算法的开创者真的是让人佩服所以把相关的算法技术原理分享出来让大家都了解下今天先来看下关键字检索。关键词检索关键词检索是根据文档和提示词是否有共同词汇来检索文档的技术基本思路就是包含提示词中大量词汇的文档更有可能是相关性更大的。它的处理如下1、首先把提示词Prompt和知识库的文档都视为词袋bag of words。词袋就是都是由一个个词语组成这也就意味着词的顺序是完全不关注的只关注文本中有哪些词语以及这次词语出现的频率。比如我们要搜索一个句子常见的月饼用的月饼馅料有哪些。首先是给这句提示词建一个稀疏向量这个稀疏向量怎么理解就是基于所有系统词汇列出来当然它的维度会很高甚至几万几十万的向量新建一个向量V这个向量V列表中的数字表示这个句子中的每个词出现的次数由于这个基于系统词汇copy的向量V大多数位置上存放的都是0所以称为稀疏向量。什么是系统词汇举个例子知识库所有文档的中文汉字词语组合简单理解放到一个数组中把这个数组当成向量这个向量的维度可能上百万这就是系统词汇。那么copy这个数组出来作为VV中一定会出现【常见、的、月饼、用、馅料、有、哪些】词基于这个提示词中每个词出现次数给它同样塞到向量中这句提示词总共有6个词剩余的可能得上百万词出现的次数都为0这么看这个V就可以理解为一个稀疏向量。结合后面的图片会很好理解2、把知识库的所有文档也创建为对应的稀疏向量每个文档都创建一个稀疏向量所有的文档对应的稀疏向量就可以合并为一个稀疏向量矩阵也称为词项-文档矩阵这个矩阵每一列表示一个文档每一行是不同的词语见下图这儿就出现了传说中的倒排索引。我们结合这个图来说明下什么是倒排索引从图中可以看到我们很容易的从一个词查找到包含这个词的所有文档。倒排索引汉字我觉得不如英文inverted index更好理解我们常规的情况是通过文档然后说文档包含了哪些词这是一个正向的常规的思维。但是从上图你可以反着来即从词出发找到哪些文档包含这些词。比如月饼出现在Doc1、Doc3、Doc4中即从词找到了文档。3、检索流程当检索器收到一个提示词prompt时就会为该提示词快速创建一个稀疏向量。这样知识库的所有文档和提示词都有了稀疏向量有了这些稀疏向量你就可以对文档进行评分和排序了。3.1最简单的处理方式就是文档包含词就获得积分提示词中的每个词都作为关键字以【常见的月饼用的月饼馅料有哪些】为例把这个prompt的按词切割然后循环下列处理比如拿关键词 “常见” 来说找到它对应的行然后遍历该行每个doc包含这个词就给它加一分后续其他各个关键词都如此操作打分完成后就可以对文档进行排序得分最高的文档就可以检索出来。Doc4 Doc1 Doc2 Doc3但是这个检索有个问题未考虑文档是否包含关键词出现的次数因为它是根据判断是否包含词包含1不包含0只关注包含与否未关注出现次数。但是一般情况下词多次出现就表示更高的相关性。所以就有了下面的改进方案V2见3.2所述。3.2文档中词出现多少次就加多少分。但是这个有个问题如果文章特别长那么对应的词出现的次数就特别多。比如一篇300字的作文介绍中秋节跟一篇80万字的风俗科普文章介绍中国传统节日那么后者可能在中秋上出现的次数更多。但是对于中秋关联性上可能前者更相关。为了解决这个问题所以就有了改进方案V3见3.3所述。3.3用文档的总词数除以文档的评分这样对于关键字占比更高的文档会优先检索到对于那些仅仅因为文章篇幅长所有关键词出现的稍多的文档就会降低优先级。score 关键字在Doc中出现的次数 / Doc的总词数量这就是常规的TF。但是V3也有问题对于一些助词比如“的”就会出现很多次但是它跟提示词关联性不大相对来说某个Doc中 月饼 馅料 出现很多次会跟提示词关联性更高。所以就有了改进方案V4。3.4为了解决助词的这种现象我们可以为词语进行加权。为了解决V3的问题V4引入了IDF指标即inverse document frequency。score TF * log(Total docs / Docs containing words)对于每个词统计它在多少文档中出现然后除以文档总数。比如如果你的知识库中有100份文档其中月饼出现在了5篇文档中它的DFdocument frequency就是 5/100 0.05像的这个词出现在100个文档中所以他的DF就是100/1001为了提升有效词的权重你取倒数翻转拿到IDF(inverse document frequency)所以月饼的IDF就是1/0.0520,【的】的IDF就是1/11这种简单处理会导致有效词的权重过高所以一般会取个log值log(5/100)1.3log1/10。这样每个IDF值就可以反馈Prompt拆分的词在知识库中的稀有程度。拿到IDF后再乘以每个词的TF分数作为最终分值这就是TF-IDF。学AI大模型的正确顺序千万不要搞错了2026年AI风口已来各行各业的AI渗透肉眼可见超多公司要么转型做AI相关产品要么高薪挖AI技术人才机遇直接摆在眼前有往AI方向发展或者本身有后端编程基础的朋友直接冲AI大模型应用开发转岗超合适就算暂时不打算转岗了解大模型、RAG、Prompt、Agent这些热门概念能上手做简单项目也绝对是求职加分王给大家整理了超全最新的AI大模型应用开发学习清单和资料手把手帮你快速入门学习路线:✅大模型基础认知—大模型核心原理、发展历程、主流模型GPT、文心一言等特点解析✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑✅开发基础能力—Python进阶、API接口调用、大模型开发框架LangChain等实操✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经以上6大模块看似清晰好上手实则每个部分都有扎实的核心内容需要吃透我把大模型的学习全流程已经整理好了抓住AI时代风口轻松解锁职业新可能希望大家都能把握机遇实现薪资/职业跃迁这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

相关新闻

从零开始理解 Agent:LangChain / LangGraph / DeerFlow 小白入门指南

从零开始理解 Agent:LangChain / LangGraph / DeerFlow 小白入门指南

这篇文章帮你搞懂三件事:Agent 到底是什么?三个热门框架是什么关系?怎么从零开始搭建一个 Agent 运行时? 一、先搞懂一个概念:Agent 不是 ChatBot 很多人把 Agent 和 ChatBot 搞混。区别其实很简单:ChatBot…

2026/10/17 20:19:48 阅读更多 →
企业部署AI Agent,90%踩的3个坑

企业部署AI Agent,90%踩的3个坑

Gartner说超过40%的智能体项目会在2027年前被砍掉。 我跟不少做了Agent项目的人聊过,发现一个规律:被砍的项目,踩的坑高度集中在三个地方。不是什么高深的技术难题,都是工程层面的基本功课没做扎实。但恰恰因为"基本"&…

2026/10/17 9:11:28 阅读更多 →
Windows下SRA Toolkit安装与高通量测序数据处理指南

Windows下SRA Toolkit安装与高通量测序数据处理指南

1. 为什么选择SRA Toolkit处理高通量测序数据高通量测序技术产生的原始数据通常存储在NCBI的SRA(Sequence Read Archive)数据库中。对于生物信息学初学者来说,如何高效获取这些数据是第一个需要跨越的门槛。SRA Toolkit作为NCBI官方提供的工具…

2026/10/16 12:13:41 阅读更多 →

最新新闻

Kafka接入AI的工程实践:三种落地模式与消费者参数调优

Kafka接入AI的工程实践:三种落地模式与消费者参数调优

1. 为什么要把 Kafka 接入 AI,工程上到底图什么Kafka 和 AI 这两个词放在一起,听起来像又一轮技术风口炒作。但我在实际项目里把这套东西落地之后,发现它解决的是数据管道里几个特别真实、特别磨人的问题。先说结论:Kafka 接入 AI…

2026/10/17 20:20:28 阅读更多 →
Excel筛选后合计不变?SUBTOTAL函数才是正确解法

Excel筛选后合计不变?SUBTOTAL函数才是正确解法

总有朋友发来一张表,问我:为什么筛选之后,底下的合计数字纹丝不动?我一看,合计行里写着SUM(D2:D100)。Excel没坏,只是SUM不认识筛选。这种情况下真正该用的,是SUBTOTAL函数。SUBTOTAL大概是Exce…

2026/10/17 20:20:28 阅读更多 →
平衡小车不倒翁:MPU6050+卡尔曼滤波+双环PID完整实现

平衡小车不倒翁:MPU6050+卡尔曼滤波+双环PID完整实现

简介:一套面向两轮平衡小车项目的控制系统学习资源,适合自动控制、嵌入式及机器人方向的学生与开发者循序渐进学习。资源以姿态检测—数据融合—控制决策—电机执行为主线,集中呈现比例积分微分控制、卡尔曼滤波、状态观测器等算法在硬件上的…

2026/10/17 20:20:28 阅读更多 →
Medusa 推测解码原理全解析:TranslateGemma4B_rai_1.8.0_medusa_1.0_npu 如何实现大模型推理加速

Medusa 推测解码原理全解析:TranslateGemma4B_rai_1.8.0_medusa_1.0_npu 如何实现大模型推理加速

【免费下载链接】TranslateGemma4B_rai_1.8.0_medusa_1.0_npu 项目地址: https://ai.gitcode.com/hf_mirrors/amd/TranslateGemma4B_rai_1.8.0_medusa_1.0_npu 点击查看 免费下载 大模型推理慢?TranslateGemma4B_rai_1.8.0_medusa_1.0_npu 给出了答案&a…

2026/10/17 20:20:28 阅读更多 →
机器学习驱动的密码子优化:突破CAI瓶颈的翻译效率建模

机器学习驱动的密码子优化:突破CAI瓶颈的翻译效率建模

简介:本资源是一个基于Python实现的密码子优化机器学习项目,面向生物信息学初学者、计算生物学研究者及基因工程实践者,解决外源基因在目标宿主中表达效率低的核心问题。项目通过构建RNN等深度学习模型,学习密码子使用偏好与蛋白质…

2026/10/17 20:20:28 阅读更多 →
OpenCV伪色彩映射原理与工业级应用实践

OpenCV伪色彩映射原理与工业级应用实践

1. 为什么一张灰度图要“上色”?——伪色彩不是炫技,而是视觉增强的刚需你有没有遇到过这样的场景:用红外热像仪拍出一张温度分布图,整张图全是不同深浅的灰色,肉眼根本分不清哪里是60℃、哪里是85℃;或者用…

2026/10/17 20:19:27 阅读更多 →

日新闻

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

简介:《DeepSeek使用方法.pdf》是一份面向DeepSeek入门及进阶用户的完整使用指南,重点围绕V3与R1两款模型的能力差异与适用场景展开,帮助读者根据任务类型与成本选择合适的模型。资源共1个PDF文件,压缩包大小约311KB,篇…

2026/10/17 0:00:25 阅读更多 →
200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

简介:这是一份聚焦DeepSeek提示词优化的《200Deepseek润色指令》PDF文档,共收录两百余条可直接套用的润色指令,涵盖语法修正、风格统一、逻辑梳理、表达精炼等维度,并针对商务写作、学术论文、广告文案等场景给出差异化建议。文档…

2026/10/17 0:00:25 阅读更多 →
OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

简介:本资源是一份基于OpenCV的本科课程设计完整报告,面向计算机视觉初学者、图像处理学习者及高校通信/信息类专业学生,解决物体智能计数与检测结果结构化记录的实际问题。项目覆盖图像预处理、轮廓检测、边界框绘制、轨迹栏交互式参数调节、…

2026/10/17 0:00:25 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/16 15:04:24 阅读更多 →

月新闻

我发现了一个新思路:用 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/16 21:54:38 阅读更多 →
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/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练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/16 14:23:36 阅读更多 →