【RAG优化】你的RAG效果为什么不好?如何改进?

大家好,我是 同学小张,+v: jasper_8017 一起交流,持续学习C++进阶、OpenGL、WebGL知识AI大模型应用实战案例,持续分享,欢迎大家点赞+关注,共同学习和进步。


AI大模型应用开发,常常是做出Demo容易,但在实际生产中落地很难。尤其是RAG框架下的应用。

前面文章中,我们系统的总结和讨论过可能影响RAG效果的节点,以及如何解决这些问题:【AI大模型应用开发】【RAG优化 / 前沿】0. 综述:盘点当前传统RAG流程中存在的问题及优化方法、研究前沿

在这里插入图片描述

这些痛点和解决方法,可以在一定程度上说明RAG调优的路径。最近,又看到一篇外网文章在讨论RAG为什么效果不好,今天通过这篇文章也分享给大家,希望在上篇文章和这篇文章中,大家能有所收获。

外网原文:Why Your RAG Doesn’t Work

0. 语义不一致导致效果不好

这是这篇文章最主要的观点,其重点研究了RAG的语义不一致问题,以及提出了一种解决思路。

语义不一致是指任务的预期含义、RAG 对它的理解以及存储的底层知识之间的不一致。大白话说,就是检索回来的相关文本其实与用户的问题没有多少关系…

嵌入向量(Embedding)是RAG的底层知识,在RAG中,最常用的比较向量相似性的度量方法是使用余弦相似度。但其可解释性很差:

(1)向量在完全捕捉给定语句的语义内容方面存在固有缺陷。
(2)余弦相似度不一定能产生精确的排名

举一个例子,以"什么是雨?"这个问题为例,有以下三个句子:

  • 文本 1(定义):“雨是从云中析出的水滴,当它们变得太重而无法悬浮在空中时就会落到地面。”

  • 文本 2(提到下雨):“风把水分吹过山上,导致西雅图下雨。”

  • 文本 3(不相关信息):“Stripe 是一家支付基础设施公司。”

其余弦相似度结果如下:

在这里插入图片描述

从上表可以看出,使用两个不同的 OpenAI 模型得到的余弦相似度的范围和解释截然不同。对于第一个模型,0.73 表示完全不相关的匹配,而对于第二个

<think>我们正在讨论RAG的定义。根据引用[1]引用[2]的内容,RAG是Retrieval-Augmented Generation的缩写,即检索增强生成。它是一种结合信息检索与文本生成的技术。下面我将详细解释RAG的定义。 ### RAG的定义 RAG(检索增强生成)是一种用于自然语言处理(NLP)的技术框架,它通过以下两个步骤生成文本: 1. **检索(Retrieval)**:从外部知识库中检索与用户查询相关的信息或文档片段。 2. **生成(Generation)**:将检索到的信息与用户查询一起输入到生成模型中,生成更准确、相关且具有上下文感知的响应。 这种方法的优势在于能够利用外部知识源来增强生成模型的能力,使其能够提供更准确最新的信息,尤其适用于需要特定领域知识或实时数据的场景[^1][^2]。 ### RAG的核心组件 - **检索器(Retriever)**:负责从大型文档库中快速检索相关文档。通常使用向量数据库嵌入(Embeddings)技术,将文本转换为向量表示,然后通过相似度计算(如余弦相似度)来查找最相关的文档。 - **生成器(Generator)**:通常是一个预训练的语言模型(如GPT系列),它接收检索到的上下文用户查询,并生成自然语言响应。 ### 工作流程 RAG的工作流程可以概括为: 1. 接收用户查询。 2. 使用检索器从知识库中查找相关文档(通常返回top-k个文档)。 3. 将检索到的文档原始查询拼接成提示(prompt)。 4. 将提示输入生成模型,生成最终响应。 ### 数学表示 在数学上,RAG的生成过程可以表示为: $$ p(y|x) = \sum_{z \in \text{top-k}(x)} p(y|x, z) \cdot p(z|x) $$ 其中: - $x$ 是输入查询 - $y$ 是生成响应 - $z$ 是检索到的文档片段 - $p(z|x)$ 表示检索模型给出查询$x$时检索到文档片段$z$的概率 - $p(y|x, z)$ 表示生成模型在给定查询$x$文档片段$z$时生成响应$y$的概率 ### 使用场景 RAG适用于以下场景: - 问答系统(如ChatPDF) - 需要实时更新的知识库(如新闻摘要) - 领域专业知识库(如医疗、法律咨询) - 减少大模型的幻觉(hallucination)现象 §§相关问题§§ 1. RAG与传统微调(fine-tuning)方法相比有哪些优势? 2. 如何评估一个RAG系统的性能? 3. 在构建RAG系统时,如何优化检索环节的准确性? </think> ### RAG(检索增强生成)的定义解析 RAG(Retrieval-Augmented Generation)是一种**结合信息检索与文本生成**的AI技术架构。其核心在于通过检索外部知识源增强大语言模型(LLM)的生成能力,具体定义为: 1. **技术本质** 在生成文本前,系统会从预设的知识库中检索相关信息,并将检索结果作为上下文输入生成模型。这改变了传统LLM仅依赖预训练参数的局限,形成动态知识注入机制: $$ \text{生成结果} = f(\text{用户查询} \oplus \text{检索到的知识}) $$ 2. **核心目标** - 提升生成内容的**准确性**:通过实时检索避免大模型"幻觉"问题[^1] - 增强**时效性**:知识库可动态更新,突破大模型训练数据的时间限制 - 扩展**领域适应性**:无需重新训练模型即可对接专业领域知识 3. **关键特征** - **双阶段架构**: ```mermaid graph LR A[用户查询] --> B(检索模块) B --> C{知识库} C --> D(生成模块) D --> E[增强后的回答] ``` - **知识动态绑定**:每次生成都重新检索,确保信息最新 - **上下文感知**:检索结果作为提示词(prompt)的一部分输入LLM 4. **与传统LLM的区别** | 维度 | 传统LLM | RAG | |---|---|----| | 知识来源 | 训练数据固化参数 | 外部实时检索 | | 信息更新 | 需重新训练 | 动态更新知识库 | | 领域适应性 | 弱 | 强(通过定制知识库) | | 事实准确性 | 易产生幻觉 | 显著提升 | > **典型案例**:ChatPDF系统通过RAG实现PDF文档解析,用户提问时实时检索文档内容并生成精准答案。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

同学小张

如果觉得有帮助,欢迎给我鼓励!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值