RAG优化技巧 | 7大挑战与解決方式 | 提高你的LLM :上篇

RAG优化技巧|7大挑战与解決方式|提高你的LLM能力 本文探讨了使用RAG技术时可能面临的七大挑战,并针对每个挑战提出了具体的优化方案,以提升系统准确性和用户体验。缺失内容:解决方案包括数据清理和提示工程,确保输入数据的质量并引导模型更准确地回答问题。未识别出的最高排名:可通过调整检索参数和优化文件排序来解决,以确保向用户呈现最相关的信息。背景不足:扩大处理范围和调整检索策略至关重要,以包含更广泛的相关信息。格式错误:可以通过改进提示、使用输出解析器和Pydantic解析器实现,有助于按照用户期望的格式获取信息。 阅读详情

在当今快速发展的人工智能领域,大型语言模型(LLM)已经成为无处不在的技术,它们不仅改变了我们与机器交流的方式,还在各行各业中发挥着革命性的影响。

图片

然而,尽管LLM + RAG的能力已经让人惊叹,但我们在使用RAG优化LLM的过程中,还是会遇到许多挑战和困难,包括但不限于检索器返回不准确或不相关的数据,并且基于错误或过时信息生成答案。因此本文旨在提出RAG常见的7大挑战,并附带各自相应的优化方案,期望能够帮助我们改善RAG。

下图展示了RAG系统的两个主要流程:检索和查询;红色方框代表可能会遇到的挑战点,主要有7项:

  1. \1. Missing Content: 缺失內容
  2. \2. Missed Top Ranked: 错误排序內容,导致正确答案沒有被成功 Retrieve
  3. \3. Not in Context: 上限文限制,导致正确答案沒有被采用
  4. \4. Wrong Format: 格式错误
  5. \5. Incomplete: 回答不全面
  6. \6. Not Extracted: 未能检索信息
  7. \7. Incorrect Specificity: 不合适的详细回答

由于篇幅比较长,所以这篇文章我们先谈前 3 项:

在这里插入图片描述

这些挑战不仅关系到系统的可用性和准确性,还直接影响到用户对技术的信任度。为了解决这些问题,以下是针对每个挑战的优化方案:

缺失内容(Missing Content)

当 RAG 系统面对的问题无法从现有文件中得到答案时,就会出现这种情况。在最佳情况下,我们希望 RAG 系统直接回答「我不知道」。然而,实际上RAG 系统常常会编造或错误回答问题。

针对这个问题,目前有两大解决策略:

1. 数据清理

俗话说"吃什么、吐什么"。原始数据质量对信息处理系统的准确性至关重要,若输入数据错误或矛盾,或者预处理步骤不当,则无论检索增强生成(RAG)系统有多先进,也无法从混乱数据中提取有价值信息。这意味着我们必须在数据源选择、数据清洗、预处理等环节投入资源和技术,以确保输入数据尽可能准确和一致。这个策略不仅适用于本文讨论的问题,也适用于所有数据处理流程中,数据质量始终是关键。

2. prompt 工程

在知识库缺乏相关信息、导致系统可能给出看似合理但实际上错误答案的情况下,使用提示工程是一个非常有帮助的解决方式。例如通过设定提示:“如果你对答案不确定,就直接告诉我你不知道”,如此可以鼓励模型采取更谨慎和诚实的回应态度,从而避免误导用户。虽然不能保证系统回答的绝对准确性,但通过这样的提示, 确实能提高回答品质。

未命中排名靠前的内容(Missed Top Ranked)

这个挑战主要在于“答案在文件中,但由于排名靠前而未能提供给用户”。理论上,检索系统会为每个文档分配一个排名,此排名将决定其在后续处理中的使用程度。然而,在实际操作中,受限于性能和资源,通常只有排名最高的前 K 个文档会被选取并展示给用户。这里的 K 是基于性能考虑的参数。

针对该问题,存在两种解决方式:

1. 调整参数以优化搜索效果

该部分提出了两个方面调整以增加 RAG 效率和准确性:chunk_size

如果要直接在 langchain 调整块大小,请使用以下代码:
在这里插入图片描述

k 值涉及到检索器应该返回多少个答案,我们可以选择返回更多的答案,以确保正确答案不会被 LLM 忽略:

在这里插入图片描述

