步骤 5(检索)。 如何调试检索质量

本页介绍了如何确定检索问题的根本原因。 当根本原因分析表明根本原因为 Improve Retrieval 时,请使用此页面。

检索质量可以说是 RAG 应用程序最重要的组成部分。 如果未为给定查询返回最相关的区块,则 LLM 无法访问生成高质量响应所需的信息。 检索不当可能会导致不相关、不完整或虚假输出。 此步骤需要手动分析基础数据。 Mosaic AI 代理框架与数据平台(包括 Unity 目录和矢量搜索)紧密集成,并使用 MLflow(包括 LLM 评估和 MLflow 跟踪)进行试验跟踪,从而能够更轻松地进行故障排除。

说明

请按照以下步骤解决检索质量问题:

  1. 打开 B_quality_iteration/01_root_cause_quality_issues 笔记本
  2. 使用查询加载具有检索质量问题的记录的 MLflow 跟踪。
  3. 对于每个记录,请手动检查检索的区块。 如果可用,请将它们与基本事实检索文档进行比较。
  4. 在检索质量较低的查询中查找模式或常见问题。 例如:
    • 矢量数据库完全缺少相关信息。
    • 检索查询返回的区块数或文档数不足。
    • 区块太小,缺少足够的上下文。
    • 区块太大,包含多个无关主题。
    • 嵌入模型无法捕获特定于域的术语的语义相似性。
  5. 根据发现的问题,假设潜在的根本原因和相应的解决方法。 如需指导,请参阅检索质量差的常见原因
  6. 请按照实施和评估更改中的步骤实施和评估潜在的解决方法。 这可能涉及修改数据管道(例如,调整区块大小或尝试其他嵌入模型)或修改 RAG 链(例如,实现混合搜索或检索更多区块)。
  7. 如果检索质量仍然不令人满意,请重复步骤 4 和 5 进行下一个最有希望的修复,直到达到所需的性能。
  8. 重新运行根本原因分析,以确定整个链中是否有任何其他需要解决的根本原因。

检索质量差的常见原因

下表列出了常见检索问题的调试步骤和可能的解决方法。 解决方法按组件分类:

  • 数据管道
  • 链配置
  • 链代码

该组件在实施和评估更改步骤中定义了你应遵循的步骤。

检索问题 调试步骤 可能的修复方法
区块太小 - 检查区块中未完成的截止信息。 - 数据管道 增加区块大小或重叠。
- 数据管道 尝试不同的分块策略。
区块太大 - 检查检索的区块是否包含多个不相关的主题。 - 数据管道 减小区块大小。
- 数据管道 改进分块策略,以避免混合不相关的主题(例如语义分块)。
关于从中获取区块的文本,区块没有足够的相关信息 - 评估每个区块缺少上下文是否会导致检索的结果混淆或歧义。 - 数据管道 尝试向每个区块添加元数据和标题(例如节标题)。
- 链配置 检索更多区块,并使用具有更大上下文大小的 LLM。
嵌入模型无法准确理解用户查询中的域或关键短语 - 检查是否为同一查询检索了语义上类似的区块。 - 数据管道 尝试不同的嵌入模型。
- 链配置 尝试混合搜索。
- 链接代码 过度提取检索结果,然后重新排序。 仅将重新排序后排名靠前的结果馈送到 LLM 上下文中。
- 数据管道 微调领域专用数据的嵌入模型。
缺少矢量数据库相关信息 - 检查矢量数据库中是否缺少任何相关文档或节。 - 数据管道 向矢量数据库添加更多相关文档。
- 数据管道 改进文档分析和元数据提取功能。
检索查询的表述不当 - 如果直接使用用户查询进行语义搜索,请分析这些查询并检查是否存在不明确性或缺乏特定性。 这在多轮次对话中很容易发生,其中原始用户查询会引用对话以前的部分,因此不适合直接用作检索查询。
- 检查查询词是否与搜索语料库中使用的术语一致。
- 链代码 添加查询扩展或转换方法(例如,给定用户查询,在语义搜索之前转换查询)。
- 链代码 添加用于标识意图和实体的查询理解(例如,使用 LLM 提取在元数据筛选中使用的属性)。

下一步

如果还发现生成质量问题,请继续执行步骤 5(生成)。如何调试生成质量

如果认为已解决所有已确定的问题,请 继续执行步骤 6。对 AI 代理进行质量修复和评估。

< 上一步:步骤 5。确定质量问题的根本原因

下一步:步骤 5.2。调试生成质量 >