问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

提高 RAG 链质量

创作时间:
作者:
@小白创作中心

提高 RAG 链质量

引用
1
来源
1.
https://learn.microsoft.com/zh-cn/azure/databricks/generative-ai/tutorials/ai-cookbook/quality-rag-chain

RAG(检索增强生成)链是一种结合了检索和生成能力的AI系统,通过理解用户查询、检索相关信息并生成适当响应,广泛应用于问答系统、智能客服等领域。本文将详细介绍如何通过优化RAG链的各个组件来提升其应用质量。

RAG链采用用户查询作为输入,通过检索相关数据并生成适当响应。虽然不同应用场景下的具体步骤可能有所不同,但以下关键组件是构建高质量RAG链的基础:

查询理解

将用户查询直接用于检索可能在某些情况下有效,但在检索前重新制定查询通常更有帮助。查询理解组件位于链的开头,用于分析和转换用户查询,以更好地表示意图并提取相关信息。转换用户查询以改善检索的方法包括:

  • 查询重写:将用户查询转换为一个或多个更好地表示原始意图的查询。这在处理可能与检索文档中使用的术语不直接匹配的复杂或有歧义查询时特别有用。

  • 筛选器提取:识别和提取查询中的筛选器或条件,将其作为额外参数传递到检索步骤。这有助于缩小搜索范围,提高检索到的文档的相关性。

检索

RAG链的检索组件负责查找与给定查询最相关的信息区块。在非结构化数据环境中,检索通常涉及语义搜索和/或基于关键字的搜索。以下是几种主要的检索策略:

策略
简单说明
示例用例
技术方法
语义搜索
如果查询和潜在文档中出现相同的概念,则它们相关。
用户查询不同于产品手册中的字词情况下的客户支持。
使用嵌入来表示连续矢量空间中的文本,从而启用语义搜索。
关键字搜索
如果查询和潜在文档中出现相同的字词,则它们相关。查询中的字词在文档中出现的越多,文档相关性就越高。
查询包含特定的非描述性技术术语情况下的客户支持。
依赖于基于标记的离散方法(例如bag-of-words、TF-IDF、BM25)进行关键字匹配。
混合搜索
同时运行语义搜索和关键字搜索,然后将结果结合在一起。
查询结合使用了语义术语和技术术语情况下的客户支持。
使用重新排名方法将结果结合在一起,例如倒数排名融合或重新排名模型。

提示增强

这一步骤是将用户查询与检索到的信息和说明结合在提示模板中,引导语言模型生成高质量的响应。优化提示模板时需要考虑以下因素:

  • 提供格式标准的查询及其理想响应的示例
  • 将提示模板参数化以纳入检索到的数据和其他信息
  • 考虑使用思维链提示处理复杂查询

LLM选择

为RAG链的生成组件选择合适的LLM时,需要考虑以下因素:

  • 尝试不同的现有模型,因为每个模型都有其独特属性
  • 从更小、更轻量级的模型开始,根据需要纵向扩展
  • 优化模型参数以平衡响应质量、多样性和连贯性
  • 考虑对特定任务进行微调或继续预训练

后期处理和防护措施

LLM生成响应后,通常需要应用后期处理技术或防护措施来确保输出满足所需的格式、样式和内容要求。这包括:

  • 强制输出格式以符合特定要求
  • 保持样式一致性
  • 实施内容筛选器和安全防护措施
  • 处理误报和错误情况

通过迭代方式实施和评估这些质量解决方案,可以不断优化RAG链的性能和效果。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号