【TableRAG】基于语言模型的百万级token表格理解框架
TableRAG——解决大语言模型处理大规模表格数据时的挑战
TableRAG
论文名称:TableRAG: Million-Token Table Understanding with Language Models、项目代码
时间:2024.10.07
TableRAG框架解决了大语言模型在表格数据挖掘方面的表格数据规模问题,将schema检索和单元格检相结合,极大降低了推理阶段Token复杂度
一、论文动机
当前语言模型(LMs)在表格理解任务中已展现出较强能力,但现有方法普遍依赖“输入完整表格”的模式,面临三大核心挑战:
- 上下文长度限制:中等规模表格(如100列×200行)的token数常超40,000,超出LLaMA、GPT系列等主流模型的上下文窗口;
- 长上下文推理退化:存在“Lost-in-the-Middle”现象,长文本中关键信息易被忽略,导致推理能力下降;
- 计算成本与延迟问题:表格规模扩大时,token量激增,显著提升计算开销与响应延迟。
现有解决方案(如截断表格、仅读取 schema、行列检索)存在明显缺陷:截断会丢失关键信息,仅读schema无法利用表格内容,行列检索需编码完整行列,对百万级单元格表格仍不可行。
为了克服处理完整表格的局限性,有两个主要方向:基于模式的方法和行列检索方法。
- 基于模式的方法(如 Text2SQL以及较新的研究成果 [20, 18, 13, 14])主要侧重于模式理解以生成 SQL 命令。这显著降低了令牌复杂度,但代价是忽略了有价值的单元格数据。
- 行列检索方法(如 ITR [8] 和 TAP4LM [17])试图通过编码和检索关键行和列来解决可扩展性问题。虽然这种策略缩短了推理的输入长度,但仍需要大量计算来编码整个行和列,并且在处理长序列时可能会出现嵌入质量较差的问题。
考虑这样一个问题:“钱包的平均价格是多少?” 要解决这个问题,程序可能只需要提取与 “钱包” 相关的行,然后从价格列计算平均值。只需知道相关的列名以及 “钱包” 在表格中的表示方式,就足以编写该程序。TableRAG 利用了这一观察结果,并通过检索增强生成来解决上下文长度限制的问题。
二、论文思路
TableRAG是专为大规模表格理解设计的检索增强生成(RAG)框架,通过“查询扩展+schema检索+单元格检索”的组合策略,在减少输入token量的同时保留关键信息,核心流程与组件如下:
1. 框架整体工作流
-
构建数据库:基于原始表格生成schema数据库(存储列名、数据类型、示例值)和单元格数据库(存储去重后的“列-单元格”对);
-
表格查询扩展:利用LM将原始问题拆分为针对schema的查询(如“product”“price”)和针对单元格的查询(如“wallet”),避免单一查询的局限性;
-
分阶段检索:先用schema检索获取相关列信息,再用单元格检索定位关键单元格值;
-
程序辅助求解:将检索到的关键信息输入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. 消融实验:关键组件有效性
- 检索方法影响:嵌入-based检索(49.2%)>混合检索(46.2%)>BM25检索(37.7%),语义理解对检索至关重要;
- 编码预算B的鲁棒性:B从1000增至10000时,TableRAG准确率稳定在45%-49%,基线RowColRetrieval波动达15%;
- 查询扩展作用:开启查询扩展后,准确率平均提升8%-10%,验证多查询覆盖意图的有效性;
- Schema与单元格检索必要性:仅schema检索提升9.4%,仅单元格检索提升11.5%,二者结合效果最优。
四、局限性
- 极端情况鲁棒性:若所有单元格值唯一(D=NM),频率截断可能丢失关键信息;
- 任务覆盖范围:当前仅验证QA和事实核查任务,缺乏对复杂表格任务(如表格生成、多表联合推理)的评估;
- 对比基准局限:未与最新SOTA表格理解方法直接对比,聚焦于检索策略的有效性验证。
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)