写点什么

NL2SQL 进阶系列 (4):ConvAI、DIN-SQL 等 16 个业界开源应用实践详解 [Text2SQL]

  • 2024-04-16
    浙江
  • 本文字数:7291 字

    阅读完需:约 24 分钟

NL2SQL进阶系列(4):ConvAI、DIN-SQL等16个业界开源应用实践详解[Text2SQL]

NL2SQL 进阶系列(4):ConvAI、DIN-SQL 等 16 个业界开源应用实践详解[Text2SQL]

NL2SQL基础系列(1):业界顶尖排行榜、权威测评数据集及LLM大模型(Spider vs BIRD)全面对比优劣分析[Text2SQL、Text2DSL]


NL2SQL基础系列(2):主流大模型与微调方法精选集,Text2SQL经典算法技术回顾七年发展脉络梳理


NL2SQL进阶系列(1):DB-GPT-Hub、SQLcoder、Text2SQL开源应用实践详解


NL2SQL进阶系列(2):DAIL-SQL、DB-GPT开源应用实践详解[Text2SQL]


NL2SQL进阶系列(3):Data-Copilot、Chat2DB、Vanna Text2SQL优化框架开源应用实践详解[Text2SQL]


☆☆NL2SQL进阶系列(4):ConvAI、DIN-SQL、C3-浙大、DAIL-SQL-阿里等16个业界开源应用实践详解[Text2SQL]


☆☆NL2SQL进阶系列(5):论文解读业界前沿方案(DIN-SQL、C3-SQL、DAIL-SQL、SQL-PaLM)、新一代数据集BIRD-SQL解读


NL2SQL实践系列(1):深入解析Prompt工程在text2sql中的应用技巧


NL2SQL实践系列(2):2024最新模型实战效果(Chat2DB-GLM、书生·浦语2、InternLM2-SQL等)以及工业级案例教学


NL2SQL 任务的目标是将用户对某个数据库的自然语言问题转化为相应的 SQL 查询。随着 LLM 的发展,使用 LLM 进行 NL2SQL 已成为一种新的范式。在这一过程中,如何利用提示工程来发掘 LLM 的 NL2SQL 能力显得尤为重要。

1. MAC-SQL-2024.2.15

简介:最近的基于 LLM 的文本到 SQL 方法通常在“庞大”数据库和需要多步推理的复杂用户问题上表现出明显的性能下降。此外,大多数现有方法忽视了 LLM 利用外部工具和模型协作的重要意义。为了解决这些挑战,提出了一种新颖的基于 LLM 的多智能体协作框架 MAC-SQL。的框架包括一个核心分解器智能体,用于生成文本到 SQL 并进行少量思维链推理,并伴随两个辅助智能体,它们利用外部工具或模型获取更小子数据库并精炼错误 SQL 查询。分解器智能体与辅助智能体协作,在需要时激活,并可扩展以适应新特性或工具,实现有效文本到 SQL 解析。


在的框架中,首先使用任务强大骨干 LLM 来确定框架上限。然后,通过利用 Code Llama 7B 微调开源指令跟随模型 SQL-Llama 来显示,在 BIRD 基准测试中,SQL-Llama 达到 43.94%执行准则为 46.35% 的基线准确率相当接近 。撰写本文时, MAC-SQL+GPT-4 在 holdout 测试集上取得 59.59% 的执行准确率, 创造了一个新水平(SOTA)。


文件链接:


MAC-SQL: A Multi-Agent Collaborative Framework for Text-to-SQL


代码链接:


github: MAC-SQL




2. DBCopiLOT (☆)-2023.12.6

Text-to-SQL 简化了数据库交互,让非专业人士将自然语言问题转换为 SQL 查询。尽管大型语言模型(LLMs)的近期进展改善了零样本 Text-to-SQL 范式,但现有方法在处理庞大、动态变化的数据库时仍面临可扩展性挑战。本文介绍了 DBCopilot 框架,它采用紧凑灵活的协同模型,实现跨大规模数据库的路由,解决了这些挑战。DBCopilot 将 Text-to-SQL 过程解耦为模式路由和 SQL 生成,利用轻量级的基于序列到序列神经网络的路由器来制定数据库连接,并通过数据库和表导航自然语言问题。随后,将路由的模式和问题输入 LLMs 进行高效的 SQL 生成。此外,DBCopilot 还引入了反向模式到问题生成范式,可以自动学习和适应大规模数据库中的路由器,无需人工干预。实验结果表明,DBCopilot 是处理现实世界 Text-to-SQL 任务的可扩展和有效解决方案,为处理大规模模式提供了重大进展。


