为了账号安全,请及时绑定邮箱和手机立即绑定

揭秘11种文档分块策略,让你的RAG系统更高效准确

11 个 chunking 策略 在 RAG 中 — 简化和可视化

检索增强生成模型(RAG) 结合了预训练的语言模型和信息检索系统来,以产生更准确和上下文相关的回应。通过检索外部文档中的相关信息,增强了其处理超出训练数据范围查询的能力。

RAG的一个关键组成部分是分块,在这个过程中,大型文档被分成更小、更易管理的段落。这些段落随后被索引并用于检索阶段,以提供与语言模型相关的上下文。

为为什么分块很重要

在RAG(检索增强生成)中,分段有多重用途。

  • 效率:在检索过程中减少计算开销。
  • 相关性:更精确的块增加了检索相关信息的可能性。
  • 上下文保留:合适的分块保持了信息的完整性,确保了连贯的回答。

然而,如果在不恰当的分段的情况下,可能会导致一些问题:

  • 丢失上下文:将信息随意切分可能会破坏信息的意义。
  • 冗余:重叠的片段可能导致信息重复。
  • 不一致性:片段大小不同可能会使检索和索引变得复杂。
分块策略简介

分段策略根据它们如何划分文本及其保留的上下文程度不同。这里主要指的是几种方法,主要策略有:

  1. 固定长度分块
  2. 基于句子的分块
  3. 段落分块
  4. 滑动窗口分块
  5. 语义分块
  6. 递归分块
  7. 富含上下文的分块
  8. 模态特定的分块
  9. 代理相关的分块
  10. 子文档分块
  11. 混合型分块

每种方法都提供了独特的优势,并且适用于特定的用例。让我们来理解每种分块方法的细节,比较不同的分块方法,如何选择合适的分块方法,以及了解在RAG中实现分块的最佳实践。

分块方法的深入探讨
固定长度的分块

它是这样工作的:将文本按照词元或字符来划分,通常设定为预定义的长度。

固定长度的分块——可视化展示

最适合用于:简单的文档、常见问题解答,或者当处理速度是关键时。

优点:

  • 简单性:简单易行,不需要复杂的算法。
  • 统一性:保持一致的块大小,简化索引过程。

挑战:

  • 上下文丢失:可能会把句子或想法分开,导致信息不完整。
  • 相关性问题:关键信息可能分散在多个片段中,从而降低检索效果。

实现技巧

  • 选择一个合适的分块大小,以在上下文和效率之间取得平衡。
  • 考虑结合使用(重叠窗口)来减少上下文丢失的影响。
基于句子的分块

它是怎么工作的:在句子边界处拆分文本内容,确保每个片段都是一个完整的句子。

基于句子的分块 —— 可视化

最适合用于:简短直接的回答,如客户提问或聊天机器人。

好处

  • 上下文保留:保持每个句子的完整。
  • 易于实现:利用NLP工具实现句子检测。

挑战:

  • 有限的上下文:单个句子可能缺乏足够的背景信息来处理复杂的问题。
  • 长度不一:句子长度不一,导致段落长度不一致。

实施提示

  • 使用NLP库来准确地检测句子边界。
  • 如果句子较短,则可以将它们合并成一个较长的内容块。
按段落划分

它的工作原理是将文档分成段落,这些段落通常包含一个完整的思想或主题。

基于段落的分块——可视化

最适用于:结构化的文档,如文章、报告或文章。

好处:

  • 提供了比单纯句子更多的背景信息:提供了比基于句子的片段更多的信息。
  • 符合文本的自然逻辑结构:符合文本的自然结构。

挑战:,

  • 大小不一:段落长度可能会有很大差异。
  • 令牌限制:过长的段落可能会超出模型的令牌限制。

小贴士:

  • 监控分块的大小,确保它们的大小保持在可接受的字符限制内。
  • 如有必要,进一步拆分较长的段落,尽量保持上下文的连贯性。

你是在准备Gen AI/LLM面试准备吗?来看看我们的LLM面试准备课程吧。

  • 120+ 个覆盖 14 个类别的问题及真实的 案例研究
  • 每个类别都有 100+ 份评估被精选了
  • 基于 真实世界面试问题,这些问题是根据 FAANG 和 Fortune 500 公司的需求精心准备的,经过深入研究得出
  • 注重视觉学习
  • 完成证书认证

