当前位置: 首页 > news >正文

RAG-分块策略

分块策略在检索增强生成(RAG)方法中起着至关重要的作用,它使文档能够被划分为可管理的部分,同时保持上下文。每种方法都有其特定的优势,适用于特定的用例。将大型数据文件拆分为更易于管理的段是提高LLM应用效率的最关键步骤之一。目标是向LLM提供完成特定任务所需的确切信息,不多也不少。

什么是分块

分块涉及将文本划分为可管理的单元或“块”,以实现高效处理。这种分割对于语义搜索、信息检索和生成式 AI 应用等任务至关重要。每个块都保留上下文和语义完整性,以确保结果连贯。

分块技术及其策略

策略名称描述优点缺点实施建议

固定长度分块

将文本按预定义长度(如基于令牌或字符)分割,适合简单文档或快速处理。

简单性、统一性、效率

上下文丢失、相关性问题、潜在信息丢失

选择合适大小,考虑使用重叠窗口以保持上下文

基于句子的分块

按句子边界分割,确保每个块是完整的思想,适合短响应如客户查询。

保持上下文、易于实现、更好的可读性

块大小不一致、不适合长句、控制力弱

使用NLP库检测句子,必要时合并短句

段落分块

将文档按段落分割,每个段落通常包含完整想法或主题,适合结构化文档。

更丰富的上下文、逻辑分割

大小不一致、可能超出行牌限制

监控块大小,必要时分割大段落以保持上下文

文档分块

将整个文档视为一个块或最小分割,保持完整结构和上下文,适合法律或医学文档。

保持完整上下文、适合结构化文本、简单

可扩展性问题、效率低、缺乏细节提取

适用于不希望分割影响流程的场景

滑动窗口分块

通过滑动窗口创建重叠块,确保相邻块共享内容,适合需保持跨部分上下文的文档。

上下文连续性、提高检索效果

冗余、计算成本高

优化窗口大小和重叠,使用去重技术处理冗余

语义分块

使用嵌入或机器学习模型按语义意义分割,确保每个块主题连贯。

上下文相关性、灵活性、提高检索准确性

复杂性、处理时间长、计算成本高、阈值调整

利用预训练模型,平衡成本和粒度

递归分块

使用层次分隔符或多个分隔符逐步分割为小块,适合大型结构化文档。

层次上下文、可扩展性、意义块、细粒度控制

实现复杂、可能丢失上下文、复杂性高、计算开销大

使用文档结构标识层次,存储块位置元数据

上下文增强分块

为每个块添加周围块的摘要或元数据,保持序列间的上下文,适合长文档。

增强上下文、提高连贯性

复杂性、存储开销大

生成简洁摘要,考虑用关键术语或概念作为元数据

模式特定分块

按内容类型(如文本、表格、图像)分别处理,每个类型按其性质分块。

定制方法、提高准确性

实现复杂、集成困难

使用OCR处理图像,将表格转为结构化数据,保持索引一致

代理分块

使用AI(如大型语言模型)按内容结构和语义建议块边界,或按代理角色任务组织。

任务导向效率、聚焦相关数据、灵活性、智能分割

复杂设置、计算密集、成本高、可能过分专业化、丢失全局上下文

选择性使用,优化LLM提示,明确代理角色和任务规则

子文档分块

总结整个文档或大节并将摘要作为元数据附加到单个块,适合大型文档集。

层次检索、上下文深度

额外处理、元数据管理复杂

自动化摘要生成,高效存储摘要

混合分块

结合多种分块策略,动态适应不同查询类型或文档结构,适合多用途系统。

灵活性、优化性能

逻辑复杂、维护难度大

制定选择策略的标准,广泛测试以确保可靠性

基于令牌的分块

按预定义令牌数(如单词或子词)分割,确保块在模型令牌限制内。

优化语言模型、精确控制块大小、一致性

上下文碎片化、忽略语义结构、灵活性有限

确保块在模型令牌限制内

分块优化关键策略

  • 重叠块:包括块之间的某些重叠可以确保在段落之间不会丢失关键信息。这对于需要无缝过渡的任务尤其重要,如对话生成或摘要。
  • 动态块大小:根据模型的容量或文本的复杂性调整块大小可以提升性能。较小的块适合 BERT 等模型,而较大的块适用于需要更广泛上下文的生成任务。
  • 递归:递归或多级分块允许处理复杂的文本结构,例如将文档拆分为章节、节和段落。
  • 向量化的对齐:分块技术的选择对检索系统中的向量表示有显著影响。句子转换器和 BERT 或 GPT 等嵌入通常用于与分块粒度对齐的最佳向量化

相关文章:

  • 项目实战--新闻分类
  • 如何从EndNote中将某一篇手稿里面涉及到的引用文献导出,导出格式为bib?
  • 北京SMT贴片厂精密制造关键工艺
  • ESP-IDF教程2 GPIO - 输入、输出和中断
  • 【C++】 —— 笔试刷题day_19
  • STM32 HAL 通用定时器延时函数
  • 观察者 ➜ 事件总线:一路走来的碎碎念
  • 贪心、动态规划、其它算法基本原理和步骤
  • 00.IDEA 插件推荐清单(2025)
  • fastdds:传输层SHM和DATA-SHARING的区别
  • java输出HelloWorld
  • C语言动规学习
  • HOOPS Exchange 与HOOPS Communicator集成:打造工业3D可视化新标杆!
  • 【SAP ME 44】在 HANA DB中报废SFC时的SHOP_ORDER表记录锁定
  • MyBatis框架
  • 图+文+语音一体化:多模态合成数据集构建的实战与方法论
  • 利用deepseek+Mermaid画流程图
  • C++类和对象上
  • 什么是单元测试的“覆盖率”
  • 《软件设计师》复习笔记(11.4)——处理流程设计、系统设计、人机界面设计
  • 2025年一季度上海市生产总值
  • 欧盟就中欧有关世贸争端案件提起上诉仲裁,商务部回应
  • 机器人马拉松背后的五大启示:未来社会与机器人的深度融合
  • 群内“分享”侵权书籍电子版,培训公司被判赔偿出版社2万元
  • 市场监管部门完成全国保健食品生产企业体系检查首轮全覆盖
  • 人民日报头版:各地扎实开展学习教育,一体推进学查改