论文链接:


DBCᴏᴘɪʟᴏᴛ: Scaling Natural Language Querying to Massive Databases


代码链接:


github: DBCopilot



3.DAMO-ConvAI(☆)-2023.11.15

近年来,文本到 SQL 解析(即将自然语言问题转换为可执行的 SQL 语句)备受关注。特别是 GPT-4 和 Claude-2 在这一任务中取得了令人瞩目的成果。然而,当前主流基准测试(如 Spider 和 WikiSQL)主要关注包含少量数据库值行的数据库模式,导致学术研究与实际应用之间存在差距。为弥补这一差距,提出 BIRD——一个基于文本到 SQL 任务的大规模数据库基准测试,包含 12,751 个文本到 SQL 对和 95 个数据库,总大小达 33.4GB,涵盖 37 个专业领域。强调数据库值的重要性,揭示了脏数据和噪声数据值、自然语言问题与数据库值之间的外部知识关联以及 SQL 效率(特别是在大型数据库背景下)等新挑战。为解决这些问题,文本到 SQL 模型除需具备语义解析能力外,还应具备数据库值理解能力。实验结果表明,在生成大型数据库准确文本到 SQL 语句时,数据库值至关重要。此外,即便是最有效的文本到 SQL 模型(如 GPT-4),其执行准确率也仅为 54.89%,远低于人类的 92.96%,证明挑战依然存在。还提供了效率分析,为生成有益于行业的文本到高效 SQL 语句提供见解。相信,BIRD 将有助于推动文本到 SQL 研究的实际应用发展。


论文链接:


Can LLM Already Serve as A Database Interface? A BIg Bench for Large-Scale Database Grounded Text-to-SQLs


代码链接:


github:bird-sql



4.DAIL-SQL(☆)- 2023.9.8

大型语言模型(LLMs)已成为文本到 SQL 任务的新范式。然而,缺乏系统的基准阻碍了设计有效、高效和经济实惠的基于 LLM 的文本到 SQL 解决方案的发展。为应对这一挑战,本文首先对现有的提示工程方法进行了系统和广泛的比较,包括问题表示、示例选择和示例组织,并基于这些实验结果详细阐述了它们的优缺点。基于这些发现,提出了一种新的集成解决方案,名为 DAIL-SQL,它以 86.6%的执行准确率刷新了 Spider 排行榜,并设定了新的标准。为探索开源 LLM 的潜力,在各种场景下对它们进行了研究,并通过监督微调进一步提升了它们的性能。的探索凸显了开源 LLM 在文本到 SQL 任务中的潜力,以及监督微调的优势和劣势。此外,为构建高效且经济的基于 LLM 的文本到 SQL 解决方案,强调了提示工程中的令牌效率,并在此指标下对先前的研究进行了比较。希望的工作能为基于 LLM 的文本到 SQL 任务提供更深入的理解。


论文链接:


Text-to-SQL Empowered by Large Language Models: A Benchmark Evaluation


代码链接:


github: DAIL-SQL


5. SeaD-2023.6.30

在文本到 SQL(text-to-SQL)任务中,由于架构的限制,序列到序列(seq-to-seq)模型往往导致次优性能。本文提出了一种简单而有效的方法,将基于 Transformer 的 seq-to-seq 模型适配为健壮的文本到 SQL 生成器。并没有对解码器施加约束或将任务重新格式化为槽填充,而是提出了使用 Schema 感知去噪(Schema-aware Denoising,SeaD)来训练 seq-to-seq 模型。SeaD 包含两个去噪目标,分别训练模型从两种新颖的去噪方法——侵蚀和洗牌中恢复输入或预测输出。这些去噪目标作为辅助任务,有助于更好地在序列到序列(S2S)生成中建模结构化数据。此外,改进并提出了一个子句敏感的执行引导(Execution Guided,EG)解码策略,以克服生成模型中 EG 解码的局限性。实验表明,所提出的方法在模式链接和语法正确性方面提高了 seq-to-seq 模型的性能,并在 WikiSQL 基准测试上建立了新的先进水平。这些结果表明,文本到 SQL 中基于 Transformer 的 seq-to-seq 架构的潜力可能被低估了。


论文链接:


SeaD: End-to-end Text-to-SQL Generation with Schema-aware Denoising


代码链接:


6. SC-prompt-2023.6