50%折扣码 — 输入代码:LLM50

课程链接:

大型语言模型(LLM)面试问答深入了解AI的世界,学习大型语言模型(LLM)面试问答……www.masteringllm.com
滑动窗口

它是怎么工作的:通过在文本上滑动一个窗口来创建重叠的部分,确保这些部分相邻的内容有重叠。

滑动窗口分段——可视化展示

最适用于:需要在各部分间保持上下文一致的文档,如法律或医学资料。

优势

  • 上下文连续性:重叠有助于保持信息的连贯性。
  • 提高检索效果:提高检索到的相关信息片段的可能性。

难题

  • 冗余:重复内容可能会导致信息重复。
  • 计算资源消耗:更多的数据块会增加处理和存储的负担。

实现提示

  • 根据文档的性质优化窗口大小和重叠区域。
  • 在检索过程中使用去重技术来处理重复内容。
语义分组

它是如何工作的:使用词嵌入或机器学习模型根据语义拆分文本,确保每个段落在主题或思想上连贯。

语义分组,可视化

最适合用于:需要深入理解的复杂查询需求,例如技术文档或学术文章。

优点包括:

  • 上下文相关性:片段有意义地分组,提升了检索的准确性。
  • 灵活性:适应文本本身的结构和内容。

挑战:

  • 复杂度:需要高级的自然语言处理模型和足够的计算资源。
  • 处理时间:语义分析可能会比较耗时。

实施小贴士:

  • 利用预训练模型进行语义分割任务。
  • 权衡计算成本和语义块精细程度的粒度。
递归分组

它是怎么运作的:通过使用层级分隔符如标题、子标题、段落和句子,逐步将文本分割成更小的部分。

递归分割可视化

最适合用于:有层级结构的文档,例如书籍或长篇报告。

以下是优点:

  • 保持文档的层级结构关系:维持文档的结构关系。
  • 适用于非常大的文本内容:适用于非常大的文本。

挑战:
遇到的挑战有:

  • 复杂的实现:需要处理多层文本结构。
  • 潜在的语境丢失:即使是最小的文本片段,也可能因为管理不当而丢失语境。

实施小贴士

  • 使用文档结构(如HTML标签)来识别层级。
  • 存储每个部分在层次结构中的所在位置的元数据,以便在检索时提供上下文。
带上下文的分块

它是怎么工作的:通过加入周围片段的摘要或元数据来丰富每个片段,从而在整个过程中保持上下文。

上下文增强的分块,可视化技术

最适合用于:需要在多个部分之间保持连贯的长篇文档。

好处

  • 增强上下文:提供额外信息而不显著增加大小。
  • 改进连贯性:帮助模型生成更准确且符合上下文的回答。

挑战:
面临的挑战:

  • 复杂度:需要额外处理来生成摘要或元数据。
  • 存储开销:增强的数据块会占用更多的存储空间。

实现小贴士:

  • 为了减少额外的 token 使用,生成简洁的摘要。
  • 可以把关键术语或概念作为元数据来代替完整的摘要。
特定模态的:分段

它是怎么工作的:分别处理不同类型的内容(文本、表格、图片等),根据每种内容的特性进行分块。

模态特定分块——视觉化表示

最适用于:包含多种媒介的文档,例如科学论文或产品使用手册。

好处

  • 量身定制的方法:针对每种内容类型进行优化分块
  • 提高准确性:专门处理能进一步提高检索准确性

挑战:

  • 实现复杂度:每个模态都需要自定义的实现逻辑。
  • 集成难度:在检索过程中,结合不同模态的信息可能会比较棘手。

提示:

  • 使用OCR来识别包含文本的图像。
  • 将表格转为结构化数据格式。
  • 在不同模态之间保持索引系统的一致性。
代理分块

它是怎么运作的:利用大型语言模型(LLM)来分析文本,并根据内容结构和语义来建议分割文本的边界。

代理分块——一种可视化技术

最适用于:复杂文档,其中保留意义和上下文非常重要。

好处

  • 智能分段:利用LLM来理解,生成有意义的片段。
  • 灵活适应:能够有效应对各种无结构内容。