2. 优化检索文档的排序

在将检索到的文件送到LLM前,先对文件进行最佳化排序,能大幅提升RAG系统的效能,因为初始排序无法反映件与查询的真实相关性。这系列的论文可以看Liu et al.2023,论文中指出,将最相似的文档放在开头或结尾时,效能通常最高,因为模型容易迷失在中间。

在langchain中,我们可以使用langchain原生的Long-Context Reorder或Cohere Reranker来实现,请参考官方文件。

2.1 Long-Context Reorder

在这里插入图片描述

2.2 Cohere Reranker
在这里插入图片描述

Not in Context(上下文限制)

论文有提到:「答案所在的文档虽从数据库中检索出来,但并未包含在生成答案的上下文中。」这种情况通常发生在返回的文档太多,需透过一个整合过程来提取答案的情境。为了解决这个问题,扩大上下文的处理范围是一种方式,此外也建议可以尝试以下方法:

1.调整检索策略

Langchain中提供许多检索的方法,确保我们在RAG中能拿到最符合问题的文件,详细的列表可以参考官网,其中包含:

  1. \1. Vectorstore
  2. \2. ParentDocument
  3. \3. Multi Vector
  4. \4. Self Query
  5. \5. Contextual Compression
  6. \6. Time-Weighted Vectorstore
  7. \7. Multi-Query Retriever
  8. \8. Ensemble
  9. \9. Long-Context Reorder

这些策略为我们提供了一种灵活多样的方式,能够根据不同的检索需求和应用场景进行调整,以此提升检索过程中的准确性和效率。

2. 微调 embedding

Fine-tuning 嵌入模型针对特定任务是提高检索准确性的有效方法。如果我们的 embedding model 是开源的,可以使用 LlamaIndex 功能进行实现。与 Langchian 相比,LlamaIndex 是为了检索数据而优化的软件包,在这方面提供了详细教程,而 Langchian 则没有相应功能。

以下示范如何设置微调框架、执行微调操作并获取经过微调的模型,也可参考官方文档[1]。

在这里插入图片描述

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范
  • …

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署
  • …

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建
  • …

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案
  • …

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】
LLM大语言模型优化方法简介:Prompt、RAG、Fine-tuning 大型语言模型(如GPT、LLama、Gemini)在准确性、知识更新速度和答案透明度方面存在挑战,常用的解决优化方法:Prompt Engineering(提示词工程)、Retrieval-Augmented Generation(RAG,检索增强生成)和Fine-tuning(微调)。每种方法都有不同的层次和特点。:通过使用标准提示词、Few-shot提示词和XoT提示词(如CoT和ToT),来提高模型的回答精准度。RAG:模型首先从文档库中寻找相关信息,然后使用这些信息来生成回答或文本。 阅读详情

相关推荐

LLM Agent之再谈RAG的召回多样性优化

在微软提出的rewrite-retrieve-read框架中,使用大模型作为rewriter,Bing搜索作为Retriever,chatgpt作为Reader,在QA任务上,尝试使用PPO微调改写模型,Reward模型的目标是不同改写query召回后推理内容和真实答案的Exact Match和F1。在深入学习的同时,也可以探索自己感兴趣的方向,为求职面试打好基础。传统搜索Query的扩展,有基于用户搜索日志挖掘的相似Query,有基于相同召回文档关联的相似Query,也有基于SMT的Query改写方案。

2301_81887304的博客 2194

使用AI技术进行长文本处理

长上下文重排序是一种在长文本处理中提升模型性能的技术。研究表明,关键数据通常位于输入上下文的开始或结尾时,模型性能最佳【1】。然而,随着输入上下文长度的增加,即使是为长文本设计的模型,其性能也会显著下降。长上下文重排序通过重新安排长文本中的重要信息,帮助模型更有效地处理和理解文本内容。

ppoojjj的博客 895

(17-6-04)检索增强生成(RAG):长文本检索器+多向量检索器

为每个文档创建一个摘要,然后为摘要文本生成一个向量。例如下面是一个使用MultiVectorRetriever生成文件摘要并为摘要文本生成向量的例子。

码农三叔 1679

为什么 RAG 会失败以及如何解决?揭秘背后三大致命缺陷!