采用文本到 SQL 翻译(Text-to-SQL)在数据库系统中常见的一个问题是泛化能力较差。具体来说,当新数据集上的训练数据有限时,现有的少样本(few-shot)Text-to-SQL 技术,即使在使用经过精心设计的文本提示对预训练语言模型(PLMs)进行引导时,也往往效果不佳。在本文中,提出了一种分而治之(divide-and-conquer)的框架,以更好地支持少样本 Text-to-SQL 翻译。该框架将 Text-to-SQL 翻译分为两个阶段(或子任务),使得每个子任务都更容易解决。


  • 第一阶段,称之为结构阶段,它引导 PLM 生成一个带有占位符的 SQL 结构(包括 SQL 命令,如 SELECT、FROM、WHERE,以及 SQL 运算符,如“<”、“>”)。这些占位符用于缺失的标识符。

  • 第二阶段,称之为内容阶段,它指导 PLM 用具体的值(包括 SQL 标识符,如表名、列名和常量值)填充在生成的 SQL 结构中的占位符。


提出了一种混合提示策略,该策略结合了可学习的向量和固定向量(即文本提示的词嵌入),使得混合提示能够学习上下文信息,以更好地在两个阶段中引导 PLM 进行预测。


此外,还设计了关键词约束解码来确保生成的 SQL 结构的有效性,以及结构引导解码来确保模型填充正确的内容。通过与撰写本文时最新的十个 Text-to-SQL 解决方案进行广泛比较,实验结果表明,SC-Prompt 在少样本场景下显著优于它们。特别是在广泛采用的 Spider 数据集上,给定少于 500 个标记的训练样本(官方训练集的 5%),SC-Prompt 在准确率上比之前的最佳方法高出约 5%。


论文链接:


Few-shot Text-to-SQL Translation using Structure and Content Prompt Learning


代码链接:


github:SC-Prompt




7.T5-SR -2023.6.15

将自然语言查询转换为 SQL 语句的序列到序列(seq2seq)方法近年来备受关注。然而,与基于抽象语法树的 SQL 生成相比,seq2seq 语义解析器面临着更多挑战,包括在模式信息预测方面的质量较差,以及自然语言查询与 SQL 语句之间的语义连贯性不足。本文分析了上述困难,并提出了一种面向 seq2seq 的解码策略,称为 SR。该策略包括一个新的中间表示 SSQL 以及一个带有分数重估器的重排序方法,以分别解决上述障碍。实验结果表明,提出的技术是有效的,T5-SR-3b 在 Spider 数据集上达到了新的最先进水平。


论文链接:


T5-SR: A UNIFIED SEQ-TO-SEQ DECODING STRATEGY FOR SEMANTIC PARSING


代码链接:



8.DIN-SQL(☆)-2023.4.27

研究了将复杂的文本到 SQL 任务分解为更小子任务的问题,以及这种分解如何显著提高大型语言模型(LLMs)在推理过程中的性能。目前,在诸如 Spider 等具有挑战性的文本到 SQL 数据集上,使用 LLMs 的微调模型与提示方法之间的性能存在显著差距。展示了可以将 SQL 查询的生成分解为子问题,并将这些子问题的解决方案输入到 LLMs 中,以显著提高其性能。对三个 LLMs 进行的实验表明,这种方法能够一致地将其简单的几次尝试性能提升约 10%,使 LLMs 的准确率接近或超过当前最佳水平。在 Spider 的保留测试集上,以执行准确率为标准,当前最佳水平为 79.9,而使用该方法实现的新最佳水平为 85.3。的基于上下文学习的方法至少比许多经过大量微调的模型高出 5%。


论文链接:


DIN-SQL: Decomposed In-Context Learning of Text-to-SQL with Self-Correction


代码链接:


github DIN-SQL


9.RESDSQL-2023.4.10

近年来,预训练语言模型是文本到 SQL 转换的最佳尝试之一。由于 SQL 查询的结构特性,seq2seq 模型负责解析模式项(即表和列)和骨架(即 SQL 关键字)。这种耦合的目标增加了正确解析 SQL 查询的难度,特别是在涉及多个模式项和逻辑运算符时。本文提出了一种基于排名增强的编码和骨架感知解码框架,以解耦模式链接和骨架解析。具体来说,对于 seq2seq 编码器-解码器模型,其编码器注入了最相关的模式项,而不是整个无序的模式项,这可以减轻 SQL 解析过程中的模式链接负担;其解码器首先生成骨架,然后生成实际的 SQL 查询,这可以隐式地约束 SQL 解析。在 Spider 及其三个鲁棒性变体(Spider-DK、Spider-Syn 和 Spider-Realistic)上评估了所提框架。实验结果表明,的框架表现出良好的性能和鲁棒性


