6 检索增强生成(RAG)
大语言模型虽然生成能力强,但因训练数据和参数的局限性,可能无法准确回答问题,甚至出现幻觉。为解决这些问题,提出了检索增强生成(Retrieval-AugmentedGeneration,RAG)系统。
RAG通过从外部数据库检索相关信息,辅助大语言模型生成更高质量的回答。其核心思想是结合检索和生成,利用外部知识弥补模型的不足。RAG系统的主要优势在于提升生成内容的准确性和时效性,同时减少幻觉问题。
下面将介绍RAG的背景、定义、架构、技术细节及其应用前景。
.
6.1 检索增强生成(RAG)简介
检索增强生成(Retrieval-AugmentedGeneration,RAG)旨在通过检索和整合外部知识来增强大语言模型生成文本的准确性和丰富性,其是一个集成了外部知识库、信息检索器、大语言模型等多个功能模块的系统。
.
6.1.1 检索增强生成(RAG)的背景
大语言模型在多种生成任务上展现出了令人惊艳的能力。但是,大模型生成的内容可能存在“幻觉”现象导致大语言模型生成内容的可靠性下降。
“幻觉”现象可能源于大语言模型所采用的训练数据,也可能源于模型本身。
1)训练数据导致的幻觉
训练数据包含的知识可能在模型训练后又发生了更新。这将导致知识过时。
训练数据采集也无法覆盖世间所有知识,这将导致知识边界。
训练数据中还可能包含不实与偏见信息,从而导致知识偏差。
2)模型自身导致的幻觉
某些场景下,即使训练数据中已经包含了相关知识,大语言模型仍然会出现幻觉现象。
上述偏差可能来自于模型自身,可能的因素包括:
-
知识长尾:训练数据中部分信息的出现频率较低,导致模型对这些知识的学习程度较差;
-
曝光偏差:由于模型训练与推理任务存在差异,导致模型在实际推理时存在偏差;
-
对齐不当:在模型与人类偏好对齐阶段,偏好数据标注不当可能引入不良偏好;
-
解码偏差:模型解码策略中的随机因素可能影响输出的准确性。
3)小结
大语言模型的幻觉问题严重影响其生成质量,主要因缺乏知识或生成偏差。借鉴人类遇无法回答问题时的解决方式,通过检索外部知识辅助模型,即检索增强生成(Retrieval-Augmented Generation,RAG)的核心思想。
.
6.1.2 检索增强生成的组成
RAG通常集成了外部知识库(Corpus)、信息检索器(Retriever)、生成器(Generator,即大语言模型) 等多个功能模块。
具体而言,
-
给定一个自然语言问题(Query),
-
检索器将问题进行编码,并从知识库(如维基百科)中高效检索出与问题相关的文档。
-
然后,将检索到的知识和原始问题,一并通过如Prompt等形式传递给大语言模型,
-
大语言模型根据检索到的知识和原始问题生成最终的输出。
RAG的核心优势:
-
在于不需要对大语言模型的内部知识进行更新,便可改善大语言模型的幻觉现象,提高生成质量。
-
这可以有效避免内部知识更新带来的计算成本和对旧知识的灾难性遗忘(Catastrophic Forgetting)。
.
仅仅简单地对外部知识库、检索器、大语言模型等功能模块进行连接,无法最大化RAG的效用。下面将围绕以下三个问题,探讨如何优化设计RAG系统。
如何优化检索器与大语言模型的协作?根据是否对大语言模型进行微调,我们将现有的RAG系统分为:
-
黑盒增强架构,不访问模型的内部参数,仅利用输出反馈进行优化;
-
白盒增强架构,允许对大语言模型进行微调。
如何优化检索过程?讨论如何提高检索的质量与效率,主要包括:
-
知识库构建,构建全面高质量的知识库并进行增强与优化;
-
查询增强,改进原始查询,使其更精确和易于匹配知识库信息;
-
检索器,介绍常见的检索器结构和搜索算法;
-
检索效率增强,介绍用于提升检索效率的常用相似度索引算法;
-
重排优化,通过文档重排筛选出更有效的信息。
如何优化增强过程? 讨论如何高效利用检索信息,主要包括:
-
何时增强,确定何时需要检索增强,以提升效率并避免干扰信息;
-
何处增强,讨论生成过程中插入检索信息的常见位置;
-
多次增强,针对复杂与模糊查询, 讨论常见的多次增强方式;
-
降本增效,介绍现有的知识压缩和缓存加速策略。
.
其他参考:【大模型基础_毛玉仁】系列文章
声明:资源可能存在第三方来源,若有侵权请联系删除!