15种高级RAG技术(一)预检索优化

检索增强生成 (RAG) 是一种强大的技术,它将信息检索与生成式 AI 相结合,以产生更准确、上下文更丰富的响应。本文将探讨 15 种高级 RAG 技术,以提高生成式 AI 系统的输出质量和整体性能的鲁棒性。这样做使本文能够测试和识别从预检索到生成的适当优化,本文所提到的优化点大多数基于下图的流程。

一般来说,传统的 RAG 系统经常会遇到以下问题:

  • 信息密度:检索到的文档可能不包含足够的相关信息。
  • 检索准确性:系统可能无法检索最相关的文档。
  • 响应质量:生成的响应可能不准确或缺少上下文。先进的 RAG 技术通过优化 RAG 管道的每个阶段来应对这些挑战,从而实现:更高的系统效率、更好地满足用户需求、最优语义搜索以及更相关准确的回复。

RAG 中,召回是一个核心步骤,按照不同优化策略和召回的前后关系,优化策略可分以下几类:

  • 预检索优化
  • 检索/召回策略
  • 检索后优化
  • 生成优化

一、预检索优化

预检索优化主要包括提高数据索引或知识数据库中信息的质量和可检索性。由于每个系统依赖于不同性质的信息,预检索优化策略不一定是万能的。比如为金融系统设计的优化策略在旅游机器人中可能不太有效。预检索优化包括以下方法

  • 使用 LLM 提高信息密度
  • 使用分层索引检索
  • 创建假设性问答对
  • 使用 LLM 对信息进行去重
  • 测试并优化最优分块

1、使用 LLM 提高信息密度

在存储数据前使用 LLM 处理、清洗以及对数据进行打标。这种改进是因为来自异构数据源(例如 PDF、抓取的网页数据、音频转录)的非结构化数据不一定是为 RAG 系统构建的,导致信息密度低、噪声数据、信息重复等

信息密度低迫使 RAG 系统在 LLM 上下文窗口中插入更多的块,以正确回答用户查询,从而增加了 token 的使用和成本。此外,信息密度低会稀释相关信息,以至于 LLM 可能会给出错误的回答。GPT-4 在使用少于 70,000 个 token 时似乎对这个问题有相对的抵抗力,但其他模型可能没有那么强的鲁棒性。

比如当原文本来源于网页时,原始 HTML 包含了大量无关信息(例如 CSS 类、页眉/页脚导航、HTML 标签等冗余信息)。即使在程序化地剥离了 CSS 和 HTML 之后,信息密度仍然很低。因此,为了提高块中的信息密度,本文尝试使用 GPT-4 作为事实提取器,从文档中提取相关信息。

对应的 prompt 中,system 指令为:

You are a data processing assistant. Your task is to extract meaningful information from a scraped web page from XYZ Corp. This information will serve as a knowledge base for further customer inquiries. Be sure to include all possible relevant information that could be queried by XYZ Corp's customers. The output should be text-only (no lists) separated by paragraphs.

以上流程中,原始 HTML 约有 55000 tokens,而使用 GPT4 提取后的信息约有 330tokens,在降低噪声的同时大大提高了信息密度。

值得注意的是,使用 LLM 提高信息密度是伴随着风险的,即可能导致部分关键信息丢失。

2、使用分层索引检索

由 LLM 生成摘要并对摘要进行检索可以使得检索过程更为高效。上节使用 LLM 提高信息密度的方法类似于无损压缩,而使用 LLM 生成摘要更像有损压缩。在大型数据库的情况下,一种有效的方法是创建两个索引 — 一个由摘要组成,另一个由文档块组成,并分两步进行搜索,首先通过摘要过滤掉相关文档,然后在此相关组内进行搜索。

3、创建假设性问答对

在数据准备阶段,embedding 的对象是原始文本(answer),而在请求阶段,embedding 的对象是用户 query。这使得查询的 embedding 和结果的 embedding 是“不对称”的。一种方法是使用 GPT-4 为每个文档生成一系列假设/可能的问题和答案对,然后使用生成的问题作为嵌入检索的块。在检索时,系统将检索问题及其对应的答案并提供给 LLM。因此,查询的嵌入与生成问题的嵌入的余弦相似度可能会更高。

例如,在文档中,某段话的内容可能是从多个角度介绍了 xx 技术的特点,但是未显式地提到特点、有缺点二词。传统 RAG 情况下当用户问到 xx 技术的优缺点时,难以匹配到此段落。而如果为这个段落生成假设性问题:“xxx 技术的优缺点是什么?有什么特点”,此时 embedding 方法就能准确匹配到此段落。

上图展示了对 HTML 提取的信息生成的问答对示例。值得注意的是,提取问答对仍然可能造成一定的数据信息丢失。

4、使用 LLM 对信息进行去重

