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

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 模型的微调结果,我们相信使用更大的模型性能可以进一步提高。

  • 23
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值