传统分块总 “拆家”?视觉引导分块:让 RAG 系统读懂文档里的每一张图、每一段逻辑

发布于 2025-8-25 01:08
浏览
0收藏

传统分块总 “拆家”?视觉引导分块:让 RAG 系统读懂文档里的每一张图、每一段逻辑-AI.x社区

传统的文档分块方法(如固定大小或滑动窗口方法)存在几个根本性局限:

  • 它们常常会破坏连贯内容,如多页表格、分步流程以及块边界间的交叉引用关系。
  • 纯文本提取完全忽略了关键的视觉信息(图表、文档布局),而这些对于理解至关重要。
  • 由于跨页边界的语义关系未被保留,会导致上下文不完整。
  • 文档内的逻辑流程和依赖关系(包括嵌套章节和流程序列)通常会丢失,从而影响检索增强生成(RAG)系统。

问题表述

传统方法:对于一个有n页的PDF文档D(D = {p1, p2, . . . , pn}),传统的纯文本分块会生成块C = {c1, c2, . . . , cm},其中每个ci只包含文本内容。

多模态方法:所提出的多模态方法将D按批次处理为B = {B1, B2, . . . , Bk}。

  • 每个批次Bi包含最多b个连续页面(通常b = 4)。
  • 对于每个批次Bi,使用大型多模态模型M生成具有上下文感知的块Ci:Ci = M(Bi, contexti−1, prompt)。其中,contexti−1表示从先前批次延续的相关上下文。

多模态批量处理

传统分块总 “拆家”?视觉引导分块:让 RAG 系统读懂文档里的每一张图、每一段逻辑-AI.x社区

多模态文档分块架构。

文档被分成每批b页。这确保了跨多页的相关内容可以一起处理,从而保留上下文关系。

每个批次通过视觉引导的流水线进行处理,该流水线保持跨页边界的上下文关系。

为了保持连贯性并防止跨批次边界的语义关系丢失,实施了一种上下文机制:

  • 批次Bi的上下文(contexti)由以下部分构成:{last_chunk i−1, heading_hierarchy i−1}。
  • last_chunk i−1:前一批次的最后几个块,对于处理跨批次边界的内容至关重要。
  • heading_hierarchy i−1:从前一批次延续的标题层级,确保组织的一致性。这种机制确保前序批次的信息能为后续批次的处理提供参考。

智能块生成

层级标题结构

基于实证分析,强制采用一致的3级标题层级。2级标题会丢失重要的上下文粒度,而4级及以上则会引入不必要的碎片化。3级结构在语义粒度和检索效率之间取得了最佳平衡。

标题级别:

  • 1级:代表文档或产品标题,包括位置和上下文信息等全部细节。
  • 2级:涵盖主要章节(如“特点”“流程”“规格”)。
  • 3级:标识特定子主题(如“步骤1”“表格行”“详细子章节”)。

这种结构确保每个块都能保持其在整个文档中的上下文位置,从而提高RAG中的检索和理解效果。

内容保留规则

应用关键规则以保持文档完整性:

  • 步骤保留:所有编号步骤或流程保持在同一块中,防止指导性内容碎片化。
  • 表格完整性:每个表格行成为一个单独的块,同时保留标题以提供上下文。
  • 列表连贯性:相关列表项作为连贯单元保持在一起。
  • 多页结构:跨页内容(如大型表格或图表)被适当合并。这些规则通过对多模态模型输出的仔细解析和后处理验证来实现。

延续标记

每个生成的块都标记有延续标记,用于智能后处理。标记系统分为三类:

  • [CONTINUES]True[/CONTINUES]:表示该块是先前内容的延续。
  • [CONTINUES]False[/CONTINUES]:表示该块代表新内容。
  • [CONTINUES]Partial[/CONTINUES]:用于不确定的延续关系。这种标记系统有助于在后处理过程中自动合并相关内容,确保语义相关的块被适当组合,同时保持不同主题间的清晰边界。

