Loading

提升RAG质量的方法

数据准备阶段

常见问题
  • 数据质量差:
    企业大部分数据(尤其是非结构化数据)缺乏良好的数据治理,未经标记/评估的非结构化数据可能包含敏感、过时、矛盾或不正确的信息。

  • 多模态信息:
    提取、定义和理解文档中的不同内容元素,如标题、配色方案、图像和标签等存在挑战。

  • 复杂的PDF提取:
    PDF是为人类阅读而设计的,机器解析起来非常复杂。

解决方案
  • 构建完整的数据准备流程

  • 采用智能文档技术

(1)构建完整的数据准备流程

  1. 数据评估与分类
  • 数据审计:全面审查现有数据,识别敏感、过时、矛盾或不准确的信息。
  • 数据分类:按类型、来源、敏感性和重要性对数据进行分类,便于后续处理。
  1. 数据清洗
  • 去重:删除重复数据
  • 纠错:修正格式错误、拼写错误等
  • 更新:替换过时信息,确保数据时效性
  • 一致性检查:解决数据矛盾,确保逻辑一致
  1. 敏感信息处理
  • 识别敏感数据:使用工具或正则表达式识别敏感信息,如个人身份信息
  • 脱敏或加密:对敏感数据进行脱敏处理,确保合规。
  1. 数据标记与标注
  • 元数据标记:为数据添加元数据,如来源、创建时间等
  • 内容标注:对非结构化数据进行标注,便于后续检索和分析
  1. 数据治理框架
  • 制定政策:明确数据管理、访问控制和更新流程
  • 责任分配:指定数据治理负责人,确保政策执行
  • 监控与审计:定期监控数据质量,进行审计

(2)智能文档技术

image-20260319145520913

阿里文档智能:https://www.aliyun.com/product/ai/docmind?spm=a2c4g.11174283.0.0.bfe667a8tIVMdG

微软 LayoutLMv3:https://www.microsoft.com/en-us/research/articles/layoutlmv3/

知识检索阶段

常见问题
  • 内容缺失:
    当检索过程缺少关键内容时,系统会提供不完整、碎片化的答案 => 降低RAG的质量

  • 错过排名靠前的文档:
    用户查询相关的文档时被检索到,但相关性极低,导致答案不能满足用户需求,这是因为在检索过程中,用户通过主观判断决定检索“文档数量”。理论上所有文档都要被排序并考虑进一步处理,但在实践中,通常只有排名top k的文档才会被召回,而k值需要根据经验确定。

  • 不在上下文中:
    从数据库中检索出包含答案的文档,但未能包含在生成答案的上下文中。这种情况通常发生在返
    回大量文件时,需要进行整合以选择最相关的信息。

解决方案
  • 通过查询转换澄清用户意图:明确用户意图,提高检索准确性。

  • 采用混合检索和重排策略:确保最相关的文档被优先处理,生成更准确的答案。

(1)通过查询转换澄清用户意图

  • 场景:用户询问 “如何申请信用卡?”

  • 问题:用户意图可能模糊,例如不清楚是申请流程、所需材料还是资格条件。

  • 解决方法:通过查询转换明确用户意图。

  • 实现步骤:

    • 意图识别:使用自然语言处理技术识别用户意图。例如,识别用户是想了解流程、材料还是资格。

    • 查询扩展:根据识别结果扩展查询。例如:

      • 如果用户想了解流程,查询扩展为“信用卡申请的具体步骤”
      • 如果用户想了解材料,查询扩展为“申请信用卡需要哪些材料”
      • 如果用户想了解资格,查询扩展为“申请信用卡的资格条件”
    • 检索:使用扩展后的查询检索相关文档

  • 示例:

    1. 用户输入:“如何申请信用卡?”

    2. 系统识别意图为 流程,扩展查询为 信用卡申请的具体步骤

    3. 检索结果包含详细的申请步骤文档,系统生成准确答案

(2)混合检索和重排策略

  • 场景:用户询问“信用卡年费是多少?”

  • 问题:直接检索可能返回大量文档,部分相关但排名低,导致答案不准确。

  • 解决方法:采用混合检索和重排策略。

  • 步骤:

    1. 混合检索:结合关键词检索和语义检索。比如:关键词检索:“信用卡年费”。

    2. 语义检索:使用嵌入模型检索与“信用卡年费”语义相近的文档。

    3. 重排:对检索结果进行重排。

    4. 生成答案:从重排后的文档中生成答案。

  • 示例:

    1. 用户输入:“信用卡年费是多少?”

    2. 系统进行混合检索,结合关键词和语义检索。

    3. 重排后,最相关的文档(如“信用卡年费政策”)排名靠前。

    4. 系统生成准确答案:“信用卡年费根据卡类型不同,普通卡年费为100元,金卡为300元,白金卡为1000元。”

答案生成阶段

