大模子 | Text2SQL 新一代解决方案Tool-SQL,基于LLM和Agent智能体实现,效 ...

  金牌会员 | 2025-2-20 07:20:13 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 856|帖子 856|积分 2568

在互联网时代,数据爆发式增长,假如高效的分析数据成为一个亟待解决的问题。SQL是数据分析师的常用工具,编写高效的SQL需要用户具备一定的IT基础,对于普通人员来说存在一定门槛。
Text-to-SQL技术可以实现自然语言转换成SQL,用户只需要用自然语言描述本身的目标,Text-to-SQL工具就可以自动生成对应的SQL,大大低落SQL编写的门槛和服从。
为了提高Text-to-SQL的效果,北航提出了一个基于LLM和智能体的Text-to-SQL框架。实行表明,新方法在实行准确率和完全匹配准确率上得到明显提拔。
   论文地址:https://arxiv.org/pdf/2408.16991
  

一、摘要

最新的Text-to-SQL方法利用大型语言模子(LLMs)和数据库体系反馈,有效解决SQL查询中的实行错误。然而,对于不引发实行非常但与数据库不匹配的问题,如条件不匹配和严格束缚不匹配等方面表现出挑衅性。
为解决此类问题,提出了一个名为SQL检查和细化的工具辅助署理框架,装备有两个专门工具:检索器和检测器,能诊断和改正SQL查询与数据库的不匹配问题。这增强了LLMs处理实际查询的本领。
同时引入了一个新的数据集Spider-Mismatch,专门构建以反映真实场景中遇到的条件不匹配问题。实行结果表明,该方法在Spider和Spider-Realistic数据集的平均结果上实现了最高性能,而且在更现实的数据集Spider-Mismatch上明显优于基线方法。

二、简介

Text-to-SQL任务致力于将自然语言问题自动转化为布局化查询语言(SQL)查询,便于非专家用户访问数据库。汗青上,此任务的研究会合于开发需要大量标注数据的训练模子。近期,研究转向利用大型语言模子(LLMs)和上下文学习(ICL),通过提供示例举行模子微调。最初的ICL方法旨在通过创建更好的提示来利用LLMs的推理本领,而后续研究通过多步骤过程辅助LLMs生成SQL查询。这包括自校正方法和基于实行反馈的细化方法,后者通过数据库管理体系(DBMS)实行反馈来改进查询。
尽管这些方法通过DBMS反馈解决实行错误,但难以处理不触发实行非常的数据库不匹配错误。这包括条件不匹配和查询器束缚的不匹配,这两种环境在现实场景中常见,下图展示了这两种错误:

为相识决这些问题,提出了一个工具辅助署理框架,使用数据库检索器和错误检测器工具来检测和改正SQL查询中的错误。
此外,主流Spider数据集及其变体很少反映真实场景中的条件不匹配问题。为了弥合这一差距,引入了Spider-Mismatch数据集,专门设计来突出SQL条件子句中的不匹配问题,通过特定干扰挑衅模子,更贴合现实世界环境。

三、相关工作

1、Text-to-SQL

在比年来,大型语言模子(LLMs)对于文本转SQL(Text-to-SQL)任务的应用成为了研究的热点,众多研究致力于通过各种方法提拔LLMs在此领域中的表现。特别是,关于如何设计更有效的提示以发掘LLMs在解析Text-to-SQL任务时的潜力成为了研究的焦点。
例如,ACT-SQL和一个由Tai等人在2023年提出的方法,都通过构建复杂的思维链提示来增强LLMs的推理本领。另一方面,DAIL-SQL在2024年由Gao等人举行的研究中,对LLM在Text-to-SQL任务中的提示工程举行了体系性的探讨,这包括了问题的表现、示例的选择以及示例的组织方式。
近期的研究趋向接纳一种多阶段的框架计谋,意图通过将Text-to-SQL任务细分为多少更小的子任务,并为每个子任务定制专门的提示,从而提拔LLMs的处理性能。好比,Pourreza和Rafiei在2024年提出的DINSQL方法,就是将Text-toSQL任务分解为模式链接、问题分类、SQL生成及自相关四个子步骤,以期减轻任务的团体难度。接着,Xie等人在2024年进一步对DINSQL的流程举行了增强,引入了DEA-SQL,该方法不仅相沿了DINSQL的框架,还新增了一个自动学习模块。
为了低落生成SQL查询中的错误率,多阶段方法通常会集成一个错误校正模块。DIN-SQL和DEA-SQL通过接纳自我纠错机制,指导LLMs依据提示中的规则对SQL举行修正。此外,MAC-SQL方法由Wang等人在2024年提出,它通过利用数据库管理体系的反馈来指导LLMs,专注于解决SQL查询实行过程中的错误。
2、LLM Agent

