Text2SQL学习整理(五)将Text-to-SQL任务与基本语言模型结合

导语

上篇博客:Text2SQL学习整理(四)将预训练语言模型引入WikiSQL任务简要介绍了两个借助预训练语言模型BERT来解决WIkiSQL数据集挑战的方法:SQLOVA和X-SQL模型。其中,借助预训练语言模型的强大表示能力,SQLOVA已经超越了人类表现。而X-SQL则更进一步,使用MT-DNN取得了比SQLOVA更好的效果。

本篇博客将为大家介绍另一个使用预训练模型的方法:HybridSQL。

Hybrid Ranking Network for Text-to-SQL

HybridSQL认为,之前的工作揭示了WikiSQL上Text-to-SQL的几个主要挑战如下:

(1)如何融合来自NL问题和表模式的信息,由编码器处理;

(2)如何保证输出的SQL查询的可执行性和准确性,由解码器处理;

(3)如何利用预先训练的语言模型。

因而,这篇工作围绕这三点出发,分别进行了改进。

创新点

HybridSQL的贡献主要有三方面。

  1. 提出了一种简单有效的网络结构,将Text-to-SQL任务与基本语言模型完美地结合起来,从而最大程度地利用了基本语言模型的强大功能。

  2. 作为编码器的基本语言模型直接编码NL问题和列,而不需要任何额外的池操作,这被认为是Text-to-sql中捕获问题-列关系的最佳编码器。

  3. 所提出的混合排序机制和Execution-guided decoding(详见上一篇博客)处理列-列关系,有效提高准确率。

模型简介

HybridSQL将Text-to-SQL定义为一个多任务学习问题,可以通过适应预先训练的Transformer模型来解决。

X-SQL中,模型直接对全表进行了序列化处理,在后续预测子任务中,需要进行Attentive pooling。如下图所示,HydraNet的一个创新点在于它将表示层的输入变成了每个列的列文本和query文本组成的对,这样对于每个列都是bert标准的sentence pair输入。最大化利用了预训练模型的性能(BERT、RoBERTa等)。

在预测后续的6个子任务时,HybridSQL将其分为了两大类

  • 与具体列有关的任务,如W-COL,W-OP,W-VAL。
  • 与具体列无关的任务,如W-NUM和SEL-NUM。

在HybridSQL中,与具体列有关的任务被建模成sentence pair输入的分类任务和文本问答任务。由于HydraNet的每一个序列输入中只有一个column,无法获知全局的信息。所以,在这些任务中,HybridSQL通过设定阈值或对所有列的结果加权来得到预测结果。

HydraNet的推理过程如下:

  • 计算每个(ci, q) pair的所有子任务结果;
  • 综合所有对的结果得到W-NUM和SEL-NUM;
  • 对每个pair针对select进行排序,选出得分最高的SEL-NUM个列及其相关的agg作为条件;
  • 对每个pair针对where进行排序,选出得分最高的W-NUM个列及其相关的val、op作为条件;

结果

通过以上改进,HybridSQL取得了超过X-SQL的表现:

总结

本文介绍了X-SQL后的一个借助预训练语言模型的方法:HybridSQL。该方法尽可能的将Text-to-SQL任务和原始的预训练模型的形式保持一致,最大限度的利用预训练模型的表示能力。后面最新的SOTA模型SeaD其实也是从提升预训练模型角度出发,最大限度利用预训练模型的能力。

相关推荐
橙子小哥的代码世界4 分钟前
【机器学习】【KMeans聚类分析实战】用户分群聚类详解——SSE、CH 指数、SC全解析,实战电信客户分群案例
人工智能·python·机器学习·kmeans·数据科学·聚类算法·肘部法
k layc9 分钟前
【论文解读】《Training Large Language Models to Reason in a Continuous Latent Space》
人工智能·python·机器学习·语言模型·自然语言处理·大模型推理
代码猪猪傻瓜coding18 分钟前
【模块】 ASFF 模块
人工智能·深度学习
阿正的梦工坊23 分钟前
Sliding Window Attention(滑动窗口注意力)解析: Pytorch实现并结合全局注意力(Global Attention )
人工智能·pytorch·python
rgb2gray1 小时前
GeoHD - 一种用于智慧城市热点探测的Python工具箱
人工智能·python·智慧城市
火车叼位1 小时前
5个Why、SWOT, 5W2H等方法论总结,让你的提示词更加精炼
人工智能
阿正的梦工坊1 小时前
PyTorch下三角矩阵生成函数torch.tril的深度解析
人工智能·pytorch·矩阵
说私域2 小时前
电商运营中私域流量的转化与变现:以开源AI智能名片2+1链动模式S2B2C商城小程序为例
人工智能·小程序·开源·流量运营
老A的AI实验室2 小时前
通俗理解Test time Scaling Law、RL Scaling Law和预训练Scaling Law
人工智能·深度学习·算法·chatgpt·llm·agi·rl
多云的夏天2 小时前
AI(14)-prompt
人工智能