RAG在未来会消失吗?附RAG的5种切分策略

最近,Prompt大神李继刚在即刻抛出一个问题:

图片

随即,就有很多大神在群里讨论起来,大家总体的看法是Prompt会更加重要,RAG和微调可能会消失或者变成另一种形式而存在。

而讨论这个问题大家可能需要先了解模型训练的一些基本原理(以下总结来自社恐患者杨老师):

目前模型训练有几个瓶颈亟待突破:

1、模型无法进行实时增量训练,现在预训练完成之后,再微调还是RLHF都无法让模型学到新的知识。模型参数无法动态更新。

2、上下文长度限制,这个与transformer架构有很大关系,模型上下文长度,限制了token的吞吐量,即使RAG在不断推陈出新,也不能解决这一核心问题。模型需要建立更加高效的短期记忆与长期记忆的范式。

3、没必要纠结Prompt,因为Prompt的存在核心是希望模型可以按照cot的方式,约束它的输出。而如果模型真的某一天具备逻辑推理的可能性之后,就不需要专门的Prompt来约束输出,模型会自动匹配寻找局部最优解的路线。当然前提是模型真的可以实现逻辑推理。

今天,我们就先来看看RAG的工作原理,以及数据科学家 Avi Chawla 对RAG的5种切分策略。看完或许有新的认识。

什么是 RAG?

RAG(Retrieval Augmented Generation)是一种利用额外信息增强语言模型生成能力的技术。其工作流程如下:

  1. a.切分: 将大型文档分割成较小的部分。
  2. b.向量化: 将切分后的文本片段转换为向量表示。
  3. c.检索: 将输入查询与向量数据库中的向量进行匹配,找到最相似的文本片段。
  4. d.生成: 将检索到的相关信息与查询一起传递给大型语言模型 (LLM),生成最终的响应。

以下是典型的RAG应用工作流程(来自Avi Chawla):

图片

RAG:将额外信息存储为向量,将传入的查询与这些向量匹配,并将最相似的信息与查询一起传递给大语言模型(LLM)。

由于额外的文档可能非常大,第1步还需要进行切分操作,将大文档分割成较小、易于管理的部分。

图片

这一步至关重要,它确保文本能够适应嵌入模型的输入大小。此外,它提高了检索步骤的效率和准确性,这直接影响生成响应的质量。

以下是RAG的五种切分策略:

图片

让我们今天来了解它们!

01 固定大小切分

最直观的切分方法是根据预定的字符数、单词数或Token数量将文本均匀分割成若干段落。

图片

由于直接切分可能会破坏语义流畅性,建议在连续段落间保留一些重叠(如上图的蓝色部分)。

这种方法易于实现,而且所有段落大小相同,有助于简化批处理。

但它存在一个大问题:通常会在句子(或想法)中途切分,导致重要信息可能分散在不同段落中。

02 语义切分

概念很简单。

图片

a.根据句子、段落或主题部分等有意义的单元来切分文档。

b.接着,为每个段落生成嵌入。

c.假设从第一个段落及其嵌入开始。

    • 如果第一个段落的嵌入与第二个段落的嵌入余弦相似度较高,则两个段落组成一个切片。
    • 这个过程持续进行,直到余弦相似度显著下降。
    • 一旦下降,我们就开始一个新切片并重复此过程。

输出可能如下所示:

图片

这种方式与固定大小切片不同,能够保持语言的自然流畅性,并保留完整的思想。

由于每个切片语义更为丰富,它提高了检索准确度,进而使LLM生成的响应更加连贯且相关。

一个小问题是,确定余弦相似度下降的阈值在不同文档间可能有所不同。

03 递归切分

这个方法也非常简单。

图片

首先,基于内在的分隔符(如段落或章节)进行切分。

然后,如果某个切片的大小超过预定义的切片大小限制,就将其进一步分割。如果切片符合大小限制,则不再进行切分。

输出结果可能如下所示:

图片

如上所示:

  • 首先,我们定义了两个切片(紫色的两个段落)。
  • 接下来,第1段被进一步分割成较小的切片。

与固定大小的切片不同,这种方法也保持了语言的自然流畅性,并保留了完整的思想。

不过,在实现和计算复杂性方面有一些额外的开销。

04 基于文档结构的切分

这是一种直观的方法。

图片

利用文档内在的结构(如标题、章节或段落)定义切片边界。

这种方式能保持文档的结构完整性,确保切片与文档的逻辑部分对齐。

该方法假设文档结构清晰,但这可能并非总是如此。此外,切片长度可能不同,甚至超过模型的Token限制。可以尝试与递归切分结合使用。

输出结果可能如下所示:

图片

05 基于LLM的切分

图片

由于每种方法都有其优缺点,为什么不让LLM来生成切片呢?

LLM可以通过提示词生成语义隔离且有意义的切片。

显然,这种方法确保了高语义准确性,因为LLM能理解上下文和意义,远超简单的启发式方法。

唯一的问题是,这种方式的计算成本是五种方法中最高的。

此外,由于LLM通常有上下文窗口限制,需要对此加以处理。

每种技术都有各自的优劣。

我发现语义切分在许多情况下效果不错,但仍然需要测试。

最终的选择将取决于内容的性质、嵌入模型的能力和计算资源等。

我们很快会进行这些策略的实际操作演示。

Avi Chawla 对RAG的5种切分策略原文链接:

https://blog.dailydoseofds.com/p/5-chunking-strategies-for-rag?=

Last but not least

所以站在3年后,甚至更远的未来看今天,模型能力无比强大,回归到现在,我们能做什么,应该怎么调整方向,这才是一个值得思考的问题。

最后,技术无论怎么发展,或许你现在研究的,在未来会被取代甚至毫无用处,我都向你致敬,你都是推动科技进步的一份子,这个世界需要你这样的人。

如何学习大模型

现在社会上大模型越来越普及了,已经有很多人都想往这里面扎,但是却找不到适合的方法去学习。

作为一名资深码农,初入大模型时也吃了很多亏,踩了无数坑。现在我想把我的经验和知识分享给你们,帮助你们学习AI大模型,能够解决你们学习中的困难。

下面这些都是我当初辛苦整理和花钱购买的资料,现在我已将重要的AI大模型资料包括市面上AI大模型各大白皮书、AGI大模型系统学习路线、AI大模型视频教程、实战学习,等录播视频免费分享出来,需要的小伙伴可以扫取。

一、AGI大模型系统学习路线

很多人学习大模型的时候没有方向,东学一点西学一点,像只无头苍蝇乱撞,我下面分享的这个学习路线希望能够帮助到你们学习AI大模型。

在这里插入图片描述

二、AI大模型视频教程

在这里插入图片描述

三、AI大模型各大学习书籍

在这里插入图片描述

四、AI大模型各大场景实战案例

在这里插入图片描述

五、结束语

学习AI大模型是当前科技发展的趋势,它不仅能够为我们提供更多的机会和挑战,还能够让我们更好地理解和应用人工智能技术。通过学习AI大模型,我们可以深入了解深度学习、神经网络等核心概念,并将其应用于自然语言处理、计算机视觉、语音识别等领域。同时,掌握AI大模型还能够为我们的职业发展增添竞争力,成为未来技术领域的领导者。

再者,学习AI大模型也能为我们自己创造更多的价值,提供更多的岗位以及副业创收,让自己的生活更上一层楼。

因此,学习AI大模型是一项有前景且值得投入的时间和精力的重要选择。 ·

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值