一、摘要
MAC-SQL: A Multi-Agent Collaborative Framework for Text-to-SQL,作者们来自北京航空航天大学和腾讯优图实验室。摘要中提到,基于大型语言模型(LLM)的Text-to-SQL方法在处理大型数据库和需要多步推理的复杂用户问题时,通常会遭受显著的性能下降。此外,大多数现有方法忽略了LLM利用外部工具和模型协作的重要性。
为了解决这些挑战,论文介绍了MAC-SQL(Multi-Agent Collaborative Framework for Text-to-SQL),这是一个新颖的基于LLM的多代理协作框架。该框架由一个核心的分解器代理(decomposer agent)组成,负责通过少样本链式推理(few-shot chain-of-thought reasoning)生成Text-to-SQL,同时还有两个辅助代理,它们利用外部工具或模型获取更小的子数据库并改进错误的SQL查询。分解器代理与辅助代理协作,根据需要激活,并可以扩展以适应新特性或工具,以有效进行Text-to-SQL解析。
在框架中,作者们最初使用GPT-4作为所有代理任务的强大后端LLM,以确定框架的上限。然后,他们通过利用Code Llama 7B对一个遵循指令的开源模型SQL-Llama进行了微调,以完成与GPT-4相同的所有任务。实验表明,SQL-Llama达到了与GPT-4基线准确率46.35%相近的43.94%的执行准确率。在撰写本文时,MAC-SQL+GPT-4在BIRD基准测试上的执行准确率达到了59.59%,确立了当时的最新最佳状态(state-of-the-art, SOTA)。
简而言之,这篇论文提出了一个新的框架,通过多代理协作来解决Text-to-SQL任务中的挑战,并取得了显著的性能提升。
二、介绍
在论文的引言部分,作者们介绍了Text-to-SQL任务的背景和重要性,以及现有方法的局限性,并提出了他们的MAC-SQL框架来解决这些挑战。
-
Text-to-SQL任务的定义:Text-to-SQL旨在自动化从自然语言文本生成数据库的SQL查询的过程。这对于提高数据库的可访问性至关重要,因为它消除了对SQL专业知识的需求。
-
研究进展:作者概述了过去十年中Text-to-SQL领域的研究进展,包括最初的使用预训练模型编码输入序列的方法,到最近的采用序列到序列方法的系统,以及最新的利用大型语言模型(LLMs)的研究。
-
现有方法的局限性:尽管最新的研究展示了LLMs在Text-to-SQL任务中的显著能力,但现有方法在处理大型数据库和需要多步推理的复杂用户问题时通常会遇到性能显著下降的问题。此外,现有方法往往忽略了LLMs利用外部工具和模型协作的重要性。
-
MAC-SQL框架的提出:为了解决这些挑战,作者提出了MAC-SQL,这是一个新颖的基于LLM的多代理协作框架。该框架通过一个核心的分解器代理和两个辅助代理(选择器和细化器)来提高Text-to-SQL的效率和准确性。
-
GPT-4和SQL-Llama的使用:作者们首先使用GPT-4作为强大的后端LLM来确定他们框架的上限性能,然后通过利用Code Llama 7B对一个遵循指令的开源模型SQL-Llama进行微调,以实现与GPT-4相当的性能。
-
实验结果:作者们展示了在BIRD基准测试上的实验结果,证明了MAC-SQL+GPT-4在保持测试集上达到了59.59%的执行准确率,确立了当时的最新最佳状态。
-
开源贡献:作者们还提到了他们对开源社区的贡献,包括SQL-Llama模型和代理指令数据集,这为进一步的研究和开发提供了宝贵的资源。
引言部分为读者提供了研究的背景、问题陈述、提出的解决方案以及该研究相对于现有工作的创新点和潜在影响。
三、序言
在论文的“Preliminaries”部分,作者们介绍了Text-to-SQL任务的一些基础知识和前提条件,主要包括以下几个方面:
-
问题定义:给出了Text-to-SQL任务的形式化定义。具体来说,给定一个三元组 X=(Q,S,K)X=(Q,S,K),其中 QQ 是自然语言问题,SS 是数据库架构,KK 是外部知识(可选)。数据库架构 SS 被定义为 T,CT,C,TT 表示多个表 {T1,T2,...,T∥T∥}{T1,T2,...,T∥T∥},CC 表示列 {C1,C2,...,C∥C∥}{C1,C2,...,C∥C∥}。Text-to-SQL任务的目的是生成与问题 QQ 对应的正确SQL查询 YY。
-
大型语言模型在Text-to-SQL中的应用:讨论了Text-to-SQL任务如何被构建为一个生成任务,其中适当的提示(prompts)被用来指导大型语言模型 MM 逐步生成SQL查询。生成过程可以用条件概率的形式化表示。
-
算法描述:提供了MAC-SQL框架中三个代理(Selector、Decomposer、Refiner)的协作过程的算法描述。算法的输入是问题 qq、数据库 dbdb 和知识库 kgkg,输出是SQL查询。
-
代理的动机和功能:解释了设计选择器(Selector)代理的两个主要动机,包括减少不相关信息的干扰和控制提示的长度,以适应LLM的最大上下文长度限制。
-
代理的激活条件:说明了选择器(Selector)代理的激活条件,即当数据库架构提示的长度超过长度阈值时,选择器代理才会被激活。
这部分内容为读者提供了理解和评估MAC-SQL框架所需的基本概念和方法论基础。通过这些基础知识,读者可以更好地理解后续章节中提出的框架设计、模型构建和实验结果。
四、框架介绍
-
框架概览:MAC-SQL框架利用大型语言模型(LLMs)作为具有不同功能的智能代理,以实现有效的Text-to-SQL解析。框架包括一个核心的分解器(Decomposer)代理,以及两个辅助代理:选择器(Selector)和细化器(Refiner)。选择器代理用于简化数据库,分解器代理用于逐步解决子问题,而细化器代理则用于执行SQL并根据反馈修正错误。
-
选择器(Selector):其目的是定位最小的数据库架构,以回答给定的问题。选择器通过提示LLM来实现,并且仅在数据库架构提示的长度超过长度阈值时才会被激活。
-
分解器(Decomposer):目的是通过生成一系列中间步骤(即子问题和SQL查询)来增强LLM的推理能力。分解器指导LLM将原始复杂问题分解为推理步骤,并在单次传递中得到最终的SQL查询。
-
细化器(Refiner):其主要功能是检测并自动修正SQL错误。细化器使用外部SQL工具执行SQL查询,获取反馈,并据此修正错误的SQL查询。
-
算法描述:论文中提供了MAC-SQL算法的描述,详细说明了如何根据问题、数据库和知识库输入来生成SQL查询。
-
代理间的协作:描述了三个代理如何在MAC-SQL框架中协作,包括它们如何交互以及它们各自承担的任务。
-
实验结果:展示了在BIRD和Spider数据集上对MAC-SQL框架进行评估的实验结果,证明了其在执行精度和有效性评分方面相对于现有方法的优势。
-
开源模型SQL-Llama:介绍了SQL-Llama模型,这是一个基于Code Llama 7B的开源模型,通过使用MAC-SQL的代理指令数据进行微调,以实现数据库简化、问题分解、SQL生成和SQL校正的能力。
-
贡献和结果总结:作者总结了MAC-SQL框架的主要贡献和实验结果,强调了其在Text-to-SQL任务中的创新性和有效性。
五、SQL-Llama Modeld 实验介绍
-
指令数据集构建(Instruction Dataset Construction):
- 为了构建Agent-Instruct数据集,作者使用BIRD和Spider数据集的训练集对GPT-4进行多代理任务的指令。
- 根据难度级别收集生成的指令数据,并筛选出SQL查询输出不正确的数据。
- 最终得到的Agent-Instruct数据集D包含N(N=3)个代理指令任务,共10,000个高质量的指令数据,覆盖了BIRD和Spider数据集的分布。
-
多任务监督微调(Multi-task Supervised Fine-tuning):
- 研究主要集中在开发开源模型,以实现与GPT-4等闭源模型相当的性能水平。
- SQL-Llama模型基于Code Llama 7B,并通过MAC-SQL的代理指令数据进行监督微调,增强了其在数据库简化、问题分解、SQL生成和SQL校正方面的能力。
- 描述了监督微调过程,目标是训练LLM从N个任务中学习并完成代理任务。
六、实验
实验设置(Experimental Setup)
-
数据集(Datasets):
- 使用了Spider和BIRD数据集来评估MAC-SQL框架的有效性。Spider数据集包含多个数据库结构,需要模型展示对不熟悉数据库结构的适应性。BIRD数据集是阿里巴巴DAMO Academy发布的新基准,专注于大规模真实数据库内容。
-
评估指标(Evaluation Metrics):
- 考虑了三个指标:精确匹配准确率(Exact Match Accuracy, EM)、执行准确率(Execution Accuracy, EX)和有效效率得分(Valid Efficiency Score, VES)。这些指标用于评估模型在处理真实世界场景中大型数据库内容时的性能。
实验结果(Overall Performance)
-
BIRD数据集结果:
- MAC-SQL+GPT-4在BIRD数据集的开发集和测试集上均取得了最高的执行准确率(EX)和有效效率得分(VES),超越了所有基于LLM的方法。
-
Spider数据集结果:
- 在Spider数据集的开发集上,MAC-SQL使用GPT-4取得了最高的执行准确率,展示了模型的泛化能力。
消融研究(Ablation Study)
- 对MAC-SQL模型的不同组件(选择器、分解器和细化器)进行了消融研究,结果表明每个组件对于实现高精度都至关重要。
讨论(Discussion)
- 分析了示例数量对模型性能的影响,发现随着示例数量的增加,模型性能得到提升。
错误分析(Error Analysis)
- 对BIRD和Spider数据集中的错误类型进行了分析,以评估方法的局限性,并指出了数据集开发和评估中需要改进的地方。
结果总结
- MAC-SQL框架结合开源的SQL-Llama模型,在BIRD基准测试上取得了59.59%的执行准确率,建立了新的最先进水平。
论文链接:https://arxiv.org/pdf/2312.11242
GitHub - wbbeyourself/MAC-SQL: MAC-SQL: A Multi-Agent Collaborative Framework for Text-to-SQL