TAPEX: Table Pre-training via Learning a Neural SQL Executor

TL;DR

TAPEX用合成SQL执行预训练,在四个表任务上刷新SOTA:WikiSQL 89.5%、WTQ 57.5%、SQA 74.5%、TabFact 84.2%。

cs.CL 🟡 进阶级 2021-07-16 52 次浏览
Qian Liu Bei Chen Jiaqi Guo Morteza Ziyadi Zeqi Lin Weizhu Chen Jian-Guang Lou
表格预训练 SQL执行 序列生成 BART 问答与事实核验

核心发现

方法论

TAPEX把表预训练改写为“学会执行SQL”。它先从约1500张WIKITABLEQUESTIONS训练表中采样,再用从SQUALL自动抽取的SQL模板(如SELECT num1 WHERE text1=val1)填充列名和单元格值,生成最多500万对“查询-结果”样本。模型以BARTLarge为骨干,把NL/SQL与扁平化表串联输入编码器,解码器直接生成执行结果,等价于训练一个神经SQL执行器。

关键结果

  • 在WIKISQL-WEAK上,TAPEX测试集逻辑形式准确率达到89.5%,比BART高3.7个百分点,也比此前最好系统高2.3个百分点;这项结果甚至超过了使用Execution-Guided Decoding的强系统。
  • 在WIKITABLEQUESTIONS上,TAPEX测试集denotation accuracy为57.5%,相对此前最佳方法提升4.8个百分点,而BART仅为38.0%,说明合成执行预训练在低资源、强推理场景下优势尤为明显。
  • 在SQA上,TAPEX达到48.4%的对话级准确率和74.5%的句级准确率;在TabFact上达到84.2%,其中Testcomplex为79.6%,都刷新了当时SOTA,显示其对事实验证和复杂表推理的迁移能力。

研究意义

这项工作证明:表格预训练不必依赖海量噪声网页表或昂贵模板标注,而可以通过可执行程序合成高质量监督。它把“理解表格”具体化为“能否正确执行SQL”,从而让模型学习选择、聚合、比较和数值运算等结构化能力。对研究界而言,它打开了“程序合成驱动预训练”的路径;对工业界而言,它提供了一种成本可控、可扩展、可复用的表智能预训练范式。

技术贡献

TAPEX的技术贡献有三点。第一,它提出执行中心的预训练目标:不是遮盖词,而是预测SQL执行结果,使模型显式对齐结构化推理。第二,它用自动模板化和结果过滤构造大规模合成语料,避免了网页抓取的噪声与人工模板的低多样性。第三,它把下游TableQA和TableFV统一成编码器-解码器序列生成框架,便于多任务微调,并证明BART经TAPEX继续预训练后,能在四个基准上稳定超越多种表专用模型。

新颖性

新颖性在于,这是首个利用“可执行合成程序”进行表预训练并在多项下游任务上取得新SOTA的工作。与TAPAS的whole-word masking、TABERT的masked column prediction相比,TAPEX不再把表当成特殊文本,而是把SQL执行当成监督信号,直接逼近结构化推理过程。

局限性

  • 预训练语料主要来自半结构化表和SQL模板,覆盖的推理模式仍受模板空间限制;对更复杂的嵌套查询、跨表连接或开放域知识推理,能力未被充分验证。
  • 模型仍依赖BARTLarge与较强算力,预训练约50k步、8张V100上耗时36小时;此外,TabFact等任务中仍存在对句式和表扁平化方式敏感的问题。

未来方向

后续可扩展到更复杂SQL、更多表源和跨表推理;也可把执行预训练迁移到更大规模的编码器-解码器模型,或与检索、代码生成、智能体式表操作结合,形成更通用的数据分析基础模型。

AI 总览摘要

TAPEX把一个长期存在的难题重新定义了:表格预训练不必先找到海量“表-文本”配对,也不必依赖繁复的手工模板。它提出的核心思想很直接——如果模型能像SQL执行器一样,看到一张表和一条查询就给出正确结果,那它对表的结构、值域和算术关系就已经有了扎实理解。

方法上,TAPEX以BARTLarge为骨干,把预训练任务改成“执行SQL”。研究者从约1500张WIKITABLEQUESTIONS训练表中抽样,再利用从SQUALL抽取的SQL模板自动填充列名和单元格值,生成最多500万条“查询-结果”对。输入由查询和扁平化表组成,输出则是MySQL等执行器给出的答案;下游的WikiSQL、WikiTableQuestions、SQA与TabFact也统一改写为序列生成或二分类形式。

实验结果非常醒目:WikiSQL-WEAK测试集达到89.5%,比BART高3.7个百分点、比此前最好系统高2.3个百分点;WikiTableQuestions达到57.5%,较最佳方法提升4.8个百分点;SQA达到48.4%对话级与74.5%句级;TabFact达到84.2%,在Testcomplex上也达到79.6%。更重要的是,作者分析显示TAPEX在20,000条未见SQL上的执行准确率达89.6%,并在过滤、聚合、比较和算术操作上表现稳健。