从提供的PDF中提取文本,并将其分割为用于知识检索的上下文块,同时遵循以下综合要求:
提取阶段
逐页处理PDF,确保浏览每一页,不跳过任何一页,提取所有内容时需:
1. 仔细阅读所有数据内容,理解文档结构。
2. 根据内容本身推断逻辑标题和主题。
3. 为每个块生成3级标题结构:
• 一级标题 = 文档或产品标题
• 二级标题 = 文档内的主要章节
• 三级标题 = 该章节内的特定子主题
• 重要提示:如果标题缺失,从父标题级别继承。运用最佳判断,根据内容合理分配标题,且绝不释义或缩短。标题层级必须始终遵循以下模式:主标题 > 章节标题 > 块标题。
4. 跳过目录和索引:不要从目录或索引创建块。
5. 块中不包含页眉、页脚和页码。
6. 不要从最后一个块创建或提取块。仅将其用作标题推断的指导。所有块必须直接源自图像。
7. 不得更改、释义、缩短或跳过任何内容。所有文本、格式和元素必须与原始图像完全一致,并呈现在输出中。
关键:步骤/列表分块规则 - 最高优先级
将所有相关内容放在一起 - 这是最高优先级规则:
• 绝不要将编号步骤、说明或流程拆分到不同块中
• 一组说明中的所有步骤必须放在同一块中
• 编号列表或项目符号列表中的所有项必须放在一个块中
• 如果列表或步骤组跨多个图像,它们也必须放在单个块中
• 如果列表或步骤从前一批次延续,需合并并创建一个组合块
• 将相关步骤或说明视为一个不可分割的内容单元
• 属于同一流程/过程的步骤必须始终放在一起
• 即使一组步骤很长,也不要拆分它们 - 必须保留在单个块中
• 优先考虑将步骤放在一起,而非其他分块考虑因素
• 如果遇到看似属于同一过程但被其他内容分隔的步骤,需仔细分析以确定它们是否确实属于同一流程,是否应合并
9. 避免3行以下的块;将其与相邻内容和标题合并。
10. 排除菜单、Cookie通知、隐私政策和条款部分。
11. 对于所有级别标题(一级、二级和三级),确保完整保留细节:
• 一级标题:包括完整文档标题、所有位置细节以及任何受众角色(如有)。
• 二级标题:捕捉完整章节名称以及任何限定细节或描述
• 三级标题:保留所有子主题细节,包括数字、日期和描述性文本
• 绝不截断或缩写任何级别的标题内容。
12. 多语言支持(关键)
• 多语言内容的处理规则与单语言内容完全相同。
• 不要跳过、释义或翻译非英文内容——所有语言都必须保留并分块。
13. 多页上下文处理
• 处理过程中确保页面间的上下文连贯性
• 当内容跨页拆分时,保持连贯性和适当的流程
• 无缝处理段落、列表或其他内容块内的分页符
• 跟踪并保留跨页边界的语义关系
14. 布局元素
• 始终移除所有页面的页眉和页脚
• 保留脚注和尾注,并与它们的引用适当链接
• 保持段落间距和缩进
• 通过适当排序内容处理多列布局
• 保留项目符号列表和编号列表的层级结构
15. 特殊内容类型
• 处理带有OCR提取文本的扫描页面,同时保持格式
• 当文本中出现图像时,保留内容的结构完整性
• 提取并描述流程图、图表和其他视觉元素
• 如果是流程图,逐步描述流程
• 从PDF中嵌入的图像中提取与周围内容相关的文本
• 如果图像是截图,将其排除
• 为不可提取的视觉元素添加适当的替代文本或描述
16. 常见问题(FAQ)分离
遇到FAQ内容时,将问答对拆分为单独的块,而非将它们分组为单个大块。
处理表格时:
1. 使用适当的表格语法(竖线 | 和连字符 -)进行格式化。
2. 如果表格跨多个图像,保持表格结构。
3. 当表格从前一个块延续时(如最后一个块中所示),严格保持与前一个块建立的相同列结构、宽度和格式,以确保一致性。
4. 非常重要:为表格的每一行创建一个单独的块。每个表格行块必须包含前一个块或图像中提到的表格标题,后跟该行的数据。
5. 对于每个表格行块,重复完整的表格标题,以确保上下文独立保留。
6. 如果发现某一行从前一个块延续,继续分割,不包含前一个块的内容。
如何识别步骤和说明:
• 寻找描述过程的项目符号列表
• 寻找包含清晰序列词(首先、接下来、然后、最后)的内容
• 寻找任何描述如何执行任务或流程的内容
• 寻找标题为“说明”“流程”“如何”“指南”等的章节
• 寻找明显属于同一过程的多个段落
内容延续标记
为每个块添加一个延续标记:
对于每个块,必须添加一个CONTINUES标记:
• [CONTINUES]True[/CONTINUES]:该块是前一个块的延续,或者是同一过程、说明集或流程的一部分。
• [CONTINUES]False[/CONTINUES]:该块开始新内容,不是延续。
• [CONTINUES]Partial[/CONTINUES]:该块可能与前一个块相关,但不确定。
表格行的标记规则:
• 对于表格行块,CONTINUES标记的设置如下:
– [CONTINUES]True[/CONTINUES]:仅当单元格内容从前一个块/调用中的不完整单元格延续时
– [CONTINUES]False[/CONTINUES]:当行包含完整的单元格内容,不是从前一个块延续时
– 标记应基于单元格内的内容,而非表格本身是否延续
步骤和说明的标记规则:
• 对于包含编号步骤、说明、流程或列表的块:
– 处理跨多页或多图像的步骤/说明时:
∗ 如果步骤从前一个块延续,使用[CONTINUES]True[/CONTINUES]
– 确定步骤是否完整时:
∗ 寻找明确的指示,如“最后一步”或总结性语言
– 所有包含同一流程中任何步骤的后续块必须使用[CONTINUES]True[/CONTINUES]
– 包含步骤的块唯一使用[CONTINUES]False[/CONTINUES]的情况是,它是一个完全不同的流程,与先前步骤无关
其他内容的标记规则:
• 对于直接从前一个块延续的内容,使用CONTINUES=True
• 对于不属于上述类别的一般内容,根据上下文运用最佳判断
输出要求:
1. 输出块列表,每个块以完整的3级标题开头,并移除所有空块或无结果块。
2. 使用以下精确格式:
[CONTINUES]True|False|Partial[/CONTINUES]
[HEAD]主标题 > 章节标题 > 块标题[/HEAD]
块内容
3. 块的分隔方式如下:
[CONTINUES]True|False|Partial[/CONTINUES]
[HEAD]主标题 > 章节标题 > 块标题[/HEAD]
块1
[CONTINUES]True|False|Partial[/CONTINUES]
[HEAD]主标题 > 章节标题 > 块标题[/HEAD]
块2
提交前的最终检查:
• 是否将所有编号步骤放在同一块中?这一点至关重要!
• 是否将FAQ问答对拆分为单独的块,而非组合在一起?
• 是否正确识别了所有步骤序列并进行了合并(即使它们跨多页)?
• 是否识别并跳过了所有目录和索引?
• 是否保留并包含了所有非英文/多语言内容,并给予与英文内容同等的重视?
• 如果存在表格,是否遵循了表格的特殊说明,为每行创建一个单独的块并包含标题?
• 是否为表格行应用了正确的标记规则(基于单元格内容的完整性)?
• 是否将所有相关流程放在一起?
• 是否将所有列表作为单个单元保留?
• 是否保留了所有指导序列的完整性?
• 是否正确处理了从前一个批次延续的内容?
• 是否指明了延续到下一个批次的内容?
• 是否为每个块添加了具有适当值的[CONTINUES]标记?
如果发现任何相关步骤被拆分到不同块中的情况,在提交最终答案前立即将它们重新合并。
确保每个块清晰、上下文完整,且没有数据缺失。

