SchemaRAG: 面向LLM驱动的结构化信息提取的动态大规模模式简化

arXiv cs.AI 论文

摘要

SchemaRAG是一个检索增强生成框架,能够动态缩减面向LLM驱动的结构化信息提取的输出模式空间,在医疗健康和电子商务数据集上实现了性能提升和效率优化。

arXiv:2607.00008v1 Announce Type: cross Abstract: 使用大型语言模型(LLM)从非结构化文本中提取结构化数据时,若目标模式规模大且复杂,则变得具有挑战性。在这种情况下,将完整模式包含在提示中会增加成本和延迟,存在中间丢失性能下降的风险,并可能超出上下文长度限制。我们提出了SchemaRAG,一个检索增强生成(RAG)框架,它通过利用模式元数据和可用的少样本示例,动态修剪面向模式条件的信息提取任务的输出模式空间。我们在真实世界的医疗健康和电子商务数据集上评估了SchemaRAG。结果表明,SchemaRAG能够实现最高8.8%的micro-F1提升、47%的延迟降低和48%的令牌成本降低,展示了其在大规模模式提取中的实用性。
查看原文
查看缓存全文

缓存时间: 2026/07/02 05:41

# SchemaRAG:面向LLM驱动结构化信息提取的动态大规模模式缩减
来源:https://arxiv.org/html/2607.00008
Sin Yu Bonnie Ho Arlie Coles11footnotemark:1 Erik Larsson Eric Marshall Nathan Bodenstab Paul Vozila Microsoft

###### 摘要

使用大语言模型(LLMs)从非结构化文本中提取结构化数据时,当目标模式(schema)规模庞大且复杂时会面临挑战。在这种情况下,将完整模式放入提示词(prompt)会增加成本和延迟,带来“中间丢失”(lost-in-the-middle)的性能下降风险,并可能超出上下文长度限制。我们提出 SchemaRAG,一种检索增强生成(RAG)框架,通过利用模式元数据和少量示例(如果可用)动态裁剪输出模式空间,用于模式条件化信息提取任务。我们在真实世界的医疗保健和电子商务数据集上评估了 SchemaRAG。结果表明,SchemaRAG 可实现微 F1 值提升高达 8.8%,延迟降低 47%,令牌成本降低 48%,证明了其在大规模模式提取中的实用性。

SchemaRAG:面向LLM驱动结构化信息提取的动态大规模模式缩减

Sin Yu Bonnie Ho††thanks:同等贡献。通讯作者:[email protected], [email protected] Arlie Coles11footnotemark:1 Erik Larsson

Eric Marshall Nathan Bodenstab Paul Vozila

Microsoft

## 1 引言

结构化信息提取(IE)将非结构化文本中的值与模式定义的键配对。在医疗保健领域,这包括从非结构化临床笔记中进行医学属性提取(Jiang等人,2011 (https://arxiv.org/html/2607.00008#bib.bib10);Agrawal等人,2022 (https://arxiv.org/html/2607.00008#bib.bib9))以及加速医学叙述数据的人工标注(Goel等人,2023 (https://arxiv.org/html/2607.00008#bib.bib11))。类似地,电子商务应用侧重于从非结构化文本描述(有或没有补充的多模态数据)中提取产品属性值(Brinkmann等人,2024 (https://arxiv.org/html/2607.00008#bib.bib6);Zhu等人,2020 (https://arxiv.org/html/2607.00008#bib.bib12))。

结构化信息提取的进一步应用存在于可被转化为表单填充的问题中,其中模型需要从非结构化文本中填充复杂的分层模式。这些表单可能包含大量行,每行可能对潜在值有复杂约束(例如,所需类型包括字符串、数字、单选按钮、多选复选框或其他自定义类型)。在这项工作中,我们考虑两种这样的用例:1)从医学叙述中填充电子健康记录(EHR),以及2)从电子商务产品描述文本中填充产品元数据表单。

