首页 > 数据库 >【学习笔记4】论文MAC-SQL: A Multi-Agent Collaborative Framework for Text-to-SQL

【学习笔记4】论文MAC-SQL: A Multi-Agent Collaborative Framework for Text-to-SQL

时间:2024-08-12 09:26:10浏览次数:12  
标签:Multi Collaborative 模型 agent MAC LLM SQL GPT

Abstract

        最近基于大型语言模型(LLM)的 Text-to-SQL 方法在处理“庞大”数据库和需要多步推理的复杂用户问题时,通常会遭遇显著的性能下降。此外,大多数现有方法忽视了 LLM 利用外部工具和模型协作的重要性。为了解决这些挑战,我们提出了 MAC-SQL,这是一种新颖的基于 LLM 的多agent协作框架。我们的框架包括一个核心分解agent,用于通过少量示例的思维链推理生成 Text-to-SQL,同时还有两个辅助agent利用外部工具或模型获取更小的子数据库并优化错误的 SQL 查询。核心分解agent与辅助agent协同工作,这些辅助agent在需要时被激活,并且可以扩展以适应新的特性或工具,从而实现高效的 Text-to-SQL 解析。在我们的框架中,我们首先利用 GPT-4 作为所有agent任务的强大骨干 LLM,以确定框架的上限。然后,我们通过利用 Code Llama 7B 对一个开源的指令跟随模型 SQL-Llama 进行微调,以便像 GPT-4 一样完成所有任务。实验结果显示,SQL-Llama 在执行精度上达到了 43.94,与 GPT-4 的基线精度 46.35 相当。在撰写本文时,MAC-SQL+GPT-4 在 BIRD 基准测试中实现了 59.59 的执行精度,在其保留的测试集上建立了新的最先进技术(SOTA)。

        GPT-4o翻译

1.Introduction 

        在过去的十年text-to-sql领域研究经过了三个阶段。在初始阶段,系统利用预训练模型对输入序列进行编码,并通过抽象语法树或预定义草图解码生成的SQL查询。之后的系统采用seq-to-seq的方法。最近的研究展示了大型语言模型在这一任务中的显著能力。这些模型的成功可以归因于其新兴的能力和LLMs内在的强大推理能力。

        最近,基于大模型(LLM)的 Text-to-SQL 研究主要集中在上下文学习提示策略和使用目标领域数据进行监督微调上。然而,这些方法在处理“庞大”数据库和需要多步推理的复杂问题时,通常会有显著的性能下降,如下图所示。此外,大多数现有方法忽视了 LLMs 利用外部工具和模型协作的重要性。

         为了缓解上述挑战,本文引入了一种新的基于LLM的多智能体协作框架MAC-SQL,该框架利用LLM作为具有不同功能的智能agent,实现了有效的text-to-sql解析。MAC-SQL框架包括一个用于text-to-sql生成的核心分解agent,以及两个辅助agent Selector和Refer,用于工具使用和SQL优化。具体来说,分解器将复杂问题分解为更简单的子问题,并通过思维链推理逐步解决这些子问题。在必要时,Selector将大型数据库分解为较小的子数据库,以最小化无关信息的干扰;Refer则使用外部工具执行SQL,获取反馈,并优化错误的SQL查询。

        此外,还利用Code Llama 7B,使用来自MAC-SQL的agent指令数据,对指令遵循的模型 SQL-Llama 进行了微调,从而实现了数据库简化、问题分解、 SQL 生成和 SQL 校正等功能。

        本文的实验结果表明,MAC-SQL + GPT-4在 BIRD 的测试集上实现了59.59的执行精度。此外,本文利用 SQL-Llama (7B)来完成所有类似 GPT-4的任务。令人惊讶的是,尽管 SQL-llama 的参数数量级比 GPT-4少,但它的执行精度达到了43.94,非常接近 GPT-4的精度(46.35)。

        本文的贡献如下:

        (1)提出了 MAC-SQL,一个新颖的texyt-to-SQL 的多agent协作框架,它集成了外部工具,便于模型协作来解决复杂的问题。

        (2)引入了一个名为 SQL-Llama 的指令调优模型,以填补开源agent指令跟踪模型在text-to-sql任务中的空白。

        (3)实验结果表明,MAC-SQL 对 BIRD 测试集的执行准确率达到了59.59% 水平。

2 Preliminaries

2.1 Problem Definition of Text-to-SQL

        给定一个X =(Q,S,K),其中Q,S和K分别表示自然语言问题、数据库模式和外部知识。text-to-sql的目的是生成与问题Q相对应的正确的SQL语句Y。

2.2 Large Language Model for Text-to-SQL

        大模型任务定义为:

        其中Y<i是SQL查询Y的前缀,而P_{M}(Y_{i}|\cdot)是SQL查询Y中第i个token的条件概率。

3 MAC-SQL Framework

        先摆出整体架构图:

3.1 Overview

                 MAC-SQl整体架构见上面这张图,MAC-SQL 包含一个用于text-to-sql生成的核心分解agent,以及两个分别用于工具使用和 SQL 优化的辅助agent Selector 和 Refer。在算法1中,给出了三个agent在 MAC-SQL 中的协作过程。

3.2 Selector 

        定义:给定一个数据库模式T ={T,C},选择器agent的目的是找的最小模式S'={T',C'},其中T'\subseteq T , C'\subseteq C,并结合外部知识K,来回答问题Q。选择器可以描述为:

        其中,f_{selector}(\cdot|M)表示提示LLM的选择器的函数。

        设计理由:1.在提示词中引入太多不相关的模式项会增加LLM在输出SQL中生成不相关模式项的可能性。2.使用完整的数据库模式会导致文本过长,导致不必要的开销。

        值得注意的:只有数据库模式提示符的长度超过阈值时,才会激活selector

        Selector的完整提示词:

 3.3 Decomposer

        该步骤流程,如下图:

        分解器的目的是通过在预测最终SQL之前生成一系列中间步骤(子问题和SQL)来提高LLM的推理能力。如上图所示,分解器指示LLM将原始复杂问题Q,作为推理步骤进行分解,并在一次过程中得到最终的SQL查询Y。

        分解器模式可以通过两种提示方法进行text-to-sql的分析:思维链(CoT)提示和最小最大提示。前者包括一次生成思考和推理来获得答案,而后者由于迭代过程而产生每个SQL查询的计算成本更高。

        由于迭代法效率低下,而且需要决定何时停止,我们采用 CoT 方法生成子问题及其相应的 SQL。具体的实现方法是: 动态判断用户问题的难度,如果能够通过简单的 SQL 查询得到答案,则直接生成 SQL。如果问题更复杂,则从最简单的子问题开始生成相应的 SQL,然后逐渐分解以获得渐进的子问题,直到获得对应于该问题的最终 SQL。此外,还利用few-shot方法通过上下文学习来增强 LLM 对指令的理解。

3.4 Refiner

        精炼器的作用是检测和自动修正SQL错误,具体流程如下:

         如图所示,在接收到一个SQL查询后,路由器对SQL语句进行诊断,以评估其语法正确性、可执行性以及从数据库中检索非空的结果。精炼器的目的是实现模型的自检和自校正,以提高整个框架的容错性和准确性。

4 SQL-LlamaModel

4.1 Instruction Dataset Construction

        使用GPT-4通过多agent在GPT-4和Spider上得到的。本文根据难易程度收集了这些数据并过滤掉了不正确的数据。最后,整个数据集包含10000个高质量指令数据,包含3个agent指令任务。

4.2 Multi-task Supervised Fine-tuning

        我们的研究主要集中在 MAC-SQL 框架内开源模型的开发,以达到与 GPT-4等封闭源模型相当的性能水平。为了实现这一点,我们已经投入了大量的精力准备用于模型训练的数据,并且开源了 SQL-Llama,这是一个使用三个智能agent指令数据进行微调的模型。基于Code Llama 7B 的 SQL-Llama 模型使用 MAC-SQL 的代理指令数据进行了监督微调,增强了其在数据库简化、问题分解、 SQL 生成和 SQL 校正方面的能力。 

        在模型训练过程中遇到的关键挑战之一是平衡模型的复杂性和性能。我们必须仔细优化模型体系结构和参数,以确保它能够有效地处理与数据库相关的任务的复杂性,同时仍然保持高性能水平。此外,确保数据集的质量和相关性是至关重要的,因为它直接影响模型的性能。

5 Experiments

5.1 Experimental Setup

        数据集:Spider、BIRD        

        评估指标:EX、EM、VES

        Baseline:GPT-4、DIN-SQL、DAIL-SQL、C3-SQL

        实验使用的GPT版本:32k版本的GPT-4和16k版本的GPT-3.5-Turbo

5.2 Overall Performance

 BIRD的结果:

         

  Spider的结果:

5.3 Ablation Study

        研究结果表明,原有的 MAC-SQL + GPT-4模型在 Simple 上达到了65.73% 的准确率,在中等模型上达到了52.69% 的准确率,在 Chal-longing 上达到了40.28% 的准确率,总体准确率为59.39% 。去除 Selector 组件后,Simple 的准确率仍然保持不变,但中级和挑战级的准确率分别下降到52.04% 和35.14% ,总体准确率为57.28% (下降了2.11%)。同样,去除 Decomposer 和 Refer 组件也会导致所有难度级别的精度下降。 

5.4 Discussion 

         从0-shot到2-shot,BIRD和Spider的性能指标都有了一致的提高,表明该模型能够有效地学习少量的例子。

5.5 Error Analysis

        错误的分布如下图:

        “Gold Error”是最常见的错误类型,在 BIRD 和 Spider 中分别占30% 和22% ,表明标准准确的重要性。“Semantic Correct”是另一种流行的错误类型,在 BIRD 和 Spider 中分别占14% 和22% ,表明语义理解和正确性的重要性。然而,“Semantic Correct”在 BIRD (2%)中比在 Spider (8%)中更频繁,表明了模式链接错误的差异。该分析强调了在数据集开发和评估中解决标准正确性、语义正确性和模式链接的必要性,从而提高了它们的质量和可靠性。 

