支持私有化部署
AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


RAG 工程实践优化点及方法总结

发布日期:2024-12-25 12:11:26 浏览次数: 2022 作者:鸿煊的学习笔记

一、优化索引结构

1.1 优化被检索的embedding

  • 微调被检索的 embedding
    • 目的:增强被检索内容与 query 之间的相关性,尤其适用于术语更新迅速且罕见的领域。通过微调,可以使 embedding 更好地捕捉特定领域的语义信息,从而提高检索的准确性
    • 方法示例:可利用领域内的专业术语、最新的术语更新数据等对 embedding 进行针对性训练,使模型能够更精准地理解和匹配与这些术语相关的 query。
  • 动态 embedding
    • 目的:基于上下文动态调整 embedding,以适应不同语境下的语义变化。这种方法旨在更灵活地处理文本中的语义多样性,但在工程落地方面仍处于探索阶段,需要进一步验证其有效性和可行性
    • 理论基础与挑战:动态 embedding 的理论依据在于文本的语义会随上下文而变化,通过动态调整 embedding 可以更好地反映这种变化。然而,在实际应用中,如何准确地根据上下文生成合适的动态 embedding,以及如何确保其在大规模数据和复杂场景下的高效性和稳定性,都是需要解决的问题。
  • 检索后处理流程优化
    • 面临问题:直接将所有检索结果提供给大模型可能会超出上下文窗口限制,并且过多的检索内容可能包含较多噪声,影响模型的准确理解和生成。
    • 优化方法及原理如下
    • ReRank:对检索结果进行重新排序,根据相关性、质量等因素确定更合理的顺序,使最相关的结果更有可能被模型优先处理
    • Prompt 压缩:减少不必要的提示信息,提炼关键内容,降低噪声干扰,同时确保不损失重要信息,以提高模型处理效率和准确性。
    • RAG pipeline优化:对整个 RAG 流程进行优化,包括数据预处理、检索、后处理等环节,提高系统的整体性能和稳定性。
    • 混合搜索:结合多种搜索方式(如向量搜索和关键词搜索)的优势,提高检索的全面性和准确性。
    • 递归检索与查询引擎:通过递归的方式进一步挖掘相关信息,扩展检索范围,提高召回率。
    • StepBack - prompt 方法:采用特定的 prompt 策略,引导模型从更宏观的角度理解问题,避免陷入局部信息的误导。
    • 子查询:将复杂查询分解为多个子查询,分别处理后再综合结果,提高检索的针对性和有效性。
    • HyDE 方法:利用一种假设性的检索方式,通过生成假设性的答案来指导实际检索,提高检索的效率和质量。

1.2 优化 query 的 chunk 大小

  • chunk 大小的重要性:chunk 大小直接决定了从向量存储中检索的文档长度,对检索结果的完整性和准确性有重要影响。如果 chunk 过小,可能会导致文档缺失关键信息,影响模型对问题的全面理解;反之,chunk 过大可能会引入无关的噪音,干扰模型的判断。
  • 确定最佳 chunk 大小的方法:目前一般通过按不同块大小划分验证集进行实验,根据实验结果确定在特定任务和数据集中能够达到最佳效果的 chunk 大小。这需要对不同 chunk 大小下的检索结果进行详细评估,包括相关性、准确性、召回率等指标。

1.3 结合不同粒度信息进行混合检索

  • 向量搜索的局限性与混合检索的必要性:向量搜索在检索语义相关块方面有优势,但在匹配特定关键词时可能缺乏精度。根据具体用例,有时需要精确匹配关键词,因此混合检索(结合 embedding 搜索和关键词搜索)成为提高检索效果的必要手段。
  • 混合检索的实现方式与优势:通过将向量搜索和关键词搜索相结合,可以在保证语义相关性的同时,提高对关键词的匹配精度。例如,先利用向量搜索获取语义相关的候选文档,再通过关键词搜索在这些候选文档中进一步筛选出精确匹配关键词的内容,从而提高检索结果的质量。

二、混合检索及 chunk 检索效果不佳时的优化策略

  1. 分析知识库中答案情况:当混合检索及基于不同大小 chunk 的检索效果不理想时,首先要确定知识库中是否存在答案。如果存在答案但未被检索出来,可能是答案在知识库中的分割方式存在问题
  2. 利用小模型进行上下句预测:可以结合一些小模型(如 BERT)进行上下句预测,尝试将被错误分割开的答案重新组合或定位,提高答案的完整性和可检索性
  3. 根据 query 和 doc 特点优化检索顺序:分析 query 和 doc 的特点,判断其相关性主要是基于字相关还是语义相关。一般建议先使用推荐系统经典的 ES(Elasticsearch)进行召回,获取较为广泛的相关文档,然后再使用模型进行精排,筛选出最相关的文档

三、通过 rerank 提升 RAG 效果的方案

  1. rerank 的背景与目标
    在检索过程中,前 K 个结果虽然都具有相关性,但最相关的信息可能不在排名靠前的位置。rerank 的目的就是将最相关的信息重新定位到更合适的排名位置,提高模型处理的准确性和效率
  2. 具体 rerank 思路与方法
    • Diversity Ranker:根据文档的多样性进行重新排序,避免检索结果过于集中在某些特定类型或主题的文档上,增加结果的多样性,从而为模型提供更全面的信息参考
    • LostInTheMiddleRanker:基于 LLM(大语言模型)会着重关注文本开头和结尾位置的特点,将最需要让 LLM 关注的 documents 放在开头和结尾位置,提高重要信息的曝光率和利用率
    • 参考经典框架:LlamaIndex、LangChain 和 HayStack 等经典框架提供了一些有效的 rerank 方法和工具,可以直接参考和应用这些框架中的相关技术,根据具体需求进行定制和优化。

四、总结

RAG 工程在实际应用中需要根据具体情况不断优化,同时,实际优化过程中应紧密结合具体 case,灵活运用上述方法,以达到最佳效果。

53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询