上交&清华开源ST-Raptor:无需SQL、无需OCR,直接对话任意复杂表格

发布于 2025-9-16 07:32
浏览
0收藏

一、半结构化的痛点

上交&清华开源ST-Raptor:无需SQL、无需OCR,直接对话任意复杂表格-AI.x社区

在真实业务中,80% 以上的“表格”并非标准的关系型二维表,而是带有合并单元格、层级标题、嵌套子表、行列交叉说明的半结构化表格。 布局五花八门、结构复杂多变,让自动化数据处理变得异常困难。 典型场景包括:

  • 医院 EMR 里的检验报告单
  • 券商 PDF 年报里的财务报表
  • Excel 里的项目进度横道图
  • 电商后台的订单汇总表

这些表格无法用固定 schema 建模,却承载了高价值知识。过去,只能依赖业务专家“肉眼”检索,耗时且易错。

二、已有的技术路线回顾

上交&清华开源ST-Raptor:无需SQL、无需OCR,直接对话任意复杂表格-AI.x社区

技术路线

代表工作

主要瓶颈

NL2SQL

OpenSearch-SQL、PETSQL

必须先转成结构化表,合并单元格被打碎,行列语义丢失

NL2Code

ReAcTable、TAT-LLM

依赖 Pandas 的行列索引,无法表达“跨子表”关系

多模态 VLM

TableLLaVA、mPLUG-DocOwl

表格转图片→100+ 行就超出视觉窗口;文字密集时OCR 噪音大

直接 LLM 提示

GPT-4o、DeepSeek-V3

线性化 HTML/JSON 后“迷失在中间”,对层级标题、合并单元格** hallucination 严重**

结论:在“布局理解”与“内容检索”两个核心环节,现有方法均出现结构性信息损耗,导致问答精度卡在 60% 左右。

上交&清华开源ST-Raptor:无需SQL、无需OCR,直接对话任意复杂表格-AI.x社区

上交&清华开源ST-Raptor:无需SQL、无需OCR,直接对话任意复杂表格-AI.x社区

三、ST-Raptor方案

ST-Raptor试图解决半结构化表格以下三个痛点:

  1. 如何在不破坏布局的前提下,让大模型“看懂”复杂表格?
  2. 如何让模型像业务人员一样,先定位标题、再交叉比对、最后汇总答案?
  3. 如何在多跳推理链条中自动校验,避免一步错步步错?

3.1 ST-Raptor 的核心创新有六点:

  1. HO-Tree 表达:首次提出“层级-正交”双树结构,把任意半结构化表格无损压缩成一棵树,节点=单元格,边=层级/并列关系。
  2. 原子操作集:设计 9 种树原语(取父节点、取子树、条件过滤、数值计算…),把“表格问答”形式化为“树遍历脚本”
  3. 问题分解+对齐:LLM 先将复杂问句拆成单跳子问句,再通过嵌入相似度把操作参数对齐到树节点,解决“指代漂移”
  4. 双向验证
  • 正向——每步执行后检查返回节点是否为空、是否偏离问题语义;
  • 反向——用最终答案反生成多套等价问句,若原始问句与反生成问句的脚本差异大则打低置信度。
  1. 基准 SSTQA:采集 102 张真实业务表、764 问,** nesting 深度、合并单元格密度、问题类型**均超出现有数据集一个量级。
  2. 效果:在 SSTQA 上比 GPT-4o 绝对提升 10.23%,在 Hard 表上领先 20%+;消融实验表明** HO-Tree 结构建模单点贡献 15.15%**。

3.2 ST-Raptor架构

上交&清华开源ST-Raptor:无需SQL、无需OCR,直接对话任意复杂表格-AI.x社区

ST-Raptor 框架共 4 个模块,流水线如图 3 所示。下文按“建树→问句解析→脚本执行→答案验证”四段展开。

3.3 HO-Tree:一张表就是一片“森林”

上交&清华开源ST-Raptor:无需SQL、无需OCR,直接对话任意复杂表格-AI.x社区

3.3.1 形式化定义

对任意半结构化表 T,将其拆成元数据树 MTree数据树 BTree,再建立“叶-层”指针,形成 HO-Tree:

  • MTree 节点 = 表头、子表标题、合并格;
  • BTree 节点 = 纯内容单元格;
  • 边语义 = 层级包含或正交并列;
  • 指针:MTree 的叶节点 → BTree 的对应层,实现“标题列”到“数据列”的硬链接

:图 4 右下角“TD Tech”表,可递归解析为L4(Header-Orthogonal-Subtables) → L3(Orthogonal-Subtables) → [L2(Header-Multiple-Values)]最终得到 3 层嵌套 HO-Tree。

3.3.2 建树算法(Algorithm 1)

上交&清华开源ST-Raptor:无需SQL、无需OCR,直接对话任意复杂表格-AI.x社区

输入:Excel/PDF/HTML 原始表输出:HO-Tree 森林