这项工作最有价值的地方,在于它把“表理解”从模糊的表征学习,推进到可验证的程序行为学习。它说明,高质量合成程序可以替代大量噪声网页数据,成为表智能预训练的有效燃料。对于问答、事实核验、数据分析助手乃至企业BI系统,这意味着未来模型不仅会“读表”,还会“算表”“查表”“验表”。

深度分析

研究背景

表格理解一直是自然语言处理中的硬问题。BERT、BART等预训练模型在开放文本上成功后,研究者尝试把预训练扩展到表格:TAPAS采用whole word masking,TABERT提出Masked Column Prediction,部分工作从网页抓取表及上下文文本,或用模板生成合成句子。这些方法证明表预训练可行,但普遍面临两难:网页数据噪声大、清洗复杂;人工模板质量高却费时且多样性不足。与此同时,表格的核心价值在于可执行性——它天然支持选择、聚合、比较和数值运算,这为更“程序化”的预训练提供了入口。

核心问题

本文要解决的是:如何在缺少大规模高质量表格语料的情况下,让模型真正学会结构化推理,而不是只把表格当成另一种文本。难点在于,表格任务既要求识别单元格与列头的对应关系,又要处理归一化答案、聚合函数和对话上下文。传统MLM式目标对这些能力的监督太弱,因此往往需要极大的语料规模才能见效。

核心创新

TAPEX的关键创新有三层。第一,把预训练目标从“补词”改为“执行SQL结果”,即让模型直接模仿数据库执行器。第二,用自动合成而非人工编写的方式构造语料:从半结构化表中采样,再用SQL模板实例化查询,并过滤空结果,保证规模、质量和多样性。第三,把下游TableQA与TableFV统一成seq2seq范式,令同一模型和训练接口覆盖多任务,减少任务间格式鸿沟。

方法详解

  • �� 预训练骨干:采用BARTLarge,编码器-解码器各12层,作为通用序列生成器。
  • �� 输入表示:将表扁平化为[HEAD]、[ROW]等特殊标记串联的序列,并把NL查询前缀拼接到表前,保留列、行与单元格边界。
  • �� 合成语料:从WIKITABLEQUESTIONS训练表中采样约1500张表;从SQUALL自动抽取SQL模板,如SELECT num1 WHERE text1=val1,再随机填充列名和值生成具体查询。
  • �� 结果监督:查询由SQL执行器产生真实输出,模型学习在给定表与查询时生成该执行结果,等价于神经SQL executor。
  • �� 过滤策略:丢弃执行为空的查询,因为空结果信息量低,不利于学习表可执行性。
  • �� 下游微调:TableQA输出答案串,TableFV输出entail/refuse二分类;两者都沿用序列生成框架,便于单任务和多任务微调。

实验设计

作者评估了四个基准:WikiSQL-WEAK、WikiTableQuestions、SQA和TabFact。指标分别是denotation accuracy或accuracy。预训练最多500万对样本,50,000步,batch size 256;微调最多20,000步,batch size 128,学习率3×10^-5。实现基于fairseq,预训练约36小时完成于8张Tesla V100。作者还报告了五次随机运行的中位数结果,以降低方差影响。

结果分析

结果显示,TAPEX在所有任务上都显著优于BART和此前表预训练方法。WikiSQL-WEAK测试集89.5%,WikiTableQuestions 57.5%,SQA句级74.5%、对话级48.4%,TabFact 84.2%。在WikiTableQuestions上,BART仅38.0%,而TAPEX提升19.5个百分点,说明执行预训练尤其适合低资源表推理。作者的分析还表明,TAPEX对Filter、Aggregate、Superlative、Arithmetic和Comparative等操作均有明显增益。

应用场景

TAPEX适用于任何需要“读表后给出答案或真假判断”的场景,如金融报表问答、经营数据查询、科学数据摘要、客服知识库检索和自动事实核验。只要任务能被表达为表输入加短文本输出,就可以沿用该框架。对企业而言,它为BI助理、报表问答和数据分析Copilot提供了可落地的预训练底座。

局限与展望

TAPEX依赖SQL模板和可执行表,因而对跨表连接、复杂嵌套查询、自然语言歧义消解的覆盖有限。它也主要在半结构化公开表上验证,面对更脏、更长或格式更不规则的真实业务表时,鲁棒性仍需进一步证明。未来需要更丰富的合成程序、更广泛的数据源,以及与检索、推理链和工具调用结合的扩展。

通俗解读 非专业人士也能看懂

可以把这篇论文想成“训练一个超级图书管理员”。普通图书管理员看书名找书,而TAPEX要训练的管理员不仅会找,还会像会算账的助手一样,把书架上的信息按规则整理出答案。研究者没有直接让它死记硬背所有问题,而是先给它大量“练习题”:一张表、一条指令、一个标准答案。比如“找出法国对应的城市”,标准答案就是“Paris”。

这些练习题不是人工一题题写出来的,而是像自动出题机一样批量生成的。题目规则来自SQL,也就是一种专门和数据库打交道的语言。只要把表里的列名和值填进去,就能得到很多不同但有效的题目。模型反复练习后,学到的就不只是几个固定答案,而是“看懂表格里谁和谁有关,哪个数该加,哪个条件该筛”。

