【自然语言处理与大模型】RAG发展过程中的三个范式

近年来,随着大语言模型(LLM)在自然语言处理领域的广泛应用,检索增强生成(RAG) 成为解决模型幻觉问题、提升回答准确性和事实一致性的重要技术手段。RAG通过结合外部知识库的检索能力与生成模型的强大表达能力,实现了信息获取与内容生成的深度融合。

RAG系统经历了三个主要发展阶段:

  1. 初级 RAG(Naive RAG)
  2. 高级 RAG(Advanced RAG)
  3. 模块化 RAG(Modular RAG)

一、Naive RAG

初级 RAG 采用了一个传统过程,包括索引建立、文档检索和内容生成。简单来说,系统根据用户的输入查询相关文档,然后将这些文档和一个提示语结合起来,交给模型生成最终的回答。如果涉及到多轮对话,还可以将对话历史整合到提示语中。初级 RAG 是最基础的实现方式,其工作流程如下:

  1. 索引:将文档切分为片段并生成嵌入向量,存储于向量数据库中。
  2. 检索:根据用户查询,在向量空间中查找语义相似的文档片段。
  3. 增强:将检索结果拼接至提示模板中,形成输入。
  4. 生成:大语言模型基于提示生成最终答案。

优点:结构简单、易于部署,适用于静态知识问答场景。

缺点 描述
低精确度 检索返回的内容可能不完全相关,导致生成错误信息。
低召回率 难以覆盖所有相关信息,尤其当查询复杂或多义时。
信息过时风险 若知识库未及时更新,模型可能引用陈旧数据。
幻觉 模型可能基于不完整或无关信息虚构答案。
冗余与重复 多个相似文档被同时检索,造成内容重复。
风格不一致 不同来源的文档风格差异大,影响输出连贯性。

二、Advanced RAG

为克服初级 RAG 的缺陷,高级 RAG 引入了一系列端到端优化策略,聚焦于检索前(Pre-retrieval)、检索中(During retrieval)和检索后(Post-retrieval) 的全流程改进。

(1)检索前优化

  • Query Routing(查询路由):判断查询类型,选择合适的数据源或子系统。
  • Query Rewriting(查询改写):将原始查询转化为更具体、语义更明确的形式。
  • Query Expansion(查询扩展):添加同义词、相关概念等,提高召回率。

(2)检索过程优化

  • 嵌入模型微调(Fine-tuned Embedding Models):使用领域特定数据训练嵌入模型,提升语义匹配精度。
  • 动态嵌入(Dynamic Embeddings) :如 OpenAI 的 embeddings-ada-02 支持上下文感知的编码。
  • 混合检索(Hybrid Search):结合关键词搜索(BM25)与语义搜索(向量检索),兼顾准确性与召回率

(3)检索后优化

  • 重排序(Re-ranking):对初步检索结果按相关性重新排序,常用方法包括 Cross-Encoder、ColBERT。
  • 摘要融合(Summary & Fusion)
    • 使用 LLM 对多个文档进行摘要合并;
    • 或采用 Maximal Marginal Relevance (MMR) 实现多样性与相关性的平衡。
  • 提示压缩(Prompt Compression):去除冗余文本,避免上下文窗口溢出。

三、Modular RAG

模块化 RAG 是当前 RAG 架构发展的前沿方向,它将整个系统解耦为一系列可插拔、可组合的功能模块,从而实现高度灵活的任务适配。其核心理念是允许开发者根据任务需求自由组合不同功能模块,支持多种执行路径(patterns),满足多样化应用场景,各模块独立开发、测试与迭代。上图中的关键模块分类的解释如下表:

模块 功能说明
Search 执行实际的检索操作,支持多种检索算法。
Retrieve 从数据库中提取候选文档片段。
Rewrite 改写查询或文档以增强匹配效果。
Rerank 对检索结果进行再排序。
Read 解析文档内容,提取关键信息。
Fusion 合并多个来源的信息,避免重复。
Memory 存储对话历史或长期记忆,支持多轮交互。
Routing 判断查询应由哪个子系统处理。
Predict 基于已有信息预测答案或引导推理路径。
Demonstrate 提供示例或思维链,辅助模型推理。

典型模式(patterns)

模式 流程 应用场景
Naive RAG Retrieve → Read 简单问答系统
Advanced RAG Rewrite → Retrieve → Rerank → Read 高精度知识检索
DSP(Demonstration-based Prompting) Demonstrate → Search → Predict 推理类任务
ITER-RETGEN Retrieve → Read → Retrieve → Read 复杂问题分步求解
相关推荐
吴佳浩5 小时前
Python入门指南(七) - YOLO检测API进阶实战
人工智能·后端·python
tap.AI5 小时前
RAG系列(二)数据准备与向量索引
开发语言·人工智能
老蒋新思维6 小时前
知识IP的长期主义:当AI成为跨越增长曲线的“第二曲线引擎”|创客匠人
大数据·人工智能·tcp/ip·机器学习·创始人ip·创客匠人·知识变现
货拉拉技术6 小时前
出海技术挑战——Lalamove智能告警降噪
人工智能·后端·监控
wei20236 小时前
汽车智能体Agent:国务院“人工智能+”行动意见 对汽车智能体领域 革命性重塑
人工智能·汽车·agent·智能体
LinkTime_Cloud7 小时前
快手遭遇T0级“黑色闪电”:一场教科书式的“协同打击”,披上了AI“智能外衣”的攻击
人工智能
PPIO派欧云7 小时前
PPIO上线MiniMax-M2.1:聚焦多语言编程与真实世界复杂任务
人工智能
隔壁阿布都7 小时前
使用LangChain4j +Springboot 实现大模型与向量化数据库协同回答
人工智能·spring boot·后端
Coding茶水间7 小时前
基于深度学习的水面垃圾检测系统演示与介绍(YOLOv12/v11/v8/v5模型+Pyqt5界面+训练代码+数据集)
图像处理·人工智能·深度学习·yolo·目标检测·机器学习·计算机视觉
乐迪信息7 小时前
乐迪信息:煤矿皮带区域安全管控:人员违规闯入智能识别
大数据·运维·人工智能·物联网·安全