RAG 技术调研报告
从检索基线到生产级治理:架构、Chunking、Hybrid Retrieval、Reranker、评测与安全
能力边界:本报告来自 prompt-native Co-STORM 模拟圆桌与来源核验,不代表执行了 Stanford 官方 CoStormRunner,也不包含独立运行的专家 Agent。
01|执行摘要
RAG 不是“向量数据库加一个 LLM”,而是一套连接数据、检索、上下文组织、生成、引用、权限和评测的知识系统。原始 RAG 工作把参数化模型与可更新的非参数记忆结合起来,解决知识更新与来源追踪问题;DPR 则推动了双编码器稠密检索的发展。[1][2]
结构化解析 + Parent-Child Chunking + BM25/Dense 混合召回 + Reranker + 引用与拒答。
先用真实查询集测量失败类型,再决定是否引入 GraphRAG、RAPTOR 或 Agentic RAG。
检索命中、答案正确、证据忠实、引用可信与权限安全必须分开评测。
ACL 越权、敏感信息泄漏和未经授权的工具调用属于硬失败,不能被平均分掩盖。
本报告的主要结论
02|研究方法与边界
本轮调研使用三种模拟视角:基础事实研究、检索架构研究、生产评测与治理。每个视角先从一手论文或官方资料提取证据,再由回应角色暴露局限,最后由主持人形成工程结论。
证据边界包括公开论文、OpenReview、ACL Anthology、TREC/NIST 资源与官方技术文档。论文中的基准收益不自动等于企业语料上的普遍优势;本文把这类外推明确标记为工程建议,而非已证实事实。
03|推荐的生产级 RAG 架构
| 平面 | 主要组件 | 必须保留的证据 |
|---|---|---|
| 离线数据面 | 解析、去重、结构识别、Chunking、Embedding、索引版本 | 来源 URI、页码、标题路径、版本、ACL、校验和 |
| 在线查询面 | 身份过滤、查询理解、BM25、Dense、RRF、Reranker、Parent Expansion | 每阶段候选、排名、分数、过滤原因 |
| 生成面 | Token Budget、证据编号、受约束提示、拒答、引用 | 最终证据集合、提示版本、模型版本、输出声明 |
| 控制面 | 黄金集、离线评测、Shadow、Canary、监控、回滚 | 语料快照、索引版本、配置版本、评测结果 |
Hybrid Search 同时执行全文与向量检索,再通过 RRF 合并不同排序列表,可以利用关键词精确匹配和语义匹配的互补性。[13]
query → ACL / tenant filter → BM25 top 30 ─┐ → Dense top 30 ─┴→ RRF → dedupe → rerank top 6 → parent expansion → token budget → answer / abstain + citations
04|Chunking、Hybrid Retrieval 与 Reranker
4.1 Chunking:决定知识的最小可检索单位
推荐先解析标题、段落、表格、列表、代码和页码,再按内容类型切分。官方文档处理指南同样强调依据版面与文档结构生成语义连贯的块。[14]
| 内容 | 优先边界 | 检索补充 |
|---|---|---|
| 技术文档 | 标题路径、段落、列表 | 把标题路径加入检索文本 |
| 法规合同 | 条款、子条款、定义 | 关联定义与生效版本 |
| 表格 | 表题、表头、相关行组 | 对子块重复必要表头 |
| 代码 | 声明、类、函数或 AST | 保留文件路径与符号关系 |
| 日志 | 事件、请求 ID、时间窗口 | 字段过滤优先于纯语义检索 |
Parent-Child 模式用小块提高检索精度,再扩展父章节恢复生成上下文。Overlap 应作为实验变量;一项 2026 年研究在其特定设置中没有发现 overlap 的可测收益,但该结论不能直接推广到所有文档类型。[15]
Late Chunking 先对长文本做上下文化编码,再按块 pooling,可减少局部指代失去上下文的问题,但需要兼容的长上下文 embedding 模型。[16]
4.2 Hybrid Retrieval:扩大候选覆盖
| 查询形态 | 优先能力 | 典型例子 |
|---|---|---|
| 精确字符 | BM25 | 错误码、产品编号、API 名称 |
| 语义改写 | Dense | 自然语言描述、同义问法 |
| 混合问题 | BM25 + Dense + RRF | 包含实体、限制条件和自然语言意图 |
| 多语言 | 多语言 analyzer + embedding | 中文查询、英文技术文档 |
查询改写不能替换原始查询。错误码或罕见专有名词经 LLM 改写后可能被“语义化”掉,因此原始查询、拼写修正和扩展查询应并行召回。
4.3 Reranker:用精确计算提高 Top-k 质量
Cross-Encoder 同时读取查询和候选文档,通常比独立向量编码更精确,但不适合扫描整个语料。标准结构是先快速召回数十个候选,再精排到少量最终证据。[17]
05|高级 RAG 的适用边界
| 技术 | 主要解决的问题 | 代价与限制 |
|---|---|---|
| Self-RAG | 按需检索,并对相关性、支持度和输出质量进行反思 | 训练与推理复杂度增加;结果依赖反思信号质量[4] |
| CRAG | 检索错误时评估、纠正或扩展信息 | 增加额外判断和查询链路[5] |
| RAPTOR | 长文档的多层次理解与跨段综合 | 需要递归聚类和摘要索引;摘要可能引入损失[6] |
| GraphRAG | 全局主题、关系和跨语料 sensemaking | 图构建与更新成本高,不应替代普通事实检索[7] |
| Agentic RAG | 多跳、查询分解、动态工具与来源选择 | 延迟、成本、非确定性与安全面显著扩大 |
先使用 Hybrid + Reranker + Parent-Child。
根据失败类别选择层次、图或 Agentic 结构。
06|黄金测试集与上线评测
RAG 的黄金用例不应只有“问题 + 标准答案”,而应包含原子答案要点、分级证据、禁止声明、答案可得性、用户身份、时效和预期行为。TREC RAG 也采用检索、答案要点、证据支持和生成质量相结合的分层评测。[18]
建议的测试集结构
| 类别 | 建议覆盖 | 关键失败 |
|---|---|---|
| 精确事实 | 编号、日期、定义 | 未召回、实体混淆 |
| 流程与多跳 | 前置条件、步骤、跨文档关系 | 要点缺失、顺序错误 |
| 表格数值 | 单位、表头、行列 | 数字拼接、单位丢失 |
| 歧义冲突 | 多版本、多个同名实体 | 不澄清、混合结论 |
| 无答案 | 语料缺失、超出范围 | 使用模型参数知识编造 |
| 安全边界 | ACL、注入、旧版本 | 越权召回、泄漏、工具误用 |
分层指标
| 层级 | 核心指标 | 解释 |
|---|---|---|
| 检索 | Recall@k、MRR、nDCG、Claim Coverage | 正确证据是否出现、出现得多早 |
| 上下文 | Context Precision、重复率、新鲜度 | 生成器看到的内容是否相关且有效 |
| 生成 | Completeness、Correctness、Faithfulness | 答案是否完整、正确且受证据支持 |
| 引用 | Citation Precision、Coverage、Locator Validity | 引用是否真的支持相邻声明 |
| 行为 | Answer/Abstain/Clarify/Refuse Accuracy | 系统是否采取正确动作 |
| 运行 | P95 延迟、成本、失败率、索引新鲜度 | 系统是否满足业务 SLA |
RAGAS、ARES 和 RAGChecker 分别提供自动化或细粒度评测框架;ARES 明确使用少量人工标注校准自动 judge,说明自动评测更适合作为规模化检查,而非取消人工判断。[9][10][11]
07|安全与治理
检索内容是不可信数据。Indirect Prompt Injection 研究表明,攻击者可以把指令植入可能被系统检索的外部内容,从而操控模型或工具行为。[19]
ACL、租户和敏感等级过滤必须在检索阶段生效,而不是生成后再隐藏。[20]
检索文本只作为证据,不得自动提升为系统指令或工具调用授权。
工具采用 allowlist、短期凭据和独立授权,不能由文档内容解锁。
保存过滤、召回、重排、最终证据、模型和配置版本,但避免记录无权内容。
08|实施路线与决策建议
| 阶段 | 建设内容 | 完成证据 |
|---|---|---|
| 0|定义边界 | 查询分类、语料边界、答案格式、风险等级 | 明确答案、拒答和澄清条件 |
| 1|检索基线 | 结构解析、BM25、Dense、RRF | 黄金查询集上的 Recall@k 与 nDCG |
| 2|生成闭环 | Reranker、Parent Expansion、引用、拒答 | 答案完整度、忠实度与引用正确性 |
| 3|生产治理 | ACL、版本、Trace、Shadow、Canary、回滚 | 零硬失败,运行指标满足 SLA |
| 4|定向升级 | RAPTOR、GraphRAG、Agentic 或自反思 | 在具体失败类别上显著优于基线 |
建议的第一轮消融实验
- BM25。
- Dense Retrieval。
- BM25 + Dense + RRF。
- Hybrid + Cross-Encoder Reranker。
- Hybrid + Reranker + Parent Expansion。
- 在失败类别上分别测试 Query Rewrite、Late Chunking 或高级 RAG。
每次实验只改变一组变量,并冻结语料快照、测试集、模型版本、提示版本和 judge 版本。否则分数变化无法归因。
最终建议
对大多数企业知识库,优先建设可评测、可追踪、可回滚的 Hybrid RAG 基线。高级 RAG 的价值不在于架构名称,而在于它是否解决了已经被黄金测试集证实的失败模式。
09|参考资料
- Lewis et al. Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks.
- Karpukhin et al. Dense Passage Retrieval for Open-Domain Question Answering.
- Thakur et al. BEIR: A Heterogeneous Benchmark for Zero-shot Evaluation of Information Retrieval Models.
- Asai et al. Self-RAG: Learning to Retrieve, Generate, and Critique through Self-Reflection.
- Yan et al. Corrective Retrieval Augmented Generation.
- Sarthi et al. RAPTOR: Recursive Abstractive Processing for Tree-Organized Retrieval.
- Edge et al. From Local to Global: A Graph RAG Approach to Query-Focused Summarization.
- Liu et al. Lost in the Middle: How Language Models Use Long Contexts.
- Es et al. RAGAS: Automated Evaluation of Retrieval Augmented Generation.
- Saad-Falcon et al. ARES: An Automated Evaluation Framework for RAG Systems.
- Ru et al. RAGChecker: A Fine-grained Framework for Diagnosing RAG.
- Santhanam et al. ColBERTv2: Effective and Efficient Retrieval via Lightweight Late Interaction.
- Microsoft Learn. Hybrid Search Overview.
- Microsoft Learn. Chunk and Vectorize by Document Layout or Structure.
- Bennani and Moslonka. A Systematic Analysis of Chunking Strategies for Reliable Question Answering.
- Günther et al. Late Chunking: Contextual Chunk Embeddings Using Long-Context Embedding Models.
- Sentence Transformers. Retrieve & Re-Rank.
- TREC Retrieval-Augmented Generation Track.
- Greshake et al. Compromising Real-World LLM-Integrated Applications with Indirect Prompt Injection.
- Microsoft Learn. Document-Level Access Control.