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)。需求优化用户查询,使其能够在检索系统中发挥更好的作用。能够经过在进行语义查找之前添加更多上下文信息来扩展用户查询,也能够经过删去或许涣散模型注意力和不必要的部分来紧缩查询语句。