AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


RAG电子书:​《检索增强生成系统实用方法》[1/5]
发布日期:2024-04-10 19:25:25 浏览次数: 1961


前言

在不断发展的人工智能领域,检索增强生成(RAG)系统已成为一种强大而灵活的工具。这些系统结合了信息检索和自然语言生成的优势,有望彻底改变我们获取、理解和与海量数据互动的方式。在本书中,我们将深入探讨构建和实施这些系统的核心原理、策略和技术。

这本书凝结了该领域专家和爱好者的知识、见解和经验。我们将探索结合检索和生成技术的复杂性,了解处理各类数据源的细微差别,并见证查询路由、内存和可观测性工具带来的变革性影响。  

在探索的核心部分,我们将利用"与你的PDF文件对话"这一热门实例,来学习RAG。无论您是经验丰富的AI从业者,还是对此有浓厚兴趣的学习者,本书中循序渐进的指导和动手实践都将帮助您充分发挥RAG系统的潜能。

让我们一同踏上掌握检索增强生成技艺之路,发现解决复杂问题的创新方式,最终改变我们与AI系统互动的方式。加入我们这次探索RAG应用实践之旅,一同开启通往AI未来的变革性探险。


1 介绍

在本章中,我们将为使用大型语言模型(LLM)和检索增强生成方法构建"与PDF文件对话"应用奠定基础。我们将探讨支撑这个项目的基本概念和技术。

1.1 LLM在NLP中的作用

大型语言模型(LLM)在自然语言处理(NLP)领域扮演着关键角色。这些模型通过其理解和生成类似人类的文本的能力,彻底改变了NLP领域。随着深度学习和神经网络的进步,LLM成为各种NLP任务的宝贵资产,包括语言翻译、文本摘要和聊天机器人开发。

LLM的一大优势在于,它们能够从海量文本数据中学习。通过在大规模数据集上训练,LLM能够捕捉复杂的语言模式,并生成连贯且与上下文相关的响应。这使它们能够输出与人类生成的文本无法区分的高质量内容。  

LLM使用两步训练过程:预训练和微调。在预训练阶段,模型接触大量文本数据,学习预测句子中的下一个单词。这有助于它们对语言结构和语义建立深刻理解。在微调阶段,模型在特定任务数据上进一步训练,以适应特定领域或任务。

LLM的通用性和有效性使其成为推进NLP领域的强大工具。它们不仅提高了现有NLP系统的表现,更为开发创新应用开辟了新的可能性。随着研究和开发的持续推进,LLM有望进一步推动自然语言理解和生成的极限。

LLM在NLP中发挥着以下关键作用:

自然语言理解(NLU):LLM能够理解人类语言的细微差别,使其擅长情感分析、实体识别和语言翻译等任务。

文本生成:LLM擅长生成连贯且与上下文相关的文本。这种能力在内容生成、聊天机器人和自动写作等领域极为宝贵。

问答:LLM在问答任务中尤为强大。它们能够阅读给定文本,并对自然语言提出的问题作出准确回答。

摘要:LLM能够对冗长文档或文章进行概括,提炼出最核心的内容。  

会话AI:它们是构建聊天机器人和虚拟助理等会话AI系统的支柱,使其能够进行富有意义且具备情景意识的对话互动。

信息检索:LLM可用于从大量文本语料库中检索相关信息,对于搜索引擎和文档检索应用而言至关重要。

定制化:LLM可针对特定任务或领域进行微调,使之适用于广泛的应用场景。


1.2 回答PDF文档问题的重要性

回答PDF文档中的问题解决了信息检索和文档处理领域的一个关键需求。让我们一探它为何如此重要,以及LLM将如何在其中发挥关键作用:


回答PDF文档问题的重要性:

文档可及性:PDF是存储和共享文档的常用格式。然而,从PDF中提取信息(尤其是针对特定问题)对用户而言是一大挑战。问答系统提高了文档的可及性。

高效信息检索:对于研究人员、学生和专业人士而言,在冗长的PDF文档中查找所需答案是一项耗时的工作。问答系统简化了这一流程,使用户能够快速找到所需信息。

增强用户体验:在法律、医疗和教育等领域,用户经常需要从PDF文档中获取准确的答案。实现问答功能可通过提供直接和精确的回答来改善用户体验。

自动化和效率:通过自动从PDF中提取答案的过程,组织可节省时间和资源。在需要处理大量文档的场景下,此种自动化尤为宝贵。 

可扩展性:随着数字文档数量的不断增长,对PDF文档问答的可扩展解决方案需求日益迫切。LLM能够处理大型数据集和多种文档类型。   

在各行各业,人们越来越渴望从大量PDF文档集合中高效检索信息。以与联邦贸易委员会(FTC)合作处理法律案件和诉讼更新信息的律师事务所或部门为例。他们的工作通常涉及处理大量文档、筛选和提取相关案件信息 - 这是一项费时耗力的过程。     

背景:每年联邦贸易委员会都会针对那些违反该机构执行的消费者保护和竞争法的个人和公司提出数百起案件。这些案件可能涉及欺诈、骗局、身份盗窃、虚假广告、隐私侵犯、反竞争行为等。

