二、RAG的分块策略与选择

选择合适的分块策略,是解决RAG实际应用中准确性、召回率与复杂文档解析等痛点最直接有效的方式,也是我们建设RAG系统最关键的一个环节。最常见的RAG分块策略包括:固定大小分块、语义分块、递归分块、基于文档结构的分块、基于LLM的分块

图片

RAG五种分块策略(图片来源:DailyDoseofDS)

下面我们围绕这五种分块策略,系统介绍不同分块策略的基本原理、实现步骤、主要优缺点与适用场景。

固定大小分块

基本原理

固定大小分块(Fixed-size Chunking),将文本按固定长度(如字符数、单词数或token数)切分,每个块大小一致,可能通过重叠保留上下文连贯性。例如,将文档每256个字符切分为一个块,重叠20个字符以减少边界信息丢失。

图片

固定大小分块示意(图片来源:DailyDoseofDS)

实现步骤
  • 预设参数:定义块大小(如256 token)和重叠比例(如20 token)。
  • 切分文本:按固定长度分割文本,允许相邻块部分重叠。
  • 生成块列表:输出所有块作为独立单元。
主要优点
  • 实现简单:无需复杂算法,代码实现高效。
  • 标准化处理:块大小一致,便于批量处理和向量化。
  • 资源友好:适合大规模文本处理,降低计算成本。
主要缺点
  • 语义断裂:可能在句子或概念中间切分,破坏上下文完整性。
  • 信息冗余:重叠区域可能导致重复存储和计算。
  • 适用性受限:对结构化文本(如代码、技术文档)效果较差。
适用场景
  • 非结构化文本(如新闻、博客)的初步处理。
  • 对实时性要求高、需快速切分的场景。

场景示例

[原文档]  
"2023年Q3净利润同比增长5.2%(详见附录Table 7)"  
[分块1] "2023年Q3净利润同比增长5.2%(详见"  
[分块2] "附录Table 7)"  # 关键数据来源丢失!

语义分块

基本原理

语义分块(Semantic Chunking),根据句子、段落、主题等有语义内涵的单位对文档进行分段创建嵌入,如果第一个段的嵌入与第二个段的嵌入具有较高的余弦相似度,则这两个段形成一个块。通过合并相似内容,确保每个块表达完整的语义内容。

由于每个分块的内容更加丰富,它提高了检索准确性,让大模型产生更加连续和相关的响应。但是它依赖于一个阈值来确定余弦相似度是否显著下降,而这个阈值在不同类型文档中可能涉及不同的参数设置。

图片

语义分块流程

图片

语义分块示意(图片来源:DailyDoseofDS)

实现步骤
  • 分句/分段:将文本拆分为句子或段落。
  • 生成嵌入:为每个单元计算向量表示。
  • 相似度计算:依次比较相邻单元的余弦相似度。
  • 动态合并:当相似度高于阈值时合并单元;相似度骤降时开始新块。
主要优点
  • 语义完整性:保留自然语义结构,提升检索准确性。
  • 上下文敏感:适应复杂逻辑关系(如因果、对比)。
  • 生成质量:检索到的块更连贯,利于LLM生成精准回答。
主要缺点
  • 计算复杂度高:需多次向量化计算和相似度比较。
  • 阈值依赖\:相似度阈值需人工调试,不同文档需不同参数。
  • 实现门槛:依赖高质量嵌入模型和相似度算法。
适用场景
  • 高精度问答系统(如法律、医疗领域),研究论文、行业分析报告等专业文档。
  • 需保留上下文逻辑的复杂文档(如论文、技术报告)。

场景示例

[分块]  
区块1: "货币政策的宽松将推动市场流动性提升。"  
区块2: "但需警惕通胀反弹带来的政策转向风险。"  
# 每个区块为完整语义单元

归分块

基本原理

递归分块(Recursive Chunking),先按主题或段落初步划分,再对超长块递归细分,直至满足大小限制。递归分块融合了结构化与非结构化处理逻辑,与固定大小的分块不同,这种方法保持了语言的自然流畅性并保留了完整的内容语义。

图片

递归分块流程

图片

递归分块示意(图片来源:DailyDoseofDS)

实现步骤
  • 粗粒度切分:按段落、标题或主题初步划分大块。
  • 检查大小:判断块是否超过预设长度(如1024 token)。
  • 递归细分:超长,按固定大小或语义逻辑进一步切分。
  • 终止条件:块大小符合要求时停止递归。
主要优点
  • 灵活性强:平衡结构完整性与大小限制。
  • 适应复杂内容:处理长文档(如书籍、长篇论文)时表现优异。
  • 多策略融合:可结合固定大小或语义分块优化细分。
