Skip to content

浅谈RAG应用

约 1272 字大约 4 分钟

RAG

2025-06-25

RAG(Retrieval-Augmented Generation)

RAG 是一种结合信息检索(Retrieval)与生成模型(Generation)的技术方法,通过引入外部知识库,在生成文本时动态补充知识,突破了传统生成模型知识固定和上下文依赖的局限性。它的核心在于通过检索与生成的协同作用,提升生成内容的准确性和相关性。

RAG的概念

RAG 的核心思路是结合两种技术:检索模型生成模型

传统的生成模型(如 GPT 系列)依赖于预训练过程中学习到的知识,这使得它在面对超出训练语料范围的问题时,可能生成不准确或过时的内容。

而 RAG 的设计理念在于 通过实时检索外部知识库中的相关信息,为生成模型提供更多上下文支持,从而生成更符合事实和用户需求的内容。

  • 信息检索(Retrieval):负责从外部知识库中找到与输入问题或任务相关的内容。这个过程通常需要一个高效的检索模型来处理查询并返回最相关的文档或片段。
  • 文本生成(Generation):生成模型基于检索到的内容将其整合到生成的文本中,输出流畅且信息丰富的答案。

RAG 的独特之处在于动态结合外部知识,而非单纯依赖模型内部的静态知识。这种方式不仅提高了生成内容的准确性,还使模型具备了实时更新知识的能力。

RAG的原理

RAG 的原理可以分为以下几个关键步骤:

  1. 输入处理
    用户输入一个问题或查询,系统将其作为任务的起点。这一输入通常会被预处理为适合检索模型的查询格式。

  2. 检索阶段
    检索模型会根据输入问题,在外部知识库(例如维基百科、专业数据库等)中寻找最相关的内容。检索模型可以是传统的方法(如 BM25)或基于深度学习的向量检索模型(如 Dense Retriever)。

    • 传统检索方法:基于关键词匹配的方式,例如 TF-IDF 或 BM25。
    • 深度学习检索方法:基于嵌入向量的语义匹配技术,如双塔模型(Dual Encoder),它能够捕捉语义层面的关联性,而不仅仅依赖于显性关键词。

    检索阶段的输出通常是若干个高相关性的文档或文本片段,作为生成模型的输入。

  3. 生成阶段
    生成模型(通常是 Transformer 架构的语言模型,如 GPT)将用户输入和检索到的内容结合起来,生成回答。这一过程中,生成模型需要对检索内容进行理解和整合,以确保生成的文本不仅流畅,还具备高度的相关性和事实性。

  4. 输出答案
    最终,生成的答案会被呈现给用户。答案的质量取决于检索内容的准确性与生成模型的语言能力。

RAG的两种常见实现模式

根据检索内容与生成模型的结合方式,RAG 有两种常见的实现模式:

  1. 单次检索模式(RAG-Sequence)

    在这种模式下,检索模型从知识库中检索出一批相关文档,然后将这些文档一次性传递给生成模型进行回答生成。生成模型基于这些静态文档生成内容。

    优点: 简单高效,适合对检索文档需求量较低的场景。

    缺点: 如果初始检索结果不足,生成模型可能会因为缺乏信息而输出低质量答案。

  2. 循环检索模式(RAG-Token)

    生成模型在生成每个词或句子时动态调用检索模型,从知识库中获取新的信息。这种模式更注重生成过程中检索与生成的深度协作。

    优点: 能够根据生成过程中的需求动态补充信息,提高生成内容的准确性。

    缺点: 计算成本较高,适合对准确性要求极高的任务。

RAG的特性总结

RAG 的独特性在于它通过整合检索与生成的能力,实现了以下目标:

  • 动态知识更新:生成模型可以随时从外部知识库中获取最新信息,而不依赖于静态的预训练知识。
  • 增强上下文理解:检索模型提供的相关文档能够显著提升生成模型对问题语境的理解能力。
  • 可扩展性:通过引入不同领域的知识库,RAG 可适应多种任务场景。