当前位置: 首页 > news >正文

建设谷歌公司网站费用河南省最新通知

建设谷歌公司网站费用,河南省最新通知,甘德网站建设,成品app下载排行NatSQL NatSQL出自2021年9月的论文《Natural SQL: Making SQL Easier to Infer from Natural Language Specifications》(github),它是一种SQL 中间表征(SQL intermediate representation(IR))方法。 NatSQL作者认为Text2SQL的关键挑战是自然语言描述和其对应的SQ…

NatSQL

NatSQL出自2021年9月的论文《Natural SQL: Making SQL Easier to Infer from Natural Language Specifications》(github),它是一种SQL 中间表征(SQL intermediate representation(IR))方法。

NatSQL作者认为Text2SQL的关键挑战是自然语言描述和其对应的SQL查询之间存在不匹配(mismatch),比如论文图1的SQL语句中的GROUP BY 和JOIN ON在自然语言描述问题中没有被提到。因为SQL是被设计成高效地查询关系数据库的,不是用来表示自然语言问题的含义。对不匹配的解决办法是使用中间表征。

在这里插入图片描述

NatSQL的主要语法如论文表1,其设计原则是简化SQL的结构并使其语法与自然语言描述接近:

  • 它只保留SQL中的SELECT, WHERE, ORDER BY 子句。 去掉了GROUP BY,HAVING, FROM, JOIN ON,集合操作符(INTERSECT,UNION,EXCEPT),子查询。
  • 大写斜体字符为SQL和NatSQL关键词,其他大写字符表示特殊的含义:‘TABLE_NAME’, ‘COLUMN_NAME’ 为数据库而定义的, ‘NUMBER’, ‘STRING’ 表示数据类型。
  • 除了被删除的SQL子句外,NatSQL和SQL的差别在表1中用下划线表示。NatSQL将被删除的子句的功能通过添加新的关键字以及允许where条件之前出现conjunct来实现。

在这里插入图片描述

论文图1用一个例子示意了NatSQL与其他几种中间表征方法,NatSQL与SemQL最像,论文认为它在如下方面提升了SemQL:

  • 相比SemQL对SQL语句的兼容范围更大;
  • 简化了带集合操作符(INTERSECT,UNION,EXCEPT)的查询语句结构;
  • 去掉了嵌套子查询;
  • 减少了需要预测的schema元素的个数;
  • 使用与SQL一样的关键字和句法,比SemQL可读性更好且更易扩展。

论文后续部分更详细介绍了这些细节,本笔记主要对NatSQL作一个基本了解,就不详细记录了。

注:NatSQL的github没有包括将SQL转换成NatSQL的代码(有几个issue(1, 2)都提到了这个问题)

DIN-SQL

DIN-SQL出自2023年4月的论文《DIN-SQL: Decomposed In-Context Learning of Text-to-SQL with Self-Correction》(github), 它将text2sql分解成多个子问题后,对每个子问题使用不同prompt让GPT-4生成最终的SQL语句。

论文先从Spider的训练数据集中采样了来自不同数据库的500个问题,分析使用few-shot prompt LLM生成的SQL与标准SQL不同的失败原因,并将失败原因分成如论文图1所示的6个类别。

在这里插入图片描述

在这里插入图片描述

鉴于用few-shot来prompt LLM进行text2sql时,LLM处理复杂查询时较容易出错。DIN-SQL将问题拆成更小的子问题。SQL查询是属于声明式的且可能的各个步骤及边界没有那么明显,所以直接使用很流行的COT方法来处理text2sql的效果没有像解决数学问题那么明显。但是写SQL查询的思考过程可以大致分为如下四步:

  1. 选择与查询相关的数据库表和数据列;
  2. 识别复杂查询的通用查询结构如group by, 嵌套语句, 多个join, set operations等;
  3. 如果有子组件可被识别的话,先定义这些子组件;
  4. 基于子问题的解决方法写出最后的查询。

基于上述思考过程,DIN-SQL将text2SQL任务分解成如论文图2所示的四个模块,并全部用prompt的方式来实现这四个模块,在prompt中使用的few-shot例子从基准数据集的训练集获得。

  1. schema linking;
  2. 问题分类和分解;
  3. SQL生成;
  4. 自我校正;

在这里插入图片描述

