TAPEX:通过神经SQL执行实现高效表格预训练

TL;DR

TAPEX(通过执行进行表格预训练,Table Pre-training via Execution)是一种预训练方法,它通过合成数据教会语言模型充当神经SQL执行器。该方法弥合了通用预训练与下游表格任务之间的差距,在实现最新水平(SOTA)性能的同时,仅需远少于传统表格预训练方法的数据量。

将神经SQL执行作为预训练任务

TAPEX用一个专注于学习执行SQL查询的任务取代了传统的自然语言预训练。它不再依赖于大规模且常常噪声较多的网络文本数据,而是通过系统性抽样可执行的SQL查询及其在表格上的对应执行结果,合成出一种非自然语言的预训练语料库。

预训练流程

为了生成训练数据,TAPEX遵循以下步骤:

  1. 表格选择:从网络检索到一张表格。
  2. 查询抽样:抽取一个可执行的SQL查询(例如 SELECT City WHERE Country = France ORDER BY Year ASC LIMIT 1)。
  3. 执行:使用现成的SQL执行器(如 MySQL)生成真实结果(例如 Paris)。
  4. 模型训练:对语言模型(如 BART)进行训练,使其以SQL查询与展平表格的拼接作为输入,输出执行结果。

通过使用SQL等程序而非自然语言,TAPEX确保预训练语料库的多样性和规模能够系统化地得到保证,并且保持高质量。

微调与下游应用

在作为神经SQL执行器完成预训练后,模型会针对实际应用进行微调。在此阶段,模型接收自然语言问题与展平表格的拼接作为输入,并被训练生成由人工标注的答案。

这种从SQL执行到自然语言问答的转变之所以有效,是因为解决具有相似意图的SQL查询和自然语言问题所需的推理路径几乎相同,尽管SQL更为刚性。

性能基准与结果

TAPEX在四个主要基准数据集上取得了新的最新水平(SOTA)结果,显著超越了之前的表格预训练方法:

  • WikiTableQuestions:57.5% 表示准确率(比SOTA提升+4.8%,比BART提升+19.5%)。
  • SQA:74.5% 表示准确率(比SOTA提升+3.5%,比BART提升+15.9%)。
  • TabFact:84.2% 准确率(比SOTA提升+3.2%,比BART提升+3.0%)。
  • WikiSQL (Weak):89.6% 表示准确率(比SOTA提升+2.3%,比BART提升+3.8%)。

与以往方法的效率比较

相较于早期模型如 TAPAS(Google Research)和 TaBERT(Meta AI),TAPEX展示了预训练效率的巨大提升。以往模型依赖通用的预训练任务(如语言建模),而TAPEX采用了面向领域的任务(SQL执行)。

实验数据表明,TAPEX在仅使用 2% 预训练语料的情况下,就能比 TaBERT 提升 2% 的性能,相当于近 50 倍的加速。

关键技术要点

对于进行高效持续预训练的研究者,TAPEX的成功提示了两大主要策略:

  1. 优先保证合成数据的准确性:合成一个准确且规模小的语料库,而不是从互联网挖掘大而噪声多的语料。
  2. 通过程序模拟领域技能:使用程序来模拟面向领域的技能,而不是依赖自然语言句子的通用语言建模。

Sources