RAG分块优化之语义分块方法CrossFormer模型技术思路 原创

发布于 2025-4-2 07:36
1883浏览
0收藏

笔者在前期文章中总结了RAG的分块《​​RAG常见13种分块策略大总结(一览表)​​》,本文介绍一个语义分段的工作,该工作解决的问题是文本语义分割,即将文档分割成多个具有连续语义的段落。传统方法通常依赖于预处理文档以分段来解决输入长度限制问题,但这会导致段间关键语义信息的丢失。RAG系统中的文本分块方法主要分为基于规则和基于LLM的方法。

插入一个思路,其实,语义分段的方式笔者在很早实践过一个思路,不管是RAG分块还是基于规则分块,都会或多或少的都是段落信息,如何通过语义的方式分割段落?笔者之前的思路最初的想法来源于序列标注模型,那么是否能应用序列标注的方法,来预测文本行之间的跳转概率?答案是肯定的,以pdf为例,具体实施步骤如下: 先放上笔者之前的老图:

RAG分块优化之语义分块方法CrossFormer模型技术思路-AI.x社区

  1. 从pdf读取程序或ocr引擎中得到文本行及其坐标;
  2. 使用神经网络对第i行的文本进行编码,得到文本嵌入向量text_emb(i);
  3. 提取对应行的图像,得到图像嵌入向量img_emb(i);
  4. 提取字号、文字长度特征,并进行归一化得到特征向量;
  5. 聚合步骤2、3、4得到的向量,得到行嵌入line_emb(i);
  6. 使用神经网络对行向量序列[line_emb(i)]进行序列标注。

整体方案流程图如下:

RAG分块优化之语义分块方法CrossFormer模型技术思路-AI.x社区

接下来,本文介绍的方法有异曲同工之处,也是采用序列标注的方式进行,供参考。

方法-CrossFormer

RAG分块优化之语义分块方法CrossFormer模型技术思路-AI.x社区

任务定义

CrossFormer 将文本语义分割任务定义为句子级别的序列标注问题。给定一个文档 ,包含  个句子,每个句子  被分配一个二分类标签 。标签  表示由语义连贯性统一的一个段落的终端边界,而  表示在同一主题段落内的连续性。目标是训练一个函数 ,能够根据上下文预测每个句子的标签 。

为了实现这一点,模型在每个句子  的末尾添加一个特殊的标记 [SENT],并评估这个标记是否标志着一个段落边界。通过这种方式,文档被分割成一组不相交的语义段落

文档预处理

RAG分块优化之语义分块方法CrossFormer模型技术思路-AI.x社区

由于文本语义分割任务通常涉及长文档,需要采用适当的建模方法来有效处理这些文档。论文中采用了截断和分段的方法。步骤如下:

  1. 分段:根据任务指定的分隔符(如换行符或句号)对文档进行分段。
  2. 截断:将每个句子截断到最大长度 。
  3. 拼接:将截断后的句子按顺序拼接,形成多个文档段,每个段的长度不超过 。
  4. 批处理:将这些文档段组装成一个批次,并输入模型进行训练或推理。

跨段融合模块 (CSFM)

CSFM 是 CrossFormer 的核心组件,用于增强文档段之间的语义连贯性。原理如下:

  1. 全局语义表示:通过选择预训练的特殊标记 [CLS] 和 [SEP],提取每个段落的语义表示 。然后,通过最大池化从这些表示中获取最大的语义成分,得到全局语义信息 。
  2. 拼接和线性变换:将全局语义嵌入  与每个分隔符嵌入  进行拼接,并通过两个线性层进行处理,得到 ,即结合了全局语义信息的分隔符表示。
  3. 分类:将  输入线性层并应用 Softmax 函数,得到分类结果,从而确定段落边界。

训练模型使用交叉熵损失函数即可。

通过这种方式,CSFM 能够有效地捕捉文档段之间的语义依赖关系,提高分割性能。

CrossFormer 作为 RAG 文本块分割器

RAG分块优化之语义分块方法CrossFormer模型技术思路-AI.x社区

CrossFormer 可以作为RAG系统中的文本块分割器,生成更具语义连贯性的文本块。流程如下:

RAG分块优化之语义分块方法CrossFormer模型技术思路-AI.x社区

流程图

  1. 分割长文档:首先使用 CrossFormer 对输入文档进行分割,生成一系列文本块。
  2. 长度评估:评估每个文本块的长度。如果长度超过预设阈值,则将其输入分割队列进行进一步处理,直到确定不需要额外分割或文本块长度低于指定阈值。
  3. 检索和生成:使用分割后的文本块进行检索和生成。通过检索器和问题提示进行相关性检索,生成上下文,并将其输入到LLM中以获得最终答案。

局限性

  • CrossFormer不能精确控制文本块长度的上限。因此,可能需要结合基于规则的方法来输出合适的长度。
  • 作为线性文本语义分割模型,CrossFormer不能输出部分重叠的文本块,这在RAG系统的某些场景中是必需的

实验效果

RAG分块优化之语义分块方法CrossFormer模型技术思路-AI.x社区

文本语义分割的结果

RAG分块优化之语义分块方法CrossFormer模型技术思路-AI.x社区

在RAG基准测试上的结果

RAG分块优化之语义分块方法CrossFormer模型技术思路-AI.x社区

参考文献:CrossFormer: Cross-Segment Semantic Fusion for Document Segmentation,https://arxiv.org/pdf/2503.23671v1


公众号大模型自然语言处理  作者:余俊晖

原文链接:​​https://mp.weixin.qq.com/s/YSt1G-M5yEJCb8VcW0OlnA​

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
已于2025-4-2 07:36:18修改
收藏
回复
举报
回复
相关推荐