RAG 系统有哪些常见陷阱- [rag-implementation-pitfalls-best-practices]
RAG 系统有哪些常见陷阱?
从检索质量、上下文处理到生成效果,避坑指南
原题:在实现RAG系统时,有哪些关键的技术细节和常见陷阱需要特别注意?请从检索质量、上下文处理、生成效果等方面进行分析。
重排与优化 · 美团真题
30 秒回答
- 检索阶段:分块策略、embedding选型、多路召回、重排序优化
- 上下文处理:窗口长度控制、冗余去重、相关性过滤
- 生成阶段:prompt工程、引用溯源、幻觉抑制
- 系统层面:延迟优化、缓存策略、离线评估体系
回答与解析
答案要点
检索阶段:分块策略、embedding选型、多路召回、重排序优化
上下文处理:窗口长度控制、冗余去重、相关性过滤
生成阶段:prompt工程、引用溯源、幻觉抑制
系统层面:延迟优化、缓存策略、离线评估体系
一、检索质量
分块策略
按语义分块优于固定长度,可用LLM辅助判断边界
块大小一般256-512 tokens,需保留上下文重叠(overlap)
表格/代码等特殊内容需单独处理,不能粗暴切分
Embedding与召回
领域数据务必微调embedding,通用模型域外效果差
多路召回:向量检索 + 关键词(BM25)+ 知识图谱
重排序(Rerank)是性价比最高的优化,Cross-Encoder比Bi-Encoder准但慢
常见陷阱
只测Top-1命中率,忽略MRR和召回率
向量维度高≠效果好,768/1024够用,关注训练数据质量
二、上下文处理
窗口管理
检索结果去重:MMR算法或语义去重避免重复段落
相关性过滤:设阈值剔除低分chunk,宁可少也不要噪声
动态窗口:根据问题复杂度调整检索数量(简单问题3-5条,复杂问题10条+)
结构化组织
【来源1】xxx.txt
内容:...
【来源2】yyy.pdf
内容:...
- 显式标注来源,方便生成阶段引用和溯源
三、生成效果
Prompt设计
明确指令:"仅基于以下材料回答,不知道就说不知道"
加入CoT引导:"先分析材料,再给出结论"
幻觉抑制
要求模型生成引用标记,事后校验答案与原文一致性
置信度打分:让模型自评答案可靠性,低置信度转人工
常见陷阱
检索内容多但生成忽略,需监控context utilization
多文档冲突时无仲裁策略,应提示模型说明分歧
四、系统层面
- 延迟优化:向量检索关键一句:RAG评估要分离检索和生成,分别用Recall@K和F1/人工评分,但更关键的是在线效果指标。
面试官还可能这样问
- 问法 1 · 场景切入我看你做过知识库问答系统。假设用户问了一个订单问题,系统从文档里检索出5段内容,但最后生成答案时却忽略了最相关的两段,或者把两段矛盾的信息混在一起回答——你觉得这种问题可能出在哪个环节?
- 问法 2 · 层层追问RAG系统里检索回来的内容你怎么喂给模型?……如果一次检索了10段,但上下文窗口只能塞5段,你怎么办?……那你怎么保证选出来的5段是最有用的,而不是重复或者无关的?
- 问法 3 · 直球架构实现一个RAG系统,从检索质量、上下文处理、生成效果三方面,你觉得哪些技术细节最关键?常见的坑有哪些?比如分块策略、重排序、幻觉抑制这些,说说你的经验。