状态传导图
删除、版本和权限变化必须同步到派生索引与缓存;否则“搜得准”仍可能拿到旧证据或越权证据。
观察点 01
先定义证据记录,再生成索引
每个证据单元都要绑定 evidence_id、原文位置、来源 URI、版本或生效时间、ACL 和内容哈希。Dense 向量与 BM25 倒排表是指向证据记录的派生索引;SQL、网页或 API 也可以请求时读取。
- 证据可追溯性身份已绑定
- 答案已生成尚未
Embedding 可以重算,证据身份和来源链不能丢。
RAG 不等于“接一个向量库”。可靠系统要把资料版本、调用者权限、候选证据、上下文选择、回答主张和引用连成可回放的证据链。
状态传导图
删除、版本和权限变化必须同步到派生索引与缓存;否则“搜得准”仍可能拿到旧证据或越权证据。
观察点 01
每个证据单元都要绑定 evidence_id、原文位置、来源 URI、版本或生效时间、ACL 和内容哈希。Dense 向量与 BM25 倒排表是指向证据记录的派生索引;SQL、网页或 API 也可以请求时读取。
Embedding 可以重算,证据身份和来源链不能丢。
状态传导图
授权过滤应在证据进入模型前发生;共享索引、缓存和多租户环境都要覆盖。
观察点 02
系统可先做查询计划,再由服务端授权层按调用者身份和 ACL 收窄可见空间。随后才调用 Dense、BM25、SQL、网页或图检索器,并记录每条候选的来源检索器、名次和分数。
LLM 可以建议过滤条件,不能给自己授予访问权限。
状态传导图
正确证据可能已召回却被重排或预算淘汰;这类失败不能归因成同一个“检索差”。
观察点 03
候选要先融合、去重与重排,再检查版本冲突和重复来源,并在 Token 预算内选择最终证据。证据文本必须始终与 evidence_id、来源、版本和位置映射绑定。
“找到了”是候选事实,“选进上下文”是另一项系统决策。
状态传导图
保存问题、候选、证据包、模型版本、验证结果和最终答案,才能回放整条证据链。
观察点 04
LLM 根据证据包生成草稿后,系统拆分可验证主张,检查所引片段是否真的支持、版本是否冲突、权限是否仍有效。证据不足时应拒答或明确不确定,而不是补一个看似合理的结论。
有引用不等于引用正确;忠实于资料也不等于资料本身正确。
你现在应该能解释:有引用不等于引用正确;忠实于资料也不等于资料本身正确。
RAG(Retrieval-Augmented Generation,检索增强生成)在生成前或生成过程中检索外部证据,让模型接入私有、可更新或实时资料。向量检索只是其中一种实现;只有把来源、版本、权限、证据片段、回答主张与引用连起来,系统才真正具备可追溯性。
只靠模型参数作答时,知识更新困难、出处不透明,也通常没有未提供的企业内部资料。RAG 把当前任务需要的证据带进上下文,用来缓解这些问题;它不会自动保证资料正确、召回完整、回答忠实或权限安全。
“解析 → 索引 → 检索 → 生成”是常见执行顺序,不是所有 RAG 的固定架构。企业文档通常预建索引;SQL、网页、知识图谱和业务 API 可以在请求时读取。稳定不变的是四份可验收合同。
定义什么是一个证据单元,并为它保存 evidence_id、原文/页面、来源 URI(Uniform Resource Identifier,统一资源标识符)、版本或生效时间、权限 ACL(Access Control List,访问控制列表)与内容哈希。切块和 Embedding 只是派生表示,不能丢掉原始证据身份。
输入不只是 query,还包括调用者身份、时间与过滤条件;输出是带检索器、名次/分数和证据 ID 的候选集。权限过滤应在候选进入模型前执行,不能等回答生成后再“遮掉”。
融合、去重、重排和 Token 预算共同决定最终上下文。每段都要与来源、版本、页码/行号保持绑定;同一事实的冲突版本不能静默拼接成一个答案。
定义哪些主张必须有引用、证据不足何时拒答、怎样检查引用蕴含关系,以及记录哪些检索轨迹。引用存在不等于引用正确,忠实于资料也不等于业务事实一定正确。
常见稠密路把 query 与证据编码为 Embedding,再按余弦或点积配合 ANN(Approximate Nearest Neighbor,近似最近邻)索引找候选;词法路可用 BM25 倒排索引。两路可以并存,也可以完全不用向量检索。
适合 PDF、知识库和历史工单。资料变更后要增量同步或重建派生索引,并验证删除、版本和权限变更已经传播。
库存、订单、SQL、网页或 API 常在请求时读取。这里的“检索”是查询或工具调用,不一定产生向量,也不一定存在离线 chunk。
当问题要求跨文档关系或全局主题时,可用知识图谱、社区摘要或层级检索;它们改变证据选择方式,仍需回到可核对的底层来源。
把四份合同落到地上:用一个具体场景 + 一个问题,看每一步到底调用什么模型 / 数据库、输入输出长什么样。(下面的知识库与数字是演示示例,非真实政策。)
这是一个可替换组件的参考实现:规则切块不用模型,语义切块可能调用 Embedding 或 LLM;BM25、RRF 与 HNSW(Hierarchical Navigable Small World,分层可导航小世界)是算法,不是神经模型。产品名仅用于把张量维度和调用边界讲具体,不代表推荐清单。
| 步骤 | 用什么模型 | 输入 → 输出 |
|---|---|---|
| ①解析 | 可选:扫描件/复杂版面走 OCR(Optical Character Recognition,光学字符识别)/视觉模型,数字原生 PDF 可直接抽取 | 原始文档 → 尽量保留结构的 Markdown |
| ②切块 | ❌ 不用(按标题/长度规则切) | Markdown → 512 token、重叠 80 的块 |
| ③加上下文 | ✅ 一个 LLM(Large Language Model,大语言模型)(给每块补一小段「它在讲什么」) | 块 + 全文 → 块 + 约 50–100 token 上下文(Anthropic 实现) |
| ④a 向量化(dense) | ✅ Qwen3-Embedding-0.6B | 文本块 → 1024 维稠密向量 |
| ④b BM25 词法路 | ❌ 不用神经模型(分词+词频统计) | 文本块(中文通常需分词) → terms 与倒排索引 |
| ⑤入库 | ❌ 不用(HNSW 是索引算法) | 派生索引 + 原文 + 证据 ID / 版本 / ACL → 检索存储 |
| ⑥查询计划 | 可选:规则或一个 LLM | 问题 + 会话 → 实体、过滤条件与多条 query |
| ⑦权限过滤 | ❌ 应由确定性授权层执行 | 调用者身份 + ACL → 当前可见候选空间 |
| ⑧a 检索·稠密路 | ✅ Qwen3-Embedding-0.6B(示例) | query → 向量 → 匹配配置一致的近邻 top-20 |
| ⑧b 检索·BM25 路 | ❌ 不用神经模型 | query terms → 词法命中 top-20 |
| ⑧c RRF 融合 | ❌ RRF(Reciprocal Rank Fusion,倒数排名融合)不用模型,只看名次 | 按 Σ 1/(k+rank) 合并并去重,本例取论文中的 k=60 |
| ⑨重排 | ✅ bge-reranker-v2-m3(示例的联合 query-passage 评分器) | query + 20 片段 → 精排 top-5 |
| ⑩生成 / 校验 | ✅ 生成模型;校验可混合规则、NLI(Natural Language Inference,自然语言推断)/LLM 与人工 | 问题 + 证据包 → 回答/拒答 + 引用 + 校验轨迹 |
7 月入职 → 转正后当年上限 2 天」(示例)。1 − Recall@20 定义检索失败率,报告 Contextual Embedding + Contextual BM25 将其从 5.7% 降到 2.9%;不能直接外推到所有知识库。k=60,且名次从 1 开始:A 得分 1/61 + 1/63 ≈ 0.03227;B 得分 1/64 + 1/61 ≈ 0.03202,因此 A 略高。RRF 融合的是名次而非不同检索器不可直接比较的原始分数。| 环节 | 选型(示例) | 干什么 |
|---|---|---|
| 文档解析 | LlamaParse / Docling / Unstructured | PDF/Office/网页/扫描件 → 尽量保留表格与版面的结构化文本 |
| 切块 + 上下文 | 512 token/重叠 80 + Contextual Retrieval | 切成检索单元,每块补一句「它在讲什么」 |
| Embedding | Qwen3-Embedding / BGE-M3 / OpenAI text-embedding-3 | 文本 → 稠密向量;输出维度、归一化与指令格式以模型卡为准 |
| 检索存储 | HNSW 向量索引 + BM25 倒排索引(示例) | 派生索引指向同一证据 ID,并保存原文、来源、版本与 ACL |
| 查询计划 | 规则 / 任一经评测的生成模型 | 问题 → 实体、过滤条件与一条或多条 query |
| 重排 | bge-reranker-v2-m3 / Qwen3-Reranker / Cohere Rerank | 粗召回 top-20 → 精排 top-5 |
| 生成模型 | 满足领域质量、上下文、数据出域与 SLO(Service Level Objective,服务水平目标)的模型 | 依据证据作答或拒答,并输出可解析的引用映射 |
| 验证 / 评估 | 确定性检查 + RAGAS 等框架 + 人工校准 | 分别测召回、排序、证据支持、业务正确性、权限、延迟与成本 |
朴素的“切块 → 单路向量 top-k → 塞进 Prompt”容易在证据单元、召回、选择或上下文预算处失败。下面的方法改变的是不同环节;只有在同一业务集上做逐项消融,才知道收益来自哪里。
| 技巧 | 解决什么 |
|---|---|
| 切块策略Chunking | 块太大可能噪声多,太小可能丢上下文;可按语义/标题切、加重叠并附元数据,但没有通用最优块长与重叠率 |
| 上下文检索Contextual Retrieval (Anthropic 2024) | 给 chunk 补充其在全文中的语境,再建立 Embedding 与 BM25 索引。Anthropic 在各知识域平均、最优 Gemini Text 004 配置下,以 1 − Recall@20 定义失败率:两者结合从 5.7% 降到 2.9%(相对下降 49%);从 top-150 候选重排并保留 top-20 后为 1.9%(相对下降 67%)。这是厂商实验,不是通用增益 |
| 混合检索Hybrid Search | 向量语义检索与 BM25 词法检索互补;是否提升取决于分词、候选数、融合与数据,不能保证总比单路好 |
| ColBERTlate-interaction 多向量检索 | 保留查询与文档 token 的多向量并做 late interaction;原论文展示了特定基准上的质量/效率折中,但存储和索引成本高于单向量 |
| 重排Reranker | 先粗召回,再让联合读取 query-passage 的分类式、生成式或其他排序器逐条评分;它可能改善选择,但救不回未召回的证据,并会增加延迟与成本 |
| 查询改写Query Rewriting | 把口语问题改写/拆成多个更好检索的查询(multi-query) |
| HyDEHypothetical Document Embeddings | 先让 LLM 生成一个假想文档,再编码它用于零样本稠密检索;它可能改善短查询,也可能因假想内容偏离而带来查询漂移 |
| GraphRAGGraph Retrieval-Augmented Generation | Microsoft GraphRAG 构建实体关系与社区摘要,面向跨语料的全局问题。Microsoft 在 5,590 篇 AP 新闻、100 条合成查询(50 local / 50 global)上用 LLM 两两比较回答,报告 LazyGraphRAG 索引成本为完整版的 0.1%;同一配置处理 global queries 时,答案质量相近而查询成本低逾 700×。数字只属于这组厂商实验 |
| 多模态 RAGMultimodal RAG | 文档含图/表/版面时,用 VLM(Vision-Language Model,视觉语言模型)或跨模态检索保留视觉信息(如 VisRAG) |
| 自适应 / Agentic RAGAdaptive or agent-orchestrated retrieval | Self-RAG学习检索与反思 token,CRAG用 retrieval evaluator 触发纠错;它们是自适应/自反思方法示例,不等同于所有“Agentic RAG”。完整 Agent 编排还可能规划多源查询、循环检索并基于 Observation 决定停止 |
不要同时打开所有技巧:先固定语料、问题集与生成模型,只改一个变量,比较召回、选择、答案与成本。否则“答案变好”无法归因,也不知道回滚哪一环。
RAG 是串联系统:资料错误、候选没召回、正确证据没被选中、模型没忠实使用,都会得到错误答案。端到端正确率必须保留,但只有分层指标能定位该修哪一段。
Recall@k = |Relevant ∩ Top-k| / |Relevant|。先定义 relevance 的单位是 chunk、页面、文档还是事实;没有相对完整的相关性标注,分母就不可靠。
Precision@k、MRR(Mean Reciprocal Rank,平均倒数排名)与 nDCG(normalized Discounted Cumulative Gain,归一化折损累积增益)可描述位置质量,但 LLM 往往同时消费整组证据。传统 IR 排名分数是组件诊断,不是答案质量代理。
把回答拆成可验证主张,分别测“是否被证据支持”“该引用是否指向支持片段”“应引用的主张是否都引用”。忠实于错误或过期资料,仍可能业务错误。
测最终任务正确率、证据不足时的拒答、权限泄露、时效、p50/p95 延迟、成本与失败恢复。SLO 指服务水平目标;高风险问题还需要专家抽检和可回放日志。
{A, B},top-5 返回 [A, X, B, Y, Z],则 Recall@5 = 2/2 = 1.0,Precision@5 = 2/5 = 0.4;第一条相关结果排第 1,所以这个 query 的 reciprocal rank 为 1。Embedding 模型决定稠密检索如何表示“相似”,但它只是解析、切块、查询、索引、融合与重排中的一环。选型不能只抄榜单,要用自己的查询和相关文档复测。
| 模型 | 维度 / 上下文 | 亮点 | 部署 |
|---|---|---|---|
| Qwen3-Embedding0.6B / 4B / 8B | 最高 1024 / 2560 / 4096 维 · 32K | 官方模型卡支持指令与 32 维起的自定义输出;论文覆盖多语言、跨语言和代码检索 | 开源权重 |
| BGE-M3BAAI | 1024 维 · 最长 8192 token | 同一模型支持 dense、learned sparse 与 multi-vector 三种检索表示 | 开源权重 |
| OpenAI text-embedding-3small / large | 默认 1536 / 3072 维 · 可传 dimensions | OpenAI 2024 发布说明称,large 缩至 256 维后在其 MTEB 口径中仍高于 1536 维 ada-002;输入上限与可用性以当前 API 文档为准 | API |
💡 MRL / 可截断表示的直觉:MRL(Matryoshka Representation Learning,套娃式表示学习)等训练方法让向量前缀也能作为较短表示;不支持的模型不能随意砍尾部。手算存储:100 万条 float32 向量,3072 维原始数据约 12.288 GB,768 维约 3.072 GB,正好少 4 倍(十进制 GB,均未计索引、元数据和副本)。缩短后必须重建索引并复测。
文本 embedding 只编码文字;多模态 / VL(Vision-Language)embedding 可把模型支持的文字、图片或视频表示到可比较的空间,于是能够做以文搜图等跨模态检索。具体支持哪些模态取决于模型,不能一概而论。
| 模型 | 模态 | 适用 |
|---|---|---|
| CLIPOpenAI research, 2021 | 文 + 图 | 用 4 亿图文对做对比学习;论文重点展示图文对齐与零样本迁移,是理解共享表示空间的经典起点 |
| SigLIPGoogle research, 2023 | 文 + 图 | 以 sigmoid loss 替代 CLIP 的全局 softmax 式对比损失;是否优于 CLIP 取决于模型版本和任务 |
| ColPalivisual document retrieval, 2024 | 查询文本 + 文档页图像 | 从整页图像生成多向量,用 late interaction 做视觉文档页面检索 |
这三者解决的问题有重叠,也常组合使用。选择依据应是知识更新频率、资料规模、行为定制需求、延迟、成本和可验证性,而不是固定口号。
| 方案 | 擅长 | 短板 |
|---|---|---|
| RAG | 外部知识规模大、更新频繁,或需要按权限检索并提供可核对出处 | 依赖资料治理、检索与引用校验;系统链路较复杂 |
| 微调 SFT | 主要用于教行为、格式、口吻与任务模式,也能影响事实记忆 | 不是可靠、可追溯的知识库;更新事实通常要再训练与验证(见 SFT 三盒子) |
| 长上下文 | 资料集合较小且能在单次请求中提供时,减少检索链路 | 输入成本和延迟随长度增加;相关信息在长输入中的利用率仍需实测 |
常见组合是:用 SFT(Supervised Fine-Tuning,监督微调)约束输出行为,用 RAG 提供可更新证据;当候选资料很少时直接放进长上下文,很多时先检索再放入上下文。引用和权限并非 RAG 自动拥有:必须在检索层执行访问控制、保存 provenance(证据来源链),并在输出层校验引用。
候选集没有关键证据,后续重排与生成通常救不回来;但召回完整也不代表模型一定会正确使用。
缓解:先做错误分层,再按数据选择混合检索、查询改写、扩大候选或补索引。
关键信息被从中间切断,或一块里塞太多无关内容。
缓解:按语义/结构切、加重叠、保留标题层级。
塞太多片段反而稀释重点,模型被无关内容带偏。
缓解:精排只留最相关几条、压缩上下文。
模型可能忽略、误读或错误拼接检索内容;知识库本身也可能过期、冲突或错误。即使证据正确,“检索到”也不等于“回答已被证据支持”。
缓解:除提示约束外,对答案做主张拆分、蕴含/引用校验,并允许证据不足时拒答。
说「据某文档」,但答案其实对不上那段来源。
缓解:让模型逐句标注出处、做引用校验。
一个自动 judge 分数无法区分资料、召回、排序、证据支持与业务正确性,也可能继承 judge 偏差。
缓解:同时保留分层指标、端到端任务集、失败切片与人工校准。
只在前端隐藏链接或生成后删敏感句,都挡不住模型已经读到无权访问的内容;缓存和共享索引也可能混淆租户。
缓解:用服务端身份与文档级 ACL 做检索时安全裁剪,覆盖缓存、派生索引和删除传播,并持续做越权测试。
网页、邮件或文档中的恶意文本可能诱导模型忽略系统规则、泄露数据或调用工具;“这是检索资料”不等于可信指令。
缓解:把证据视为不可信数据,隔离指令与内容,使用最小权限工具、允许列表与输出校验;检测与清洗只能降风险,不能证明彻底安全。
| 问题 | 答案 |
|---|---|
| RAG 是什么 | Retrieval-Augmented Generation(检索增强生成):在生成前或生成中取回外部证据,不等于“接一个向量库” |
| 缓解什么 | 参数知识难更新、缺少私有资料与出处不透明;不能自动消灭幻觉或保证引用正确 |
| 四份合同 | ① 资料与版本 ② 身份与检索 ③ 证据包 ④ 回答、引用与拒答 |
| 检索靠什么 | 可用 dense embedding、BM25、SQL、图谱或网页搜索等;常做混合召回与 rerank |
| 最大的坑 | 把“查到片段”误当成“答案必然正确”;检索、资料、生成和引用都可能出错 |
| 进阶招式 | chunking、混合检索、reranker、查询改写、HyDE、GraphRAG、Agentic RAG |
| vs 微调/长上下文 | 通常用 RAG 提供外部证据、SFT 调整行为、长上下文承载当前资料;边界会重叠,按任务评测 |
本页于 2026-07-14 逐项核查。模型规格会更新,部署案例与厂商实验只说明其公开设置下的结果;选型时请回到最新模型卡,并在自己的数据上复现。
| 主题 | 一手来源 | 本页如何使用 |
|---|---|---|
| RAG 与稠密检索 | Lewis et al., 2020;DPR, 2020 | 原始 RAG 组合参数化生成器与可检索的非参数记忆,并使用 dense Wikipedia index;这是奠基实现,不是所有 RAG 的固定拓扑 |
| 部署案例 | OpenAI × Morgan Stanley 客户案例;LinkedIn SIGIR 2024 论文 | 分别标为厂商客户案例和作者报告的线上部署结果,不作独立因果证明 |
| 融合与进阶检索 | RRF 原论文;ColBERT;HyDE | 区分排名融合、token 级 late interaction 与假想文档检索;RRF 手算沿用论文的 1-based rank 与实验参数 k=60 |
| Contextual Retrieval | Anthropic 工程报告,2024-09-19 | 保留 5.7%→2.9%→1.9%,同时写明各知识域平均、最优 Gemini Text 004、1−Recall@20、rerank top-150→20 与厂商实验边界 |
| GraphRAG | GraphRAG 预印本;Microsoft LazyGraphRAG 实验 | 0.1% 与 700× 只描述 Microsoft 公布的特定数据、查询和成本对比 |
| Agentic RAG | Self-RAG;CRAG | 作为两种研究方法示例,不暗示所有 Agentic RAG 都采用它们 |
| RAG 评估 | RAGAS, EACL 2024;Ragas 当前指标文档;Utility-aware retrieval evaluation, EACL 2026 | 原始 RAGAS 的三维度与后续库指标分开;自动 judge 不是事实真值,检索组件指标也不能替代端到端任务评测 |
| 文本 embedding | MTEB;C-Pack / C-MTEB;Qwen3 官方模型卡;BGE-M3 官方模型卡 | 核对 benchmark 覆盖、模型输出维度、上下文和表示类型;不把总榜平均分当成业务检索结论 |
| 重排模型 | BGE reranker 模型卡;Qwen3 Reranker 模型卡 | 核对联合读取 query-passage、上下文规格和分数解释;不设置跨模型通用阈值 |
| OpenAI embedding | 官方模型页;Embeddings API;2024 发布说明 | 核对默认 1536/3072 维、dimensions 与 256 维 MTEB 对比;输入上限和可用性回到当前 API 文档,不从旧发布稿推断 |
| 权限与注入风险 | Azure AI Search 文档级访问控制;OWASP LLM08;OWASP LLM01 | 访问控制要进入检索查询与数据治理;检索内容按不可信数据处理,间接提示注入没有只靠提示即可彻底解决的办法 |
| 多模态检索 | CLIP;SigLIP;ColPali | 用经典论文解释共享空间与视觉文档检索,删去未逐项验证的动态产品榜单和营销数字 |