论文链接:


RESDSQL: Decoupling Schema Linking and Skeleton Parsing for Text-to-SQL


代码链接:


github: RESDSQL



10.ChatGPT's zero-shot Text-to-SQL-2023.3.12

本文首次对大型对话语言模型 ChatGPT 的文本到 SQL 能力进行了全面分析。鉴于 ChatGPT 在对话能力和代码生成方面的出色表现,旨在评估其在文本到 SQL 任务上的性能。在 12 个不同语言、设置或场景的基准数据集上进行了实验,结果表明 ChatGPT 具有强大的文本到 SQL 能力。尽管与当前最佳模型(SOTA)的性能相比仍有一定差距,但考虑到实验是在零样本场景下进行的,ChatGPT 的表现仍然令人印象深刻。值得注意的是,在 ADVETA(RPL)场景下,零样本的 ChatGPT 甚至超过了在 Spider 数据集上需要微调的 SOTA 模型,性能高出 4.1%,展现了其在实际应用中的潜力。


论文链接:


A comprehensive evaluation of ChatGPT’s zero-shot Text-to-SQL capability


代码链接:


chatgpt-sql


11.Binder-2023.3.1

尽管端到端的神经方法最近在 NLP 任务中在性能和易用性方面占据主导地位,但它们缺乏可解释性和鲁棒性。提出了 BINDER,一个无需训练的神经符号框架,它将任务输入映射到程序,从而实现以下功能:(1)将语言模型(LM)功能的统一 API 绑定到编程语言(如 SQL、Python),从而扩展其语法覆盖范围,解决更多样化的问题;(2)将 LM 既用作程序解析器,又用作执行期间 API 调用的底层模型;(3)仅需要少量上下文示例注释。具体而言,采用 GPT-3 Codex 作为 LM。在解析阶段,仅需少量上下文示例,Codex 就能够识别任务输入中无法由原始编程语言回答的部分,正确生成 API 调用来提示 Codex 解决无法回答的部分,并在保持与原始语法兼容的同时确定 API 调用的位置。在执行阶段,Codex 可以在 API 调用中提供适当的提示,执行多种功能(如常识问答、信息提取)。BINDER 在 WIKITABLEQUESTIONS 和 TABFACT 数据集上实现了最先进的结果,并提供了明确的输出程序,有助于人类调试。请注意,之前的最佳系统都需要在数万个特定于任务的样本上进行微调,而 BINDER 仅使用几十个作为上下文示例的注释,无需任何训练。


论文链接:


BINDING LANGUAGE MODELS IN SYMBOLIC LANGUAGES


代码链接:


github: Binder


12.STAR-2022.10.28

在本文中,提出了一种新颖的 SQL 指导的预训练框架 STAR,用于上下文依赖的文本到 SQL 解析。该框架利用上下文信息来丰富自然语言(NL)语句和表结构表示,从而改善文本到 SQL 的转换效果。具体来说,提出了两个新颖的预训练目标,它们分别探索每个文本到 SQL 对话中自然语言语句和 SQL 查询之间的上下文依赖交互:(i)模式状态追踪(SST)目标,通过预测和更新每个模式槽位的值来追踪和探索上下文依赖的 SQL 查询的模式状态;(ii)语句依赖追踪(UDT)目标,采用加权对比学习来拉近两个语义相似的自然语言语句的表示,同时推远每个对话中语义不相似的自然语言语句的表示。


此外,还构建了一个高质量的大规模上下文依赖的文本到 SQL 对话语料库,用于预训练 STAR。大量实验表明,STAR 在两个下游基准(SPARC 和 COSQL)上取得了新的最佳性能,显著优于先前的预训练方法,并在排行榜上名列第一。相信,所构建的语料库、代码库和预训练的 STAR 检查点的发布将推动该领域的研究发展。


论文链接:


STAR: SQL Guided Pre-Training for Context-dependent Text-to-SQL Parsing


代码链接:


https://github.com/alibabaresearch/damo-convai




13.CQR-SQL-2022.10.24