主要缺点
  • 块大小不均:不同层级的块可能差异较大。
  • 逻辑断裂风险:递归过程中可能破坏原文的自然段落结构。
  • 实现复杂:需设计递归终止条件和分块策略。
适用场景
  • 长文档处理(如企业年报、学术论文),书籍、技术手册等层级化文档。
  • 需兼顾结构化与非结构化内容的场景,包含嵌套结构的合同文本。

场景示例

1. 摘要 --> [保留完整]  
2. 行业分析 --> [按子章节切分]  
   2.1 供需格局 --> [按段落切分]  
   2.2 竞争态势 --> [按段落切分]  
3. 附录表格 --> [特殊处理] 

基于文档结构的分块

基本原理

基于文档结构分块(Document Structure-based Chunking),利用文档固有结构(如标题<h1>、章节、列表<ul>、表格<table>)进行切分,每个结构单元作为一个块。它通过与文档的逻辑部分对齐来保持结构完整性。这种分块适用于文档有清晰的结构,但很多时候,一个文档的结构会比想象中复杂,此外,很多时候文档章节内容大小不一,很容易超过块的大小限制,需要结合递归拆分再进行合并处理。

图片

基于文档结构分块流程

图片

基于文档结构分块示意(图片来源:DailyDoseofDS)

实现步骤
  • 识别结构元素:解析文档中的标题、段落、小节等标记(如Markdown、XML)。
  • 按结构切分:将每个结构单元(如“引言”、“结论”)独立为块。
  • 处理超长部分:若某结构单元过大,再结合递归或固定大小分块细化。
主要优点
  • 逻辑清晰:保留文档的层次化结构,便于定位信息。
  • 检索高效:用户可通过标题快速定位相关内容。
  • 格式兼容性:适合结构化文档(如技术手册、报告)。
主要缺点
  • 依赖格式标准化:对非结构化文本(如自由写作)效果差。
  • 预处理复杂:需解析文档格式(如LaTeX、HTML),增加实现难度。
  • 灵活性不足:难以处理混合结构内容(如图文混排)。
适用场景
  • 结构化文档,如:财报(表格数据)、技术文档(代码块)、合同(条款列表)。
  • 需按章节检索的场景(如法规数据库),任何含丰富格式标记的内容。

场景示例

[原始PDF表格]  
| 项目          | 2023Q3 | 同比  |  
|--------------|--------|-------|  
| 营业收入      | 5.2亿  | +12%  |  
[结构化分块]  
{  
  "type": "table",  
  "title": "利润表摘要",  
  "data": [["项目", "2023Q3", "同比"], ["营业收入", "5.2亿", "+12%"]]  
}  # 整表作为独立区块

基于LLM的分块

基本原理

基于LLM的分块(LLM-based Chunking),直接将原始文档输入大语言模型(LLM),由模型智能生成语义块。利用LLM的语义理解能力,动态划分文本,保证了分块语义的准确性,但这种分块方法对算力要求最高,对时效性与性能也将带来挑战。

图片

基于LLM分块流程(图片来源:DailyDoseofDS)

实现步骤
  • 输入文档:将完整文档送入LLM(如DeepSeek、GPT)。
  • 生成块指令:通过提示词(Prompt)引导模型按语义划分块。
  • 示例提示词:“请将以下文档按语义划分为多个块,每个块需包含完整主题。”
  • 输出块列表:模型返回划分后的块,可能包含逻辑标签(如“引言”、“方法论”)。
主要优点
  • 高度智能化:适应复杂、非结构化文本(如自由写作、对话记录)。
  • 动态适应性:根据文档内容自动调整块大小和逻辑。
  • 生成质量:块语义连贯,减少人工干预。
主要缺点
  • 计算成本高:依赖高性能LLM,资源消耗大。
  • 可解释性差:模型决策过程难以追溯,可能产生不可预测的块。
  • *依赖模型能力:效果受限于LLM的训练数据和语义理解能力。
适用场景
  • 非结构化文本(如访谈记录,会议纪要,用户评论、社交媒体内容等)。
  • 需高级语义分析的场景(如跨领域知识整合)

场景示例

[原始分散段落]  
段落1: "A公司宣布收购B公司..."  
段落2: "交易金额达50亿美元..."  
段落3: "B公司核心资产为..."  
[LLM智能分块结果]  
"并购事件:A公司以50亿美元收购B公司(核心资产为...)"  # 跨段落聚合关键信息

五种RAG分块策略总结对比

