一篇RAG与大模型结合的最新全面综述

检索增强型生成(RAG)能够为像大型语言模型(LLMs)这样的生成型 AI 模型提供可靠和最新的外部知识,增强其能力。LLMs 已经展示了革命性的语言理解和生成能力,但仍然面临着幻觉和过时的内部知识等局限性。检索增强型大型语言模型(RA-LLMs) 利用外部知识来解决 LLMs 的局限性,减少仅依赖内部知识的情况。

图1: 检索增强型生成(RAG)遇见大型语言模型(LLMs)。当用户的查询超出范围时,例如,在训练数据中未见过的内容或需要最新信息来回答时,LLMs 可能会显示出较差的生成性能。在RAG的帮助下,LLMs 可以利用来自外部数据源的额外相关信息来增强文本生成能力。

RA-LLMs的全面概述,涵盖了架构、训练策略和应用

  • RAG框架涉及检索、生成和增强组件。检索的必要性和频率也是重要的设计方面。

  • 稀疏和密集是检索器的两种主要类型。通过查询扩展和重写等策略可以增强检索。

  • RA-LLMs的训练策略包括独立、顺序、联合和无需训练的方法。

  • RA-LLMs已被应用于各种任务,如问答(QA)、推荐、软件工程、科学和金融等。

RA-LLMs框架

检索增强型大型语言模型(RA-LLMs)框架由三个主要组成部分构成:检索、增强和生成。检索可能包括不同的程序和多样的设计,可选地包含检索前和检索后的过程。检索到的文档在增强模块的辅助下进一步用于生成,而增强模块的设计可能根据生成模型中的集成阶段而有所不同。

图2:特定问答(QA)任务的基本检索增强型大型语言模型(RA-LLMs)框架的图解

  • 检索(Retrieval):RA-LLMs中的检索过程旨在从外部知识源中提供与输入查询相关的信息。这包括使用检索器(retriever)来衡量查询和数据库中文档之间的相关性,并通过前检索(pre-retrieval)和后检索(post-retrieval)策略来增强检索质量。

  • 检索器类型(Retriever Type):检索方法分为稀疏(sparse)和密集(dense)两种,基于信息编码方法的不同。稀疏检索通常基于词汇,而密集检索将查询和文档嵌入到向量空间中。

图3:展示了检索增强型大型语言模型(RA-LLMs)中的检索器的图解,该检索器可以以密集或稀疏的方式实现,每种方式都包含几个关键操作。

  • 检索粒度(Retrieval Granularity):决定了索引语料库的检索单位,如文档、段落、令牌或其他级别,如实体。不同的检索粒度对模型的整体性能有显著影响。

  • 前检索和后检索增强(Pre-and Post-retrieval Enhancement):为了提高检索质量,提出了多种策略来增强检索器的输入和输出。这包括查询扩展、查询重写和查询增强等方法。

  • 数据库(Database):RA-LLMs的检索基于外部知识源,可以是封闭源或开放源。数据库的构建方式和来源取决于具体的应用领域和任务。

  • 生成(Generation):生成器的设计取决于下游任务,主要有两种结构:Decoder-only和Encoder-Decoder。商业化的闭源大型基础模型在RA-LLMs中成为主流。

  • 检索集成用于生成增强(Retrieval Integration for Generation Augmentation):这是RA-LLMs的核心部分,涉及将检索和生成部分集成的技术过程。介绍了三种主要的增强设计:输入层集成、输出层集成和中间层集成。

  • 检索增强的必要性和频率(Retrieval Augmentation Necessity and Frequency):讨论了RA-LLMs中检索操作的目的,即补充知识以增强生成,并指出了检索增强模型并非普遍适用的解决方案。

RA-LLMs训练方法

现有的RA-LLMs训练方法可以分为两类:无需训练的方法通常在推理时通过将检索到的知识整合到提示中直接利用检索到的信息;基于训练的方法则对检索器和生成器进行微调以提高生成性能。

