一起养成写作习惯!这是我参加「日新计划 4 月更文挑战」的第20天,点击查看活动详情。

前言

本文为我之前在CSDN平台上的一篇博客记录。原链接为:blog.csdn.net/u011426236/…

导语

  • 会议:EMNLP 2021
  • 地址:arxiv.org/abs/2109.05…

摘要

文本数据的大型预练习言语模型具有不受束缚的输出空间;在每个解码过程中,它们能够产生数万个token中的任何一个。当对SQL等受束缚的形式言语进行Fine-tune时,这些模型通常会生成无效代码,使其不行用。本文提出了PICARD模型,一种经过增量解析束缚言语模型的自回归解码器的办法。PICARD经过在每个解码过程回绝不行接受的token输出来协助找到有用的输出序列。在具有挑战性的Spider和CoSQL数据集的Text-to-SQL使命中,本文展现了PICARD将功能尚可的T5模型转化为最先进的处理计划。

1 简介

虽然在将预先练习好的大型言语模型应用于下流使命方面已经取得了许多成功,但咱们操控和束缚这些模型输出的才干仍然十分有限。许多企业应用程序都无法完成,由于它们所需的言语模型还无法供给的严格程度和准确性。如果方针是一种形式化的言语,如SQL,那么咱们希望模型能够准确且可证明地恪守SQL规范及其所有的词法、语法、逻辑和语义束缚。不幸的是,仅靠预先练习,言语模型或许无法满意这些正确性要求。

关于Text-to-SQL翻译使命,最普遍的处理办法是束缚解码过程,过滤掉无效的SQL语句。现在能够将自回归解码束缚为仅能正确解析为SQL抽象语法树的token序列。最近,有人提出了对这种解析范式的半自回归改善。可是,虽然这些办法很有用,但它们有一个共同点,即完成它们的价值是运用特殊操控令牌的自界说词汇表或自界说模型体系结构,或两者都运用。不幸的是,这使得它们与一般的预练习言语模型解码器不兼容。一种侵入性更小、更兼容的办法是不束缚生成过程,而是根据有用性过滤最终确定的波束假定。可是,这种过滤是以十分大的beam size为价值的。

咱们运用了一种新的用于束缚解码的增量解析办法PICARD(Parsing Incrementally for Constrained Auto-Regressive Decoding)来处理这些办法的开支问题。PICARD与任何现有的自回归言语模型解码器和词汇(包括但不限于那些预先练习好的大型Transformer)兼容,并且它不需求十分大的波束巨细。PICARD彻底不存在于模型的预练习或微调中,它能够在推理时轻松且可选地启用。PICARD直接操作言语模型的输出,即Text-to-SQL使命中生成的SQL语句。

Text-to-SQL学习整理(十六)T5+PICARD模型

在咱们的试验中,咱们发现PICARD在对Text-to-SQL使命进行微调后,能够显着提高大型预练习言语模型的功能。在Spider数据集上,咱们发现带有PICARD的T5-Base模型优于没有PICARD的T5-Large模型,T5-Large和T5-3B模型也是如此。值得注意的是,在PICARD的协助下,T5-3B模型在Spider和CoSQL数据集上的功能能够提高到最先进的水平。

2 PICARD办法

PICARD将模型猜测分数与现有的贪婪算法和波束查找算法简略地结合在一起,用于言语模型的自回归解码。它的参数是其时翻译输出的token id和关于每个词汇表里的token,模型的言语建模头猜测的log-softmax分数。PICARD还能够访问SQL schema的信息,特别是关于表和列的名称以及关于哪个列包括在哪个表中的信息。在每一个生成过程中,PICARD首要将猜测束缚在最高k个概率token上,然后给那些没有经过PICARD很多查看的token一个−∞-\infty的分数(参见图2)。

Text-to-SQL学习整理(十六)T5+PICARD模型
这些查看是由根据一元组合的快速增量解析所完成的。PICARD有四种设置来操控其全面性:off (不查看)、 lexing(词法查看)、 parsing without guards(无维护的解析), and parsing with guards(有维护的解析,即最高形式)。经过较高形式的猜测将一直经过较低形式,但相反则不一定。

2.1 Lexing

