Skip to content
🔗 分享本题
查看我的学习进度 →
Self-RAG 与 CRAG 反思纠错图解

🧠 图解记忆: Self-RAG 反思“要不要查、答案受不受支持”,CRAG 判断“查到的证据能不能用”。

💡 答案要点

self-RAG = Self-Retrieval-Augmented Generation(自检索增强生成)

传统RAG的问题:

  • 不管查询是否需要检索,都强制检索
  • 检索结果质量差时,模型仍然基于错误上下文生成
  • 无法判断检索是否必要

self-RAG的核心创新:

  • 模型自主判断"需不需要检索"
  • 模型自主评估检索结果的质量
  • 质量差时主动修正或忽略错误上下文

self-RAG流程:

用户Query → 模型判断:是否需要检索?
  ├── 不需要 → 直接生成答案
  └── 需要 → 检索文档

      模型判断:文档是否相关?
        ├── 不相关 → 忽略,用内部知识
        └── 相关 → 生成答案 + 引用

CRAG = Corrective RAG(纠错型RAG)

python
# CRAG的自我纠错流程
class CorrectiveRAG:
    def generate(self, query):
        docs = retriever.retrieve(query)

        # 评估检索质量
        relevance = assessor.evaluate(query, docs)

        if relevance > 0.8:
            # 高相关:直接生成
            return llm.generate(query, docs)
        elif relevance > 0.3:
            # 中相关:知识精炼后生成
            refined = knowledge_refiner.refine(query, docs)
            return llm.generate(query, refined)
        else:
            # 低相关:忽略检索,用内部知识
            return llm.generate(query, [])  # 无上下文

对比:

方案检索触发质量控制适用场景
传统RAG100%触发简单问答
self-RAG模型自主决定反思token评估复杂推理任务
CRAG100%触发三级质量过滤高精度要求场景

面试话术:

"self-RAG的突破是让模型'知道自己什么时候该查资料、查到的资料靠不靠谱'。CRAG则是'先查再审,不行就换'。生产环境中,我用CRAG做金融问答,检索质量<0.3的直接走内部知识,幻觉率从15%降到3%。"