检索增强生成(RAG)方法的出现标志着问答领域进入了一个新时代,它将彻底改变这些行业的工作流程。


1.3 检索增强生成方法  

检索增强生成方法是一种将信息检索和文本生成的优势结合起来的尖端技术。让我们深入探讨这种方法:

检索增强生成方法:

检索增强生成方法结合了两个基本组件:检索和生成,构建了一个强大的问答和内容生成系统。下面是对这种方法的概述:

检索组件:该系统部分负责从文档数据库中搜索和检索相关信息。它使用索引、排名和查询扩展等技术来查找最相关的文档。

生成组件:一旦检索到相关文档,生成组件接手进行处理。它使用LLM处理检索到的信息,并针对用户查询生成连贯且与上下文相关的响应。

优势:这种方法的主要优势在于,它能够基于现有知识(检索)提供答案,同时生成丰富的情境响应(生成)。它结合了两者的长处,从而提供高质量的答复。

用例:检索增强生成方法尤其适用于大型文档集合的问答场景,传统搜索引擎可能难以为这些问题提供简洁而有用的答复。  

微调:成功实施这种方法通常需要在特定领域数据上对LLM进行微调,以提高生成响应的质量。

通过了解LLM在NLP中的作用、回答PDF文档问题的重要性,以及检索增强生成方法的原理,您现在已经为使用这些先进技术构建"与PDF文件对话"应用奠定了基础。在接下来的章节中,我们将更深入地探讨构建高效检索系统所涉及的技术细节和实践操作。


1.4 LLM 简史

近期,ChatGPT以及DALL-E-2和Codex备受关注,这引发了许多人对幕后技术的浓厚兴趣。ChatGPT和其他生成式AI(GAI)技术属于一种称为人工智能生成内容(AIGC)的范畴。这意味着它们都是使用AI模型来创作图像、音乐和书面语言等内容。AIGC的整个理念是加快并简化内容创作过程。

AIGC是通过从人类提供的指令中提取并理解意图信息,然后根据知识和意图信息生成内容来实现的。近年来,大型模型在AIGC中的重要性不断提高,因为它们在意图提取方面表现更佳,从而提高了生成结果的质量。

有了更多数据和更大的模型,这些AI系统可以生成看起来非常逼真和高质量的内容。以下展示了使用OpenAI DALL-E-2模型根据指令生成图像的示例。

图1.1:图像生成中的AIGC示例。

在生成式AI(GAI)领域,模型通常可分为两类:单模态模型和多模态模型。单模态模型通过使用与生成内容相同类型的数据来提供指令,而多模态模型则能够从一种类型的数据接收指令并生成另一种类型的内容。下图说明了这两类模型。

 

图1.2:AIGC模型类型概览。

这些模型在艺术和设计、营销和教育等不同行业均有应用。显然,在可预见的将来,AIGC将继续作为人工智能领域的一个重要且不断发展的研究领域。


1.4.1 基础模型

在谈论LLM和GenAI时,我们不能忽视Transformer模型所扮演的重要角色。

Transformer是许多最先进模型(如GPT、DALL-E、Codex等)的支撑架构。

Transformer最初诞生于解决传统模型(如RNN)在处理可变长度序列和上下文时的局限性。Transformer的核心是自注意力机制,使模型能够关注输入序列的不同部分。它由编码器和解码器组成。编码器处理输入序列以创建隐藏表示,而解码器则生成输出序列。每个编码器和解码器层都包括多头注意力和前馈神经网络。多头注意力是一个关键组件,根据相关性为token赋予权重,从而提高了模型在各种NLP任务中的性能。Transformer固有的并行化能力最小化了归纳偏差,使其非常适合大规模预训练和适应不同的下游任务。

Transformer架构主导了自然语言处理领域,存在两种主要类型的预训练语言模型,分别基于掩蔽语言建模(如BERT)和自回归语言建模(如GPT-3)进行训练。掩蔽语言模型预测句子中的掩蔽词,而自回归模型则着重于根据前文预测下一个词,使其更适合生成任务。RoBERTa和XL-Net分别是掩蔽语言模型和自回归语言模型中的典型例子,它们在BERT架构的基础上,通过额外的训练数据和技术进一步加以改进。

图1.3:预训练LLM类别。

在这张图中,你可以看到两种信息流类型,由线条表示:黑色线条表示双向信息流,灰色线条表示左至右信息流。存在三个主要模型类别:

编码器模型(如BERT),使用上下文感知目标进行训练。

解码器模型(如GPT),使用自回归目标进行训练。

编码器-解码器模型(如T5和BART),合并了两种方法。这些模型使用上下文感知结构作为编码器,使用左至右结构作为解码器。


1.4.2 人类反馈强化学习

为了提高人工智能生成内容(AIGC)与用户意图的一致性,即对有用性和真实性的考量,人类反馈强化学习(RLHF)已被应用于Sparrow、InstructGPT和ChatGPT等模型。

RLHF流程包括三个步骤:预训练、奖励学习和利用强化学习进行微调。在奖励学习中,对不同响应的人类反馈被用于创建奖励标量。微调是通过强化学习(使用邻近策略优化PPO)进行的,目的是最大化学习到的奖励。

