↓推荐关注↓
大型语言模型(LLMs)在语言理解和生成方面展示了革命性的能力,但它们仍然面临着一些固有的局限性,比如幻觉和过时的内部知识。鉴于RAG在提供最新和有帮助的辅助信息方面的强大能力,检索增强型大型语言模型(Retrieval-Augmented Large Language Models, RA-LLMs)应运而生。RA-LLMs利用外部权威知识库,而不仅仅依赖模型的内部知识,来提高LLMs的生成质量。
本文全面回顾 RA-LLMs三个主要技术视角:架构、训练策略和应用。并详细说明了每个领域的挑战以及RA-LLMs的相应能力。
Large Language Models (LLMs)
LLMs通常在大量数据上进行预训练,具有数十亿参数,能够理解和生成类似人类的文本,从而在诸如文本生成和信息检索等自然语言处理任务中取得进展。LLMs可以通过在特定数据集上微调来适应各种下游任务,使它们能够专注于特定领域或应用。
现有的LLMs大致可以分为三类:仅编码器(Encoder-only)、仅解码器(Decoder-only)和编码器-解码器(Encoder-Decoder)模型。
-
仅编码器模型,如BERT(Bidirectional Encoder Representations from Transformers),通过将输入文本编码到高维空间来处理文本。这类模型的关键是它们的双向特性,即在编码时可以同时考虑每个标记的左右上下文。这种双向性使得仅编码器模型能够更好地理解上下文中的词义,这对于情感分析、评论阅读和文本分类等任务至关重要。
-
仅解码器模型,如GPT(Generative Pre-trained Transformer),以从左到右的方式生成文本。它们基于前一个标记提供的上下文预测序列中的下一个标记。这种架构使它们特别适用于语言生成、代码生成和创意写作等任务。
-
编码器-解码器模型,如T5(Text-To-Text Transfer Transformer),独特地将各种自然语言处理任务转化为文本生成问题。具体来说,T5的编码器处理输入序列以捕获其含义,而解码器基于编码的信息生成输出序列。这种T5架构非常适合涉及将一个序列转换为另一个序列的任务,如机器翻译、摘要和对话响应生成。
提示学习(Prompt Learning)
提示学习
由于LLMs拥有庞大的参数量,提示学习作为一种范式出现,利用LLMs的能力来执行各种任务,而不是广泛地微调LLMs。
提示学习通过精心设计输入来引导模型在LLMs中执行下游任务。例如,早期方法提供手工制作的模板来处理自然语言处理(NLP)中的各种任务。编码器模型如BERT通常采用填空提示,因为它们非常符合其预训练任务的形式。
对于像GPT这样的其他模型,前缀提示更适合,因为它们与生成任务相吻合。然而,手工设计的提示依赖于人类经验,没有有效性保证。为了解决这个限制,发展了软提示调整,学习可训练的连续提示嵌入。
上下文学习(ICL)
为了克服传统提示学习的局限性,近期的研究发展了上下文学习。ICL是提示学习的一种特定方法,它在提示中给模型一些任务的示例。这种范式允许预训练的LLMs根据示例提供的模式来理解解决新任务,无需微调。例如,通过仔细选择一些示例,GPT-3已经展示了执行少次任务的能力。这一成功表明LLMs具有根据特定任务知识迅速适应新任务的显著能力。
Retrieval-Augmented Large Language Models, RA-LLMs
RAG框架由几个主要过程组成:检索、生成和增强,以及确定是否需要检索的机制。
Retrieval
给定LLMs的输入查询,RAG中的检索过程旨在从外部知识源提供相关信息,这些知识源可以是开源或闭源的。检索的具体流程进一步由是否包括预检索和后检索过程来确定。
RAG框架的核心功能之一是检索过程,它的作用是从外部数据源中提取与用户查询相关的信息。这个过程需要一个关键的组件,即检索器,它的任务是评估查询与数据库中文档的相关性,并据此检索出有用的信息。
检索器类型
检索方法通常可以分为两种类型:稀疏(sparse)和密集(dense),这基于信息编码方式的不同。稀疏检索是基于词的,主要应用于文本检索;而密集检索则是将查询和外部知识嵌入到向量空间中,可以应用于各种数据格式。
稀疏检索(例如TF-IDF和BM25)通常依赖于倒排索引匹配以及原始数据输入。例如,许多研究直接应用BM25进行段落级别的检索以支持它们的RAG,其中段落被特别表示为词袋,并根据词项和逆文档频率进行排名。
密集检索与稀疏检索相反,它根据特定的标准(例如语义相似性)将查询和文档嵌入到连续的向量空间中。密集检索方法通常是可训练的,因此在适应性上具有更多的灵活性和潜力。
一种简单的设计是直接使用生成模型的一部分作为检索器的嵌入层,这可能能够增强检索和生成过程之间的一致性。基于BERT的结构在检索模型中得到了广泛应用。在RAG中常见的一种检索器设计是构建双流编码器,使用BERT结构(一个编码器用于查询,另一个用于文档),这也被称为双编码器。
检索粒度
检索粒度指的是在索引语料库时所使用的检索单位,例如文档、段落、标记或其他级别,如实体。对于RAG来说,选择检索粒度可以显著影响模型的整体性能,包括有效性和效率,因为它们决定了数据库的存储空间以及搜索的计算成本。
-
文档级检索:早期的检索增强型语言模型提出检索整篇文档,然后应用机器理解模型来检测文档中的答案段落,这种方法更侧重于语言阅读和文档中关键信息的定位。
-
段落级检索(Chunk retrieval):在生成性语言模型中很常见,被称为段落检索。段落可以包含紧凑且完整的信息,冗余和不相关信息较少,因此成为RAG中主流的检索文本粒度。
-
实体级检索(Entity retrieval):与上述类型的粒度不同,实体检索从知识而非语言的角度设计。
预检索和后检索增强
为了确保检索质量,即提高检索结果的准确性和相关性,已经提出了各种预检索和后检索策略,以进一步增强检索器的输入和输出。
-
预检索增强:包括查询扩展、查询改写和查询增强等方法。
-
查询扩展(Query Expansion):如Query2doc方法,通过少量提示LLMs生成伪文档,使用伪文档中的相关信息扩展查询,以提高查询消歧能力并引导检索器。这种方法可以提升稀疏和密集检索器在信息检索数据集上的性能。
-
假设文档嵌入(HyDE):指导LLM生成给定查询的假设文档,然后将这些假设文档作为新查询进行嵌入和检索。
-
查询改写:旨在缩小输入文本与检索所需知识之间的差距,将原始问题改写成更有利于检索的版本。例如,Rewrite-Retrieve-Read框架,提示LLM为检索功能生成查询。
-
后检索增强:指在将检索到的前k个文档提供给生成器之前,对其进行处理的程序,以改善检索和生成阶段之间的对齐,特别是对于闭源生成器如LLMs。
-
PRCA:使用可插拔的奖励驱动上下文适配器,对特定数据集上的轻量级适配器进行微调,并通过生成器产生的奖励进行强化学习,提取检索文档。
-
R2G方法:将不同检索方法检索到的文档进行重新排序,以增强检索结果的稳健性。
-
知识过滤:如BlendFilter方法,同时考虑预检索查询生成混合和后检索知识过滤,以解决复杂问题和检索知识噪声问题,从而全面提高RA-LLM性能。
外部数据库
RAG中的检索是基于外部知识源进行的,这些知识源可以是闭源或开源的。闭源数据库通常存储键值对形式的知识,这些数据库可以以各种方式构建。键主要用于相似性匹配,可以是稀疏向量,如BM25中的向量,或者是检索编码中的密集嵌入。
值取决于具体的检索目标,大多数情况下是原始文本。例如,维基百科的每篇文章被分割成不重叠的100词段落,形成早期RAG中的2100万个文档。每个文档由密集嵌入编码并作为值和键分别保存在数据库中。
使用互联网搜索引擎,如Bing和Google,避免了维护搜索索引的工作,并可以访问最新的知识。同时,它提供了比闭源数据库更广泛的知识库。经过数十年的调整,它还可以提供高质量的排名。
检索增强的必要性和频率
基于LLM的生成操作通常旨在补充知识以增强生成能力。尽管检索增强型模型显示出了很有前景的结果,但它们也因为并非万能解决方案而受到批评。不加选择地用不相关的段落增强LLM可能会覆盖LLM已经拥有的潜在正确知识,从而导致错误的响应。
检索增强的必要性:
-
大多数现有方法基于LLM的初步答案或其内部推理结果来确定检索的必要性。
-
例如,Self-RAG引入特殊标记来评估检索的必要性并控制检索行为。
-
其他方法设计迭代提示,在生成过程中决定是否需要额外信息,这就需要为LLM调用检索或其他操作。
检索频率:
-
在很少考虑检索必要性的传统RAG中,检索频率(也称为检索步长)是确定在生成中使用检索程度的重要设计方面,从而大大影响RAG模型的整体性能。
-
检索频率控制了依赖检索结果的程度,从而影响模型的效率和效果。
-
当不考虑检索必要性时,检索频率通常是预定义且固定的,有三种常见设置:一次性、每n个标记一次和每个标记一次。
-
一次性检索:仅在生成过程的开始调用检索功能一次,并尝试在那次操作中找到所有所需信息。
-
每n个标记一次检索:在生成过程中应用,以实现更好的增强。
-
每个标记一次检索:在生成过程中为每个标记的预测检索信息。
不同的检索频率应用可以影响整个RAG方法的有效性和效率。例如,更频繁的检索可以带来更好的性能,但也会增加计算成本。选择检索频率几乎是在计算成本和性能之间的权衡。
通俗来说,检索增强是一把双刃剑,它能够为LLMs提供额外的知识来提升生成内容的质量,但也可能引入不相关的信息,干扰模型的判断。
RAG 各种应用
NLP应用
由于在文本生成方面的固有能力,RAG在NLP领域有多种应用,如问答(QA)系统、聊天机器人(ChatBot)和事实验证。
QA系统
QA系统旨在为用户提供查询的精确答案。然而,即使在大量数据上训练,这些系统也可能缺乏最新信息或特定领域知识,这些信息并未包含在它们的训练数据中。RAG集成了一个知识检索器,在预训练、微调和推理期间能够从大语料库中检索信息,这种方法允许REALM有效检索,从而提高其回答的准确性。
ChatBot
ChatBot旨在以自然和会话的方式与用户互动。与QA系统不同,ChatBot专注于与用户进行连贯且内容丰富的对话。为了增强这些能力,最近的方法专注于集成RA-LLMs,以增强ChatBot与用户进行更吸引人和内容丰富的互动的能力。
下游任务
推荐系统
推荐系统在模拟用户偏好和提供个性化推荐方面发挥着重要作用。最近,RA-LLMs通过整合检索和生成过程,展示了在提供个性化和上下文相关推荐方面的巨大潜力。
代码生成
RAG的出现影响了软件工程的许多方面。例如,一些研究提出了用于代码生成和程序修复的检索增强生成范式。RAG也可以应用在表格数据处理和Text-to-SQL人物中。
随着大模型的持续爆火,各行各业都在开发搭建属于自己企业的私有化大模型,那么势必会需要大量大模型人才,同时也会带来大批量的岗位?“雷军曾说过:站在风口,猪都能飞起来”可以说现在大模型就是当下风口,是一个可以改变自身的机会,就看我们能不能抓住了。
那么,我们该如何学习大模型?
作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
一、大模型全套的学习路线
学习大型人工智能模型,如GPT-3、BERT或任何其他先进的神经网络模型,需要系统的方法和持续的努力。既然要系统的学习大模型,那么学习路线是必不可少的,下面的这份路线能帮助你快速梳理知识,形成自己的体系。
L1级别:AI大模型时代的华丽登场
L2级别:AI大模型API应用开发工程
L3级别:大模型应用架构进阶实践
L4级别:大模型微调与私有化部署
一般掌握到第四个级别,市场上大多数岗位都是可以胜任,但要还不是天花板,天花板级别要求更加严格,对于算法和实战是非常苛刻的。建议普通人掌握到L4级别即可。
以上的AI大模型学习路线,不知道为什么发出来就有点糊,高清版可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
![](https://img-blog.csdnimg.cn/img_convert/25559be96ccec1772fd3c4c9c113c2f1.jpeg)
二、640套AI大模型报告合集
这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。
三、大模型经典PDF籍
随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。
四、AI大模型商业化落地方案
以上的AI大模型学习资料,都已上传至CSDN,需要的小伙伴可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
![](https://img-blog.csdnimg.cn/img_convert/25559be96ccec1772fd3c4c9c113c2f1.jpeg)
作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。