随着大型语言模子(LLM)的迅速发展,基于这些模子的署理技术的应用潜力正逐步被发掘。这些署理的焦点优势之一在于它们的识别工具本领,此功能极大地弥合了LLM署理与外部世界之间的信息鸿沟。在此配景下,多个项目和研究团队投入了大量资源,开发出了一系列旨在增强这些署理功能的工具和框架。
AutoGPT(团队于2023年提出)是一种开源的AI署理实现,它集成了众多工具,旨在提拔单个署理的本领。同时,OpenAgents(由Xie等人在2023年开发)设计了三种不同的署理,每种都聚焦于特定的应用领域,并搭载了专为该领域定制的工具。
另外,ToolLLM(由Qin等人在2024年提出)和API-Bank(由Li等人在2023年提出)专注于促进LLM署理与支持RESTful API的开放域实际应用之间的交互。这为署理提供了与真实世界应用程序举行交互的本领,极大地扩展了它们的应用范围。
在更具体的应用场景中,如Text-to-SQL任务,MAC-SQL(由Wang等人在2024年提出)引入了一个多署理框架。该框架旨在独立解决Text-to-SQL转换过程中遇到的各种子任务,例如通过实行非常来精细调整SQL语句。尽管在利用工具诊断SQL查询错误及提供反馈以帮助LLM署理举行SQL细化方面已取得了一定希望,但在检测和解决SQL查询与数据库不匹配的问题上,相关研究仍相对匮乏。
为了填补这一研究空缺,研究人员开始探索使用工具来识别和解决SQL查询中的数据库不匹配问题。这一希望不仅提高了基于LLM的署理处理复杂查询的本领,也为进一步提拔署理与外部数据交互的准确性和服从开辟了新的路径。

四、方法

1、基于LLM的Text-to-SQL任务

LLM的方法通常接纳上下文学习范式,将Text-to-SQL视为生成任务。生成过程可以公式化为:

此中,对大语言模子f的输入包括任务指令提示I、一组演示示例E、数据库D的数据库模式S和新查询Q。证明E = [(S,Q,Y),…,(S,Q,Y)]由来自训练集的k个示例组成,每个示例具有预期输出Y。LLM的输出Y可以是SQL查询或其他情势的中间结果。
2、框架

Tool-SQL,这是一个工具辅助的署理框架,旨在使用基于LLM的署理指导的多个工具来连续检查和改进SQL查询。这个框架定义了一组Python函数作为基于LLM的署理的动作空间。这些函数对应于不同的SQL子句。输出Y是表现SQL查询的操作序列,而不是SQL查询本身。通过Python表明器实行操作序列,工具会合的每个工具T都被调用,以根据问题Q和数据库D检查函数调用Y中的不同错误。假如检测到错误,每个工具都会向基于LLM的署理提供特定的反馈,帮助署理细化特定的SQL子句,而不是盲目地修改SQL查询。检查过程可表述为:

检查和细化过程是迭代的。在基于LLM的署理生成一系列操作之后,将调用所有工具来检查潜在问题。假如所有工具都允许了操作序列,则它将用于组装终极的SQL查询。相反,假如任何工具检测到问题,则署理将基于原始序列Y和来自工具的反馈来生成新的动作序列Y。该过程可以重复多次,直到所有工具都允许该序列或到达最大实行次数。细化过程可以公式化为:

大致方法如下:

  • 为基于LLM的署理设计了一系列Python函数调用,以实行一系列操作
  • 方法中集成了两个工具:数据库索引器和错误检测器。前者检查SQL条件子句的有效性,并通过探索数据库内容来协助署理,而后者则根据SQL实行语法、数据库模式和SQL功能或领域专家定义的更严格的束缚来检测查询中的错误
  • 获取终极SQL查询的过程,此中Python表明器执举措作序列,并使用LLM补充SQL查询中缺失的信息
3、函数

在设计了一套基于SQL的函数库,该库包罗八个专门针对构建和细化SQL查询的Python函数。这些函数分别对应SQL的不同子句,以便简化和组织查询的构建过程。例如,处理“WHERE”子句的任务交由“add where”函数负责。进一步地,为了淘汰基于大型语言模子(LLM)的署理在实行任务时需要考虑的操作范围,将SQL中用于查询串联的操作符(如“UNION”、“INTERSECT”和“EXCEPT”)整合进一个统一的“添加合并”函数中。同时,逻辑运算符如“AND”和“OR”,通常用于“WHERE”或“HAVING”子句,被设计成在函数内部处理,留给LLM在终极步骤中解决,以此简化查询构建过程。每个函数接受特定于其对应SQL子句的参数,例如,一个“WHERE”子句的“A = B”条件,会以“add where(A,=,B)”的情势传递给函数。这种参数化的设计方式不仅提高了工具在诊断SQL子句错误方面的服从,也淘汰了字符串解析的复杂度。

