大语言模型

关于大语言模型的总结

RAG综述

  • 论文:Retrieval-Augmented Generation for Large Language Models: A Survey
  • 论文链接

RAG 的发展范式

论文中将 RAG 的发展划分为三个阶段:朴素 RAG、高级 RAG 和模块化 RAG:

RAG 三种范式

  • 朴素 RAG:这是最早期的方法,主要过程包括索引、检索和生成。它通过简单的 “检索 - 阅读” 框架,将外部知识引入大型语言模型。然而,这种简单的方法也有其局限性,比如在检索精度和召回率上可能不够理想,生成的回答可能存在幻觉等问题。

  • 高级 RAG :为克服朴素 RAG 的不足,高级 RAG 提出了多种优化策略。在检索阶段,它采用预检索和后检索策略,如使用滑动窗口方法优化索引技术,还引入查询重写、变换和扩展等方法来提高检索质量。在生成阶段,它关注于如何更好地整合检索到的信息,包括对信息进行重排序和压缩等操作。

  • 模块化 RAG :这是目前最先进的范式,具有更高的灵活性和适应性。它不仅继承了前两种范式的特点,还引入了新的模块和模式。例如,添加搜索模块以适应特定场景下的检索需求,或者通过改进检索器来提升检索性能。此外,模块化 RAG 还支持顺序处理和组件之间的端到端联合训练,使整个系统更加灵活和高效。

RAG 的核心技术组件

RAG 框架主要由三个核心技术组件构成,即检索、生成和增强技术。

  • 检索技术 :检索技术是 RAG 的基础,其目标是从外部知识库中找到与用户查询最相关的文档片段。这涉及到检索源的选择、检索粒度的确定、预处理以及嵌入模型的选择等多个关键问题。例如,检索源可以是文本、半结构化数据或结构化数据等;检索粒度可以从短语、句子到文档不等。
  • 生成技术 :在检索到相关信息后,如何将其与大型语言模型结合以生成高质量的回答是生成技术的关键。这包括对检索到的内容进行调整和对大型语言模型进行微调。例如,可以通过上下文优化方法对检索到的信息进行重排序和压缩,以提高生成回答的准确性和相关性。
  • 增强技术 :增强技术旨在通过对检索到的信息进行进一步处理和整合,来提升生成回答的质量和深度。这包括迭代检索、递归检索和自适应检索等多种方法。例如,迭代检索通过在知识库中反复搜索,为大型语言模型提供更丰富、更准确的上下文信息。

RAG 与微调的比较

  • RAG 的优势在于能够实时更新知识,并且对模型的调整需求相对较低。它就像给模型配备了一本随时可以查阅的 “教科书”,使其在需要精确检索信息的任务中表现出色。
  • 微调 则更像是让学生通过长期学习来内化知识,对模型的调整需求较高,但在某些特定场景下可以实现更深层次的模型定制和风格控制。