RAG 系统有哪些常见陷阱- [rag-implementation-pitfalls-best-practices]

article
2026年7月21日阅读约 1 分钟105 字

更新于 2026年7月21日

RAG 系统有哪些常见陷阱?

从检索质量、上下文处理到生成效果,避坑指南

原题:在实现RAG系统时,有哪些关键的技术细节和常见陷阱需要特别注意?请从检索质量、上下文处理、生成效果等方面进行分析。

重排与优化 · 美团真题

30 秒回答

  1. 检索阶段:分块策略、embedding选型、多路召回、重排序优化
  2. 上下文处理:窗口长度控制、冗余去重、相关性过滤
  3. 生成阶段:prompt工程、引用溯源、幻觉抑制
  4. 系统层面:延迟优化、缓存策略、离线评估体系

回答与解析

答案要点

  • 检索阶段:分块策略、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. 问法 1 · 场景切入我看你做过知识库问答系统。假设用户问了一个订单问题,系统从文档里检索出5段内容,但最后生成答案时却忽略了最相关的两段,或者把两段矛盾的信息混在一起回答——你觉得这种问题可能出在哪个环节?
  2. 问法 2 · 层层追问RAG系统里检索回来的内容你怎么喂给模型?……如果一次检索了10段,但上下文窗口只能塞5段,你怎么办?……那你怎么保证选出来的5段是最有用的,而不是重复或者无关的?
  3. 问法 3 · 直球架构实现一个RAG系统,从检索质量、上下文处理、生成效果三方面,你觉得哪些技术细节最关键?常见的坑有哪些?比如分块策略、重排序、幻觉抑制这些,说说你的经验。