5、查验工具

(1)数据库检索器

定义了两个工具-数据库检索器和错误检测器,它们检查SQL查询中的问题,并帮助基于LLM的署理改进SQL查询。
数据库检索器数据库检索器的重要职责是协助基于LLM的署理验证SQL条件子句的正确性。如图3所示,检索器检查条件动作中的参数(例如,“add where”和“add having”)匹配数据库中的任何条目,假如没有找到匹配项,则为署理提供对类似单元格的引用。通过使用检索器,署理可以将SQL查询中的值与数据库中相应的单元格对齐,大概决定从条件子句中排除列,这对于实际场景中的Text-to-SQL任务至关紧张。在现实环境中,用户问题通常包罗与数据库中的标准化值不同的不规则值,因此在实行查询之前需要举行验证。此外,用户问题的模糊性可能使其具有挑衅性,即使对于高级署理来说,在条件子句中定位正确的列名也是云云。

(2)错误检测器

错误检测器的功能在于识别与严格束缚不匹配的问题,并间接访问数据库以发现SQL实行中的错误。当LLM生成的SQL包罗错误时,通常是由于对特定领域的SQL不熟悉或受到幻觉等因素的影响,这使得错误检测变得尤为紧张。为了举行广泛的检测,开发了一个验证程序,它通过解析Python函数的参数,并在数据库的协助下实行。
与Wang et al. 2024提出的MAC-SQL方法不同,该方法并不直接在数据库管理体系(DBMS)中实行SQL查询来获取反馈。这种差别化的做法是由于直接实行SQL查询的方法在错误检测本领上有限,通常只能捕捉到语法错误和数据库模式错误等实行非常。
在举行错误检测的过程中,重要步骤是提取数据库的模式信息,这包括所有表名、列名及其范例、外键关系等。随后,通过设计的验证程序对照这些信息检查函数参数是否满足SQL操作和数据库模式的要求。针对更严格的束缚,诊断过程聚焦于基于SQL特性来检测诸如外键关系不匹配、"JOIN"操作的冗余或缺失、条件子句中列范例不匹配、以及"GROUP BY"子句的缺失或不妥使用等错误。
此外,还特别强调了该工具的可扩展性,它可以或许轻松顺应检测用户定义的束缚。在实际应用场景中,这意味着通过分析函数调用的参数,工具可以针对具有特定命据处理需求的场景举行调整。例如,对于需要排除"NULL"值或需要以特定格式处理列数据的环境,该工具可以或许举行相应的扩展以满足这些特定的需求。
6、SQL生成

在末了阶段,我们使用改正后的动作序列生成SQL查询。我们使用Python表明器来实行这些函数调用并提取SQL查询的重要组件。对于“WHERE”或“HAVING”子句中缺失的逻辑运算符“AND”和“OR”(不包括在动作序列中),我们依靠LLM来预测它们。有了所有的组件,我们就可以组装完备的SQL查询了。
五、Spider-Mismatch数据集

1、数据集构建

在真实世界的应用场景中,用户提出的问题呈现出广泛的多样性,这些问题与数据库的实际内容之间每每存在不小的差距。为了更准确地评价不同模子在实际环境中的顺应性及泛化本领,Spider基准测试应运而生。然而,Spider基准并非完善,因此衍生出了几个新的数据集,包括Spider-SYN、Spider-DK和Spider-Realistic,以便更好地应对不同的挑衅。同时,Bird数据集的推出,关注点放在了处理更为复杂的数据库内容和提拔SQL查询的服从上。大多数现行方法并没有充分考虑到用户问题中提到的数值与数据库中实际数值之间的潜在不匹配问题,为解决这一问题,SpiderMismatch数据集被引入。这个新数据集通过增长模子在生成正确的条件子句时所需克服的难度,引入了用户问题与数据库内容之间的玄妙差别性,从而推动了模子性能的进一步提拔。

2、条件后处理模块

当前的LLM Text-to-SQL技术在处理SQL查询中的值方面存在不敷,这让生成准确的条件子句变得复杂。针对这一问题,本文引入了一个被称为条件后处理的新模块。该模块的作用是从预测的SQL语句中抽取出值的引用,并利用SimCSE检索技术,将每个值与其所在列最匹配的单元格举行替换。为了确保评估的划一性,本研究在所有测试方法中均应用了条件后处理模块,以便举行公正比较。

六、实行

1、实行设置