RAG(检索增强生成)它把检索系统和生成式 AI 结合起来,让 AI 回答得更准确、更贴合上下文。和普通的大语言模型(LLM)不同,RAG 不只是依赖训练时学到的知识,而是能实时从外部信息源查找内容,并用这些信息来生成更可靠的回答。RAG 的核心组成负责从外部数据源提取相关信息,确保 AI 的回答既准确又及时。检索做得好,AI 的输出质量就高;如果检索设计不合理,可能会导致无关答案、幻觉(AI 瞎编)或数据缺失。由大语言模型(LLM)来处理用户提问,并结合检索到的内容生成回答。

yanqianglifei的专栏 1588

网络安全实战:从Wireshark到BurpSuite的抓包技巧解析

本文深入解析了Wireshark和BurpSuite在网络安全抓包中的实战技巧,从基础对比到高级过滤、核心模块应用及安全测试避坑指南。通过详细的操作步骤和案例分析,帮助读者掌握数据包抓取与分析的核心技能,提升网络安全防护能力。

weixin_29207533的博客 573

Isaac Gym环境安装和四足机器人模型的训练

该方法提出一种训练模式,该模式通过在单个GPU工作站上使用大规模并行的方法来实现现实世界机器人任务的快速控制策略的生成。

weixin_44061195的博客 3万+

RAG优化技巧 | 7大挑战与解決方式 | 提高你的LLM: 下篇

本文探讨了使用RAG技术时可能面临的七大挑战,并针对每个挑战提出了具体的优化方案,以提升系统准确性和用户体验。• 缺失内容:解决方案包括数据清理和提示工程,确保输入数据的质量并引导模型更准确地回答问题。• 未识别出的最高排名:可通过调整检索参数和优化文件排序来解决,以确保向用户呈现最相关的信息。• 背景不足:扩大处理范围和调整检索策略至关重要,以包含更广泛的相关信息。• 格式错误:可以通过改进提示、使用输出解析器和Pydantic解析器实现,有助于按照用户期望的格式获取信息。

2401_84205765的博客 1460

手机刷双系统

