题外话
之前我们在讲大模型的应用方向和架构时,有提到RAG、Agent、Fine-Tune。在作者写大模型专题的文章时,也是边学习,边梳理,边总结。在这个过程中,大模型在各个方向都不断地快速发展,对应的paper、理论、方向也是不断地涌现出来。
在理论不断发展,实践不断丰富的过程中,我们学习和使用RAG作者个人认为已经不能再单独孤立的去看了:
1.RAG和Fine-Tune都是为了解决LLM的某些问题而出现,我们需要去了解各自的优缺点和使用场景
2.RAG的核心知识以及应用、未来的发展趋势
3.混合增强策略:RAG + Fine-Tuning
前言
结合上述我们聊到的,以及在学习和查阅资料的时候,我发现好多文章都在写某一个方面,我们进行梳理整合,写一个大模型RAG的子系列,方便大家集中阅读,主要围绕以下展开:
1.大模型应用RAG系列(一)之初识RAG,为什么会出现RAG及未来发展趋势
2.大模型应用RAG系列(二)之RAG与Fine-Tune的区别,应用场景
3.大模型应用RAG系列(三)之从0搭建一个RAG,构建我们的垂域(向量)知识库
4.大模型应用RAG系列(四)之混合增强策略:RAG + Fine-Tuning
什么是RAG
所谓RAG,检索增强生成(Retrieval Augmented Generation),简称 RAG,已经成为当前最火热的LLM应用方案。
通俗点说;就是通过自有垂域数据库检索相关信息,然后合并成为提示模板,给大模型生成漂亮的回答。
为什么会出现RAG
RAG的出现,是因为在大模型的广泛应用中,伴随着出现的一些问题,比如:
- 知识的局限性:模型自身的知识完全源于它的训练数据,而现有的主流大模型(ChatGPT、文心一言、通义千问...)的训练集基本都是构建于网络公开的数据,对于一些实时性的、非公开的或离线的数据是无法获取到的,这部分知识也就无从具备。
- 幻觉问题:所有的AI模型的底层原理都是基于数学概率,其模型输出实质上是一系列数值运算,大模型也不例外,所以它有时候会一本正经地胡说八道,尤其是在大模型自身不具备某一方面的知识或不擅长的场景。而这种幻觉问题的区分是比较困难的,因为它要求使用者自身具备相应领域的知识。
- 数据安全性:对于企业来说,数据安全至关重要,没有企业愿意承担数据泄露的风险,将自身的私域数据上传第三方平台进行训练。这也导致完全依赖通用大模型自身能力的应用方案不得不在数据安全和效果方面进行取舍。
而RAG是解决上述问题的一套有效方案。
RAG = 检索技术 + LLM 提示。例如,我们向 LLM 提问一个问题,RAG 从各种数据源检索相关的信息,并将检索到的信息和问题注入到 LLM 提示中,LLM 最后给出答案。
许多产品基于 RAG 构建,从基于 web 搜索引擎和 LLM 的问答服务到使用私有数据的chat应用程序。
举个例子
咱们以知识局限性为例,众所周知,GPT-4 Turbo的现实世界知识截止时间现在是2023年9月。(补充一下,经朋友提醒,plus用户更新到了2024.4)。
而小米SU7:2021年3月,小米官宣造车;2021年9月,小米汽车公司正式注册;2022年8月,小米自动驾驶技术视频公布;2023年12月28日,小米汽车召开技术发布会 ;2024年3月28日,小米集团召开XIAOMI SU7上市发布会 ,同年4月3日,XIAOMI SU7正式交付。
然后我们将这个问题让GPT-4 Turbo来回答看看:
RAG是如何解决问题的
我们从数据准备、数据检索、LLM生成三个维度来看一张架构图:
这里简要的描述一下RAG的这个流程,后面会再专门详细讲解。
完整的RAG应用流程主要包含两个阶段:
- 数据准备阶段:数据提取------>文本分割------>向量化(embedding)------>数据入库
- 应用阶段:用户提问------>数据检索(召回)------>注入Prompt------>LLM生成答案
RAG的优点
1.外部知识的利用:RAG 模型可以有效地利用外部知识库,它可以引用大量的信息,以提供更深入、准确且有价值的答案,这提高了生成文本的可靠性。
2.数据更新及时性:RAG 模型具备检索库的更新机制,可以实现知识的即时更新,无需重新训练模型。说明 RAG 模型可以提供与最新信息相关的回答,高度适配要求及时性的应用。
3.回复具有解释性:由于 RAG 模型的答案直接来自检索库,它的回复具有很强的可解释性,减少大模型的幻觉。用户可以核实答案的准确性,从信息来源中获取支持。
4.高度定制能力:RAG 模型可以根据特定领域的知识库和 prompt 进行定制,使其快速具备该领域的能力。说明 RAG 模型广泛适用于的领域和应用,比如虚拟伴侣、虚拟宠物等应用。
5.安全和隐私管理:RAG 模型可以通过限制知识库的权限来实现安全控制,确保敏感信息不被泄露,提高了数据安全性。
6.减少训练成本:RAG 模型在数据上具有很强的可拓展性,可以将大量数据直接更新到知识库,以实现模型的知识更新。这一过程的实现不需要重新训练模型,更经济实惠。
RAG的一些应用场景
1.问答系统(QA Systems):RAG 可以用于构建强大的问答系统,能够回答用户提出的各种问题。它能够通过检索大规模文档集合来提供准确的答案,无需针对每个问题进行特定训练。
2.文档生成和自动摘要(Document Generation and Automatic Summarization):RAG 可用于自动生成文章段落、文档或自动摘要,基于检索的知识来填充文本,使得生成的内容更具信息价值。
3.智能助手和虚拟代理(Intelligent Assistants and Virtual Agents):RAG 可以用于构建智能助手或虚拟代理,结合聊天记录回答用户的问题、提供信息和执行任务,无需进行特定任务微调。
4.信息检索(Information Retrieval):RAG 可以改进信息检索系统,使其更准确深刻。用户可以提出更具体的查询,不再局限于关键词匹配。
5.知识图谱填充(Knowledge Graph Population):RAG 可以用于填充知识图谱中的实体关系,通过检索文档来识别和添加新的知识点。
RAG的未来发展趋势
RAG技术已超越了最初的文本问答范畴,开始拥抱多样化的模态数据,包括图像、音频、视频和代码。这一扩展催生了创新的多模态模型,如:
图像:RA-CM3和BLIP-2等模型在图像和文本的检索与生成方面取得了突破。
音频和视频:GSS方法和UEOP等技术在音频和视频的检索与生成方面展现了潜力。
代码:RBPS和CoK等方法在代码检索和知识图谱问答任务中表现出色。
RAG技术最初被设计用于文本信息的检索和生成,但其强大的知识增强能力使其在多模态数据领域具有巨大的潜力。随着人工智能技术的发展,对能够处理图像、音频、视频和代码等多种数据类型的系统的需求日益增长。这种需求推动了RAG技术向多模态领域的扩展。
RAG技术面临的挑战
尽管RAG技术已取得显著进展,但仍面临一些挑战,其中包括:
上下文长度限制:LLMs的上下文窗口大小限制了RAG的有效性,需要平衡信息的充分性和处理成本。 鲁棒性:在检索过程中,噪声或矛盾信息的存在可能严重影响RAG的输出质量。 混合方法(RAG+FT):结合RAG和微调(fine-tuning)的策略正在兴起,但如何优化两者的集成方式仍需探索。 LLM角色扩展:LLMs在RAG框架中的作用不仅限于生成最终答案,还包括检索和评估,进一步挖掘LLMs的潜力成为研究的新方向。
综上我们能够看到,未来,RAG技术的发展将集中在以下几个方面:技术优化、多模态融合、生态系统完善
随着RAG技术的不断进步,其在AI领域的应用前景广阔,预计将在学术和工业界引起更多关注。同时,为了确保RAG技术的有效性和实用性,对其评估方法的完善也将成为未来研究的关键方向。