问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

干货分享 | RAG的5种切分策略

创作时间:
作者:
@小白创作中心

干货分享 | RAG的5种切分策略

引用
人人都是产品经理
1.
https://www.woshipm.com/it/6141042.html

RAG(检索增强生成)是一种结合了信息检索技术和语言生成模型的人工智能技术。它通过从外部知识库中检索相关信息,并将这些信息作为额外的上下文提供给语言模型,从而增强模型生成文本的能力。本文将深入探讨RAG的五种切分策略,帮助读者理解如何优化RAG的工作流程,提高信息检索的效率和准确性。

RAG(Retrieval-Augmented Generation,检索增强生成)是一种结合了信息检索技术和语言生成模型的人工智能技术。RAG模型由Facebook AI Research(FAIR)团队于2020年首次提出,并迅速成为大模型应用中的热门方案。

RAG的基本思想是通过从外部知识库中检索相关信息,并将这些信息作为额外的上下文提供给语言模型,从而增强模型生成文本的能力。能帮助模型减少幻觉、提高内容生成的准确性。

RAG应用工作流程

以下是典型的RAG应用工作流程:

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

由于额外的文档可能非常大,第1步还需要进行切分操作,将大文档分割成较小、易于管理的部分。这一步至关重要,它确保文本能够适应嵌入模型的输入大小。此外,它提高了检索步骤的效率和准确性,这直接影响生成响应的质量。

02. 固定大小切分

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

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

这种方法易于实现,而且所有段落大小相同,有助于简化批处理。但它存在一个大问题:通常会在句子(或想法)中途切分,导致重要信息可能分散在不同段落中。

03. 语义切分

根据句子、段落或主题部分等有意义的单元来切分文档,接着,为每个段落生成嵌入,假设从第一个段落及其嵌入开始。

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

这种方式与固定大小切片不同,能够保持语言的自然流畅性,并保留完整的思想。由于每个切片语义更为丰富,它提高了检索准确度,进而使LLM生成的响应更加连贯且相关。

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

04. 递归切分

首先,基于内在的分隔符(如段落或章节)进行切分。然后,如果某个切片的大小超过预定义的切片大小限制,就将其进一步分割。如果切片符合大小限制,则不再进行切分。

如上所示:

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

与固定大小的切片不同,这种方法也保持了语言的自然流畅性,并保留了完整的思想。不过,在实现和计算复杂性方面有一些额外的开销。

05. 基于文档结构的切分

利用文档内在的结构(如标题、章节或段落)定义切片边界。这种方式能保持文档的结构完整性,确保切片与文档的逻辑部分对齐。

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

06. 基于LLM的切分

由于每种方法都有其优缺点,为什么不让LLM来生成切片呢?LLM可以通过提示词生成语义隔离且有意义的切片。

显然,这种方法确保了高语义准确性,因为LLM能理解上下文和意义,远超简单的启发式方法。唯一的问题是,这种方式的计算成本是五种方法中最高的。此外,由于LLM通常有上下文窗口限制,需要对此加以处理。

总结

每种技术都有各自的优劣,不过我发现语义切分在许多情况下效果不错,但仍然需要根据实际情况进行测试,最终的选择将取决于内容的性质、嵌入模型的能力和计算资源等。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号