刷机教程(https://www.geekeyes.cn/forum.php/forum.php?mod=viewthread&tid=492) 解锁教程(http://www.gioov.com/index.php/1386)   解锁教程 cmd下 进入adb目录( 如果环境变量配置了adb 可以直接在cmd 下输入命令) 手机连接电脑,确保usb 调试打开,然后手机连接电脑,...

超宇的博客 1万+

RAG优化技巧|7大挑战与解決方式|提高你的LLM

本文探讨了使用RAG技术时可能面临的七大挑战,并针对每个挑战提出了具体的优化方案,以提升系统准确性和用户体验。缺失内容:解决方案包括数据清理和提示工程,确保输入数据的质量并引导模型更准确地回答问题。未识别出的最高排名:可通过调整检索参数和优化文件排序来解决,以确保向用户呈现最相关的信息。背景不足:扩大处理范围和调整检索策略至关重要,以包含更广泛的相关信息。格式错误:可以通过改进提示、使用输出解析器和Pydantic解析器实现,有助于按照用户期望的格式获取信息。

python12222_的博客 1694

美团外卖 mtgsig 1.2 逆向工程与补环境实战指南

本文深入解析了美团外卖核心风控参数mtgsig 1.2的生成机制与逆向实战。通过拆解其复杂的JSON结构,揭示了设备指纹、环境信息加密等关键字段。重点阐述了在Node.js中模拟浏览器环境(补环境)的核心方法,包括DOM/BOM对象、本地存储及Canvas/WebGL等高级指纹的模拟技巧,为安全研究和合规自动化测试提供了一套完整的技术指南。

uber9的博客 410

redhawk-sc(seascape)学习日志2

design view是主view,是所有seascape view中最root的部分,一个design view可以驱动多种类型分析比如静态IR drop,动态IR drop以及EM.这些分析可以在不同的PVT和翻转率下.Design view是一个必须的view对于redhawk中的任何类型分析来说。seascape view相当于一个容器,用于保存各种和设计相关的数据,类似于逻辑信息、物理信息等等,每个view都有其对应的输入件和依赖,这些view都是redhawk用于各种类型的分析所需。

qq_39493558的博客 3497

RAG优化技巧|7大挑战与解決方式|提高你的LLM能力_rag 回答问题不完整

本文探讨了使用RAG技术时可能面临的七大挑战,并针对每个挑战提出了具体的优化方案,以提升系统准确性和用户体验。缺失内容:解决方案包括数据清理和提示工程,确保输入数据的质量并引导模型更准确地回答问题。未识别出的最高排名:可通过调整检索参数和优化文件排序来解决,以确保向用户呈现最相关的信息。背景不足:扩大处理范围和调整检索策略至关重要,以包含更广泛的相关信息。格式错误:可以通过改进提示、使用输出解析器和Pydantic解析器实现,有助于按照用户期望的格式获取信息。

2401_85378759的博客 1343

Zabbix安装与部署 系统环境:centos7.0

Zabbix安装与部署 系统环境:centos7.0

weixin_42485027的博客 2600

RAG优化技巧|7大挑战与解決方式|提高你的LLM能力(附教程)

在当今快速发展的人工智能领域,大型语言模型(LLM)已经成为无处不在的技术,它们不仅改变了我们与机器交流的方式,还在各行各业中发挥着革命性的影响。

pythonhy的博客 882

【maven】maven 3.8.1 版本编译java 17的项目报错 java.lang.ExceptionInitializerError to make field private com.s

排查发现一切正常,但是内网就是不行,然后我就想把我的程序从java 11 改成java 17,然后执行编译的时候报错。这个问题是我们内网java代码升级,项目比较复杂,是从java 8 升级到java 17,然后报错。maven-compiler-plugin 3.8.1 版本编译java 17的项目,报错。然后查看一下这个项目的lombok,结果发现还是老的版本。怀疑是不是这个问题呢?使用最新的版本就可以了。

九师兄 780

【第48例】BLM模型之市场洞察-五看工具篇(一)

BLM市场洞察

产品线负责人 2110

解锁RAG优化秘诀:征服7大挑战,全面提升你的LLM模型性能

本文探讨了使用RAG技术时可能面临的七大挑战,并针对每个挑战提出了具体的优化方案,以提升系统准确性和用户体验。缺失内容:解决方案包括数据清理和提示工程,确保输入数据的质量并引导模型更准确地回答问题。未识别出的最高排名:可通过调整检索参数和优化文件排序来解决,以确保向用户呈现最相关的信息。背景不足:扩大处理范围和调整检索策略至关重要,以包含更广泛的相关信息。格式错误:可以通过改进提示、使用输出解析器和Pydantic解析器实现,有助于按照用户期望的格式获取信息。

m0_63171455的博客 1448

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

LLM之RAG实战(五)| 高级RAG 01:使用小块检索,小块所属的大块喂给LLM,可以提高RAG性能

在基本的RAG管道中,我们嵌入一个大的文本块进行检索,而这个完全相同的文本块用于合成。使用较小的文本块可以提高检索的准确性,而较大的文本块则提供更多的上下文信息。小到大检索背后的概念是在检索过程中使用较小的文本块,然后将检索到的文本所属的较大文本块提供给大语言模型。在这一系列的博客文章/视频中,我将介绍先进的RAG技术,旨在优化RAG工作流程,并解决原始RAG系统中的挑战。最好了解更多的工具并灵活使用它们。当我们提出问题并检索最相关的文本块时,它实际上会检索节点id指向父块的文本块,从而检索父块。

wshzd的博客 2228

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

RAG优化全攻略:克服7大挑战,全面提升LLM性能

本文探讨了使用RAG技术时可能面临的七大挑战,并针对每个挑战提出了具体的优化方案,以提升系统准确性和用户体验。缺失内容:解决方案包括数据清理和提示工程,确保输入数据的质量并引导模型更准确地回答问题。未识别出的最高排名:可通过调整检索参数和优化文件排序来解决,以确保向用户呈现最相关的信息。背景不足:扩大处理范围和调整检索策略至关重要,以包含更广泛的相关信息。格式错误:可以通过改进提示、使用输出解析器和Pydantic解析器实现,有助于按照用户期望的格式获取信息。

2401_84204413的博客 778
上一篇: 小某书爆火的大模型入门书,有中文版了!《大模型应用开发极简入门》
下一篇: RAG优化技巧 | 7大挑战与解決方式 | 提高你的LLM: 下篇
AI大模型_学习君
博客等级 码龄3年 6137粉丝 551原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值