然而,该领域缺乏针对RL的基准和资源,这被视为一个挑战。但这种情况正在日益改变。例如,一个名为RL4LMs的开源库被引入以弥补这一空白。对话代理Claude使用Constitutional AI,其中奖励模型是通过来自AI的反馈进行RL学习的。重点是减少有害输出,并以人类提供的一套原则为指导。


1.4.3 GAN

生成对抗网络(GAN)广泛用于图像生成。GAN由生成器和判别器组成。生成器创建新数据,而判别器则决定输入是真实的还是虚假的。

生成器和判别器的设计影响了GAN的训练和性能。已开发了多种GAN变体,包括LAPGAN、DCGAN、渐进式GAN、SAGAN、BigGAN、StyleGAN,以及用于解决模式塌陷问题的D2GAN和GMAN等方法。

下图说明了一些视觉生成模型的类别。  

图1.4:视觉生成模型类别。

尽管GAN模型并非本书的重点,但它们在支持多模态应用(如扩散模型)方面至关重要。


1.4.4 应用 

聊天机器人可能是LLM最受欢迎的应用之一。

聊天机器人是通过基于文本的界面模拟人类对话的计算机程序。它们使用语言模型来理解和响应用户输入。聊天机器人有各种用例,如客户支持和回答常见问题。我们的"与PDF文档聊天"就是一个新兴的用例!  

其他著名案例包括由微软开发的Xiaoice(表现出同理心)和谷歌的高级聊天机器人Meena。微软的必应现在整合了ChatGPT,为聊天机器人开发开辟了新的可能性。

图1.5:应用知识图谱。

该知识图谱说明了当前研究领域、应用和相关公司之间的关系。研究领域由深蓝色圆圈表示,应用由浅蓝色圆圈表示,公司由绿色圆圈表示。

此外,我们之前写过关于聊天机器人的文章,现在虽然已成为历史,但仍值得一读:

博文:聊天机器人内部架构是怎样的?(https://open.substack.com/pub/mlnotes/p/what-does-a-chatbot-look-like-under)

博文:聊天机器人自然语言理解的幕后工作(https://open.substack.com/pub/mlnotes/p/what-is-behind-the-scene-of-a-chatbot) 

博文:你还能用聊天机器人做些什么? (https://open.substack.com/pub/mlnotes/p/what-more-can-you-do-with-chatbots)

当然,聊天机器人并非唯一应用。在艺术和设计、音乐创作、教育技术、编码等领域,还有无穷可能性等待您去开拓想象力。

1.4.5 Prompt Learning

Prompt Learning 是语言模型中的一个新概念。它不再预测给定 x 的 y,而是努力找到一个模板 p,使得对于任意 x,可以很好地预测 y。

通常情况下,Prompt Learning 会冻结语言模型的参数,在其上直接进行 few-shot 或 zero-shot 学习。这使语言模型能够在大量原始文本数据上进行预训练,并被适应到新的领域,而无需再次微调。因此,Prompt Learning 可以节省大量时间和精力。 

传统的 Prompt Learning 涉及两个阶段:Prompt Engineering 和 Answer Engineering。

Prompt Engineering:创建提示,可以是手工设计的离散提示,也可以是添加到输入嵌入中的连续提示,用于传达特定任务的信息。

Answer Engineering:在重新表述任务后,需要将生成的答案映射到正确的答案空间。

除了单一提示之外,多提示方法结合了多个提示以获得更好的预测结果,而 Prompt Augmentation 则是对提示进行加强以生成更好的结果。

此外,作为 Prompt Learning的一个子集,In-Context Learning 越来越受欢迎。它通过结合预训练语言模型、提供输入-标签对以及任务特定指令来增强模型与任务的对齐性,从而提高模型性能。

总的来说,在不断发展的语言模型、工具和应用的格局中,下图展示了语言模型工程的演进过程。沿着 x 轴,灵活性不断增强;沿着 y 轴,复杂性逐渐上升。这张图为开发人员、研究人员和公司提供了宏观视角,展示了他们所面临的选择和挑战。

图1.6:正在兴起的 RAG 与 Prompt Engineering LLM 架构。

在右上角,你可以看到功能强大但复杂的工具,如 OpenAI、Cohere 和 Anthropic(即将添加),它们推动了语言模型能实现的边界。沿着对角线,展示了 Prompt Engineering 的演进,从静态提示到模板、Prompt 链、RAG 管道、自主智能体,以及 Prompt Tuning。在更灵活的一侧,像 Haystack 和 LangChain 这样的选择展现了更广阔的视野,让那些渴望驾驭语言模型多样性的人有了更多可能。

这张图像是当今语言模型和 Prompt Engineering 工具领域不断创新和动态发展的一个写照,为那些在这一领域探索并应对可能性和复杂性的人提供了路线图。它可能会每天都在变化,反映着这一空间持续的创新和活力。

在下一章中,我们将把重点转移到检索增强生成(RAG)流程的更多细节。我们将分解其关键组件、架构和构建高效检索系统所涉及的关键步骤。


53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询