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其实也是从提升预训练模型角度出发,最大限度利用预训练模型的能力。

相关推荐
小赖同学啊3 分钟前
智能连接器集群化高可用生产方案
linux·运维·人工智能
ZStack开发者社区11 分钟前
基于AI Agent的ZCF API文档全链路自动化
运维·人工智能·自动化
沈麽鬼13 分钟前
别瞎用AI写代码!90%开发者都搞错了AI编程的底层逻辑
人工智能·ai编程·trae
小陈爱编程15 分钟前
我终于把 Codex 的 API 配置理顺了:从踩坑到跑通
人工智能
不爱洗脚的小滕18 分钟前
【Agent】如何为 AI Agent 设计高可用的 Tools
人工智能·aigc·ai编程·rag
姗姗来迟了20 分钟前
前端传图片给多模态 Agent:压缩、预览、格式那些破事
人工智能
Sam092732 分钟前
Spec Coding 和 Vibe Coding 的区别:AI Coding 从感觉驱动到规格驱动
人工智能·ai
Kobebryant-Manba1 小时前
学习RNN(简洁实现)
人工智能·rnn·学习
德迅--文琪1 小时前
当前 2026 年 AI 狂潮时代,抗 DDoS 产品公司品牌推荐
人工智能·ddos
机器之心1 小时前
Claude Fable 5四日惊魂
人工智能·openai