使用 LLM 作为信息去重器可以提高数据索引的质量。LLM 通过将块提炼成更少的块来去重信息,从而提高获得理想响应的几率。根据具体情况,数据索引中的信息重复可能有助于或阻碍 RAG 系统的输出。一方面,如果生成响应所需的正确信息在 LLM 的上下文窗口内被重复,它会增加 LLM 做出理想响应的可能性。另一方面,假设重复的程度稀释甚至完全挤出了 LLM 上下文窗口中的所需信息,那么用户可能会收到一个无关的回答。

本方案通过在 embedding 空间中对块进行 k-means 聚类来去重信息,以便每个块聚类中的总 token 数在 LLM 的有效上下文窗口内。然后,本文可以任务 LLM 从原始聚类中输出一组新的提炼块,去除重复信息。如果一个给定的聚类包含 N 个块,本文期望这个去重提示输出<= N 个新块,其中任何冗余信息都被去除。

值得注意的是,这种方法可能会使得从块到原文的引用这一信息丢失。

5、测试并优化最优分块

上述技术强调了分块策略的重要性。但最优的分块策略是特定于具体使用场景的,并且有许多因素会影响它。找到最优分块策略的唯一方法是对你的 RAG 系统进行广泛的 A/B 测试。以下是测试时需要考虑的一些最重要因素。

  • embedding 模型的最优输入长度:不同的模型具备不同的最优的输入长度。例如,来自 sentence transformers 的 embedding 模型在处理单个句子时表现出色,而 text-embedding-ada-002 则可以处理更大的输入。chunk 的大小应理想地根据所使用的特定 embedding 模型进行调整,反之亦然。

  • 文档的语义信息:根据文档的信息密度、格式和复杂性,chunk 可能需要达到一定的最小尺寸,以包含足够的上下文信息,从而对 LLM 有用。然而,这是一种平衡的艺术。如果 chunk 过大,可能会在 embedding 中稀释相关信息,从而降低在语义搜索中检索到该 chunk 的几率。如果文档没有自然的分割点(例如,用子标题分段的教科书章节),并且文档是基于任意字符限制(例如 500 字符)进行 chunk 分割的,那么关键的上下文信息可能会被拆分开。在这种情况下,应考虑重叠。例如,采用 50%重叠率的 chunking 策略意味着文档中两个相邻的 500 字符 chunk 将有 250 字符的重叠。在决定重叠率时,应考虑信息重复和 embedding 更多数据的成本。

  • 模型的总结能力:虽然 GPT-4 似乎能够处理许多大块内容,但小模型可能表现不佳。此外,在许多大块内容上运行推理可能成本高昂。

  • 存储成本:embedding 向量必须存储在某个地方,而较小的块大小会导致相同数据量下更多的嵌入,这意味着增加的存储需求和成本。更多的嵌入也可能增加语义搜索所需的计算资源,这取决于语义搜索的实现方式(精确最近邻 vs. 近似最近邻)。

通过对本 RAG 进行 A/B 测试,本文可以评估每个用例的最佳分块策略。本文主要在由 GPT-4 处理的改进信息密集型文档上测试了以下分块策略:

  • 1,000 字符的分块,带有 200 字符的重叠
  • 500 字符的分块,带有 100 字符的重叠
  • 段落(处理后的文档中存在段落分隔)
  • 句子(使用 spaCy 进行分割)
  • 假设性问题生成(从上文详细描述的生成的假设性问题索引中嵌入问题)

在构建 AI 助手时,本文发现分块策略的选择并没有太大影响(见下表结果)。1,000 字符的分块策略,带有 200 字符的重叠,表现略优于其他策略(当然,构建不同的应用可能会出现不同的测试结果)。


最后分享

AI大模型作为人工智能领域的重要技术突破,正成为推动各行各业创新和转型的关键力量。抓住AI大模型的风口,掌握AI大模型的知识和技能将变得越来越重要。

学习AI大模型是一个系统的过程,需要从基础开始,逐步深入到更高级的技术。

这里给大家精心整理了一份全面的AI大模型学习资源,包括:AI大模型全套学习路线图(从入门到实战)、精品AI大模型学习书籍手册、视频教程、实战学习、面试题等,资料免费分享!

1. 成长路线图&学习规划

要学习一门新的技术,作为新手一定要先学习成长路线图方向不对,努力白费

这里,我们为新手和想要进一步提升的专业人士准备了一份详细的学习成长路线图和规划。可以说是最科学最系统的学习成长路线。
在这里插入图片描述

2. 大模型经典PDF书籍

书籍和学习文档资料是学习大模型过程中必不可少的,我们精选了一系列深入探讨大模型技术的书籍和学习文档,它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础。(书籍含电子版PDF)

在这里插入图片描述

3. 大模型视频教程

对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的大模型视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识

在这里插入图片描述

4. 大模型项目实战

学以致用 ,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。

在这里插入图片描述

5. 大模型面试题

面试,不仅是技术的较量,更需要充分的准备。在你已经掌握了大模型技术之后,就需要开始准备面试,我们将提供精心整理的大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。

在这里插入图片描述

全套的AI大模型学习资源已经整理打包,有需要的小伙伴可以微信扫描下方CSDN官方认证二维码,免费领取【保证100%免费

如有侵权,请联系删除。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值