Schema Linking 模块:使用的prompt包括10个从Spider数据集随机选择的样例; 基于COT模板,prompt以"Let’s think step by step"开头。对于问题中与列名有关的mention,对应的列名和表名从给定的数据库schema中被提取出来;可能的实体或者数据取值也从问题中被提取出来,示意如论文图3a,完整prompt在附录(prompt里的描述为“# Find the schema_links for generating SQL queries for each question based on the database schema and Foreign keys.”,接着是数据表schema,再就是10个例子)。

问题分类和分解模块:将每一个问题分成三个类别:容易(easy),非嵌套复杂(non-nested complex),嵌套复杂(nested complex).

  • 容易类别:只涉及到单张表的查询,不需要join或嵌套;
  • 非嵌套复杂类别:包括join但不包括子查询的查询;
  • 嵌套复杂类别:包括join,子查询,集合操作(EXCEPT, UNION, INTERSECT)的查询

将每个问题分成不同的类别后,可以对不同的类别使用不同的prompt。论文图3b是一个示例,完整prompt在附录(prompt里的描述为“# For the given question, classify it as EASY, NON-NESTED, or NESTED based on nested queries and JOIN. if need nested queries: predict NESTED elif need JOIN and don’t need nested queries: predict NON-NESTED elif don’t need JOIN and don’t need nested queries: predict EASY”)

SQL生成模块:对第二步分类的三个类别使用不同的处理方式。

  • 容易类别:使用few-shot prompting, 每一个例子由 < Q j , S j , A j > <Q_j, S_j, A_j> <Qj,Sj,Aj>组成, Q j Q_j Qj是问题, S j S_j Sj是schema links, A j A_j Aj是SQL。

在这里插入图片描述

  • 非嵌套复杂类别:使用NatSQL作为中间表征(intermediate representation),few-shot prompting的每一个例子由 < Q j , S j , I j , A j > <Q_j, S_j, I_j, A_j> <Qj,Sj,Ij,Aj>组成, Q j Q_j Qj是问题, S j S_j Sj是schema links, i j i_j ij是问题和SQL的中间表征, A j A_j Aj是SQL。

在这里插入图片描述

  • 嵌套复杂类别:prompt被设计成让LLM先解决子查询,再用子查询生成最后的回答,few-shot例子格式为 < Q j , S j , < Q j 1 , A j 1 , … , Q j k , Q j k > , I j , A j > <Q_j, S_j,<Q_{j_1}, A_{j_1}, \ldots, Q_{j_k}, Q_{j_k}>, I_j, A_j> <Qj,Sj,<Qj1,Aj1,,Qjk,Qjk>,Ij,Aj>, k为子问题的个数, Q j i Q_{j_i} Qji A j i A_{j_i} Aji表示第i个子问题和第i个子SQL语句, 其他的符号与前面一致。

在这里插入图片描述

自我校正模块:由LLM生成的SQL有时会有缺失或者多余的关键字如DESC、DISTINCT等。所以DIN-SQL包括一个自我校验模块,采用zero-shot的形式,并且用两种不同的prompt来实现:

  • generic:要求模型识别和纠正"BUGGY SQL"中的错误;

在这里插入图片描述

  • gentle:不假定生成的SQL查询是有bug的,提供要注意哪些语句的提示让模型去检查潜在问题;
    在这里插入图片描述

论文发现对GPT-4使用gentle prompt的效率更高,而对CodeX模型使用generic prompt的效率更高。

DIN-SQL与few-shot prompt的失败类别对比如论文图4。

在这里插入图片描述

http://www.yayakq.cn/news/727281/

相关文章:

  • 网站标准字体线上推广费用预算
  • 网站开发php和ui做网站需要的企业
  • 艺商网站最权威的公文写作网站
  • 网站模块标准版昆明云南微网站建设
  • 网站推广 公司成都网上注册公司流程
  • 中小学网站建设论文番禺网站开发哪家专业
  • 网站开发工程师的要求php网站制作教程
  • 网站域名 文件夹有电脑网站怎么做手机网站
  • 有没有可以做翻译的网站北京 做网站
  • 湖北公司响应式网站建设推荐成品网站w灬源码伊甸3m8u
  • 网站页面设计说明怎么写企业网站的开发流程
  • 网页设计班级网站用什么做首页深圳品牌策划
  • 珠海网站建设网络推广个人做淘宝客网站不能备案吗
  • 南昌商城网站建设公司网站建设实施规范
  • 百度站长资源平台一个网络空间如何做两个网站
  • ppt哪个网站质量高付费wordpress主题
  • 东莞南城电子网站建设西宁的网站设计
  • 369网站建设中心用户反馈数据分析软件园
  • ios移动网站开发详解网上自学电脑课程
  • 艺术学校网站模板同一个服务器可以做多个网站
  • 电子外贸网站模板商城网站建设软件
  • 合肥网站建设推广服务网站着陆页怎么做
  • 网站域名com和cn房屋装修设计app免费
  • 微信网站建设app公司汝州市文明建设门户网站
  • 汕头网站建设网站推广设计方案流程
  • php语言 网站建设上海做网站优化公司
  • 广州化妆品网站建设wordpress 博客信息
  • 个人网站备案内容写什么专业做美食视频的网站
  • 织梦网站必须下载朋友圈广告投放平台
  • 网站收录突然全部没有了seo门户 site