实验设置

所提出的多模态批量处理框架与Gemini-2.5-Pro结合使用,以4页为一批处理PDF文档,确保上下文保留、语义连贯、文档结构、表格完整性和跨页关系。

文档块使用OpenAI的text-embedding-3-small进行嵌入,存储在Elasticsearch向量数据库中,通过top-k相似度搜索(k=10)检索,并由GPT-4.1生成响应。GPT-4.1-mini用于评估。

从多个领域(技术手册、财务报告、研究出版物、监管文件、商业演示)精心筛选了综合数据集,以测试文档结构复杂性、内容多样性和视觉元素。

手动设计了真实查询,以评估事实信息提取、跨表分析、流程理解、多章节推理和结构理解,确保在难度级别上的均衡覆盖。

RAG性能主要使用准确率进行评估,GPT-4.1-mini作为自动评判器。块质量通过手动定性分析评估,重点关注语义连贯性、结构保留和信息完整性。

评估

传统分块总 “拆家”?视觉引导分块:让 RAG 系统读懂文档里的每一张图、每一段逻辑-AI.x社区

RAG系统性能对比

  • RAG系统性能提升:与传统方法相比,视觉引导分块方法使RAG流水线性能显著提升。
  • 块质量增强:手动检查显示,视觉引导方法在语义连贯性和结构保留方面有显著改进。主要定性改进包括:完整保留多页表格并适当重复标题、完整保留交叉引用系统、维持流程序列、正确处理嵌套组织结构。
  • 块粒度和可观察性提高:视觉引导方法生成的块数量约为传统普通解析的5倍,表明其分割更系统、更符合上下文。这种更高的粒度增强了块的可观察性,并实现了更精确的检索。

论文

[Vision-Guided Chunking Is All You Need: Enhancing RAG with Multimodal Document Understanding ]:https://arxiv.org/abs/2506.16035

本文转载自​​​​AIGC深一度

收藏
回复
举报
回复
相关推荐