RAG常见13种分块策略大总结(一览表)

向量数据库大模型机器学习

分块策略在RAG中至关重要,目的是提高效率、相关性和上下文保持。分块能减少计算开销,增加检索相关信息的可能性,同时保持信息完整性。但也存在风险,如上下文丢失、冗余和不一致性。选择策略需考虑文档类型(结构化 vs 非结构化)、查询复杂性、资源可用性和期望结果(速度 vs 准确性 vs 上下文)。

以下是13种独特分块策略的详细描述,按策略名称、描述、优点、缺点和实施建议。仅供参考。

picture.image

策略名称描述优点缺点实施建议
固定长度分块
将文本按预定义长度(如基于令牌或字符)分割,适合简单文档或快速处理。
简单性、统一性、效率
上下文丢失、相关性问题、潜在信息丢失
选择合适大小,考虑使用重叠窗口以保持上下文
基于句子的分块
按句子边界分割,确保每个块是完整的思想,适合短响应如客户查询。
保持上下文、易于实现、更好的可读性
块大小不一致、不适合长句、控制力弱
使用NLP库检测句子,必要时合并短句
段落分块
将文档按段落分割,每个段落通常包含完整想法或主题,适合结构化文档。
更丰富的上下文、逻辑分割
大小不一致、可能超出行牌限制
监控块大小,必要时分割大段落以保持上下文
文档分块
将整个文档视为一个块或最小分割,保持完整结构和上下文,适合法律或医学文档。
保持完整上下文、适合结构化文本、简单
可扩展性问题、效率低、缺乏细节提取
适用于不希望分割影响流程的场景
滑动窗口分块
通过滑动窗口创建重叠块,确保相邻块共享内容,适合需保持跨部分上下文的文档。
上下文连续性、提高检索效果
冗余、计算成本高
优化窗口大小和重叠,使用去重技术处理冗余
语义分块
使用嵌入或机器学习模型按语义意义分割,确保每个块主题连贯。
上下文相关性、灵活性、提高检索准确性
复杂性、处理时间长、计算成本高、阈值调整
利用预训练模型,平衡成本和粒度
递归分块
使用层次分隔符或多个分隔符逐步分割为小块,适合大型结构化文档。
层次上下文、可扩展性、意义块、细粒度控制
实现复杂、可能丢失上下文、复杂性高、计算开销大
使用文档结构标识层次,存储块位置元数据
上下文增强分块
为每个块添加周围块的摘要或元数据,保持序列间的上下文,适合长文档。
增强上下文、提高连贯性
复杂性、存储开销大
生成简洁摘要,考虑用关键术语或概念作为元数据
模式特定分块
按内容类型(如文本、表格、图像)分别处理,每个类型按其性质分块。
定制方法、提高准确性
实现复杂、集成困难
使用OCR处理图像,将表格转为结构化数据,保持索引一致
代理分块
使用AI(如大型语言模型)按内容结构和语义建议块边界,或按代理角色任务组织。
任务导向效率、聚焦相关数据、灵活性、智能分割
复杂设置、计算密集、成本高、可能过分专业化、丢失全局上下文
选择性使用,优化LLM提示,明确代理角色和任务规则
子文档分块
总结整个文档或大节并将摘要作为元数据附加到单个块,适合大型文档集。
层次检索、上下文深度
额外处理、元数据管理复杂
自动化摘要生成,高效存储摘要
混合分块
结合多种分块策略,动态适应不同查询类型或文档结构,适合多用途系统。
灵活性、优化性能
逻辑复杂、维护难度大
制定选择策略的标准,广泛测试以确保可靠性
基于令牌的分块
按预定义令牌数(如单词或子词)分割,确保块在模型令牌限制内。
优化语言模型、精确控制块大小、一致性
上下文碎片化、忽略语义结构、灵活性有限
确保块在模型令牌限制内

选择策略时需考虑以下因素

  • 文档类型 :结构化(如报告)适合段落分块,非结构化(如聊天记录)适合语义分块。
  • 查询复杂性 :复杂查询需语义或代理分块,简单查询可用固定长度分块。
  • 资源可用性 :计算资源有限时,优先固定长度或基于句子的分块。
  • 期望结果 :速度优先选固定长度,准确性优先选语义分块,上下文优先选滑动窗口。

关于作者:余俊晖,主要研究方向为自然语言处理、大语言模型、文档智能。曾获CCF、Kaggle、ICPR、CCL、CAIL等国内外近二十项AI算法竞赛/评测冠亚季军。发表SCI、顶会等文章多篇,专利数项。

0
0
0
0
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论