根据训练策略,基于训练的方法可以进一步细分为三个组:独立训练,其中检索和生成器组件独立训练;顺序训练,它们按顺序进行训练;以及联合训练,它们一起训练。

图4:检索增强型大型语言模型(RA-LLMs)中不同训练方法的图解

  • 训练方法分类:RA-LLMs的训练方法主要分为两类:无需训练(train-free)的方法和基于训练的方法。基于训练的方法进一步细分为独立训练(Independent Training)、顺序训练(Sequential Training)和联合训练(Joint Training)。

  • 无需训练的方法:这些方法在推理时直接利用检索到的知识,而不需要额外的训练过程。它们通过将检索到的文本插入到提示(prompt)中来增强LLMs的性能。

  • 独立训练:在独立训练方法中,检索器和LLMs作为两个完全独立的过程进行训练,两者在训练过程中没有交互。

  • 顺序训练:顺序训练方法通常先独立预训练检索器或LLMs,然后在训练另一模块时固定已训练好的模块。顺序训练可以基于检索器优先或LLMs优先的策略。

  • 联合训练:联合训练方法采用端到端的优化方式,同时训练检索器和生成器。这种训练方式旨在提高检索器定位外部知识的能力,同时增强生成器有效利用检索到的信息的能力。

RA-LLMs应用

RA-LLMs应用按自然语言处理(NLP)应用下游任务特定领域应用分类的。具体来说,NLP应用包括问答系统、聊天机器人和事实验证;下游任务包括推荐和软件工程;特定领域应用包括科学和金融领域的AI应用。

图5:检索增强型大型语言模型(RA-LLMs)应用分类

  • 自然语言处理应用(NLP Applications):RA-LLMs在自然语言处理领域的应用包括问答系统(QA Systems)、聊天机器人(ChatBots)和事实验证(Fact Verification)。

  • 问答系统:RA-LLMs通过检索大量知识库来提供准确的问题答案,增强了问答系统的检索和合成信息的能力。

  • 聊天机器人:RA-LLMs使得聊天机器人能够与用户进行更加连贯和内容丰富的对话。

  • 事实验证:RA-LLMs被用于提高信息验证的准确性和可靠性,通过检索外部知识来增强事实验证任务。

  • 下游任务(Downstream Tasks):RA-LLMs还被应用于推荐系统和软件工程等下游任务。

  • 推荐系统:RA-LLMs通过整合检索和生成过程,提供个性化和情境相关的推荐。

  • 软件工程:RA-LLMs影响了软件工程的多个方面,如代码生成、程序修复、表格数据处理和文本到SQL的语义解析。

  • 特定领域应用(Domain-specific Applications):RA-LLMs还被广泛应用于科学和金融等特定领域。

  • AI for Science:RA-LLMs在科学领域,如分子和蛋白质表示、药物发现等方面,通过整合检索到的分子结构和生物医学实体来指导分子生成。

  • 金融:在金融领域,RA-LLMs通过从新闻平台和社交媒体平台检索财务信息,提高金融情感分析的准确性。

读者福利:如果大家对大模型感兴趣,这套大模型学习资料一定对你有用

对于0基础小白入门:

如果你是零基础小白,想快速入门大模型是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。

包括:大模型学习线路汇总、学习阶段,大模型实战案例,大模型学习视频,人工智能、机器学习、大模型书籍PDF。带你从零基础系统性的学好大模型!

😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

👉AI大模型学习路线汇总👈

大模型学习路线图,整体分为7个大的阶段:(全套教程文末领取哈)

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

👉大模型实战案例👈

光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

👉大模型视频和PDF合集👈

观看零基础学习书籍和视频,看书籍和视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
在这里插入图片描述
在这里插入图片描述

👉学会后的收获:👈

• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

👉获取方式:

😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

  • 17
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

程序员二飞

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值