TableRAG

论文名称:TableRAG: Million-Token Table Understanding with Language Models项目代码
时间:2024.10.07

TableRAG框架解决了大语言模型在表格数据挖掘方面的表格数据规模问题,将schema检索和单元格检相结合,极大降低了推理阶段Token复杂度

一、论文动机

当前语言模型(LMs)在表格理解任务中已展现出较强能力,但现有方法普遍依赖“输入完整表格”的模式,面临三大核心挑战:

  1. 上下文长度限制:中等规模表格(如100列×200行)的token数常超40,000,超出LLaMA、GPT系列等主流模型的上下文窗口;
  2. 长上下文推理退化:存在“Lost-in-the-Middle”现象,长文本中关键信息易被忽略,导致推理能力下降;
  3. 计算成本与延迟问题:表格规模扩大时,token量激增,显著提升计算开销与响应延迟。

现有解决方案(如截断表格、仅读取 schema、行列检索)存在明显缺陷:截断会丢失关键信息,仅读schema无法利用表格内容,行列检索需编码完整行列,对百万级单元格表格仍不可行。

为了克服处理完整表格的局限性,有两个主要方向:基于模式的方法和行列检索方法。

  • 基于模式的方法(如 Text2SQL以及较新的研究成果 [20, 18, 13, 14])主要侧重于模式理解以生成 SQL 命令。这显著降低了令牌复杂度,但代价是忽略了有价值的单元格数据。
  • 行列检索方法(如 ITR [8] 和 TAP4LM [17])试图通过编码和检索关键行和列来解决可扩展性问题。虽然这种策略缩短了推理的输入长度,但仍需要大量计算来编码整个行和列,并且在处理长序列时可能会出现嵌入质量较差的问题。

考虑这样一个问题:“钱包的平均价格是多少?” 要解决这个问题,程序可能只需要提取与 “钱包” 相关的行,然后从价格列计算平均值。只需知道相关的列名以及 “钱包” 在表格中的表示方式,就足以编写该程序。TableRAG 利用了这一观察结果,并通过检索增强生成来解决上下文长度限制的问题。

二、论文思路

TableRAG是专为大规模表格理解设计的检索增强生成(RAG)框架,通过“查询扩展+schema检索+单元格检索”的组合策略,在减少输入token量的同时保留关键信息,核心流程与组件如下:

1. 框架整体工作流

  1. 构建数据库:基于原始表格生成schema数据库(存储列名、数据类型、示例值)和单元格数据库(存储去重后的“列-单元格”对);

  2. 表格查询扩展:利用LM将原始问题拆分为针对schema的查询(如“product”“price”)和针对单元格的查询(如“wallet”),避免单一查询的局限性;

  3. 分阶段检索:先用schema检索获取相关列信息,再用单元格检索定位关键单元格值;

  4. 程序辅助求解:将检索到的关键信息输入LM,结合ReAct等程序辅助方法生成答案。

    在这里插入图片描述

2. 核心组件细节

组件 功能描述 关键优化
表格查询扩展 将自然语言问题拆解为schema查询和单元格查询,覆盖用户真实意图 针对两类检索设计专用提示词,提升查询针对性
Schema检索 用预训练编码器匹配查询与列名,返回列名、数据类型及示例值 数值/日期列返回最值,分类列返回Top3高频值,减少冗余
单元格检索 构建“列-单元格”去重数据库,按相关性检索关键单元格 引入编码预算B,仅编码Top B高频值,控制token成本;解决“tv”与“television”等语义匹配问题
程序辅助求解 基于检索结果调用LM执行编程操作(如Pandas代码) 兼容ReAct等主流LM代理框架,确保复杂计算准确性

3. 效率优势:Token复杂度对比

TableRAG的token复杂度与表格规模(行数N、列数M)解耦,显著优于传统方法:

表格提示方法 编码阶段Token复杂度 推理阶段Token复杂度 核心局限
Read Table(全表输入) - O(NM) 超上下文窗口,不可行
Read Schema(仅读schema) - O(M) 丢失单元格信息
Row-Col Retrieval(行列检索) O(NM) O(K²) 需编码完整行列,大规模表格不可行
TableRAG(Schema-单元格检索) O(min(D,B))(D为去重单元格数) O(K)(K为检索结果数) 与表格规模无关,低token成本

三、实验设计

1. 数据集:填补大规模表格基准空白

为验证 scalability,作者构建了3类百万级token基准数据集,统计如下:

数据集 表格数 问题数 平均行数 平均列数 平均单元格数 去重单元格数
ArcadeQA(真实) 48 130 79,376 20.5 124万+ 5万+
BirdQA(真实) 53 308 62,813 11.1 72万+ 3.9万+
Synth-TabFact(合成) 288 288 50-1000 50-1000 2.5千-100万 149-2196

2. 基线方法与实验设置

  • 基线对比:ReadTable(全表输入)、ReadSchema(仅读schema)、RandRowSampling(随机行采样)、RowColRetrieval(行列检索);
  • LM模型:GPT-3.5 Turbo、Gemini 1.0 Pro、Mistral Nemo;
  • 关键参数:单元格编码预算B=10,000,检索结果数K=5(基线K=30),实验重复10次取多数投票。

3. 核心实验结果

(1)主任务性能:全场景最优

在ArcadeQA和BirdQA上,TableRAG在所有LM上均显著优于基线,以GPT-3.5 Turbo为例:

方法 ArcadeQA准确率 BirdQA准确率
ReadTable 4.6% 9.1%
ReadSchema 43.1% 40.3%
RandRowSampling 42.3% 34.7%
RowColRetrieval 37.7% 39.6%
TableRAG 49.2% 45.5%
(2)检索质量:精准度与召回率双高

TableRAG在列检索和单元格检索中均表现最优(以ArcadeQA为例):

方法 列检索F1 单元格检索F1
ReadSchema 23.4 0.0
RandRowSampling 23.4 3.5
RowColRetrieval 23.7 5.0
TableRAG 36.6 17.6
(3) scalability:规模扩大时性能稳定

在Synth-TabFact不同规模表格上,TableRAG性能下降幅度最小:

  • 表格从50×50扩大到1000×1000时,TableRAG准确率从83.1%降至68.4%;
  • 基线ReadTable在100×100表格时已因上下文限制失效,RowColRetrieval准确率降至50%以下。
(4)小表格泛化性:WikiTableQA上仍领先

在传统小表格基准WikiTableQA上,TableRAG准确率达57.03%,超越Binder(56.74%)、TaBERT(52.30%)等SOTA方法。

4. 消融实验:关键组件有效性

  1. 检索方法影响:嵌入-based检索(49.2%)>混合检索(46.2%)>BM25检索(37.7%),语义理解对检索至关重要;
  2. 编码预算B的鲁棒性:B从1000增至10000时,TableRAG准确率稳定在45%-49%,基线RowColRetrieval波动达15%;
  3. 查询扩展作用:开启查询扩展后,准确率平均提升8%-10%,验证多查询覆盖意图的有效性;
  4. Schema与单元格检索必要性:仅schema检索提升9.4%,仅单元格检索提升11.5%,二者结合效果最优。

四、局限性

  1. 极端情况鲁棒性:若所有单元格值唯一(D=NM),频率截断可能丢失关键信息;
  2. 任务覆盖范围:当前仅验证QA和事实核查任务,缺乏对复杂表格任务(如表格生成、多表联合推理)的评估;
  3. 对比基准局限:未与最新SOTA表格理解方法直接对比,聚焦于检索策略的有效性验证。
Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