跳转到内容

RAG Answer Quality Is Poor(RAG 回答质量差)

知识库位置:FDE Knowledge Base/03 Engineering/Troubleshooting/RAG-Answer-Quality-Is-Poor.md

用户反馈:

RAG(Retrieval-Augmented Generation,检索增强生成)的回答经常不准确、遗漏信息,或者答非所问。

常见表现:

  • 回答包含错误事实
  • 正确知识存在,但回答没有使用
  • 回答缺少关键细节
  • 同一个问题结果波动较大
  • Citation(引用溯源)与答案不一致
  • 用户认为答案「不可信」

不要直接得出:

模型不够强。

RAG 问题应该至少拆成:

Retrieval Problem(检索问题)
vs
Generation Problem(生成问题)
Wrong Answer(回答错误)
↓
Was correct information retrieved?(正确信息被检索到了吗)
├─ No → Retrieval Problem(检索问题)
└─ Yes
↓
Did model use the information correctly?(模型正确使用信息了吗)
├─ No → Generation / Prompt Problem(生成/提示词问题)
└─ Yes → Evaluation / Requirement Problem(评估/需求问题)

Possible Cause 1:Relevant Document Not Retrieved(相关文档未被检索)

Section titled “Possible Cause 1:Relevant Document Not Retrieved(相关文档未被检索)”

检查:

  • Query(查询)
  • Retrieved chunks(检索到的内容块)
  • Top-K(返回条数)
  • Similarity score(相似度得分)

如果正确文档根本没进入 Context(上下文):

不应该先改 Prompt(提示词)。

  • 调整 Chunking(分块)
  • 改进 Query Rewrite(查询改写)
  • 调整 Embedding(向量化)
  • 增加 Hybrid Search(混合检索)
  • 使用 Metadata Filter(元数据过滤)
  • 调整 Top-K
  • 增加 Reranking(重排序)

Possible Cause 2:Correct Document Retrieved, Wrong Chunk(检索到正确文档但取错块)

Section titled “Possible Cause 2:Correct Document Retrieved, Wrong Chunk(检索到正确文档但取错块)”

说明文档粒度可能有问题。

例如:

Policy Document(政策文档)
↓
Chunk 1: Policy title(块 1:政策标题)
Chunk 2: Exception rule(块 2:例外规则)

如果问题需要 Exception Rule(例外规则),但只取到了标题,就会失败。

  • 调整 Chunk Size(块大小)
  • 增加 Chunk Overlap(分块重叠)
  • 保留 Section Hierarchy(章节层级)
  • 使用 Parent-child Retrieval(父子检索)

Possible Cause 3:Context Too Large(上下文过大)

Section titled “Possible Cause 3:Context Too Large(上下文过大)”

Retrieved Context(检索上下文)太多可能导致:

  • Noise(噪声)
  • Conflicting information(冲突信息)
  • Attention Dilution(注意力稀释)

尝试:

Top 20(取前 20)
↓
Rerank(重排序)
↓
Top 5(精简到前 5)

而不是把所有内容都塞给模型。

Possible Cause 4:Prompt Does Not Enforce Grounding(提示词未强制有据回答)

Section titled “Possible Cause 4:Prompt Does Not Enforce Grounding(提示词未强制有据回答)”

Prompt 应明确:

  • 只能基于 Context(上下文)回答
  • 不确定时明确说明
  • 引用来源
  • 不允许填补未知事实

Possible Cause 5:Conflicting Sources(来源冲突)

Section titled “Possible Cause 5:Conflicting Sources(来源冲突)”

例如:

Policy v1(政策第 1 版)
Policy v2(政策第 2 版)
Policy v3(政策第 3 版)

全部进入 Index(索引)。

系统可能检索到旧政策。

需要建立:

  • Version(版本)
  • Effective Date(生效日期)
  • Active Status(生效状态)
  • Source Priority(来源优先级)

Possible Cause 6:Question Is Not a RAG Problem(问题本身不适合 RAG)

Section titled “Possible Cause 6:Question Is Not a RAG Problem(问题本身不适合 RAG)”

例如:

我的订单现在到哪里了?

这是 Transactional Data(事务数据)。

应该:

Order API(订单接口)

而不是 RAG。

  • 建立 Golden Dataset(黄金数据集)
  • 分别测 Retrieval(检索)和 Generation(生成)
  • 保留 Retrieval Trace(检索链路记录)
  • 文档带版本与 Metadata(元数据)
  • 定期执行 Regression Evaluation(回归评估)

如果多次调优后:

Retrieval quality good(检索质量良好)
+
Prompt stable(提示词稳定)
+
Data quality good(数据质量良好)

但结果仍无法满足要求,才考虑:

  • 更强模型
  • 更复杂 Retrieval(检索)
  • Domain-specific model(领域专用模型)
  • Workflow redesign(工作流重设计)