CRAG 是一个专门为现实世界动态问答设计的 benchmark。它把问题覆盖到 finance、sports、music、movies 和 open-domain 五个领域,并同时提供 web documents、mock knowledge graphs 和 mock APIs。和典型 open-domain QA 不同, 这里的难点不只是“找得到相关内容”,而是如何在 异构来源、时效性差异、噪声网页和部分过期证据 中做出可靠判断。
论文复盘的核心观点很明确:现实 RAG 的瓶颈往往不是模型会不会生成,而是系统是否知道 该查询什么、该展示什么、什么时候不该答。因此他们没有把重点放在更重的端到端模型上, 而是通过轻量级 routing、稳健的 API integration、multi-stage retrieval 和 conservative answer policy 去提升整体 correctness-hallucination tradeoff。
CRAG 的挑战不在于单一知识源的检索,而在于“动态世界中的多源问答”。同一个问题可能既需要网页证据,也需要结构化 API 返回; 有些问题依赖秒级变化的事实,有些问题则是长期稳定知识;还有些问题看似可答,但如果没有可靠实时来源,最好的策略其实是拒答。
整个方案可以概括为一个三阶段 RAG pipeline,加上两个非常关键的轻量级路由器。它们不是重模型, 但承担了整个系统的“控制平面”职责,决定下游应该走哪条检索和生成路径。
将问题划分到 finance、sports、music、movies、open-domain 五个领域,用于控制 API 选择、web-API 融合方式和 prompt 选择。
预测问题底层事实变化速度,划分为 static、slow-changing、fast-changing、real-time,用来决定系统是否应该保守。
先用 Newspaper 把 HTML 转纯文本,再走 BM25 预过滤、bge-m3 dense retrieval 和 cross-encoder rerank,显式抑制噪声。
通过实体抽取、实体匹配、时间归一化和 domain-aware API 选择,把 JSON 输出转成可与文本证据自然融合的 Markdown 结构。
这篇工作的一个很实用的 insight 是:RAG 真正重要的不是“召回得越多越好”,而是最终允许模型看到什么证据。 因此他们把大量工程精力放在 evidence pruning 和 source-aware fusion 上,而不是一味扩大上下文。
从 surface form 对齐到 API 所需 canonical identifier,例如公司名到 ticker symbol。论文显示去掉这一项会明显掉分。
把 “yesterday” 这类相对时间表达转成绝对时间戳。对动态事实问答,这一步几乎是 API 调用是否有效的前提。
最终答案生成采用强 instruction-tuned LLM,并结合 chain-of-thought prompting 与少量 domain-specific few-shot。 但真正决定稳定性的,是一层非常轻量却有效的后处理规则:对没有实时 API 支撑的 fast-changing / real-time 问题, 系统通过硬规则直接映射到 “I don’t know” 风格响应;对精确数值计算超出模型能力的问题同样拒答。
论文最直接的结论是:在 CRAG 这种 heavily penalize hallucination 的评测里, 简单把外部内容拼进 prompt 的 direct RAG 并不够,甚至整体得分仍然是负数。 routing、evidence selection 和 conservative answer policy 才是把系统从“能检索”推进到“可靠可用”的关键。
| System | Score | Accuracy | Hallucination | Missing |
|---|---|---|---|---|
| LLM Only | -7.29 | 28.01 | 35.30 | 36.69 |
| Direct RAG | -6.78 | 34.79 | 41.58 | 23.63 |
| Task 2 | 31.22 | 46.75 | 15.54 | 37.71 |
| Task 3 | 31.66 | 48.21 | 16.56 | 35.23 |
| Task 2 Variant | Score | Accuracy | Hallucination | Missing |
|---|---|---|---|---|
| w/o Rerank | 29.17 | 43.54 | 14.37 | 42.09 |
| w/o EntityMatch | 21.44 | 32.31 | 10.87 | 56.82 |
| w/o TimeInfoExtract | 18.45 | 28.45 | 9.99 | 61.56 |
| w/o Fewshot & CoT | 25.53 | 52.08 | 26.55 | 21.37 |
| Ours | 31.22 | 46.75 | 15.54 | 37.71 |
Task 2 的 hallucination 从 Direct RAG 的 41.58% 降到 15.54%,说明比赛环境里“少错”比“多答”更值钱。
去掉 rerank 后 score 和 accuracy 都下降,证明高质量、紧凑证据比大量粗糙上下文更重要。
去掉 time information extraction 后 score 从 31.22 掉到 18.45,missing 飙升到 61.56%。
移除后 accuracy 会升,但 hallucination 明显恶化,说明这些 prompting 技术本质上在帮助模型学会更谨慎地回答。
论文最后的总结很值得做成方法论。它不是单纯复盘一套比赛技巧,而是在说清楚:现实 RAG 系统的可靠性控制,应该被放到核心地位。
该页面内容依据本地 PDF FCS-251987-update-20260420.pdf 整理,核心来源是 Frontiers of Computer Science 2026 的短文版本。