(1)数据集: 使用Spider和Spider-Realistic数据集
(2)LLM:使用ChatGPT和GPT-4
(3)评估指标:包括实行准确率和完全匹配准确率
(4)基线: 包括DIN-SQL、MAC-SQL和ACT-SQL
   DIN-SQL:一种多阶段方法,接纳自校正方法来细化SQL查询; MAC-SQL:一种多署理协作方法,根据DBMS的反馈改进SQL; ACT-SQL:一种单阶段方法,引入了用于SQL生成的思想链范例,与使用ChatGPT的其他方法相比,该方法在Spider-Realistic数据集上取得了优异的结果。
  2、结果

实行结果表明,Tool-SQL在Spider数据集和Spider-Realistic数据集上的实行准确率最高,且在Spider-Mismatch数据集上也表现精彩。Tool-SQL的性能稳定,可以或许有效地处理不同场景下的挑衅。

3、消融分析

研究发现,在去除数据库检索功能的环境下,ChatGPT与GPT-4的实行服从分别低落了4.1%和3.2%。这一征象揭示了,在面对用户提问的多义性时,语言模子生成准确的SQL条件子句遇到了挑衅。进一步的实行显示,移除错误检测机制对ChatGPT的性能影响更为明显,暗示了在错误识别方面,性能较弱的模子可能更加脆弱。另外,当错误检测工具被数据库验证工具代替时,ChatGPT和GPT-4的准确性分别低落了1.6%和1.0%,这一结果强调了错误检测功能在维护SQL查询准确性中的关键作用。

4、讨论


研究展示了ChatGPT和GPT-4在作为优化署理时,对SQL查询错误修正过程的影响。重要发现是大部分错误能通过单次修正得到解决,尤其是那些涉及实行错误和束缚不匹配的环境。然而,仍需多轮迭代来精细调整,特别是对条件子句的修改。这意味着在处理复杂的用户问题时,基于大型语言模子(LLM)的署理可能需要多次实行才气找到正确的条件。
实行结果还表明,结合Tool-SQL的ChatGPT和GPT-4在举行错误修正时的平均迭代次数分别为0.74和0.44。这种方法制止了在没有错误检测时引入不必要的步骤,淘汰了额外资本。
此外,研究还考察了去除条件后处理模块对性能的影响。结果显示,移除该模块后,所有基准测试的性能都有所下降,这强调了LLM预测值与数据库实际值之间存在差别。尽管云云,由于该方法可以或许协助LLM署理生成正确的条件子句,去除后处理模块并未导致性能低落。反之,该模块在实际应用中可能会导致错误的答案,由于它会强制替换条件子句中的值为与之最相似的数据库单元格,从而可能引起无答案或错误答案的问题。
七、结论

在本文中,我们提出了工具SQL框架设计的SQL生成在更现实的环境下。这个框架着重于使用基于LLM的署理来改进SQL查询,并从各种工具中得到有针对性的反馈,以检查SQL查询中的特定问题。我们设计了一个数据库检索器和一个错误检测器,以解决现实世界中常见的潜在数据库不匹配问题。在Spider数据集和Spider-Realistic数据集上的平均实行结果表明,我们的方法在少数环境下到达了最高的性能。此外,在SpiderMismatch上的实行结果表明,该方法在实际干扰下仍能保持较高的性能,说明了该方法在增强SQL查询性能方面的有效性。

如何学习大模子?

学习AI大模子是一个体系的过程,需要从基础开始,逐步深入到更高级的技术。
这里给大家经心整理了一份全面的AI大模子学习资源,包括:AI大模子全套学习路线图(从入门到实战)、佳构AI大模子学习册本手册、视频教程、实战学习、面试题等,资料免费分享!

1. 发展路线图&学习规划

要学习一门新的技术,作为新手一定要先学习发展路线图方向不对,积极白费
这里,我们为新手和想要进一步提拔的专业人士准备了一份具体的学习发展路线图和规划。可以说是最科学最体系的学习发展路线。

2. 大模子经典PDF册本

册本和学习文档资料是学习大模子过程中必不可少的,我们精选了一系列深入探讨大模子技术的册本和学习文档,它们由领域内的顶尖专家撰写,内容全面、深入、细致,为你学习大模子提供坚实的理论基础(册本含电子版PDF)

3. 大模子视频教程

对于许多自学大概没有基础的同砚来说,册本这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的大模子视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握焦点知识

4. 大模子项目实战

学以致用 ,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中查验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。

5. 大模子面试题

面试不仅是技术的比力,更需要充分的准备。
在你已经掌握了大模子技术之后,就需要开始准备面试,我们将提供经心整理的大模子面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。

   全套的AI大模子学习资源已经整理打包,有需要的小伙伴可以微信扫描下方CSDN官方认证二维码,免费领取【保证100%免费】
  

如有侵权,请接洽删除

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表