RAG(检索增强生成)-篇一
本文全面总结了大模型检索增强生成(RAG)技术,涵盖架构分类、评估方法、增强方案和应用场景。重点分析了5种RAG增强方案,包括SELF-RAG事后纠正和自适应检索等方法。文章详细解析了RAG三大关键模块:query理解(意图识别、改写/扩写)、检索模型(文档处理、向量索引)和生成模型(prompt策略)。通过对比微调方式,指出RAG在知识更新成本和任务效果方面的优势,但也存在依赖知识库等局限性。最
参考文档
论文:Retrieval-Augmented Generation for AI-Generated Content: A Survey
内容
介绍了RAG架构、分类(分为4类)、评估、增强方案、应用
补充:增强方案中RAG流程增强RAG Pipeline Enhancemen给出了确定是否检索的两种方法:基于规则的方法、基于模型的方法。
什么时候进行RAG
文档:大模型RAG问答落地中的经典思考:什么时候应该进行RAG检索增强?
RAG的经典问题:
-
如何保证检索内容是有效,或有用的
-
如何验证检索的内容对输出的结果是支持的
-
如何验证输出的结果是来自检索还是模型的生成
相关方案:
-
自我反思检索-增强生成"(SELF-RAG)的框架,通过检索和自我反思来提高LM的质量和事实性,但这实际上要训练多个模型,可操作性并不强
-
纠正性检索增强生成(CRAG):设计了一个轻量级的检索评估器来评估一个查询检索到的文档的整体质量,以提高生成的鲁棒性,这种实际上是事后检索
-
《Retrieve Only When It Needs: Adaptive Retrieval Augmentation for Hallucination Mitigation in Large Language Models》(地址:https://arxiv.org/abs/2402.10612) 认为,跨语言一致性可以为识别幻觉提供高度敏感的信号。因此,利用一个多语言检测模块来交叉检查不同语言的相同问题的答案。方法有几个缺点:
-
很大的前提,就是基座模型本身是需要多语种的,并且翻译性能要好,否则中间过程中所产生的语种变体也会发生偏移。
-
方式是事后纠正,只有在生成完整句子后才能检测幻觉的能力,而不是在生成上下文时实时检测
-
为了确保准确的答案,该方法需要对API接口进行多次请求。这包括生成CoT答案、干扰和响应输入、纠正原始答案等等,从而导致延迟增加。
-
解决幻觉问题的方案:
-
对幻觉进行度量
-
一种是基于逻辑的估计依赖于访问模型的逻辑来计算用于测量不确定性的token级概率或熵
-
一种是基于语言化的估计涉及提示语言模型,使用特定提示来表达其不确定性
-
另一种是采用基于一致性的估计来衡量模型为给定问题提供的多个回答之间的一致性得分
-
-
进行事后纠正
-
通过单个模型内的自我反思来确保逻辑一致性或通过涉及多个模型的协作改进或辩论。例如chain of verification,以及self rag。
-
Rowen的大致实现思路:
整个系统包括生成初始答案Generating Initial Answer、决定是否检索Deciding Whether to Retrieve、检索增强生成Retrieval Augmented Generation三个模块
RAG生态
RAG架构
RAG增强方案
介绍全面,推荐!!!
文章中分如上的5个方案给出了具体每种方法的介绍
RAG关键模块
内容:整个检索增强生成框架,我分为三个主要组成部分:query理解、检索模型和生成模型。对于每一个部分进行了详细的介绍。
query理解:意图识别、query改写、query扩写
-
query改写:利用LLM重新措辞用户query。方法:Hypothetical Document Embeddings(HyDE);Rewrite-Retrieve-Read
-
query扩写:将复杂问题拆解为子问题。该技术使用分而治之的方法来处理复杂的问题。方法:Step-Back Prompting;Chain of Verification (CoVe) ;RAG-Fusion;ReAct
检索模型:文档加载器、文本转换器、文本嵌入模型、向量数据库、索引(如LlamaIndex)、排序和后处理
生成模型:回复生成策略、prompt拼接策略
基于演示检索的上下文学习:
主要是通过文本(或语义)检索与测试输入在文本或语义上相似的候选示范性示例,将用户的输入与获得相似的示范性示例加入到模型prompt中作为模型的输入,则模型就可以给出正确的预测结果。然而,上述单一的检索策略使得召回率不高,造成示范性示例无法精准召回,致使模型的效果不佳。为此提出了一种基于混合演示检索的上下文学习方法
评估:评测指标;评测方法(RGB、RAGAS、Llamalindex-Evaluating)
RAG对比微调
参考文档:
-
RAG一文读懂!概念、场景、优势、对比微调与项目代码示例:示例中是基于ErnieBot、Chromadb实现原始RAG的代码(只包含了基础的检索、利用和生成功能)。
-
利用:分析搜索结果,并提取其中的重要信息,包括狗狗的种类、行为习惯、饲养方式等等。将这些信息整理成一个知识库,这个知识库就像一本百科全书,里面包含了各种关于小狗的知识点
-
RAG的优劣势:
维度 |
具体说明 |
优势 |
1、知识 对知识的更新时间和经济成本更低,不需要训练,只需要更新知识库就可以 对知识的掌控力会更强,相比微调更不用担心学不到或者是遗忘的问题 2、任务效果 相比微调能更容易获得更好的效果 幻觉:整体效果还是RAG比较有优势的 3、成本 1)训练:RAG的成本就是更新数据库,但是微调就需要大量的显卡、时间资源 2)推理:RAG本身需要检索,耗时会比微调多 3)系统拓展:大模型训练不一定能支撑多任务,而拿着大模型训好几个,对部署而言并不方便 |
劣势 |
1、依赖知识库 2、对于某些业务需求,并非对知识依赖。例如某些业务的话术生成,更多是对语言风格的约束,此时要么通过prompt解决,要么就是构造业务数据来进行训练即可,根本没有构造RAG的必要 3、依赖实时信息而非固有信息 4、指令不生效或者领域知识完全不具备 5、内容会受到检索结果局限。有些创造性的任务,本身是想通过大模型获取新的灵感,然而检索结果给到大模型后,大模型往往容易受到限制,这个限制在有些时候是好事,但并非所有时候 |
案例:
-
产品百科问答:由于商品信息是需要更新和变化的,因而更适合用RAG
-
日常工作工具:prompt+大模型完成,往往不会优先考虑RAG
结尾
亲爱的读者朋友:感谢您在繁忙中驻足阅读本期内容!您的到来是对我们最大的支持❤️
正如古语所言:"当局者迷,旁观者清"。您独到的见解与客观评价,恰似一盏明灯💡,能帮助我们照亮内容盲区,让未来的创作更加贴近您的需求。
若此文给您带来启发或收获,不妨通过以下方式为彼此搭建一座桥梁: ✨ 点击右上角【点赞】图标,让好内容被更多人看见 ✨ 滑动屏幕【收藏】本篇,便于随时查阅回味 ✨ 在评论区留下您的真知灼见,让我们共同碰撞思维的火花
我始终秉持匠心精神,以键盘为犁铧深耕知识沃土💻,用每一次敲击传递专业价值,不断优化内容呈现形式,力求为您打造沉浸式的阅读盛宴📚。
有任何疑问或建议?评论区就是我们的连心桥!您的每一条留言我都将认真研读,并在24小时内回复解答📝。
愿我们携手同行,在知识的雨林中茁壮成长🌳,共享思想绽放的甘甜果实。下期相遇时,期待看到您智慧的评论与闪亮的点赞身影✨!
万分感谢🙏🙏您的点赞👍👍、收藏⭐🌟、评论💬🗯️、关注❤️💚~
自我介绍:一线互联网大厂资深算法研发(工作6年+),4年以上招聘面试官经验(一二面面试官,面试候选人400+),深谙岗位专业知识、技能雷达图,已累计辅导15+求职者顺利入职大中型互联网公司。熟练掌握大模型、NLP、搜索、推荐、数据挖掘算法和优化,提供面试辅导、专业知识入门到进阶辅导等定制化需求等服务,助力您顺利完成学习和求职之旅(有需要者可私信联系)
友友们,自己的知乎账号为“快乐星球”,定期更新技术文章,敬请关注!
更多推荐
所有评论(0)