RAG 知识库工程化实践
RAG 知识库工程化实践
Retrieval-Augmented Generation(RAG)是当前最主流的大模型应用模式之一。本文从工程实践出发,梳理 RAG 系统的完整搭建流程。
为什么需要 RAG
大模型虽然能力强大,但存在三个核心局限:
- 知识时效:训练数据有截止日期
- 幻觉问题:会”编造”看似合理但实际错误的内容
- 私域知识:无法回答企业内部文档相关的问题
RAG 通过在生成前先检索相关文档,把外部知识注入到大模型的上下文窗口,能有效缓解这些问题。
RAG 的核心流程
1 | 用户提问 |
文档处理流水线
1 | 原始文档(PDF / Word / Markdown / HTML) |
切片策略
切片粒度直接决定检索质量。常见策略:
- 按段落切片:保留语义完整,但长度不可控
- 按固定长度切片:可控,但可能切断语义
- 按结构切片:根据标题层级切分
- 滑动窗口:相邻切片有重叠,提升召回率
工程实践推荐:结构优先 + 滑动窗口兜底。
检索增强
单一向量检索容易召回噪声。生产环境通常采用混合检索:
- BM25(关键词)
- 向量检索(语义)
- 重排序(Cross-Encoder)
三种方式按权重融合后送入 LLM。
工程化重点
| 维度 | 关键点 |
|---|---|
| 增量更新 | 文档变动触发局部索引刷新 |
| 权限隔离 | 不同用户检索范围受控 |
| 引用溯源 | 回答必须可点击跳转到源文档 |
| 评估体系 | 准确率 / 召回率 / 延迟监控 |
| 成本控制 | Embedding / LLM 调用成本优化 |
小结
RAG 不是简单的”塞文档给大模型”,而是一套需要持续打磨的检索增强工程体系。本站后续会持续更新 RAG 相关的工程实战文章。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 高晓庄 札记!
