RAG Engineering MOC
RAG 与知识库工程化知识地图:从文档摄入到检索生成的完整管线,覆盖 Chunking、Embedding、Vector Store、Retriever、Reranker、Citation、Grounding。
#moc
#growing
#ai
#architecture
[!info] related notes
RAG Engineering MOC
知识总览
filters:
and:
- 'file.ext == "md"'
- 'file.inFolder("z")'
- 'this.file.links.contains(file)'
- 'file.path != this.file.path'
formulas:
knowledge: 'file.asLink(title)'
properties:
formula.knowledge:
displayName: 知识
note.description:
displayName: Description
note.mastery:
displayName: Mastery
views:
- type: table
name: 知识总览
order:
- formula.knowledge
- note.description
- note.mastery
columnSize:
formula.knowledge: 280
note.description: 760
note.mastery: 56
[!abstract] 核心认识 RAG 不是“向量搜索后把文本塞给模型”,而是一条从知识摄入、切分、索引、查询理解、召回、重排、上下文组装到引用和评测的证据管线。生成质量的上限常由检索质量和证据边界决定。
一张图看完整管线
Sources
→ Parse / Normalize
→ Chunk + Metadata
→ Embedding / Keyword Index
→ Retrieve
→ Filter / Hybrid Search
→ Rerank / Compress
→ Context Builder
→ Generate with Citation
→ Retrieval + Faithfulness Eval
推荐阅读顺序
- RAG:问题与核心架构。
- 文档摄入、文档分块、Chunk Metadata。
- Embedding 模型、向量数据库。
- 语义搜索、关键词搜索、混合检索。
- Query Rewriting、Multi-query Retrieval。
- Reranker、上下文压缩。
- Source Grounding、引用生成。
- Faithfulness 校验、意图感知重排。
每层解决什么
| 层 | 核心问题 |
|---|---|
| Ingestion | 原始资料能否稳定解析、去重和版本化 |
| Chunking | 检索单位是否保留完整语义和上下文 |
| Metadata | 能否按来源、权限、时间、实体过滤 |
| Retrieval | 相关证据是否被召回 |
| Reranking | 最有用证据是否排到前面 |
| Context Assembly | 证据是否在预算内、顺序合理、无冲突 |
| Generation | 回答是否受证据约束并正确引用 |
| Eval | 漏召回、错误引用和无证据推断能否被发现 |
检索质量与生成质量要分开
Retrieval Recall
→ 需要的证据有没有进入候选集
Ranking Precision
→ 前几条是不是最相关证据
Faithfulness
→ 回答是否被提供的证据支持
Answer Relevance
→ 是否真正回答用户问题
最终答案错误时,先判断是没检到、排错了、上下文组装错了,还是模型无依据推断。
权限与时效
RAG 也是数据访问系统,必须处理:
- tenant / user permission filter;
- source authority;
- version / updated time;
- deletion and reindex;
- PII / confidential data;
- citation provenance。
不要先全局召回敏感内容,再要求模型“不要泄露”。
最小可验证实验
- 建 20~50 条带来源和元数据的小语料。
- 准备能明确判断相关文档的 query 集。
- 分别测 keyword、vector、hybrid 和 rerank。
- 记录 top-k recall、MRR/nDCG 或任务相关指标。
- 检查无证据问题是否拒答或追问。
- 检查引用是否真的支持对应 claim。
常见反模式
- 只凭相似度阈值判断“有无答案”;
- Chunk 没有文档/章节/权限元数据;
- Top-k 固定且不考虑问题类型;
- 把所有召回结果直接拼接;
- 只评最终回答,不评 retrieval;
- 知识更新后旧 chunk 未删除或版本混用。