挑战
我们面临的挑战。

  • 计算密集型:处理整个文档需要大量计算资源。
  • 成本:由于高昂的计算成本,可能在大规模应用中不切实际。

实施小贴士

  • 有选择地对重要文件使用代理分块(注:代理分块是一种分块技术,用于处理某些特定任务)。
  • ——优化LLM提示内容,专注于高效地识别逻辑分块的边界。
子文档拆分

它是怎么工作的:总结整个文档或大段落的内容,并将这些总结作为元数据附加到各个部分。

子文档切片以及可视化展示

最适用于:提高大量文档的检索效率。

优点:

  • 分层检索:允许检索系统在多个层次上运行。
  • 上下文层次:为模型提供更多的信息层次。

挑战

  • 额外的处理:需要生成和管理概要。
  • 管理元数据:增加了索引系统的复杂度。

实现小贴士

  • 使用NLP技术自动化摘要生成过程。
  • 高效地存储摘要以减少存储需求。
混合块(混合分块)

它的工作原理是:结合多种分段策略,灵活应对不同类型的查询和文档结构。

混合分块 — 可视化技术

最适合用于:处理各种查询和文档类型的多功能的系统。

优点:

  • 灵活度:可以根据内容和需求灵活调整策略。
  • 高性能优化:在各种应用场景中平衡速度和准确度。

挑战:

  • 复杂逻辑:需要更复杂的决策算法。
  • 维护:更多的组件可能会导致更多的错误。

实施提示:

  • 制定选择分块策略的标准(例如,文档类型,查询复杂度)。
  • 广泛测试和验证混合方法论,以确保其可靠。
分块策略的比较研究
AgenticRAG 入门课程

了解我们的AgenticRAG with LlamaIndex 课程,包含5个实际案例研究。

  • RAG基础知识 通过实际案例研究
  • 学习 高级AgenticRAG技术,包括:
    • 路由代理
    • 查询代理规划
    • 结构规划代理
    • 带有人类参与的ReAct代理
  • 深入了解5个实时案例研究,附带代码解析
代理增强检索生成(AgenticRAG)与LlamaIndex学习

了解更多关于代理增强检索生成(AgenticRAG)与LlamaIndex的内容,克服传统RAG的挑战……www.masteringllm.com

选择正确的分段策略

选择合适的分段策略,需要考虑几个因素,

  • 文档类型:结构化与非结构化,长度及类型。
  • 查询复杂度:简单FAQ和复杂技术问题。
  • 资源可用性:计算能力和时间限制。
  • 期望结果:速度与准确性与保留上下文。

指导方针

  • 为了速度:使用固定长度或以句子为基础的分块。
  • 针对上下文:选择滑动窗口、语义或上下文增强型的分块。
  • 针对混合类型的内容:采用特定于模态或混合分块。
  • 针对大规模系统:在效率和上下文之间取得平衡,可以使用递归或子文档分块。
RAG中分块的最佳实践
  • 监控块的大小:确保块的大小保持在语言模型的标记限制内。
  • 保留意义:避免随意分割句子或逻辑单位。
  • 优化检索:使用适合您的分块策略的高效索引和检索机制。
  • 处理冗余:实现去重以管理重叠的部分。
  • 广泛测试:使用特定数据和查询评估不同的策略,以找到最佳方案。
  • 利用元数据:通过添加元数据来增强块内容,以提高检索的相关度。

分块是一个基础步骤,直接影响系统的效率和准确性。了解各种分块策略及其适用场景,可以让开发人员根据具体需求定制RAG系统。通过权衡上下文保留、计算成本和实现复杂度之间的关系,可以选择最适合的分块方法来有效提升他们的语言模型。

参考文献
  • Lewis, P., et al. (2020). 用于知识密集型NLP任务的检索增强生成. 神经信息处理系统年刊, 33.
  • Jurafsky, D., & Martin, J. H. (2021). 语音和语言处理 (第3版). Pearson.
  • Manning, C. D., et al. (2008). 信息检索入门. Cambridge University Press.
  • OpenAI. (2023). GPT-4技术文档. OpenAI.

在这里关注我们,你们的评论和点赞鼓励了我们继续前进,这样我们就能为社区创造更好的内容。

能给点掌声吗?给咱们50掌声吧!

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消