所以当它面对真实问题时,比如“希腊举办上一次夏季奥运会是哪一年”,它不需要瞎猜,而是会像真正会查表的人那样,把相关行列找出来,再给出“2004”。这就是为什么它在四个测试里都比以前的方法更准:它学到的是做题方法,不只是背题答案。

简单解释 像给14岁少年讲一样

想象你在玩一个超难的解谜游戏,地图不是普通图片,而是一张超级复杂的表格。每一关都会问你一个问题:谁的年龄是24岁?哪一年举办了奥运会?哪个团队最后赢了?如果你只会“看一眼随便猜”,很快就会翻车。

TAPEX做的事,就是先把一个AI送去参加“表格解谜训练营”。但训练方式很聪明:不是让它背成千上万道题,而是先教它一套通用解题方法。研究者自动生成很多题目,像“从这张表里找出满足某个条件的行”“把一列数字加起来”“比较谁最大”。每道题都有标准答案,因为答案可以直接用数据库执行器算出来。AI做久了,就会越来越像一个会查表、会算数、会筛选的高手。

为什么这很厉害?因为以前很多方法更像让AI把表格当成一段普通文字来读,效果当然有限。TAPEX则是直接训练它“按规则办事”。这有点像学数学:光背公式没用,得会做题。它在WikiSQL、WikiTableQuestions、SQA和TabFact上都拿到了更高分,说明它真的学会了“看懂表格”。

所以,下次你看到一张密密麻麻的表,别觉得AI一定也会头大。TAPEX证明了,只要训练方法对,AI也能像认真做作业的学霸一样,一格一格把答案找出来!

术语表

SQL executor(SQL执行器)

一种根据SQL语句直接计算结果的程序。通俗地说,它像数据库里的“自动答题机”;技术上,它对查询进行解析、执行并返回结果。

TAPEX把模型训练成模仿SQL执行器输出结果。

Denotation accuracy(指称准确率)

只要预测答案与标准答案在内容上等价,就算正确。它不要求输出形式完全一致,更适合表格问答中的归一化答案。

用于WikiSQL-WEAK、WikiTableQuestions和SQA。

Sequence-to-sequence(序列到序列)

输入一个序列,输出另一个序列的建模框架。技术上,BART解码器按自回归方式逐词生成答案。

TAPEX把预训练和下游任务都统一为seq2seq。

Whole word masking(整词遮盖)

一种预训练策略,随机遮盖完整词而不是子词。它帮助模型恢复词语,但对结构化推理的监督较弱。

作为TAPAS等表预训练方法的对比背景。

Masked Column Prediction(列掩码预测)

遮蔽表格中的列名或列类型,让模型去恢复。它强调表结构识别,但仍属于重建式目标。

TABERT使用的代表性表预训练任务。

开放问题 这项研究留下的未解疑问

  • 1 TAPEX在复杂SQL、跨表连接和开放域推理上的表现仍不清楚。当前模板化合成能覆盖多少真实业务查询模式,仍需要更系统的评测与更丰富的程序生成策略。
  • 2 模型学到的“执行能力”与真正的符号推理之间是否存在上限仍未回答。未来需要分析它在分布外表结构、长表、噪声表和隐含常识依赖场景中的泛化边界。

应用场景

近期应用

表格问答助手

可用于企业报表、科研数据表和知识库表格问答。用户输入自然语言问题,系统结合表格直接生成答案,前提是表结构可解析且任务能映射为答案生成。

自动事实核验

适合新闻审核、合同审阅和数据合规检查。系统读取表格并判断陈述是否与表一致,输出entail或refuse,能帮助减少人工逐条核对成本。

远期愿景

通用表智能底座

未来可发展为支持查询、解释、比较、聚合与多表分析的通用表模型,成为BI Copilot和数据分析代理的核心组件。真正的挑战是扩大到更复杂程序、更脏数据和跨模态工具链。

原文摘要

Recent progress in language model pre-training has achieved a great success via leveraging large-scale unstructured textual data. However, it is still a challenge to apply pre-training on structured tabular data due to the absence of large-scale high-quality tabular data. In this paper, we propose TAPEX to show that table pre-training can be achieved by learning a neural SQL executor over a synthetic corpus, which is obtained by automatically synthesizing executable SQL queries and their execution outputs. TAPEX addresses the data scarcity challenge via guiding the language model to mimic a SQL executor on the diverse, large-scale and high-quality synthetic corpus. We evaluate TAPEX on four benchmark datasets. Experimental results demonstrate that TAPEX outperforms previous table pre-training approaches by a large margin and achieves new state-of-the-art results on all of them. This includes the improvements on the weakly-supervised WikiSQL denotation accuracy to 89.5% (+2.3%), the WikiTableQuestions denotation accuracy to 57.5% (+4.8%), the SQA denotation accuracy to 74.5% (+3.5%), and the TabFact accuracy to 84.2% (+3.2%). To our knowledge, this is the first work to exploit table pre-training via synthetic executable programs and to achieve new state-of-the-art results on various downstream tasks. Our code can be found at https://github.com/microsoft/Table-Pretraining.

cs.CL cs.AI