一、前言
在LLM大模型落地到具体的场景中时,经常会感觉,大模型给出的答案比较泛、通用、无法结合私有知识有针对性的回答、有幻觉。为了改善这些问题,企业落地时通常有3种主流方案:调Promot、RAG、微调。这3种方案,理论上效果会越来越好,但成本也会越来越高,由此目前普遍的做法是从左到右依次尝试。
前排提示,文末有大模型AGI-优快云独家资料包哦!
二、什么是RAG?
RAG 是检索增强生成(Retrieval Augmented Generation) 的简称,是一套能改善上述问题的有效方案。
LLM+RAG结合了大语言模型和信息检索技术。具体来说,当模型需要生成文本或者回答问题时,会先从一个权威的、预先确定的、庞大的知识文档集中检索出相关片段信息,然后由大模型利用这些信息指导文本的生成,从而提高预测的质量和准确性。
三、RAG的优势
1、减少幻觉
LLM问题:大模型的原理是“文字接龙”,也就是基于数学概率预测后面要输出的文字,这导致了大模型输出结果存在幻觉的问题。
RAG优势:通过使用外部知识库来生成回答,会减少其虚构、瞎编、误导的问题,提高了信息的准确性和可靠性。
2、 实时更新
LLM问题:大模型本身训练的数据是静态的,当前主流的大模型(比如 ChatGPT、通义千问、文心一言…)的训练集基本都是抓取网络公开数据,所以大模型所掌握的知识存在截止日期,也不具备实时性的、非公开的知识。
RAG优势:能够实时访问最新的外部知识,保持知识的时效性。
3、 可解释性
LLM问题:大模型输入输出充满了不确定性,缺乏可解释性、黑盒问题。
RAG优势:生成的每个答案都能追溯到具体的外部数据源,增加了其可信度、可解释性和可追溯性。
4、安全性
LLM问题:企业都不愿意泄露自己的私域数据,因此很难同意传给别人训练。
RAG优势:不需要重训,因此可以针对安全要求设计调整对应的系统,使得符合企业要求。
5、灵活性
LLM问题:大模型一旦训练完成,再调整的周期和成本就是很高的。
RAG优势:具有较高的可扩展性,可较为灵活的集成更多工具、更新数据等来增强,或适配其他场景。
四、RAG的问题
然而,RAG并不是一副一劳永逸的灵丹妙药,他可能需要根据场景的要求,不断迭代调整。也不是一把万能钥匙,不能解决所有的问题,更多的情况下,是可以“较快给出答案”,“早期介入场景”的方案。
有篇论文总结了可能会出现的7种情况,在企业实际落地时也会出现,在这里我也结合实践经验,总结下:
1、答案内容缺失
情况:知识库中根本就不包含正确的答案
模型表现:模型在好的情况下,会回复“抱歉,我不知道”;但也可能会瞎答;甚至是也被欺骗,一本正经的给出看似正确的答案,尤其是与内容相关,但实际没有答案的问题。
用户感受:回答错误;不能实事求是的告诉我,你没找到,还可能对我造成误导
2、关键文档排序靠后
情况:包含用户最认可答案的文档被找到了,但由于所有相关文档都会被排序,它被排在了后面。
模型表现:基于性能考虑,系统往往实际上只会引用排名前N个找到的文档,所以无法返回靠后的内容
用户感受:回答不准/有遗漏 且没有引用到关键文档
3、超出上下文
情况:答案所在的文档被检索出来了,排名也在前N,但从数据库中返回的文档太多了。
模型表现:大模型生成回答时,由于文档数量太多,可能多到超出或接近大模型上下文限制时,大模型会忽视或丢失一部分文档,没有把它放到上下文中生成答案。
用户感受:回答不准/有遗漏
4、信息过载难提炼
情况:答案所在的文档被检索出来了,排名也在前N,返回的文档数量也还行,但是包含的信息量太大了/上下文矛盾。
模型表现:模型生成的上下文会包含答案,但模型面对信息过载/矛盾时,难以准确提炼出的用户想要的答案,影响回答的质量。
用户感受:回答不准
5、格式错误
情况:明明已经给大模型发出指令:“指定格式”(比如列表)来提取信息
模型表现:就是忽视这个指令,不按要求来。
用户感受:回答不准/有遗漏
6、不够全面
情况:常见于问题比较笼统,或意图不清晰,或本身就具有多意图,但用户又认为得按某种指定的意图回答才算对
模型表现:回答不能算错,回的比较笼统。但回答不到用户的“心趴趴上”(可能需要多次追问)
用户感受:回答不准/有遗漏
7、不够细节
情况:问题太复杂,或者信息量太多,比如“A、B、C”中的要点分别是什么?
模型表现:回答没错,但回答的不完整,细节不够(最好拆开来,分别询问)
用户感受:回答不准/有遗漏
论文:《Seven Failure Points When Engineering a Retrieval Augmented Generation System》
概要:通过三个不同领域的案例研究,总结分享了 RAG 系统遇到的7个经验教训。
地址:https://arxiv.org/abs/2401.05856
论文原文:
五、RAG的原理
上图来自论文《Retrieval-Augmented Generation for Large Language Models: A Survey》
论文地址:https://arxiv.org/abs/2312.10997v5
主要分为数据索引、检索、生成3大模块:
1、数据索引
-
数据切割: 将知识库内容从长文本切割成更适合搜索的小块(chunk)片段。
-
embedding: 将这些片段通过embedding(向量化)转成算法可以处理的向量,这种形式会保留文本的语义内容。
-
创建索引: 将向量与其对应的文本片段一起保存在一个专用的“向量数据库”中,等待被检索。
2、检索
-
问题向量化:将用户的问题也转换成向量。
-
语义检索匹配: 在向量数据库中查找最接近的、与问题最相关的N个知识片段
-
排序: 对匹配出的所有知识片段进行排序
3、生成
-
为LLM提供知识片段: 以特定的格式向LLM提供匹配出的所有知识片段和问句。
-
用prompt向LLM下达指令: 用prompt指导LLM用知识片段来生成回答。
六、总结&后续
本文介绍了一种改善通用LLM幻觉等问题的企业落地方案——RAG,但其并不能解决所有问题,也有不少待改进的地方。
仔细分析这些问题,好像很多是和LLM关系不大了,但被“转移”到了RAG上,比如检索到 topN的片段,设计是否合理等。
那为什么要做这种“为了改善一个问题而引入一个看似又有不少新问题的系统”这种事情呢?
主要还是性价比的原因。
在AI Agent(智能体)领域,人们常会把大模型比作“大脑”,某种程度上当前大脑已经很强大了,再训脑子的性价比没有那么高,这个时候发现训脑子不如给按上“手脚”,效果也不错。但是也不能指望这个还在成长适配的“手脚”解决所有问题。其实RAG也是一种针对特定业务场景的AI agent。
读者福利:如果大家对大模型感兴趣,这套大模型学习资料一定对你有用
对于0基础小白入门:
如果你是零基础小白,想快速入门大模型是可以考虑的。
一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。
包括:大模型学习线路汇总、学习阶段,大模型实战案例,大模型学习视频,人工智能、机器学习、大模型书籍PDF。带你从零基础系统性的学好大模型!
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费
】🆓
👉AI大模型学习路线汇总👈
大模型学习路线图,整体分为7个大的阶段:(全套教程文末领取哈)
第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;
第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;
第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;
第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;
第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;
第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;
第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。
👉大模型实战案例👈
光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
👉大模型视频和PDF合集👈
观看零基础学习书籍和视频,看书籍和视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费
】🆓