检索增强生成 (Retrieval-Augmented Generation, RAG) 代表了大语言模型 (Large Language Model, LLM) 架构的重要进化,它结合了参数化和非参数化记忆系统的优势。RAG的核心解决了传统LLM的一个根本限制:它们依赖于可能过时或缺乏特定上下文的静态预训练知识。RAG框架在创建语言模型的过程中实现了重大突破,通过整合检索、排序和生成技术的力量,为AI系统开启了新的可能性,使其能够进行真正具有知识性和上下文感知的交流。
这是探讨RAG系列文章的第一部分,我们将深入了解RAG的使用方法和工作原理。
检索增强生成的原始科学论文于2020年5月由Patrick Lewis及其同事发表,标题为Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks。Patrick Lewis是一位常驻伦敦的自然语言处理研究科学家,就职于 co:here,除了开源的Llama模型外,我们在 ICT.technology 还为客户提供其企业级语言模型。如果您对这项重要研究的详细内容感兴趣,可以在这里下载2021年修订版:https://arxiv.org/pdf/2005.11401.pdf。
第一部分:检索增强生成 (RAG) 的基础
想象一个由人工智能同时担任图书管理员和研究员的巨大图书馆。这本质上就是检索增强生成 (RAG) 的功能 - 它将AI从一个只能背诵记忆信息的系统转变为一个能够主动搜索、评估和使用动态知识库中信息的系统。
让我们探索这个数字图书馆系统是如何运作的。
RAG的工作原理:高层概述
在传统图书馆中,有知道如何查找信息的图书管理员、评估资源的研究助理和帮助解释研究结果的专家。他们使用图书 - 其内容是静态的,永远不会改变。新书可能会不时添加,但大多数都是旧的。
将RAG想象成一个出色的图书管理员和研究员,他不仅依靠记忆的知识(如图书馆藏书),还能即时访问一个庞大的、可持续更新的参考系统。但与我们传统图书馆的类比不同,该系统运行在复杂的数学原理和神经架构上。
图书馆工作人员在工作中
RAG框架的复杂性来自其三个主要组件,每个组件都建立在先进的神经网络架构上:检索器、排序器和生成器。这些组件无缝协作,提供上下文相关、准确和信息丰富的响应。
1. 检索器:闪电般快速的图书管理员
我们的数字图书管理员不需要穿行于物理书架之间 - 他们以难以置信的速度在庞大的信息数据库中导航。当您提出问题时,他们:
- 使用向量相似度搜索数字"书架"(类似于查找具有相似主题的书籍)
- 使用关键词匹配(类似于检查书籍索引,但是瞬间完成)
- 查询结构化数据库(类似于查询完美组织的卡片目录)
- 采用语义搜索(理解您的问题,即使您使用不同的词语)
这位数字图书管理员不仅仅看标题 - 他们在毫秒内扫描整个文档,找到可能深藏在文本中的相关信息。其主要角色是扫描大量的结构化和非结构化数据,以找到与当前查询相关的内容。
当用户提交查询时,检索器采用各种检索技术来收集潜在有用的信息:
- 向量相似度搜索:检索器将查询和数据库中的文档表示为高维向量(目前最多1024维)。然后使用余弦相似度或其他距离度量来找到与查询向量最相似的文档向量。这类似于图书管理员找到具有相似主题或内容的书籍。
- 基于关键词的搜索:检索器在文档集合中查找与查询中的关键词完全匹配或变体。这类似于图书管理员检查书籍索引或标题中的特定术语。
- 结构化数据库查询:如果信息存储在关系数据库等结构化格式中,检索器可以使用SQL或类似的查询语言获取相关数据。这类似于图书管理员查询完美组织的卡片目录。
检索器的目标是广泛收集所有潜在相关的信息,使用各种检索技术,如向量相似度搜索、基于关键词的搜索和结构化数据库查询。其目的是为生成系统提供上下文相关、准确和最新的信息,这些信息可能不存在于模型的预训练知识中。这些收集的信息将在后续阶段进一步精炼。
2. 排序器:参考台专家
在检索器返回潜在相关信息后,排序器承担起经验丰富的参考图书管理员的角色,评估每个来源。排序器使用各种算法来确定每条检索信息在回答给定查询时的相关性和有用性。排序器考虑的一些因素包括:
- 这些信息有多相关,信息如何与用户问题的意图和上下文对齐?
- 这个来源有多可靠?
- 信息是否最新?
- 这些信息能多好地解释我们需要知道的内容?
- 不同来源之间是否存在需要填补的矛盾或空白?
就像一个优秀的参考图书管理员知道应该优先考虑哪些来源一样,排序器确保只有最有价值的信息才能向前推进。一旦检索器从各种文档池、公司数据库和其他来源收集了一组潜在相关的文档,排序器就会介入以评估和优先排序检索器在各种文档池、公司数据库和其他来源中找到的信息。
通过有效地对检索到的信息进行排序,排序器确保生成器接收到最相关和高质量的输入。这一步对于维护最终响应的准确性和相关性至关重要。
3. 生成器:研究综合器
将生成器想象成一个熟练的研究助理,他接收所有精心选择的材料并将其编译成清晰、全面的响应。它是RAG框架的最后一个组件,对于维护最终响应的准确性和相关性至关重要。生成器的工作包括:
- 协调地组合来自多个来源的信息
- 在整个解释过程中保持一致性
- 准确呈现技术细节
- 根据查询适当格式化信息
- 解决不同来源之间的任何冲突
生成器通常是一个序列到序列(seq2seq)模型,这是一种可以基于输入序列生成输出序列的神经网络架构。在RAG的上下文中,输入序列是用户的查询以及排名最高的检索信息,输出序列是生成的响应。
序列到序列模型由两个主要组件组成:
- 编码器:编码器处理输入序列(查询 + 检索的信息)并将其转换为捕捉基本信息的固定大小向量表示。这类似于研究人员阅读所选资料并在心中总结要点。
- 解码器:解码器接收编码表示,并基于输入和自己之前的输出一次生成一个标记的输出序列(响应)。这类似于研究人员基于对查询的理解和相关信息撰写响应。
生成器利用序列到序列模型的能力来创建类人的响应,这些响应不仅在事实上准确且相关,而且连贯、流畅,并以典型的人类语言方式呈现。它确保最终响应将检索到的信息无缝集成到自然的、对话式的流程中。
RAG实践:图书馆类比
为了更好地理解RAG框架的运作方式,让我们重新审视我们的图书馆类比,看看检索器、排序器和生成器组件如何映射到图书馆工作人员的角色。就像一个运作良好的图书馆依赖于图书管理员、参考台专家和研究助理的无缝协作一样,RAG框架的有效性依赖于检索器、排序器和生成器组件的和谐互动。
当有人带着问题来到我们的数字图书馆时,会发生以下情况:
1. 初始查询处理
当访客提出查询时,系统首先接收您的问题。
就像图书管理员可能会问澄清性问题一样,系统首先分析您真正在寻找什么。为此,它考虑任何先前的对话上下文(就像图书管理员记得您上次访问的研究主题一样)。
2. 搜索过程
检索器就像一个了解图书馆藏品内外的快速图书管理员。像图书管理员一样,检索器迅速浏览书架、数据库和目录,收集可能包含相关信息的所有书籍、文章和其他资源。
检索器搜索数字馆藏(不仅包括文档池,还包括公司的关系数据库和其他媒体)。可能同时使用多种搜索策略。相关材料被迅速收集,并记录有关来源的信息。
最后,图书管理员从档案中返回大量材料,现在必须确定其中哪些信息真正重要。
3. 评估和选择
排序器就像参考台专家,他接收图书管理员提供的材料堆,并评估每一个。他们考虑诸如出版日期、作者权威性以及内容与访客需求的匹配程度等因素。他们根据相关性和质量对材料进行排序,保留最有用的来源。
为此,排序器评估所有检索到的材料,并根据内容的相关性和来源的可靠性对所有来源进行优先排序。重复信息被整合,最后选择最有价值的来源。
4. 创建响应
生成器就像一位经验丰富的研究助理,他接收精选的材料堆栈并将信息综合成全面、结构良好的响应。他们知道如何提取关键点,连接来自不同来源的想法,并以清晰、引人入胜的方式呈现信息。他们确保最终产品不仅仅是事实的集合,而是对访客问题的连贯、符合上下文的回答。
为了实现这一目标,所有由排序器选择的信息都被组织起来。然后制作出连贯的响应。在下一步中,答案再次与来源进行核对。如果获得批准,最终响应将呈现给客户。
为什么这个数字图书馆系统很重要
RAG框架为语言模型领域带来了几个重要优势:
- 可扩展性:通过将知识检索过程与预训练语言模型分离,RAG允许轻松集成新的、最新的信息。馆藏始终在扩展,新信息可以随时添加;LLM每次添加新内容时都需要重新训练,导致在特定日期存在知识截止。因此,响应是基于实际来源而不是仅仅基于"记忆",并且图书馆可以在不重建整个系统的情况下更新。
- 专业化:RAG模型可以通过精选其所依赖的文档语料库来定制适应特定领域或使用场景。这使得创建强大的、领域特定的问答系统成为可能。
- 可解释性:RAG框架为用于生成响应的信息提供了清晰的轨迹。每条信息都可以追溯到其来源。这种透明度在医疗或法律等需要信息溯源的应用中至关重要。
- 效率:通过使用检索技术和排序算法的组合,RAG可以快速筛选大量信息并专注于最相关的部分,减轻了生成器的计算负担。
现实世界应用
就像图书馆服务于多种目的一样,RAG系统也具有多种用途:
- 与最新更新保持同步的技术文档系统
- 可以访问和理解公司政策的客户服务系统
- 能够从多个来源找到和综合信息的研究工具
- 提供准确、有据可依的解释的教育系统
RAG将AI从一个简单记忆信息的系统转变为一个可以主动研究、评估和呈现信息的系统 - 就像一个世界级的图书馆系统,但以数字速度运作。当我们在本文系列的后续部分继续探讨RAG的复杂性时,请记住这个基本框架以及其组件如何协同工作,创建一个不仅仅是静态知识的存储库,而是在追求理解过程中的主动、动态参与者的系统。