想象你是一家大型图书馆的资深管理员。过去,读者提问时,你总是火速冲到书架前,抱回一摞书,然后埋头摘抄——这就是传统 RAG 的流程。但问题是,你经常抱回一堆无关紧要的书,或者书的内容已经过时,而你却毫不知情,照抄不误,最后给读者一个错误答案。 现在,你决定改变工作方式。每次抱回书后,你不再急着摘抄,而是先做一次“质检”:快速翻阅这些书,评估它们跟问题的关联度有多高。如果质量高,直接摘抄;如果质量一般,就回到书架重新找,甚至换一个查找思路;如果质量极差,你干脆放下书,走到隔壁的互联网信息中心,从海量更新的在线资讯中寻找答案。这个“检索后质检、按需纠错”的工作流,就是今天的主角—— Corrective RAG(CRAG) 。
掌握 CRAG,意味着你的 RAG 系统不再“盲目自信”。你将学会如何让系统识别自己的不足,并像一位资深专家那样,在关键节点做出正确的补救决策——这是通往可靠、鲁棒的企业级 RAG 应用的必修课。
可视化演示
动态演示Corrective RAG的核心机制,通过基础/核心/应用/扩展四种模式展示关键概念与交互流程。
本节配有交互动效(进入视口后自动加载,约 3KB)。
Corrective RAG:CRAG CRAG的核心思想与检索纠错架 检索结果评估与置信度判断 核心机制可视化 Corrective RAG整体架构与关键组件
CRAG概念
还记得那位图书馆管理员吗?在传统的 RAG 系统里,他就是一个“埋头苦干的搬运工”——读者提问,他冲进书架检索,把找回来的资料往桌上一堆,就开始埋头整理答案。问题在于,搬运工从不检查自己抱回来的书是否真的有用,哪怕拿错书、拿到过时的百科,他也照抄不误。这种“有错不知”的流程,在生产环境中会引发严重的幻觉问题。
Corrective RAG(CRAG)正是为了解决这个问题而生的。它给搬运工配备了一位“质检员”——在检索完成之后、生成答案之前,插入一个评估-纠错环节。这个概念的核心思想是:不要让 RAG 系统盲目相信一次检索的结果,而是通过轻量级的评估手段,主动识别检索质量问题,并根据问题的严重程度,采取不同的纠正策略。其完整流程可以概括为:检索 → 评估 → 置信度分级 → 纠错策略 → 生成。
这一设计思路借鉴了人类专家的工作习惯:专家在引用资料时,绝不会拿到什么就信什么,而是会快速判断资料的可靠性,再决定是直接使用、换一本参考书,还是上网搜索最新信息。CRAG 将这套判断逻辑固化到系统中,让每一次检索都经过质量把关。相比传统 RAG 的“一次性决定”,CRAG 提供了一个可进退的决策框架,极大地提升了系统的鲁棒性。
质检员模式不是凭空发明,而是 RAG 系统走向成熟的关键一步。从前端交互到后端架构,CRAG 的意义在于让系统拥有“自知之明”——知道什么时候该相信自己,什么时候该怀疑自己,这恰恰是智能系统的核心能力。
- 检索系统根据用户问题从知识库中召回候选文档。
- 评估对每篇文档的相关性进行打分。
- 策略选择根据综合置信度决定走哪条纠错路径。
- 生成基于纠错后的上下文生成最终答案。
检索评估
质检员上岗后的第一项工作,就是练就一双“火眼金睛”——快速判断一份资料与当前问题的相关程度。在图书馆场景中,这相当于快速翻阅书的前言、目录和关键章节,判断这本书是否真的能回答读者的疑问。在 CRAG 中,这个角色由轻量级评估器承担。
评估器的工作方式极具巧思。它不直接问大模型“这段文本相关吗”(那样太慢太贵),而是采用分词任务分解:将检索到的文档与用户问题拆分成若干语义片段,然后逐块计算相关性分数。这种细粒度的方式让评估更精准,也更容易定位文档中哪些部分有效、哪些部分是噪音。评估器本身通常由一个小型语言模型或经过微调的评分模型构成,力求在保证判断质量的同时,把计算开销控制在可接受范围内。
具体实现时,评估器会对每个文档-问题对输出一个相关性分数。这些分数不仅反映“相关/不相关”的二元判断,还会附带一个置信度指标,指示这个判断本身的可靠程度。这个设计非常贴近我们的日常经验——一本看起来很相关的书,也可能只是标题吸引人,翻开才发现内容空洞。评估器需要同时给出“这本书对我有没有用”以及“我对这个判断有没有把握”两个信号。
有了评估器这个“火眼金睛”,系统终于能够分辨“金矿”和“废石”。但光有评估还不够——如何解读这些分数,做出正确的应对决策,才是 CRAG 真正精彩的地方。
- 分解将文档和问题分别拆成 K 个语义单元。
- 打分对每个文档片段和问题片段做相关性判断。
- 指示函数把判断结果转化为数值信号。
- 平均综合所有片段得分,得到整体相关性分数。
置信度判断
质检员不仅评估每份资料,还要回答一个更关键的问题:“这些资料整体上够不够好?”这就像图书馆管理员面对一堆书,不仅要判断每本书的质量,还要综合判断:“这堆书够不够我写出一份完美答案?”这个综合判断在 CRAG 中被称为置信度。
CRAG 使用阈值作为判断标准。评估器产出的分数经过汇总后,会与预设的高、低两个阈值进行比较。当综合分数超过高阈值时,系统判定为高置信度——检索结果质量很好,可以直接进入精炼生成阶段。当分数低于低阈值时,判定为低置信度——检索结果基本不可用,需要启动更激进的纠错手段。落在两个阈值之间的,则是不确定态——检索结果有参考价值但不够充分,需要尝试重检索。
这个阈值机制看似简单,实则是 CRAG 的灵魂所在。它把“检索质量”这个模糊概念转化成了清晰的决策树,让系统每次都能做出最优的下一步选择——就像经验丰富的医生,先快速判断病情严重程度,再决定是开药、转诊还是直接急救。
- 输入将评估器产出的综合分数作为输入。
- 高阈值判断分数是否达到高置信度门槛。
- 低阈值判断分数是否跌破低置信度底线。
- 中间态落在两阈值之间为不确定态。
纠错策略
当置信度分级完成后,系统的“纠错三修方案”正式登场。这一节就像图书馆的“应急处理手册”:不同情况对应不同行动方案。
高置信度 → 精炼处理:当检索结果质量优秀时,系统选择精炼(Refine)。它会把检索到的文档与原始问题结合,通过抽取关键信息过滤噪音,形成精炼的知识片段,再送入生成器。这相当于质检员看完书后,在便签上划出最重要的几段话,而不是把整本书塞给写手。
不确定态 → 重检索触发:当检索结果“不上不下”时,系统进入重检索(Re-retrieve)模式。它会分析当前结果缺失的信息,进行查询改写——比如将“苹果公司的创始人”改写为“Steve Jobs 与苹果公司的创立关系”——然后用改写后的问题再去知识库检索。这类似于管理员发现手上的书不够新,于是按旧书的参考书目去查找更新的资料。
低置信度 → Web 搜索兜底:当检索结果几乎完全不可用时,系统启用Web 搜索作为最后手段。它会将问题直接发送到外部搜索引擎,抓取网页内容作为备选知识源。Web 搜索返回的内容往往更实时、更宽泛,虽然格式和噪声更复杂,但在本地知识库无力支撑时,这是最有效的保底方案。这就像管理员放下旧书架,大步走向互联网信息中心的计算机终端,从海量的在线数据中寻找答案。
三种策略环环相扣,覆盖了从“资料很好”到“资料全废”的全谱系场景。精炼保证质量,重检索填补空缺,Web 搜索兜底极端情况——这正是 CRAG 得以在各种恶劣检索条件下“存活”的秘密。
- 精炼公式从高相关文档中抽取与问题相关的片段。
- 精炼生成用精炼后的片段生成答案。
- 重写公式根据缺失信息重写查询。
- 重检索生成用新查询重新检索并生成。
- Web 搜索公式从搜索引擎获取外部文档。
- 兜底生成基于外部文档生成答案。
对比标准RAG
看到这里,你可能会问:CRAG 到底比传统 RAG 强在哪?让我们回到图书馆,对比两种工作模式的差异。
传统 RAG 是“一次检索定终身”的书呆子。它不看资料质量就动笔,即使检索到一堆无关信息,也会硬生生地编出答案。这种盲目检索的缺陷在于:知识的源头脏了,下游生成再强也是白搭。更致命的是,遇到高质量问题需要多轮查找时,传统 RAG 毫无“回头路”可走,一次失败即全盘失败。它的架构是静态的:检索-生成,生成-结束,没有任何中间干预点。
CRAG 则像一位“精细化管理”的团队主管。它把检索这件事从“跑一趟腿”升级为“闭环管理”。不仅评估检索结果,还能在一次检索不充分时不放弃,通过多轮纠错不断提高知识质量。在面对复杂问题(如多跳推理)时,CRAG 的重检索机制能帮助系统一步步补齐缺失的信息链路,而传统 RAG 只能在第一步就戛然而止。
这种差异的本质,是鲁棒性的跃迁。在真实应用中,知识库的数据质量参差不齐,用户提问千变万化,一次检索就能命中的场景越来越少。CRAG 的设计哲学是“承认检索可能失败,并为失败做好预案”——这种“允许犯错但及时纠正”的思路,是传统 RAG 完全不具备的。
对开发者而言,标准 RAG 就像一个快捷键“Ctrl+S“——按错了就全没了;CRAG 则更像”版本管理”——即使当前快照坏了,也能回退、分支、重新提交。在 RAG 应用迈向生产环境的路上,这种稳健性弥足珍贵。
- 正确概率系统答对的整体概率。
- 传统路径检索好且生成好。
- CRAG 加成检索差但纠错成功。
- 整合两条路径相加得到总鲁棒性。
系统实现
理论清晰后,如何在实际代码中搭建这套“质检-纠错”流水线?CRAG 的系统实现并不复杂,关键在于将评估器、置信度判断、纠错路由三个组件正确串联。
首先看组件设计。一个典型的 CRAG 系统包含四个核心模块:检索器(Embedding + 向量库)、评估器(轻量评分模型)、纠错路由器(基于置信度选择策略)、生成器(LLM)。数据流是:用户问题 → 检索器召回文档 → 评估器对文档打分 → 路由器根据阈值分流 → 执行对应策略 → 最终送入生成器。
在工程落地上,LangChain 提供了良好的集成基础。开发者可以基于 langchain 构建检索链,自定义评估函数作为路由器。以 Python 代码为例,核心实现思路是:先定义一个 score_documents 函数模拟评估器打分,再定义一个 route_by_confidence 函数根据分数分流到 refine、re_retrieve、web_search 三个分支。整个系统约 100 行代码即可完成原型。评估器选型是关键,常用方案包括:基于 LLM 的零样本打分、基于小模型的微调打分、以及基于规则的关键词匹配。三者复杂度递减,但效果也相应递减——开发者需要根据预算和精度需求权衡。
以下用一段完整的 Python 代码演示 CRAG 的核心路由逻辑:
四个函数各司其职,代码实现不过是这把“函数折叠尺”的逐步展开。真正优雅之处在于:每个函数都可以独立优化、单独测试——这让 CRAG 系统的维护和升级变得异常轻松。
- 评估函数输入检索文档,输出相关性分数。
- 路由函数根据分数映射到策略。
- 纠错函数执行对应策略,输出精炼后的文档集。
- 生成函数基于精炼文档生成答案。
应用场景
CRAG 的“纠错三板斧”在实际工作中能解决哪些痛点?让我们走进几个真实场景。
企业知识库问答是 CRAG 最典型的应用场景。大型企业往往拥有数十万份内部文档,包括制度文件、产品手册、技术规范。员工提问时,传统 RAG 经常检索到过时版本的制度文件,从而输出错误指引。部署 CRAG 后,系统会实时评估检索到的文档与问题的相关性,一旦发现文档质量差,自动触发 Web 搜索或重检索。即使内部知识库不完善,系统也能给出更可靠的答案。在这一场景中,RAG 系统开发者、AI 应用工程师直接受益,因为他们无需手工清洗全部语料,即可大幅提升问答准确率。
开放域问答则是 CRAG 展现弹性的舞台。用户问题千奇百怪,领域覆盖极广,任何单一知识库都无法全知全能。CRAG 的 Web 搜索兜底在这里大放异彩:当本地知识库无法回答时,系统自动切换外部搜索引擎,把问题扔给更广阔的互联网。这就像图书馆管理员对付“偏门冷知识”的终极策略——直接上网搜索。AI 平台架构师在设计面向公众的 AI 助手时,会优先考虑这种混合检索架构。
多跳推理任务是 CRAG 的另一个亮点。像“谁接替了乔布斯担任苹果 CEO?后来他又去了哪里?”这类问题,需要先找到第一个答案,再基于它做第二次检索。CRAG 的重检索机制天然支持这种链式推理:第一跳检索置信度不足时,系统会重写查询并重新检索,逐步建立完整的推理链路。算法工程师和提示词工程师在构建复杂推理 Agent 时,经常将 CRAG 作为核心检索模块。
无论哪种场景,CRAG 都指向同一个核心价值:在不可靠的世界里,建立一个可靠的问答系统。它承认检索可能失败,但通过纠错机制让失败不至于演变为错误的答案。
未来展望
故事讲到这里,质检员已经成了图书馆里不可或缺的角色。但未来的路还很长——CRAG 下一步会走向何方?
第一个方向是自反馈闭环。当前的 CRAG 依赖预设阈值来判断置信度,这些阈值是经验值,无法自适应不同领域的检索质量分布。未来的 CRAG 将引入自反馈机制:系统记录每次纠错的效果,并根据历史数据动态调整阈值和策略权重。这就像质检员积累经验后,自动调整自己的判断标准,而不是永远拿着入职时的那把尺子。这一方向的推动者主要是机器学习研究员和数据科学家。
第二个方向是多模态 CRAG。当前 CRAG 主要处理纯文本检索,但企业知识库中包含大量图片、表格、音视频资料。多模态 CRAG 需要评估器同时理解文本与图像的相关性,并在纠错策略中加入“多模态重检索”。例如,当用户询问“去年的营收趋势”时,系统不仅要找到相关文档,还要确保检索到的图表是真的行情数据,而不是过时的旧图。多模态算法工程师是这一方向的骨干力量。
第三个方向是轻量化评估器。当前评估器虽“轻量”,但仍需调用一个小型模型,在超大规模查询场景下仍有成本压力。未来研究者将探索更轻量的评估方案:基于规则的启发式评估、基于嵌入距离的近似打分、甚至用端侧小模型完成评估。这就像用一枚袖珍放大镜替代厚重的显微镜——成本更低、速度更快,虽然放大倍数有限,但对大多数场景已经足够。推理优化工程师和嵌入式 AI 工程师会在这个方向大展身手。
质检员的故事还在继续。从一把直尺到自适应判断,从只能看书到能看图听音,从笨重的仪器到口袋里的放大镜——CRAG 的未来,正朝着更智能、更全面、更轻盈的方向演进。而这一切的起点,不过是我们今天讲的“检索后质检”这个朴素想法。
- 当前状态现有的 CRAG 基础框架。
- 自反馈让系统从历史纠错中学习。
- 多模态扩展评估器到多模态输入。
- 轻量化用极小模型完成评估任务。
AI 应用场景
企业智能客服系统升级
阶段:检索增强生成(RAG)管线优化
解决的问题:传统 RAG 客服系统无法判断检索到的知识库文档是否真的能回答用户问题,经常出现“答非所问”或“一本正经地胡说八道”。特别是在产品手册更新期间,过期文档被反复检索到,导致客服给出错误操作指南。CRAG 通过评估-纠错机制,让系统在文档质量差时自动切换重检索或外部搜索,将错误率大幅降低。
具体案例:某 SaaS 公司在工单系统中集成 CRAG 后,客服人员处理“API 接口报错”类问题时,系统不再只依赖命中率低的知识库,而是先评估本地文档质量。当置信度不足时自动查询官方论坛和最新文档,准确率从 62% 提升至 89%,一次性解决率提高近三成。
学术文献综述助手
阶段:检索评估与多轮检索
解决的问题:科研人员在撰写综述时,需要同时参考大量论文,但一次检索很难覆盖全部相关文献。CRAG 的不确定态重检索机制能自动分析缺失信息、改写检索词,帮助系统在多个知识源间迭代寻找文献,避免传统 RAG 只找到首轮结果就“罢工”的局限。
具体案例:某 AI 实验室内部文献助手使用 CRAG 后,面对“图神经网络在推荐系统的应用”这类宽泛问题,先通过本地论文库检索,评估发现文献覆盖不足后,自动触发 Web 搜索引擎补全最新 arXiv 论文,最终生成的综述包含的基础文献数量增加了 40%,且时新性更高。
Python 演示
import random class CorrectiveRAG: """演示 Corrective RAG 核心路由逻辑的简化实现""" def __init__(self, high_threshold=0.7, low_threshold=0.4): self.high_threshold = high_threshold self.low_threshold = low_threshold def retrieve(self, query, doc_pool, top_k=3): """模拟向量检索:从文档池中召回 top_k 篇文档""" # 真实实现会使用 embedding 相似度检索 self.retrieved_docs = random.sample(doc_pool, top_k) return self.retrieved_docs def eval_documents(self, query): """评估器:对每篇文档与查询的相关性打分(0-1)""" # 真实实现会调用一个小型语言模型打分 self.relevance_scores = [] for doc in self.retrieved_docs: # 模拟打分:与 query 共享关键词越多分数越高 overlap = len(set(query.split()) & set(doc.split())) score = min(1.0, overlap / max(len(set(query.split())), 1)) self.relevance_scores.append(score) return self.relevance_scores def get_confidence(self): """综合置信度:取平均分数作为整体置信度""" self.confidence_score = sum(self.relevance_scores) / len(self.relevance_scores) return self.confidence_score def refine(self, query, docs): """精炼策略:提取文档中与查询最相关的片段""" # 真实实现会使用 LLM 抽取关键片段 return " ".join(docs)[:200] + " ... (精炼片段)" def re_retrieve(self, query): """重检索策略:重写查询后重新检索""" rewritten = query + " more details" # 真实实现会调用 LLM 改写 return self.retrieve(rewritten, self.doc_pool), rewritten def web_search(self, query): """Web 搜索兜底:从外部获取信息""" # 真实实现会调用搜索 API return f"[Web搜索结果] 关于{query}的最新信息" def route(self, query, docs): """路由核心:基于置信度决定纠错策略""" self.eval_documents(query) conf = self.get_confidence() if conf >= self.high_threshold: return "refine", self.refine(query, docs) elif conf <= self.low_threshold: return "web_search", self.web_search(query) else: return "re_retrieve", f"Rewrite and re-retrieve... {query}" def run(self, query, doc_pool): """执行 CRAG 全流程""" self.doc_pool = doc_pool self.query = query docs = self.retrieve(query, doc_pool) strategy, result = self.route(query, docs) return {"strategy": strategy, "result": result, "confidence": self.confidence_score} if __name__ == "__main__": pool = [ "苹果公司在 1976 年创立 乔布斯是创始人之一", "深度学习的核心是反向传播算法", "上海市位于中国东部沿海地区 是中国最大的城市", "推荐系统用于预测用户对物品的偏好", ] rag = CorrectiveRAG() out = rag.run("苹果公司创始人是谁", pool) print("策略:", out["strategy"]) print("置信度:", round(out["confidence"], 2)) print("结果:", out["result"])
self.high_threshold = high_threshold设置高置信度阈值(0.7),分数超过它则走精炼策略overlap = len(set(query.split()) & set(doc.split()))用关键词重叠模拟相关性打分,真实应用中这里会换成轻量级评分模型self.confidence_score = sum(...) / len(...)计算平均分作为整体置信度,是路由判断的依据if conf >= self.high_threshold:高置信度:直接精炼文档片段生成回答elif conf <= self.low_threshold:低置信度:触发 Web 搜索作为兜底方案else:不确定态:执行查询改写并触发重检索流程
常见误区
误区“传统 RAG 生成答案时用的语言模型很强大,即使检索结果一般,它也能凭借自身知识生成不错答案,所以 CRAG 加的那道检查程序显得多余。”
正解大模型的知识是有截止日期的,而知识库中的文档通常是企业私有或专业领域的,模型并没有“见过”这些内容。当检索结果质量差时,模型面对的是“无米之炊”,再强的生成能力也只能强行编造。CRAG 的价值正是在于拦截低质量检索结果,防止“幻觉”进入最终答案。实际评测中,CRAG 在知识库噪声较高的场景下对准确率的提升可达 20% 以上。
为何常见:初学者对 RAG 的认知停留在“检索 + 大模型”两个组件上,忽视了检索质量对生成质量的绝对约束。加上大模型本身能处理部分语义噪声,让人误以为检索差一点没关系。
误区“CRAG 的评估器听起来很高级,肯定要像训练一个 BERT 模型那样跑大量的标注数据、调参、微调,小团队根本做不了。”
正解CRAG 的评估器设计目标就是“轻量”。论文中使用的评估器可以基于通用 LLM 的零样本打分实现,也可以基于小模型做简单微调,甚至可以先用基于规则的关键词重叠、向量距离等启发式方法快速上线。真实工程中,很多团队用 GPT-3.5 级别的模型加几条 prompt 模板就实现了评估器,效果已经很不错。评估器的复杂度和精度可以根据场景灵活取舍。
为何常见:很多人把“评估”与“训练”画等号,认为任何模块都必须经过深度学习训练才算正规。实际操作中,工程上的“够用”往往比“最先进”更具现实意义。
误区“CRAG 里的 high_threshold 和 low_threshold 设置好之后,系统就能一直稳定运行,如果效果不好,那就调整一次再重启。”
正解阈值的合理性高度依赖知识库的数据分布。当知识库更新、用户提问分布漂移、检索器换用新 embedding 模型时,相关性分数的分布都会变化,原来的阈值可能失效。生产级的 CRAG 系统需要动态监控评估分数分布,定期校准阈值。更进阶的方案是让系统根据反馈自动调整阈值——这正是“自反馈闭环”方向的研究内容。
为何常见:阈值看似是一个参数,初学者容易把它当成“配置项”而不是“需要持续维护的系统状态”。忽略了数据分布的变化性。
误区“CRAG 的低置信度处理很简单,就是重写个 query 调一下 Google API 就完事了。”
正解真实生产环境远比这复杂。调用搜索 API 只是第一步,后续还要处理网页抓取(反爬、渲染)、正文提取(剥离导航和广告)、去重、相关性过滤、版权考量——这些环节无论哪一个出错,都会把“兜底”变成“挖坑”。实践中,Web 搜索结果进入生成器前至少要经过一轮清洗和相关性过滤,否则模型会把网页上的广告文本也当成参考资料。业界甚至有团队专门维护一个“搜索标准化清洗流水线”来支撑 CRAG 的 Web 分支。
为何常见:Web 搜索的入口太简单(一个 API 调用),让人们容易忽略入口背后的复杂生态。
面试题
Q1. Corrective RAG 的最核心创新点是什么?
- A.引入向量检索技术
- B.在检索后生成前增加评估纠错环节← 正确答案
- C.使用更大的语言模型
- D.用图数据库替代向量库
答案:B。CRAG 的核心是在检索与生成之间插入“评估-纠错”环节,让系统对检索结果进行质量把关后决定下一步策略。向量检索(A)是基础手段,并非 CRAG 独创;使用更大模型(C)与 CRAG 无关;图数据库(D)是另一条技术路线。就像质检员把关,才是 CRAG 的灵魂。
Q2. CRAG 评估器对文档与问题做的相关性打分为 0.2,此时系统最可能采取哪种策略?
- A.精炼处理
- B.直接生成
- C.Web 搜索兜底← 正确答案
- D.忽略问题
答案:C。0.2 属于典型的低置信度区间(通常低于 low_threshold)。系统会判定检索结果基本不可用,启动 Web 搜索兜底来获取外部信息。精炼处理(A)适用于高置信度场景,直接生成(B)是传统 RAG 的行为,而忽略问题(D)没有任何系统会这么做。
Q3. 在 CRAG 中“重检索”(Re-retrieve)策略的核心步骤是什么?
- A.重新想一个问题
- B.改写查询后重新在知识库中检索← 正确答案
- C.丢弃所有旧文档
- D.换个更大的知识库
答案:B。重检索的核心是查询改写(Query Rewrite):分析当前检索结果缺失的信息,构造新的查询表达式,然后重新在知识库中检索。“重新想一个问题”(A)描述过于随意,“丢弃所有旧文档”(C)没有建设性,“换个更大的知识库”(D)成本极高且不精准。
Q4. CRAG 中置信度的“不确定态”对应的处理策略是哪个?
- A.直接精炼
- B.使用规则模板回答
- C.触发重检索← 正确答案
- D.拒绝回答
答案:C。不确定态(Uncertain)介于高置信度和低置信度之间,说明检索结果有一些参考价值但不够充分。系统会通过查询改写触发重检索,尝试从知识库中获取更多相关信息。直接精炼(A)是高置信度的策略;拒绝回答(D)不是 CRAG 设计目标。
Q5. 与标准 RAG 相比,CRAG 在架构上多出的关键组件是什么?
- A.嵌入模型
- B.重排序器
- C.评估器和纠错路由器← 正确答案
- D.向量数据库
答案:C。CRAG 是在标准 RAG 的检索与生成之间新增了评估器(打分)和纠错路由器(策略选择)两个组件。嵌入模型(A)和向量数据库(D)是标准 RAG 的基础组件;重排序器(B)是 Rerank 思路,不是 CRAG 特有。
Q6. 以下哪些属于 CRAG 定义的纠错策略?
- A.精炼处理(Refine)← 正确答案
- B.重检索(Re-retrieve)← 正确答案
- C.模型微调
- D.Web 搜索兜底← 正确答案
答案:ABD。CRAG 定义了三种纠错策略:精炼(高置信度)、重检索(不确定态)、Web 搜索(低置信度)。模型微调(C)是模型训练层面的手段,不属于 CRAG 检索纠错范畴,也不在 CRAG 流程内。
Q7. CRAG 的评估器与 Rerank 模型的主要区别是什么?
- A.评估器更轻量
- B.评估器的输出包含置信度信号,用于分流决策← 正确答案
- C.Rerank 模型不支持神经网络
- D.两者没有区别
答案:B。Rerank 模型的作用是把召回的多篇文档重新排序,输出顺序更合理的列表,但其输出仍是排序结果。CRAG 评估器输出的是相关性分数,并据此推导置信度、决定精炼/重检索/Web搜索的分流。如果非要说轻量,评估器通常也确实追求轻量,但这并非核心区别。评估器是“决策者”,Rerank 是“整理者”。
Q8. 关于 CRAG 的工程实现,以下说法正确的有哪些?
- A.评估器可以用零样本方式调用通用 LLM 实现← 正确答案
- B.置信度阈值需要随数据分布变化而动态调整← 正确答案
- C.Web 搜索结果可以直接送入生成器无需清洗
- D.CRAG 流程适合与 LangChain 等框架集成← 正确答案
答案:ABD。零样本 LLM 评估器是论文和工程中常见的轻量实现(A 对)。阈值依赖数据分布,需要动态监控校准(B 对)。Web 搜索结果含大量噪声,必须清洗过滤后才能使用(C 错)。CRAG 的模块化和函数式设计非常适合嵌入 LangChain 等现有框架(D 对)。
Q9. 以下哪个不是 CRAG 的优势?
- A.提升对低质量检索结果的鲁棒性
- B.减少 RAG 系统的幻觉现象
- C.无需任何推理开销← 正确答案
- D.在知识库覆盖不足时可用 Web 兜底
答案:C。CRAG 的评估器、路由判断都会带来额外的计算和延迟开销(C 错),这是选择 CRAG 时必须权衡的成本。A、B、D 都是 CRAG 的典型优势。CRAG 是一种用“推理开销换可靠性”的策略。
Q10. 在 CRAG 的自反馈闭环演进方向中,系统需要实现哪些关键能力?
- A.记录每次纠错的效果← 正确答案
- B.自动调整置信度阈值← 正确答案
- C.完全替代人工评估
- D.根据历史数据优化策略权重← 正确答案
答案:ABD。自反馈闭环的核心是记录纠错效果(A)、动态调整阈值(B)和按历史表现优化策略权重(D)。“完全替代人工评估”(C)是过于极端的设想——反馈信号仍需人工标注或自动化指标来定义,评估体系不能完全脱离人的设计。