在词法剖析形式下,PICARD只在词法等级上查看输出。它企图将部分的、detokenize后的模型输出转化为由空格分隔的单个SQL关键字(如select)、标点(如()、操作符(如+和-)、字面值(如SQL条件中的字符串和数字值)以及标识符(如别号、表、和列,而对这些词汇项呈现的次序不灵敏。经过这样做,PICARD能够检测关键字中的拼写过错,或者回肯定给定SQL形式无效的表和列名。例如,考虑以下问题(来自于Spider的验证会集的dog_kernnels数据库):

"What are the email, cell phone and home phone of each professional?"

咱们的Fine-tune后的T5-Large模型猜测输出为

select email_address, cell_phone, home_phone from professionals

而实际上ground truth是挑选 “cell_number” ,而不是无效的 “cell_phone” 列。在词法剖析形式下,PICARD能够捕获并防止这一过错。

2.2 Parsing without Guards

在Lexing形式之上最低的解析形式(即Parsing without Guards)中,PICARD在语法等级查看输出。PICARD企图将detokenize后的模型输出解析为表示SQL查询的抽象语法树(AST)的数据结构。与词法剖析形式相反,关键字和子句呈现的次序现在很重要。PICARD能够回绝无效的查询结构,例如查找 from 子句中的缺失或子句和关键字的过错次序。它还能够检测SQL表达式组合的一系列问题:首要,如果PICARD匹配到了一个 tid.cid (注:tid即table_id,cid即column_id)的形式,可是实际上 tid 这个table里并没有 cid 这个column,那么该条输出将被回绝。其次,如果PICARD首要配到了一个 alias.cid (alias即别号,即咱们经常在SQL语句中运用的 FROM table_name as T1 …… )的形式,然后匹配到了一个 tid as alias 的形式,但实际上 tid 这个table里并没有 cid 这个column,那么该条输出也将被回绝。关于绑定到表别号的子查询,也存在一个等价的规则。最终,PICARD禁止在相同挑选范围内重复绑定表别号,但答应躲藏在周围范围内界说的别号。这或许发生在嵌套SQL查询中。

2.3 Parsing with Guards

在最高的解析形式中,PICARD在拼装SQL的AST时进行额定的剖析,称为Guards。如果PICARD匹配到 tid.cid 或者 alias.cid ,然后Guards需求 tid 或 alias 必须在from子句中呈现。并且,并且,alias被束缚为解析到其中包括cid列的表或子查询。如果PICARD匹配cid形式,那么另一个Guards要求最终将刚好包括具有该id的列的一个表引入作用域。这些Guards被急切地履行,以便在尽或许早的时刻将无效的输出快速失效,逐出beam。Guards在解析from子句之后才开端履行。

只要有了这些维护,PICARD才干回绝咱们Fine-tune的T5-Large模型的过错猜测: 假定问题是:

What are the makers and models?

模型的过错猜测为:

select maker, model from car_makers

在这里,正确的表应该是model_list,由于它是Spider的car_1数据库中仅有一个既包括maker列又包括model列的表。

还能够进行其他查看和维护,例如,查看只比较相同类型的表达式,或者union, except, intersect的列类型是否匹配。咱们把这些额定的查看留给将来的工作。

3 试验

咱们的试验主要会集在Spider,一个用于文本到sql解析的大型多域和跨数据库数据集。咱们对Spider练习会集的7000个比如进行练习,并对Spider开发集及其躲藏测验集进行评价。咱们还报告了CoSQL的成果,这是一个根据sql的对话状况盯梢使命。其中,咱们猜测在交互上下文中给出的每个问题的SQL查询。关于这个使命,咱们在Spider文本到sql练习数据和CoSQL对话框状况盯梢练习数据上进行练习,并在CoSQL开发和测验集上进行评价。

Spider和CoSQL都是zero-shot设置。在各自的练习、开发和测验集之间的问题或数据库之间没有堆叠。

在Spider上,咱们根据三个目标确定模型功能:exact-set-match accuracy(下称EM)、execution accuracy(下称EX)和test-suite execution accuracy(下称TEX)。EM经过将猜测的SQL查询和ground-truth的SQL查询解析为规范化的数据结构来进行比较。这种比较对文字查询值不灵敏,假如语义相同的SQL查询重写(即同样的逻辑,可是运用不同的表达办法)会使得该目标下降。EX比较在Spider数据集附带的数据库内容上履行猜测的和实际的SQL查询的成果。该目标对文字查询值很灵敏,但存在较高的假阳性率。最终,TEX将每个SQL形式的履行扩展到多个数据库实例。这些实例的内容经过优化,以削减误报的数量,并供给语义准确性的最佳近似。

在CoSQL中,咱们经过question match accuracy(下称QM) 和 interaction match accuracy(下称IM)来衡量模型功能。这两个目标都根据EM。IM是交互中所有问题的联合精度。

咱们收到Shaw et al.(2021)成果的启发,它的工作显现了一个预练习好的 T5-Base或T5-3B模型不只能够学习Text-to-SQL使命,还能够泛化到没见过的数据库,成果甚至能够与其时最强的模型体现不分上下。而所有这些都没有对模型进行修改。因而,咱们运用T5作为咱们所有试验的baseline。

为了对不知道的数据库进行泛化,咱们将数据库形式与问题一起编码。咱们运用的序列化计划与Shaw等人(2021)运用的相同。在运用数据库内容的试验中,咱们以类似于Lin等人(2020)的BRIDGE模型的办法检测并将数据库值附加到列名上(详细可参阅我的另一篇笔记:论文笔记:Bridging Textual and Tabular Data for Cross-Domain Text-to-SQL Semantic Parsing)。在对CoSQL对话框状况盯梢使命进行Fine-tune时,咱们将交互中前面的问题按反时刻次序添加到输入中。超越T5模型的512 token 长度束缚的输入将被截断。练习的方针是来自Spider和CoSQL练习集的SQL,除了将关键字和标识符转化为小写外,未进行修改。咱们运用Adafactor对T5进行了多达3072个epoch的Fine-tune,batch_size巨细为2048,学习率为1e-4。

Text-to-SQL学习整理(十六)T5+PICARD模型

成果 表1和图1总结了咱们在Spider数据集上的发现。咱们复现的Shaw et al.(2021)的T5的成果已经无法和其时最先进的模型(即LGESQL模型,参阅论文笔记:LGESQL: Line Graph Enhanced Text-to-SQL Model with Mixed Local and Non-Local Relations)相比较。原因在于是这些模型猜测了很多无效的SQL。例如,在Spider的开发会集,T5-3B模型生成的SQL查询有12%会导致履行过错。可是,当这些相同的模型被PICARD增强,咱们发现实质性的改善。首要,无效的SQL猜测变得很少见。关于运用PICARD的T5-3B,只要2%的猜测是无效的。在这些状况下,没有找到有用的SQL猜测就退出了beam search。其次,也是最重要的,经过运用PICARD, T5-3B模型提升到最先进的功能。咱们丈量的EM在开发集上为75.5%,在测验集上为71.9%。EX成果分别为79.3%和75.1%。这些数字与最接近的竞争对手LGESQL + ELECTRA持平或更高(见表1)。此外,咱们在Spider的开发集上完成了71.9%的TEX。

Text-to-SQL学习整理(十六)T5+PICARD模型
咱们对CoSQL对话状况盯梢数据集(见表2)的发现与Spider的发现相似。PICARD显着提高了功能,咱们的微调T5-3B模型到达了最先进的功能。

Text-to-SQL学习整理(十六)T5+PICARD模型
PICARD不只提高了功能,并且速度也很快。在Spider上对T5-3B模型进行评价时,beam size巨细为4在NVIDIA A100-SXM4-40GB GPU上时的解码速度,无PICARD时平均为2.5秒/样本,有PICARD时平均为3.1秒/样本。

Beam Size 图1显现了在不运用PICARD和运用PICARD的Spider上对不同波束巨细和T5巨细进行解析时的成果。关于每个模型的beam size,PICARD都随着beam size的添加而提高功能。从beam size1到2这一步,这些添加是最强的,从2到4不太显着,然后饱满的beam size超越4。即使运用贪婪查找(波束巨细1),PICARD也答应一些适度的改善。注意,如果没有PICARD,这些模型就不能从波束查找中受益。PICARD在每个解码过程中处理的最高概率令牌的数量k对功能的影响不大,甚至能够忽略不计。T5-Base最大,T5-Large较小,T5-3B几乎检测不到。咱们不研讨k = 1的状况,由于它将beam search简化为束缚贪婪查找。

Ablations 在图3中,咱们浓缩了PICARD的消融剖析。咱们展现了T5-Large模型在所有四种PICARD查看形式下的成果,以及Spider开发集上四种不同beam size的成果。当对每个解码过程进行增量查看时,词法剖析显现出比无束缚的T5模型有一个小改善。无PICARD和lexing形式下的成果在很大程度上与beam size无关。当PICARD切换到更杂乱的解析形式时,状况就不同了。无论是运用Guards还是不运用Guards,PICARD对功能的改善都在随beam size的添加而快速添加,其中运用Guards的解析明显比没有维护的解析具有更强的优势。

为了将PICARD与Suhr等人(2020)和Lin等人(2020)的效度过滤办法进行比较,咱们还研讨了当模型用序列末端token猜测假定终结时,PICARD只查看假定时会发生什么在这种束缚形式下,PICARD仍然是有用的,但比正常的增量操作要少得多。只要当beam sizze较大时,这两种操作形式之间的差距才开端缩小。这是能够理解的,由于Lin等人(2020)运用的beam size至少为16,最多为64,以到达滤波的最佳成果,而Suhr等人(2020)运用的波束巨细为100。

4 结论

咱们提出并评价了一种新的办法,PICARD,简略和有用的束缚解码与大型预练习言语模型。在Spider跨域、跨数据库文本到SQL数据集和CoSQL根据SQL的对话状况盯梢数据集上,咱们发现PICARD解码办法不只显着提高了经过Fine-tune的T5模型的功能,并且还提高了未修改的T5模型的功能。它还提升了一个T5-3B模型,以树立的准确匹配(EM)和履行精度(EX)目标的最先进的成果。