Ch13 RAG修订于 二〇二六年七月六日

Self-RAG 与 Corrective RAG

概述

Self-RAG 和 Corrective RAG (CRAG) 代表了 RAG 范式从”被动检索”到”主动反思”的进化。传统的 RAG 系统无条件地对每个查询执行检索,而 Self-RAG 和 CRAG 引入了检索质量评估和自适应检索决策机制,使系统能够判断何时需要检索、检索结果是否足够好、以及是否需要修正查询重新检索。

这一系列技术在 2023-2024 年间快速发展,到 2026 年已成为生产级 RAG 系统的核心组件。

Self-RAG:自反思检索增强生成

核心思想

Self-RAG (Asai et al., 2023) 通过训练 LLM 生成特殊的反思标记 (Reflection Tokens),使模型在生成过程中自主评估检索质量并决定是否检索。

反思标记类型

Self-RAG 定义了以下反思标记:

反思标记含义示例
<Retrieve>需要检索外部知识事实性、知识密集型问题
<NoRetrieve>不需要检索常识、创意写作、翻译
<Relevant>检索到的段落与查询相关段落包含所需信息
<Irrelevant>检索到的段落与查询无关段落主题不匹配
<FullySupported>生成内容完全被检索结果支持引用了文档中的事实
<PartiallySupported>生成内容部分被检索结果支持部分信息来自参数知识
<NoSupport>生成内容不被检索结果支持模型编造了信息
<Utility>检索结果对生成有用按 1-5 评分

Self-RAG 工作流程

用户查询: "What is the GDP of France in 2023?"
    ↓
Step 1: 检索决策
    LLM 生成: <Retrieve>  ← 判断需要检索
    ↓
Step 2: 执行检索
    检索到 K 个段落: [D1, D2, ..., DK]
    ↓
Step 3: 相关性评估
    对每个段落: <Relevant> / <Irrelevant>
    D1: <Relevant>    ← 保留
    D2: <Irrelevant>  ← 丢弃
    D3: <Relevant>    ← 保留
    ↓
Step 4: 基于相关段落生成
    LLM: "France's GDP in 2023 was approximately $3.05 trillion..."
    ↓
Step 5: 支持度评估
    <FullySupported>  ← 生成内容被检索结果验证
    ↓
Step 6: 效用评估
    <Utility: 5>  ← 检索结果对回答很有用

Self-RAG 训练方法

Self-RAG 使用两阶段训练:

  1. Critic 模型训练:用 GPT-4 等强模型生成带有反思标记的合成数据,然后训练一个 Critic 模型来预测这些标记。
  2. Generator 模型微调:在 Critic 模型的基础上,对整个 LLM 进行指令微调,使其同时具备生成和反思能力。

Corrective RAG (CRAG)

核心思想

CRAG (Yan et al., 2024) 采用更轻量级的方法:它不要求 LLM 自身具备反思能力,而是引入一个独立的检索评估器 (Retrieval Evaluator),对检索结果进行质量评估,然后触发修正动作。

CRAG 的检索评估等级

检索评估器对检索结果质量的三个等级:

┌─────────────────────────────────────────────────┐
│  Confidence Score: 0.0 ──────────────── 1.0     │
│                                                  │
│  [0.0 ─ 0.3]  Incorrect (低置信度)              │
│       → 触发知识检索 (Knowledge Search)          │
│       → 改写查询,重新检索                       │
│                                                  │
│  [0.3 ─ 0.7]  Ambiguous (中等置信度)             │
│       → 触发知识精炼 (Knowledge Refinement)      │
│       → 对检索结果进行分段、过滤、重排序         │
│                                                  │
│  [0.7 ─ 1.0]  Correct (高置信度)                 │
│       → 直接使用检索结果生成答案                 │
└─────────────────────────────────────────────────┘

CRAG 工作流程

用户查询: "What is the latest research on RNA vaccines?"
    ↓
Step 1: 标准检索
    检索到 K 个段落
    ↓
Step 2: 检索评估器 (T5-large 或类似模型)
    评估每个段落的置信度分数
    ↓
Step 3: 根据置信度分流
    ├── Correct (>0.7): 直接传给 LLM 生成
    ├── Ambiguous (0.3-0.7): 过滤+精炼后传给 LLM
    └── Incorrect (<0.3): 触发查询改写 → 重新检索 → 再次评估
    ↓
Step 4: 生成最终答案
    LLM 基于过滤后的相关段落生成答案

Adaptive RAG

Adaptive RAG (Jeong et al., 2024) 是 Self-RAG 和 CRAG 思想的进一步发展,核心特点是动态选择检索策略:

查询复杂度检索策略说明
简单 (Simple)不检索 / 直接回答常识问题、翻译、摘要
中等 (Moderate)单次检索事实性查询,一次检索即可
复杂 (Complex)多步检索需要多跳推理,逐步检索
高度复杂 (High-Complexity)迭代检索+验证需要多次检索、验证、修正

Adaptive RAG 使用一个轻量级分类器在查询级别预测复杂度,然后选择合适的检索策略。这个分类器可以从 LLM 的预测中自动生成训练数据。

Self-RAG vs CRAG vs Adaptive RAG vs 标准 RAG 对比

维度标准 RAGSelf-RAGCRAGAdaptive RAG
检索决策总是检索LLM 自主决定总是检索分类器预测
质量评估无反思标记 (LLM 内部)独立评估器 (外部)分类器+评估器
查询修正无无有 (知识检索)有 (迭代修正)
是否需要训练否需要 (Critic+Generator)需要评估器训练需要分类器训练
延迟低中等中等中-高
实现复杂度低高中等高
幻觉减少部分显著显著最优
检索精度基础高高最高
代表论文Lewis 2020Asai 2023Yan 2024Jeong 2024
开源实现所有框架需自训练有开源部分开源

2024-2026 年演进

2024 年:技术成熟期

  • Self-RAG 和 CRAG 的论文相继发表,引发学术界和工业界广泛关注
  • LangChain 和 LlamaIndex 开始集成 CRAG 模式
  • 多个开源 CRAG 实现出现(如 langgraph-crag)

2025 年:工程化落地

  • Agentic RAG 框架 (LangGraph, CrewAI) 将 Self-RAG/CRAG 作为标准 agent 模式
  • 轻量级评估器 (如 DeBERTa-v3 微调) 使 CRAG 延迟降至 50ms 以下
  • Graph RAG 与 Self-RAG 结合,用于知识图谱增强的检索场景

2026 年:标准化

  • 反思式检索成为 RAG 系统标配
  • 推理模型 (Reasoning Models) 天然具备 Self-RAG 的反思能力,无需额外训练
  • 多模态 Self-RAG 出现:对图像、视频检索结果进行质量评估
  • 实时 Self-RAG:在流式生成中动态插入检索和验证步骤

相关笔记

来源

关联8

知识图谱

局部图谱 · 点节点跳转