RAG pipeline 优化策略概述

RAG pipeline优化策略概述

编者按:随着GPT-4等大模型的出现,检索增强生成(RAG)技术备受关注。然而,我们是否已经找到了最佳的RAG策略呢?

我们今天为大家带来的这篇文章,作者认为目前还没有单一的RAG流程或策略是最优的。文章详细归纳了当前开发者们正在尝试的多种RAG性能优化策略。

文章首先指出RAG可以解决LLM的一些关键问题,如利用私有数据、扩展上下文窗口等。接着,作者列出了如何优化RAG流程的多种策略:将文档分块以提高搜索精确度、建立多个索引进行查询路由、微调嵌入模型适应特定文档集、混合使用多种检索方式、使用重排序算法、扩展或压缩提示语等。

每种策略都有其适用场景,开发者们还需要不断尝试探索,才能找到最佳RAG方案。但文章提供了当前改进RAG性能的多种切入点,让我们对RAG技术发展方向有了更清晰的认识。期待后续更多优秀成果的诞生!

原文链接:Improving RAG: Strategies

作者:Matt Rickard

译者:丘山子

检索增强生成(Retrieval Augmented Generation,RAG)解决了大语言模型(LLM)的几个问题:

  1. 不需要进行微调,即可实现将私有数据放入上下文。
  2. 能够有效地扩展 LLM 的信息上下文窗口(the context window of information)。
  3. 通过学习真实的文档(ground truth documents)来对抗大模型的"幻觉"问题。
  4. 此外,通过RAG技术,还可以在输出中"引用"这些文档,使模型更具可解释性(explainable)。

但是,并没有单一的RAG流程或策略(RAG pipeline or strategy)。大多数 RAG pipeline or strategy 都涉及到使用向量数据库(目前来看是这样)。不过,目前开发者们正在采用大量策略来改进RAG流程的性能。(在下文列举这些策略~)

  • 将文档分割成较小的片段(Chunking data)。将文档分块可以使语义搜索(semantic search)更加精确。如果文档本身将要被添加到提示语(prompt)中,并且其大小需要在上下文窗口的限制之内,这也是一种自然的限制。您可能需要匹配的是某个页面、章节或段落,而不是与用户查询匹配的整个文档。由于不同的文档类型在逻辑上可以以不同的方式进行分块,因此可能没有一种适用于所有情况的方法。
  • 建立多个索引(Multiple indices)。将文档语料库分割成多个索引,然后根据某些标准进行路由查询(routing queries)。这样做的话,搜索范围只会是一组较小的文档,而不是整个数据集。同样,这种方法并不总是有用,但对于某些数据集来说可能是有帮助的。相同的方法也适用于 LLM 本身。
  • 微调嵌入模型(Custom embedding model)。微调嵌入模型可以帮助检索。如果您的文档集合的相似性概念与其他集合有明显的差异,那么这种方法将是有用的。(译者注:不同的文档集合可能具有不同的相似性概念。例如,对于某些特定领域的文档集合,相似性可能基于特定的主题、关键词或上下文。在这种情况下,通过微调嵌入模型或自定义相似性度量方法,可以更好地适应您的文档集合的特定相似性概念,从而提高检索的准确性和效果。)
  • 混合多种检索方式(Hybrid search)。向量检索往往(或通常情况下)并不足够。通常需要将其与传统关系数据库和其他文档过滤方式相结合。
  • 重排序算法(Re-rank)。首先,使用初始检索方法获得了一个近似的候选检索结果列表。然后,使用重排序算法按相关性对结果进行排序。
  • 扩展或压缩提示语(Upscaling or downscaling prompts)。需要优化用户查询,使其能够在检索系统中发挥更好的作用。可以通过在进行语义搜索之前添加更多上下文信息来扩展用户查询,也可以通过删除可能分散模型注意力和不必要的部分来压缩查询语句。
相关推荐
艾莉丝努力练剑4 小时前
【AI大模型接入SDK】Provider分析与实现
c++·人工智能·学习·面试·大模型·llm
磁场转动100万匹4 小时前
PyTorch 手写数字识别实战:从数据加载到模型训练(零基础详解版)
人工智能·pytorch·python
TaoMetrix10 小时前
TaoMetrix:AI 硬件创业公司如何做好原型制造
人工智能·制造
智圣新创0110 小时前
面向多级组织协同场景 高校第二课堂一站式管理中枢落地全场景实操答疑
大数据·人工智能
cd_9492172111 小时前
AI纹理和Substance Painter手绘纹理哪个更适合游戏资产制作?
人工智能·游戏·substance painter
sali-tec11 小时前
C# 基于OpenCv的视觉工作流-章106-差值追踪
图像处理·人工智能·opencv·算法·计算机视觉
Shockang11 小时前
用 AI 打造高品质 Web 应用
人工智能
l12586511 小时前
# LangGraph Memory机制深度解析:短期记忆与长期记忆的工程实践
前端·人工智能·python·langchain·bootstrap
手写码匠11 小时前
Dify 多 Agent 工具权限与安全沙箱实战:让智能体“有能力,但不越权“
人工智能·深度学习·算法·aigc
ZGIAI11 小时前
ZGI Skill Loop:给工具调用设边界
人工智能·架构