步骤 0:VLM 截图识别

  • headless 浏览器渲染 → 高清图 → InterVL2-26B 提示词:“请给出这张表如果存成 JSON 可能出现的所有 key” → 拿到候选标题集合 C

步骤 1:Embedding 对齐

  • 用 Multilingual-E5 对所有单元格做 embedding,与 C 做余弦相似度,≥阈值 τ=0.82者标记为标题格。

步骤 2:表格分区(TablePart)

  • 原则 P1:若合并格跨整行/列 → 顶级标题,下方或右侧划为子表;
  • 原则 P2:若同时出现顶对齐与左对齐标题,格多者建 MTree,另一方入 BTree;
  • 原则 P3:检测到正交子表 → 递归切片。

步骤 3:DFS 组装

  • 对每片子表,按 L1-L4 类型执行 ConsTree:– L1、L2 → 单层树;– L3、L4 → 节点 value 字段再挂一棵子 HO-Tree,实现无限级嵌套

复杂度:最坏扫描全表 2 次,**O(N·M)**,N、M 为行列数;嵌入比对可 GPU 批量化,102 张表平均 2.3 s 完成森林构建。

3.4 原子操作集:9 个“树 API”搞定 95% 查询

作者从 2 万张真实问句中归纳出 9 种高频操作,分为 4 类:

类别

操作

说明

示例

数据检索

CHL(V)

取 V 的所有子节点

CHL(“Employee Info”)→[Mark, Jone, Ray…]


FAT(V)

取父节点

FAT(“Mark”)→“Research 1”


EXT(V1,V2)

交叉检索

EXT(“Level”,“A+”)→[Mark, Jone]

数据操作

Cond(D,func)

过滤

Cond(EXT(…), λx: x>30)


Math(D,func)

聚合

Math(CHL(“Age”), max)


Cmp(D1,D2,func)

比较

Cmp(EXT(2022), EXT(2023), >)

对齐

Align(P,HO-Tree)

把自然语言 P 对齐到节点

Align(“highest paid”→“Salary”

推理

Rea(Q,D)

LLM 总结/判断

Rea(“是否盈利”, D)→“是”

脚本示例:“部门 A 与 C 中评级高于 A 的员工共几人?”→ 分解为

  1. SQ1: Count(Cond(EXT(Department, A), Level>A))
  2. SQ2: Count(Cond(EXT(Department, C), Level>A))
  3. SQ3: Math([SQ1, SQ2], sum)

3.5 问题分解与操作-表对齐

上交&清华开源ST-Raptor:无需SQL、无需OCR,直接对话任意复杂表格-AI.x社区

3.5.1 分解策略

  • 采用 few-shot 提示:动态检索与当前问句最相似的 3 个示例(embedding 相似度),连同 HO-Tree 的元信息一起喂给 DeepSeek-V3。
  • 要求模型输出“子问句 + 依赖关系图”,保证下游可并行可串行

3.5.2 对齐策略

  • 对操作中的每个参数 p,用 E5 编码后与 HO-Tree 所有节点做最近邻搜索,Top1 置信度<0.75 时触发人工模板兜底
  • 连续值列额外用规则正则提取范围,解决“大于 30 岁”这类阈值描述

3.6 双向验证:让模型“自检”

3.6.1 正向验证(Forward)

  • 每步执行完检查:

返回节点非空;

节点类型与问题期望一致(数值/文本/日期);

行号/列号未越界。

  • 任一失败 → 重生成操作,最多重试 3 次,仍失败则返回“无法回答”。

3.6.2 反向验证(Backward)

  • 用最终答案 A 反生成 5 个等价问句(few-shot 提示)。
  • 对这 5 个问句再走一遍完整 pipeline,得到 5 个脚本。
  • 用最长公共子序列(LCS)计算与原始脚本的相似度,平均相似度<0.6 时置信度=0,系统输出“可疑答案”标记。

四、可落地的工业实践建议

  • 数据入口:直接解析 Excel/PDF,无需人工整理成数据库
  • 质检场景:把 HO-Tree 脚本固化成规则,每晚批量跑,异常答案自动告警
  • 交互分析:在前端嵌入“子问句+中间表”展开,业务人员可点选修正,形成人机协同闭环

五、个人总结:为什么值得一读

ST-Raptor 给出了一个“把视觉布局压缩成可计算结构”的完整范式:

  • HO-Tree让“合并单元格”第一次拥有了无损的代数表达
  • 原子操作把表格问答从“黑盒提示”变成白盒脚本,可调试、可验证;
  • 双向自检机制对幻觉“零容忍”,让大模型在严肃场景落地成为可能

如果你正在做文档智能、财务审核、医疗质控、报表自动化等方向,这篇论文提供了从模型到 benchmark 再到工程细节值得细细品味。

​https://arxiv.org/pdf/2508.18190​

​https://github.com/weAIDB/ST-Raptor​

本文转载自​CourseAI​,作者:CourseAI

已于2025-9-16 09:28:24修改
收藏
回复
举报
回复
相关推荐