基于指令微调的大语言模型(LLM)非常适合这些任务,因为它们具有广泛的语义知识(Singhal等人,2023 (https://arxiv.org/html/2607.00008#bib.bib27))以及遵循结构化提示指令的能力(Liu等人,2024b (https://arxiv.org/html/2607.00008#bib.bib26))。然而,将大规模模式简单注入提示词可能会超出上下文限制或引入许多不相关的行。这会导致“中间丢失”效应(Liu等人,2024a (https://arxiv.org/html/2607.00008#bib.bib16)),并且随着模型难以隔离相关行,性能会下降。由此产生的延迟和推理成本可能阻碍实时应用。

参见图注

图 1:SchemaRAG 概述,它通过分割非结构化文本并对每个片段应用模式缩减来提取信息。这些片段及其缩减后的模式以及任何检索到的示例,随后被传递给一个即时提示的 LLM 查询进行提取。

为了缓解这些问题,我们提出了 Schema-RAG,一种检索增强生成方法,用于检索并裁剪输出模式空间。通过利用模式元数据以及(如果可用)有限的标注数据,SchemaRAG 动态选择相关的模式子集,用于即时上下文提示的 LLM 使用(图1 (https://arxiv.org/html/2607.00008#S1.F1))。一个精心选择的缩减模式可以缩小提示词规模,降低 LLM 填充不相关行的可能性,并提高整体提取性能。

该框架与模式无关,支持任意层次结构。由于驱动检索的嵌入可以离线计算,因此该系统高效且易于集成到现有流水线中。至关重要的是,SchemaRAG 作为一个无需训练(training-free)的解决方案运行,无需预训练或微调。我们明确关注在真实世界部署场景下使用托管 LLM 进行模式条件化提取,包括大规模、复杂的模式和严格的资源预算。通过使用提示而非重新训练,我们的方法允许快速迭代,并能即时适应不断变化的需求。

本文的贡献如下:1)我们提出 SchemaRAG——一种基于 RAG 的方法,用于缩减具有大规模、复杂输出模式的 LLM 驱动结构化信息提取任务的解空间。2)我们发布的实验结果显示,我们的方法在两个真实的、大规模模式数据集上实现了高达 8.8% 的相对微 F1 提升。延迟和令牌成本分别降低高达 47% 和 48%,尽管结果因数据集而异。

## 2 相关工作

LLM 已广泛应用于信息提取任务,包括命名实体识别(NER)、关系提取(RE)和属性值提取(AVE)(Dagdelen等人,2024 (https://arxiv.org/html/2607.00008#bib.bib7);Wang等人,2023 (https://arxiv.org/html/2607.00008#bib.bib17);Wei等人,2024 (https://arxiv.org/html/2607.00008#bib.bib18);Brinkmann等人,2024 (https://arxiv.org/html/2607.00008#bib.bib6);Zou等人,2025 (https://arxiv.org/html/2607.00008#bib.bib5);Wu等人,2024 (https://arxiv.org/html/2607.00008#bib.bib8))。最近基于检索的增强通过用相关上下文扩充提示词,进一步改进了信息提取。检索增强生成(RAG)(Lewis等人,2020 (https://arxiv.org/html/2607.00008#bib.bib20))指的是用从外部知识源检索到的信息来增强 LLM 提示词的技术。一个常见的用例是动态选择相关的基于文本的文档块或少量示例来作为条件(Ma等人,2025 (https://arxiv.org/html/2607.00008#bib.bib24);Li等人,2024 (https://arxiv.org/html/2607.00008#bib.bib25))。

并行的研究方向是检索已经填充的数据结构(例如,表格或数据库),并将子集注入到下游任务的提示词中(Chen等人,2024 (https://arxiv.org/html/2607.00008#bib.bib2);Sui等人,2024 (https://arxiv.org/html/2607.00008#bib.bib14);Lin等人,2023 (https://arxiv.org/html/2607.00008#bib.bib15);Ye等人,2023 (https://arxiv.org/html/2607.00008#bib.bib3);Wang等人,2024 (https://arxiv.org/html/2607.00008#bib.bib4))。先前的以表格为中心的方法假设单元格值可用,并在已填充的表格上操作以回答问题或进行推理。与对已填充表格的以表格为中心的问答不同,我们的场景是模式条件化的表单填充,需要从自由文本中填充一个大规模、未填充的模式。此外,我们认为传统的信息抽取基准不适合评估 SchemaRAG,因为其严格的基于跨度的评分会惩罚语义正确的 LLM 提取结果(即使它们恰好与数据集的特定标注偏差不同)。

这些挑战凸显了现有 RAG 文献中一个未被充分探索的领域:当前的检索策略并未解决动态选择复杂、结构化输出模式的相关部分以指导基于 LLM 的提取这一挑战。我们的 SchemaRAG 方法将检索应用于输出模式本身。SchemaRAG 通过检索以下内容将提示词缩小到大规模分层模式的相关子集:i) 基于插值的行元数据的一组候选模式行,以及 ii) 相关的模式行标注文本示例(如果可用)。检索到的行组成注入提示词中的模式子集;相关的标注数据(如果有)则作为少量示例。

## 3 方法

为了对非结构化文本的记录 \(T\) 执行键值对的结构化数据提取,提取出的对必须符合某个模式 \(S\)。我们将 \(S\) 定义为由 \(m\) 行组成,其中每行 \(r_i\) 具有一个标识符 \(i\)、一个字符串名称 \(n_i\),以及一个描述其可能值 \(v_i\) 的子模式。\(S\) 的值子模式可以是任意的,取决于领域所需的类型(表1 (https://arxiv.org/html/2607.00008#S3.T1))。

在复杂的模式中,可能存在任意层次的层级,形成到达任何行的路径。在这项工作中,我们考虑 2 级模式,其中每行可能属于任意数量的类别 \(C_i\),每个类别具有一个字符串名称 \(c_j\)。这种结构在 EHR 系统中很常见,但我们的方法可以推广到具有任意数量层次级别的模式。

表 1:不同行类型的值子模式示例。
| 类型 | 值子模式 (\(v_i\)) |
|---|---|
| 单选 | {"type": "string","enum": ["Yes", "No"]} |
| 多选 | {"type": "array","enum": ["A", "B", "C"]} |
| 数值 | {"type": "number"} |

\(S\) 可以以字符串形式表示为 JSON Schema(表2 (https://arxiv.org/html/2607.00008#S3.T2))。在最简单的情况下,\(S\) 和 \(T\) 可以直接作为上下文输入提供给提示的 LLM 查询以执行提取。我们仅在提示词中使用 JSON Schema 表示,因为 LLM 可能更倾向于填充这种标准规范格式,而非其他格式(Brinkmann等人,2024 (https://arxiv.org/html/2607.00008#bib.bib6))。当有标注示例可用时,它们可以作为上下文学习材料包含在提示词中。在这项工作中,我们的目标是将 \(S\) 缩减为 \(S_\kappa\),即一个包含 \(\kappa \ll m\) 个最相关行的较小集合,以提高结构化提取任务的性能,并避免在上下文中使用非常大的 \(S\) 所导致的问题。

### 3.1 模式缩减

我们的模式缩减方法利用两个行信息来源:行本身的元数据,以及(如果可用)按行标注的示例记录。对于每行 \(r_i \in S\),我们通过对嵌入的行元数据 \(M_i\) 进行归一化加权插值,使用预训练嵌入器 \(H\)(公式1),创建一个行嵌入 \(e_{\mathrm{row}, i}\)。直观地说,这是该行每个可用元数据字段的嵌入的加权平均值,其中权重控制不同元数据类型的重要性。\(M_i\) 的内容可根据可用元数据进行配置,但最少包括行名称 \(n_i\)、行类别名称的字符串拼接 \(C'_i\),以及(对于单选或多选行)行值子模式中可能值的字符串拼接 \(v'_i\)。我们将每个权重 \(w_j\) 视为一个超参数,可通过随机搜索或其他方式进行调优。

\[
e_{\mathrm{row}, i} = \sum_{j=1}^{|M_i|} w_j \cdot H(m_{ij}) \quad \forall m_{ij} \in M_i = \{n_i, C'_i, v'_i, ...\}
\]
(公式1)

当有一组标注示例 \(A\) 可用时,我们还会为每个示例 \(a_i = (x_i, y_i) \in A\) 创建一个示例嵌入 \(e_{\mathrm{ex}, i}\),其中 \(x_i\) 是非结构化文本输入,\(y_i\) 是标注的结构化输出。这个示例嵌入就是文本输入 \(H(x_i)\) 的嵌入。行嵌入和示例嵌入都在同一个向量空间中,从而可以直接进行相似度比较。

我们计算每个嵌入 \(e_i \in E = E_{\mathrm{row}} \cup E_{\mathrm{ex}}\) 的相关性得分 \(\rho_i\),即其与记录嵌入 \(H(T)\) 的余弦相似度。我们通过检查按 \(\rho\) 降序排列的嵌入来构建缩减后的模式 \(S_\kappa\)。对于每个嵌入 \(e_i\),如果是行嵌入,我们将对应的行添加到 \(S_\kappa\) 中。如果是示例嵌入,我们将对应示例从 \(y_i\) 中标注的行添加到 \(S_\kappa\) 中。当检查了 \(k\) 个嵌入后,我们停止。在嵌入空间中进行这种 \(k\) 近邻搜索可能导致 \(S_\kappa\) 中包含多于或少于 \(k\) 行,因为多个嵌入可能映射到同一行,并且示例标注可能包含多行。

这个过程可视化在图2 (https://arxiv.org/html/2607.00008#S3.F2) 中,产生一个缩减模式 \(S_\kappa \subseteq S\),该模式按与记录 \(T\) 的相关性排序,并可转换为 JSON Schema 格式,以便在执行提取任务时在上下文中使用。给定记录 \(T\) 时,\(S_\kappa\) 及其呈现给 LLM 的 JSON Schema 表示的示例见附录B (https://arxiv.org/html/2607.00008#A2)。

参见图注

图 2:SchemaRAG 的模式缩减(使用 \(k=5\))。检索到与 \(H(t_i)\) 最接近的五个嵌入。其嵌入被找到的行直接添加到缩减模式中;其嵌入被找到的示例,其标注的行被添加到缩减模式中。缩减后的模式随后转换为 JSON Schema 格式,用于提取提示词中,并且找到的示例作为上下文学习材料添加。

表 2:包含一个单选行 \(r_i\) 的示例模式 \(S\),采用 JSON Schema 格式。
{"type": "object",
 "properties": {
   "category (\(c_j\))": {
     "type": "object",
     "properties": {
       "row (\(n_i\))": {
         "type": "string",
         "enum": ["value1", "value2"]
       }
     }
   }
 }
}

### 3.2 记录分割

在具有长非结构化文本记录的领域,LLM 可能难以在大量文本中定位所有可提取的内容。如果 SchemaRAG 超参数 \(k\) 过大,生成的模式可能会导致“中间丢失”效应,抵消模式缩减的好处。相反,如果 \(k\) 太小,则可能无法覆盖所有相关信息。为了解决这些问题,我们尝试将记录分割成 \(n\) 个片段,\(t_1, t_2, ..., t_n\),然后对每个片段运行 SchemaRAG,以获得每个片段的缩减模式 \(S_{\kappa_1}, S_{\kappa_2}, ..., S_{\kappa_n}\),最后运行 \(n\) 次提取,每个片段 \(t_i\) 及其相应的缩减模式 \(S_{\kappa_i}\) 注入到每个提取 LLM 查询的提示词中。分割是通过一个提示的 LLM 调用执行的,该调用包含记录 \(T\) 和描述如何分割的指令。

## 4 实验

### 4.1 数据集

**护理数据集 (Nursing)**。我们在来自医院 A–D(统称为护理数据集)的四个专有测试集上评估了我们的方法,每个测试集包含 48–50 份由人工提供、去标识化的护士巡查口述记录。每份记录都含有一套由各自医院模式 \(S_A\) – \(S_D\) 定义的人工标注键值对。任何模式中的行都不存在于其他模式中。所有四个医院模式都使用十种行类型,包括单选、多选、数值以及其他专有自定义类型。

对于每个医院,我们还整理了示例集 \(A_A\) – \(A_D\),将键值对与其相关的记录来源关联起来。我们考察了这些示例集对我们模式缩减方法以及作为上下文学习材料的下游提取任务的影响。护理数据集的大小和内容细分见附录A (https://arxiv.org/html/2607.00008#A1)。

**亚马逊数据集 (Amazon)**。为了领域的多样性,我们还对 Bright Data 亚马逊公开可用样本的一个子集进行了方法评估。

相似文章

用于模式约束临床信息抽取的检索增强型大语言模型

arXiv cs.CL

本文提出了一种模块化的检索增强生成(RAG)流水线,用于从护理人员与患者的对话转录中提取结构化临床观察结果,采用模式约束提示和第二遍审核,基于Llama和GPT骨干模型,取得了80.36%的F1分数。

AgenticRAG:面向企业知识库的代理检索

arXiv cs.AI

本文介绍了 AgenticRAG,这是一个来自微软的框架,通过为大型语言模型(LLM)配备迭代搜索、文档导航和分析工具,增强了企业知识库的检索能力。它在多个基准测试中展示了相比标准 RAG 流水线在召回率和事实准确性方面的显著提升。