上下文依赖的文本到 SQL 的任务是将多轮问题翻译成与数据库相关的 SQL 查询。现有的方法通常侧重于充分利用历史上下文或先前预测的 SQL 进行当前的 SQL 解析,却忽视了显式理解模式和对话依赖性,如共指、省略和用户关注点的变化。在本文中,提出了 CQR-SQL,它利用辅助性的对话问题重构(CQR)学习来显式地利用模式并解耦多轮 SQL 解析中的上下文依赖。具体来说,首先提出了一种模式增强的递归 CQR 方法,以生成与领域相关的、自包含的问题。其次,训练 CQR-SQL 模型,通过模式接地一致性任务和树结构 SQL 解析一致性任务,将多轮问题和辅助性的自包含问题的语义映射到相同的潜在空间,从而通过充分理解上下文来增强 SQL 解析的能力。在撰写本文时,的 CQR-SQL 在两个上下文依赖的文本到 SQL 基准测试 SPARC 和 COSQL 上取得了新的最先进结果。


论文链接:


CQR-SQL: Conversational Question Reformulation Enhanced Context-Dependent Text-to-SQL Parsers


代码链接:





14. RASAT-2022.10.9

关系结构,如模式链接和模式编码,已被验证为将自然语言定性转化为 SQL 查询的关键组件。然而,引入这些结构关系也存在一些代价:它们通常导致模型结构专业化,这在很大程度上限制了在文本到 SQL 任务中使用大型预训练模型。为了解决这个问题,提出了 RASAT:一种增强了关系感知自注意力的 Transformer 序列到序列(seq2seq)架构。该架构能够利用多种关系结构,同时有效地继承 T5 模型的预训练参数。的模型可以整合文献中几乎所有类型的现有关系,此外,还提出了为多轮次场景引入共指关系。在三个广泛使用的文本到 SQL 数据集上的实验结果(涵盖单轮和多轮场景)表明,RASAT 在所有三个基准测试中均取得了最先进的结果(Spider 上的 EX 为 75.5%,SParC 上的 IEX 为 52.6%,CoSQL 上的 IEX 为 37.4%)。


论文链接:


RASAT: Integrating Relational Structures into Pretrained Seq2Seq Model for Text-to-SQL


代码链接:


https://github.com/LUMIA-group/rasat


15.S2SQL-2022.5

将自然语言问题转换为可执行的 SQL 查询,即文本到 SQL(Text-to-SQL),是语义解析的重要分支。虽然最先进的基于图的编码器已成功应用于此任务,但它对问题语法的建模并不理想。在本文中,提出了 S²SQL,将语法注入到问题-模式图编码器中,用于 Text-to-SQL 解析器。这有效地利用了文本到 SQL 中问题的句法依赖信息来提高性能。还采用了解耦约束来诱导多样的关系边嵌入,这进一步提高了网络的性能。在 Spider 和健壮性设置 Spider-Syn 上的实验表明,当使用预训练模型时,所提出的方法优于所有现有方法,在 Spider 和 Spider-Syn 数据集上的性能分别提高了高达 1.9%和 2.2%。


论文链接:


Injecting Syntax to Question-Schema Interaction Graph Encoder for Text-to-SQL Parsers


代码链接:


16. HIE-SQL-2022.4.2

近年来,上下文依赖的文本到 SQL 语义解析任务,即在交互过程中将自然语言翻译成 SQL,引起了广泛关注。之前的工作要么从交互历史语句中,要么从先前预测的 SQL 查询中利用上下文依赖信息,但由于自然语言与逻辑形式的 SQL 之间的不匹配,它们无法同时利用两者。在这项工作中,提出了一个历史信息增强的文本到 SQL 模型(HIE-SQL),以同时从历史语句和最后预测的 SQL 查询中利用上下文依赖信息。鉴于这种不匹配,将自然语言和 SQL 视为两种模态,并提出一个双模态预训练模型来弥合它们之间的鸿沟。此外,设计了一个模式链接图,以增强从语句和 SQL 查询到数据库模式的连接。展示了历史信息增强方法显著提高了 HIE-SQL 的性能,在撰写本文时,它在两个上下文依赖的文本到 SQL 基准测试——SparC 和 CoSQL 数据集上取得了新的最先进结果。


论文链接:


HIE-SQL: History Information Enhanced Network for Context-Dependent Text-to-SQL Semantic Parsing


代码链接:




更多优质内容请关注公号:汀丶人工智能;会提供一些相关的资源和优质文章,免费获取阅读。

发布于: 刚刚阅读数: 4
用户头像

本博客将不定期更新关于NLP等领域相关知识 2022-01-06 加入

本博客将不定期更新关于机器学习、强化学习、数据挖掘以及NLP等领域相关知识,以及分享自己学习到的知识技能,感谢大家关注!

评论

发布
暂无评论
NL2SQL进阶系列(4):ConvAI、DIN-SQL等16个业界开源应用实践详解[Text2SQL]_大模型_汀丶人工智能_InfoQ写作社区