6 Related Work

        略

7 Conclusion

        略

8 Limitations

        1.我们没有广泛地设计提示,这可能不是最佳的。

        2.本文只报告了7B CodeLLama 模型的微调结果,我们相信使用更大的模型性能可以进一步提高。

标签:Multi,Collaborative,模型,agent,MAC,LLM,SQL,GPT
From: https://blog.csdn.net/qq_51700285/article/details/141027462

相关文章

  • 3.3.Multicast-2_IPv6-1
    实验:r5:ipdefault-gateway35.1.1.3ipigmpjoin-group224.1.1.1r2:ipmulticast-routingints1ippimdense-modeints0ippimdense-moder1:ipmulticast-routingints0ippimdense-modeints1ippimdense-modeinte0ippimdense-moder6:ipmultica......
  • 贷齐乐系统最新版SQL注入(绕过WAF可union select跨表查询)
    目录标题:贷齐乐系统最新版SQL注入(绕过WAF可unionselect跨表查询)内容:一,环境部署二,源码分析三,sql注入总结:[回到顶部](#article_top)一,环境部署本漏洞由于是2015年爆出的,所以这里源码使用的PHP版本不支持7版本,这里我们可以使用PHP5.4.45版本,只需小皮进行下载更改即......
  • SQL注入之sqli-labs靶场第三关
    标题:SQL注入之sqli-labs靶场第三关目录:1.寻找注入点2.进行字段猜解3.信息收集4.sql注入总结:1.寻找注入点http://localhost/sqli-labs/Less-3/?id=1%27)%20and%201=2--+通过尝试发现注入点,使用双引号和)闭合,进行and1=1and1=2进行尝试2.进行字段猜解......
  • MySQL授权用户对存储过程查询和执行权限【转】
    1、授权MySQL存储过程执行权限在项目中往往会用到存储过程来统计一些比较复杂的报表,如果数据库是mysql,则需要在执行存储过程前需要为用户添加权限,才可以,否则会提示:mysqlUserdoesnothaveaccesstometadatarequiredtodeterminestoredprocedureparametertypes错误。......
  • 多元/多维高斯/正态分布概率密度函数推导 (Derivation of the Multivariate/Multidime
    各种维度正态分布公式:一维正态分布二维正态分布/多维正态分布各向同性正态分布 注:即方差都是一样的,均值不一样,方差的值可以单独用标量表示。多元/多维高斯/正态分布概率密度函数推导(DerivationoftheMultivariate/MultidimensionalNormal/GaussianDensity)作者:凯......
  • MySQL基础详解(3)
    文章目录索引普通索引创建索引修改表结构(添加索引)创建表的时候直接指定删除索引的语法唯一索引创建索引修改表结构创建表的时候直接指定使用ALTER命令添加和删除索引使用ALTER命令添加和删除主键显示索引信息约束非空约束:唯一约束:主键约束:外键约束:索引MySQL......
  • mysql 给了用户所有权限ALL PRIVILEGES,但是该用户没有grant权限
    在MySQL中,给用户ALLPRIVILEGES权限但没有grant权限的情况可能是因为MySQL版本的更新导致了语法的变化。在MySQL8.0及更高版本中,GRANTALLPRIVILEGES的用法已经不再支持,需要使用GRANTALLPRIVILEGESON*.*TO'username'@'host'WITHGRANTOPTION;的格式来授予用户全局权限和......
  • 【1.0版】【MYSQL安全】sql注入系列:宽字节注入
    主题sql注入系列:宽字节注入原理mysql在使用GBK编码的时候,会认为两个字符为一个汉字,例如%aa%5c就是一个汉字(前一个ascii码大于128才能到汉字的范围)。我们在过滤’的时候,往往利用的思路是将‘转换为\’因此我们在此想办法将‘前面添加的\除掉,一般有......
  • 【1.0版】【MYSQL安全】SQL注入:DNSlog外带盲注回显
    主题SQL注入:DNSlog外带盲注回显利用条件DBMS中需要有可用的,能直接或间接引发DNS解析过程的子程序,即使用到UNCLinux没有UNC路径,所以当处于Linux系统时,不能使用该方式获取数据有个重要条件:load_file()函数可以使用。也就是说需要配置文件my.ini中secure_file_priv=UNCU......
  • 【1.0版】【MYSQL安全】sql注入系列:堆叠注入
    主题sql注入系列:堆叠注入原理mysql数据库sql语句的默认结束符是以;结尾,在执行多条SQL语句时就要使用结束符隔开,那么在;结束一条sql语句后继续构造下一条语句,是否会一起执行我们发现确实同时执行了,那么在实际中我们引号闭合之后也有可能可以进行堆叠注入,但是堆叠注入和开......