RAG(检索增强生成)工作流程详解

cloud-yuan
26
2025-08-16

RAG(Retrieval-Augmented Generation)是将检索(Retrieval)与生成(Generation)相结合的技术,它通过以下工作流程运作:

核心工作流程

  1. 用户查询接收

    • 系统接收用户的自然语言查询或问题

  2. 查询处理与向量化

    • 使用嵌入模型(embedding model)将查询转换为向量表示

    • 可能包括查询扩展或重写以优化检索

  3. 知识库检索

    • 在向量数据库中搜索与查询向量最相似的文档片段

    • 通常返回top-k个最相关的结果(k可根据需要调整)

  4. 上下文整合

    • 将检索到的文档片段与原始查询组合

    • 可能包括相关性排序和去重

  5. LLM生成响应

    • 将增强后的上下文输入大型语言模型(LLM)

    • LLM基于检索内容和自身知识生成最终响应

  6. 结果返回

    • 向用户返回生成的答案

    • 可能附带引用来源或相关文档链接

关键组件

  • 知识库:结构化或非结构化的文档集合,通常经过分块和向量化处理

  • 检索系统:通常是稠密检索器(如DPR)或稀疏检索器(如BM25)

  • 生成模型:如GPT、PaLM等大型语言模型

  • 嵌入模型:如OpenAI的text-embedding-ada-002、BERT等

优势特点

  1. 知识可更新:只需更新知识库而无需重新训练LLM

  2. 来源可追溯:可以显示回答所依据的文档来源

  3. 减少幻觉:基于实际文档生成,减少模型编造信息的可能

  4. 领域适应性强:通过更换知识库快速适应不同专业领域

这种架构特别适合需要准确、最新信息且要求可验证性的应用场景。


1. 上下文拼接的典型模式

  • 输入结构示例(实际格式可能因模型而异):

     [系统指令] 基于以下上下文回答问题:
     <检索到的文本1>
     <检索到的文本2>
     ...
     [问题] 用户原始问题
  • 实际案例(简化版):

     你是一个专业助手,请根据提供的医学文献回答:
     【文献1】临床试验显示药物X对70%的患者有效...
     【文献2】药物X的副作用包括头晕(15%)和恶心(8%)...
     问题:药物X的疗效和风险如何?

2. 关键技术细节

环节

说明

截断处理

检索到的文本会按相关性排序,并受LLM上下文窗口限制(如GPT-4的32k token需合理分配)

提示工程

通过指令设计(如"仅根据上下文回答")控制LLM行为,减少幻觉

引用标记

高级实现中会给每个检索片段添加来源标记(如1),方便追溯答案依据


3. 为什么这样设计?

  • 信息融合:LLM在生成时能动态结合自身知识(参数化知识)和检索内容(非参数化知识)

  • 实时性:无需重新训练模型即可更新知识(仅需更新检索库)

  • 可解释性:通过检查输入上下文,可分析答案生成逻辑


4. 进阶变体

  • 迭代检索:首轮生成结果触发二次检索(如发现需要更多细节时)

  • 重排序:对检索结果用LLM做相关性重排后再输入

  • 混合生成:部分内容直接引用检索文本,部分由LLM生成