分块策略 优点 缺点 适用场景
固定大小分块 实现简单,资源高效 语义断裂,信息冗余 快速处理非结构化文本
语义分块 语义完整,检索精准 计算复杂,依赖阈值 高精度问答、复杂文档
递归分块 灵活适应长文档,保留结构 块大小不均,逻辑断裂风险 长篇技术文档、企业报告
基于结构的分块 逻辑清晰,检索高效 依赖格式标准化,预处理复杂 结构化文档(论文、白皮书)
基于LLM的分块 高度智能,适应非结构化文本 计算成本高,决策过程不可控 非结构化内容、跨领域整合

RAG分块策略选择建议

  • 结合递归与结构分块:处理长文档时(如法律合同、表格、公式、技术手册)。

  • 语义分块:对生成质量要求高、文档语义复杂时(如论文、医疗问答)。

  • 使用LLM分块:处理非结构化或混合内容(如多模态文档)。

  • 固定大小分块:快速部署或资源受限场景(如社交媒体、轻量级应用)。

图片

分块策略选择决策树

具体实施过程中,我们需要根据具体需求与文档类型选择分块策略,或组合多种方法(如“结构分块+语义细分”)以实现最佳效果。

三、RAG面临的挑战与前沿探索

深层待解决问题

知识关联缺失

当前检索基于单点语义相似度,无法构建跨文档知识图谱(如“公司A收购事件”与“行业竞争格局变化”的隐含关联)。

推理-检索割裂

生成模型无法主动指导检索过程,形成“检索→生成”单向流水线,而非动态交互式推理。

例如:模型应能反问“您需要对比哪两个季度的数据?”以优化检索目标。

多模态理解不足

现有RAG主要处理文本,对文档中的图表、公式、流程图等信息利用率极低。例如研报中的股价趋势图无法被检索系统理解。

可信度量化困境

缺乏统一标准评估答案可靠性,用户难以判断“何时可信任RAG的输出”,导致存在潜在风险,例如金融场景中错误答案可能导致直接经济损失。

长上下文建模缺陷

当检索返回大量片段(如20篇文档)时,模型对超长提示词的尾部信息忽略率显著上升。

解决路径与前沿探索

检索增强

  • 混合检索:融合语义搜索(Embedding)与关键词搜索(BM25)提升召回率
  • 查询扩展:用LLM将用户问题改写为专业查询(如“钱放余额宝安全吗?”→“货币基金信用风险评估”)
  • 递归检索:实现多跳推理(先查“美联储加息”,再查“科技股估值模型”)

生成控制

  • 强制引用:要求模型标注答案来源位置(如:源自2023年报第5页)
  • 置信度阈值:对低置信答案触发人工审核流程
  • 结构化解构:将复杂问题拆解为子问题分步检索生成

优化分块

  • 语义分块:按句子/段落边界切分而非固定长度
  • 结构感知:保留表格、标题层级(利用Markdown/XML标签)
  • 动态重叠:相邻块部分重叠避免上下文断裂

如何系统学习掌握AI大模型?

AI大模型作为人工智能领域的重要技术突破,正成为推动各行各业创新和转型的关键力量。抓住AI大模型的风口,掌握AI大模型的知识和技能将变得越来越重要。

学习AI大模型是一个系统的过程,需要从基础开始,逐步深入到更高级的技术。

这里给大家精心整理了一份全面的AI大模型学习资源,包括:AI大模型全套学习路线图(从入门到实战)、精品AI大模型学习书籍手册、视频教程、实战学习、面试题等,资料免费分享

1. 成长路线图&学习规划

要学习一门新的技术,作为新手一定要先学习成长路线图方向不对,努力白费

这里,我们为新手和想要进一步提升的专业人士准备了一份详细的学习成长路线图和规划。可以说是最科学最系统的学习成长路线。

在这里插入图片描述

2. 大模型经典PDF书籍

书籍和学习文档资料是学习大模型过程中必不可少的,我们精选了一系列深入探讨大模型技术的书籍和学习文档,它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础(书籍含电子版PDF)

在这里插入图片描述

3. 大模型视频教程

对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的大模型视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识

在这里插入图片描述

4. 大模型行业报告

行业分析主要包括对不同行业的现状、趋势、问题、机会等进行系统地调研和评估,以了解哪些行业更适合引入大模型的技术和应用,以及在哪些方面可以发挥大模型的优势。

在这里插入图片描述

5. 大模型项目实战

学以致用 ,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。

在这里插入图片描述

6. 大模型面试题

面试不仅是技术的较量,更需要充分的准备。

在你已经掌握了大模型技术之后,就需要开始准备面试,我们将提供精心整理的大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。

在这里插入图片描述

全套的AI大模型学习资源已经整理打包,有需要的小伙伴可以微信扫描下方CSDN官方认证二维码,免费领取【保证100%免费

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