深入 RAG:检索增强生成系统的工程实践
大模型有两个硬伤:知识截止于训练时间,且容易"一本正经地胡说"。RAG(检索增强生成)正是为解决这两点而生——它把外部知识库接入生成流程,让模型"先查后答"。
一、RAG 的核心链路
一条完整的 RAG 链路包含四个阶段:索引、检索、重排、生成。
索引(Indexing):把文档切分成 Chunk,经嵌入模型编码为向量后存入向量数据库。
检索(Retrieval):用户提问同样编码为向量,通过相似度(余弦/内积)召回 Top-K 片段。
重排(Rerank):用 Cross-Encoder 对召回结果精排,把真正相关的内容提到前面。
生成(Generation):把筛选后的上下文与问题拼成 Prompt,交给大模型总结作答。
二、最容易被忽视的坑:Chunk 策略
很多人以为换更强的模型就能提升效果,但 RAG 的质量70% 取决于检索。而检索的第一步就是切分:
固定长度切分:简单,但容易割裂语义。
递归字符切分:按段落、句子层级递归,兼顾结构与长度,是较稳妥的默认选择。
语义切分:用嵌入相似度判断"话题是否转换",切片更连贯,但成本更高。
实践中建议:Chunk 之间保留 10%~20% 的重叠(Overlap),避免关键信息被切在两块之间而丢失。
三、进阶优化方向
混合检索(Hybrid Search):向量检索擅长语义,关键词检索(BM25)擅长精确匹配,两者融合能显著提升召回率。
查询改写:用户口语化提问时,先让模型改写成规范查询,再检索。
上下文压缩:只保留与问题强相关的句子,减少无关噪声对大模型的干扰。
- 点赞
- 收藏
- 关注作者
评论(0)