常见问题
  • 未提取:
    答案与所提供的上下文相符,但大语言模型却无法准确提取。这种情况通常发生在上下文中存在过多噪音或相互冲突的信息时。

  • 不完整:
    尽管能够利用上下文生成答案,但信息缺失会导致对用户查询的答复不完整。格式错误:当prompt中的附加指令格式不正确时,大语言模型可能误解或曲解这些指令,从而导致错误的答案。

  • 幻觉:
    大模型可能会产生误导性或虚假性信息。

解决方案
  • 改进提示词模板

  • 实施动态防护栏

(1)改进提示词模板

场景 原始提示词 改进后的提示词
用户询问“如何申请信用卡?” “根据以下上下文回答问题:如何申请信用卡?” “根据以下上下文,提取与申请信用卡相关的具体步骤和所需材料:如何申请信用卡?”
用户询问“信用卡的年费是多少?” “根据以下上下文回答问题:信用卡的年费是多少?” “根据以下上下文,详细列出不同信用卡的年费信息,并说明是否有减免政策:信用卡的年费是多少?”
用户询问“什么是零存整取?” “根据以下上下文回答问题:什么是零存整取?” “根据以下上下文,准确解释零存整取的定义、特点和适用人群,确保信息真实可靠:什么是零存整取?”

如何对原有的提示词进行优化?

可以通过 DeepSeek-R1QWQ 的推理链,对提示词进行优化:

  • 信息提取:从原始提示词中提取关键信息。

  • 需求分析:分析用户的需求,明确用户希望获取的具体信息。

  • 提示词优化:根据需求分析的结果,优化提示词,使其更具体、更符合用户的需求。

(2)实施动态防护栏

动态防护栏(Dynamic Guardrails)是一种在生成式AI系统中用于实时监控和调整模型输出的机制,旨在确保生成的内容符合预期、准确且安全。它通过设置规则、约束和反馈机制,动态地干预模型的生成过程,避免生成错误、不完整、不符合格式要求或含有虚假信息(幻觉)的内容。

在RAG系统中,动态防护栏的作用尤为重要,因为它可以帮助解决以下问题:

  • 未提取:确保模型从上下文中提取了正确的信息。

  • 不完整:确保生成的答案覆盖了所有必要的信息。

  • 格式错误:确保生成的答案符合指定的格式要求。

  • 幻觉:防止模型生成与上下文无关或虚假的信息。

场景1:防止未提取

用户问题:“如何申请信用卡?”

  • 上下文:包含申请信用卡的步骤和所需材料。

  • 动态防护栏规则:检查生成的答案是否包含“步骤”和“材料”。如果缺失,提示模型重新生成。

  • 示例:

    • 错误输出:“申请信用卡需要提供一些材料。”

    • 防护栏触发:检测到未提取具体步骤,提示模型补充。

场景2:防止不完整

用户问题:“信用卡的年费是多少?”

  • 上下文:包含不同信用卡的年费信息。

  • 动态防护栏规则:检查生成的答案是否列出所有信用卡的年费。如果缺失,提示模型补充。

  • 示例:

    • 错误输出:“信用卡A的年费是100元。”

    • 防护栏触发:检测到未列出所有信用卡的年费,提示模型补充。

场景3:防止幻觉

用户问题:“什么是零存整取?”

  • 上下文:包含零存整取的定义和特点。

  • 动态防护栏规则:检查生成的答案是否与上下文一致。如果不一致,提示模型重新生成。

  • 示例:

    • 错误输出:“零存整取是一种贷款产品。

    • 防护栏触发:检测到与上下文不一致,提示模型重新生成。

如何实现动态防护栏技术?

事实性校验规则,在生成阶段,设置规则验证生成内容是否与检索到的知识片段一致。例如,可以使用参考文献验证机制,确保生成内容有可靠来源支持,避免输出矛盾或不合理的回答。

如何制定事实性校验规则?

当业务逻辑明确且规则较为固定时,可以人为定义一组规则,比如:

  • 规则1:生成的答案必须包含检索到的知识片段中的关键实体(如“年费”、“利率”)。
  • 规则2:生成的答案必须符合指定的格式(如步骤列表、表格等)。
  • 实施方法:
    • 使用正则表达式或关键词匹配来检查生成内容是否符合规则。
    • 例如,检查生成内容是否包含“年费”这一关键词,或者是否符合步骤格式(如“1. 登录;2. 设置”)。

RAG对比LLM

  • 效率与成本:LLM处理长上下文时计算资源消耗大,响应时间增加。RAG通过检索相关片段,减少输入长度。

  • 知识更新:LLM的知识截止于训练数据,无法实时更新。RAG可以连接外部知识库,增强时效性。

  • 可解释性:RAG的检索过程透明,用户可查看来源,增强信任。LLM的生成过程则较难追溯。

  • 定制化:RAG可针对特定领域定制检索系统,提供更精准的结果,而LLM的通用性可能无法满足特定需求。

  • 数据隐私:RAG允许在本地或私有数据源上检索,避免敏感数据上传云端,适合隐私要求高的场景。

  • 结合LLM的生成能力和RAG的检索能力,可以提升整体性能,提供更全面、准确的回答。

posted @ 2026-03-19 15:40  木子七  阅读(21)  评论(0)    收藏  举报