本文详细精读了Opensearch论文,论文是通过AI翻译加人工逐行精读修改的结果,希望对想要了解Text-to-SQL的同学有所帮助

文章目录
摘要
尽管多智能体协作的大型语言模型(LLMs)在文本到SQL任务中取得了显著突破,但其性能仍受多种因素限制。这些因素包括框架的不完整性、未能遵循指令以及模型幻觉问题。为解决这些问题,我们提出了OpenSearch-SQL,它将文本到SQL任务划分为四个主要模块:预处理、提取、生成和细化,以及基于一致性对齐机制的对齐模块。该架构通过对齐模块对齐智能体的输入和输出,减少了指令遵循失败和幻觉现象。此外,我们设计了一种名为SQL-Like的中间语言,并基于SQL-Like优化了结构化CoT。同时,我们开发了以自教查询-CoT-SQL为形式的动态少样本策略。这些方法显著提升了LLMs在文本到SQL任务中的性能。
在模型选择方面,我们直接应用基础LLMs,无需任何预训练,从而简化了任务链并增强了框架的可移植性。实验结果显示,OpenSearch-SQL在BIRD开发集上的执行准确率(EX)达到69.3%,在测试集上准确率为72.28%,基于奖励的有效性效率得分(R-VES)为69.36%,三个指标在论文提交时均排名第一。这些结果展示了所提方法在有效性和效率上的全面优势。
1 引言
发展历史:文本到SQL任务旨在从自然语言查询(NLQ)自动生成结构化查询语言(SQL)查询。该任务能够提升无需掌握SQL知识即可访问数据库的能力[17]。由于文本到SQL问题极其困难,这些系统几十年来一直是数据库界的圣杯[17]。早期的工作将查询答案定义为图结构[14, 15]或基于句法结构解析问题[16,38]。后续方法将文本到SQL任务视为神经机器翻译(NMT)问题[11, 37]。近期,随着大型语言模型的发展,研究人员通过诸如监督微调(SFT)[19,23,35]、思维链(CoT)[40]、智能体(Agents)[6,27]以及上下文学习(In-Context Learning)[7, 36]等方法,越来越多地完成了任务,所取得的结果大大超越了以往的方法。
局限性:尽管由大型语言模型驱动的方法显著提高了文本到SQL任务能力的上限,但我们之前的分析显示:
- L1问题。由于总体框架的模糊性,在方法论层面存在一些差距。这阻碍了这些方法发挥其潜力。例如,缺乏对数据库中存储信息的验证,
生成结果没有错误纠正,以及与少样本学习的缺失相关的问题。 - L2问题。由大型语言模型驱动的方法通常依赖于多智能体协作。然而,由于
大型语言模型的不稳定性以及缺乏保证智能体之间的一致性和耦合,后续执行的智能体可能不使用或仅部分使用先前运行智能体的输出。这导致累积的幻觉和性能损失。 - L3问题。指导大型语言模型的指令和步骤显著影响生成的SQL质量。在大型语言模型出现之前,为了解决此问题,开发了使用中间语言生成SQL的方法[17],但当前
关于指令构建的研究仍然不足。
人类启发:受到上述挑战的启发,我们对人类在完成文本到SQL任务的工作流程进行了详细分析:理解数据库结构并选择获取SQL所需的特定表格、列和值。这个过程通常需要执行几个简单的SQL查询,例如调查某一列值的特定形式或检索特定值在数据库中的存储方式。接下来,根据自然语言问题的具体情况,选择合适的聚合函数和SQL语法来构建SQL查询的主体,然后填充相关语句。最后,人类通常会根据查询结果逐步修改SQL,直到满足要求。对于更复杂的问题,人类往往会选择咨询或借鉴他人的公式化解决方案。基于这种方法,我们开发了OpenSearch-SQL方法,具体细节如下。
方法框架:为了解决L1问题,我们的研究定义了一个基于人类完成SQL构建过程的标准文本到SQL框架。这可以涵盖当前关于大型语言模型驱动的文本到SQL任务的研究。我们认为一个完整的文本到SQL任务框架应该包括四个步骤:预处理、提取、生成、精炼:
预处理。处理并构建所有对自然语言问题不敏感的辅助信息,包括数据库模式信息、嵌入式数据库、小样本库等。提取。提取并选择生成SQL所需的必要元素,包括子自然语言问题(NLQ)、少样本学习,以及数据库中的表格、列、值等。生成。基于SQL语法、少样本学习和准备的信息,将自然语言问题翻译成SQL。精炼。根据执行结果使用对齐策略和规则检查和优化SQL。然后,基于自一致性和投票结果选择最终的SQL。
对于L2问题,我们分析了多智能体协作驱动的文本到SQL任务中的常见幻觉,并为这些幻觉设计了一种基于一致性对齐的对齐智能体。通过确保特定智能体的功能、输入和输出的一致性,我们的目标是在模型生成过程中减少幻觉。这种对齐方法也可以扩展,以便对智能体的输出进行有针对性的调整。如图1所示,我们提出了OpenSearch-SQL框架,它由标准的文本到SQL框架与对齐结合而成。

此外,我们使用这个框架扩展了对由大型语言模型(LLMs)驱动的多智能体方法的研究。
对于L3问题,我们开发了一种自教少样本增强机制,用思维链(CoT)信息补充Query-SQL对,创建Query-CoT-SQL对。这种丰富的少样本学习方法可以提高大型语言模型的性能。另外,我们在CoT逻辑中设计了一种名为SQL-Like的中间语言,使大型语言模型能够首先生成SQL的主干,然后再生成具体的SQL细节,从而降低模型的复杂度。
在实际应用中,为特定查询任务准备大量定制化SQL训练数据并非易事。因此,考虑到现实世界的需求,我们的目标不仅是特定评估任务中取得良好成绩,还要确保所提出的方法具有强大的可迁移性。我们希望该方法能够轻松应用于各种数据库查询任务,而无需进行后期训练。这意味着在遇到任何问题时,我们只需修改代理和对齐方法,无需重新训练模型,从而以高质量满足用户需求。
基于此,我们在一个预训练的LLM模型上直接实现了我们的方法,没有采用任何监督微调(SFT)或强化学习(RL)。在实验方面,我们选择了被广泛认可的BIRD数据集[20]进行测试,该数据集记录了三个指标:开发集上的执行准确率(EX)、测试集上的EX以及测试集上的基于奖励的有效效率得分(R-VES)。我们的实验结果表明,我们在开发集上达到了69.3%的EX,在测试集上达到了72.28%的EX,以及69.3%的R-VES得分。在提交时,所有三个指标在排行榜上均名列第一,这表明我们的方法不仅生成了准确的SQL语句,而且在时间效率方面也有明显优势。我们希望这种基于一致性对齐的方法将激发未来研究探索更高效的一致性对齐策略。
总结来说,我们的贡献如下。
-
据我们所知,我们是首个提出基于一致性对齐的多智能体协作框架用于文本到SQL任务的。这种对齐机制显著减少了智能体之间信息传输的损失以及智能体生成结果中的幻觉。
-
我们引入了一种新颖的自教动态小样本方法和一种类SQL的CoT机制。这提高了大型语言模型在生成SQL时的性能和稳定性。
-
我们提出的方法OpenSearch-SQL没有使用微调也没有引入任何专门的数据集。在提交时,它在BIRD基准验证集上达到了69.3%的EX,在测试集上达到了72.28%的EX,R-VES为69.36%,均排名第一。
2 初步介绍
我们首先介绍本文依赖的两个重要模块:大型语言模型(LLMs)和文本到SQL任务。
2.1 大型语言模型
通过在大规模文本数据上进行无监督学习,预训练的大型语言模型已经获得了广泛的语言知识和语义信息。这种预训练通常采用自回归架构(如类GPT模型)或自编码结构(如类BERT模型)。大型语言模型可以通过微调在各种下游任务上实现出色的性能。自从大型语言模型深度学习时代的发展以来,与经典模型和方法相比,文本到SQL任务有了显著的进步,当前的最先进技术完全依赖于大型语言模型的性能。
2.2 文本到SQL
文本到SQL任务可以定义为:一个任务,它根据数据库信息S、特定模型F(·|0)和特定提示P,将自然语言问题Q转换为SQL查询Y。数据库中的信息被定义为S。因此,文本到SQL任务可以被定义为:

在当前的顶尖文本到SQL任务中,多智能体协作已成为提升性能的关键策略。常见模块包括值检索、模式链接、少样本驱动、CoT提示、SQL校正和自一致性。受这些方法的启发,本文首先系统地组织了这些模块。我们将现有方法分为四个阶段:预处理、提取、生成和精炼。预处理与特定的自然语言问题无关,旨在获取有关数据库结构的清晰信息,并准备其他辅助信息以帮助模型生成SQL;提取分析特定查询并从准备好的信息中过滤出高质量的辅助信息;生成组织提取的信息并生成候选SQL;精炼阶段进一步优化候选SQL以提高SQL的质量。
基于此基础,我们提出了OpenSearch-SQL,一个基于动态少样本和一致性对齐机制的文本到SQL框架。动态少样本的设计旨在加强每个模块在任务各个阶段的性能,而对齐模块用于对齐文本到SQL的不同阶段,从而减少大型语言模型在多智能体协作工作流程中产生的幻觉。OpenSearch-SQL的设计简化了复杂的指令系统,侧重于通过对齐提高多智能体协作的有效性。在接下来的部分中,我们将详细介绍OpenSearch-SQL框架的具体组成部分。
2.3 幻觉
幻觉[46]是深度学习中的一个常见问题,通常指的是模型生成的内容与真实情况或预期结果不一致的情况,即模型产生不准确或不合理的信息。文本幻觉可能表现为以下形式:
- 无关内容:模型生成的文本与输入或上下文无关,或者包含无关细节。
- 错误事实:生成的文本包含错误或不存在的事实,或者在现实世界中不准确的信息。
- 逻辑错误:生成的文本在逻辑上不一致或不合理。
在文本到SQL的过程中,这表现为:结果包含不存在的数据库信息、未能遵循提示中的指令,以及打字和语法错误。此外,为了便于处理,在文本到SQL任务中,我们还将包括由于非零温度下的随机性导致的结果偏差,以及由于微小提示变化导致的错误。因为幻觉的本质是训练过程与模型实际使用场景之间的差异。因此,对于幻觉问题,常见的处理方法包括:专门针对幻觉问题进行训练、使用自一致性机制减少随机性,以及后处理。由于本文聚焦于架构层面的优化,我们的工作旨在通过上述两种方法减少幻觉现象。
3 方法论
在本节中,我们将详细介绍OpenSearch-SQL的具体细节。在概述整个过程之前,我们将对“对齐”和动态少样本的核心概念进行更深入的描述。为了确保解释的流畅性,我们将每个阶段与其相应的“对齐”相结合,并按照它们在OpenSearch-SQL框架内操作的顺序进行描述。
3.1 对齐
大型语言模型(LLM)的幻觉[46]是一个影响LLM可用性的关键问题,它也存在于文本到SQL的任务中。此外,多智能体协作产生的累积错误加剧了LLM中的幻觉问题。例如,如果负责提取功能的智能体以某种方式从数据库中选择列,并因模型幻觉生成错误的列名,这个错误将在后续生成中持续存在,因为它缺乏对正确数据库结构的了解。因此,前一个智能体产生的幻觉会被继承下来,使得幻觉难以在多智能体LLM工作流中自发消失;总的幻觉量几乎是单调非递减的。
基于这一现象,我们将“对齐代理”定义为:

在文本到SQL任务中,常见的幻觉现象主要指指令遵循失败和输出结果的不稳定性。具体表现为:生成不存在的列、更改数据库列名、语法错误、数据库值与列不匹配,以及未能遵循提示中设定的规则。为了解决这些问题,我们提出了一种一致性对齐方法:在每个代理完成其输出后,使用一个对齐代理来对齐当前代理的输出与上游代理的输出,确保各个代理的功能实现逻辑一致性,并将对齐后的结果传递给下游代理。这种机制在某种程度上类似于残差连接[13],有效地扩展了多个代理之间的协作链条,同时最小化引入幻觉的可能性。每个对齐的细节将在下面的代理介绍中详细说明。
3.2 自学小样本
小样本是辅助大型语言模型(LLM)进行生成的重要方法。MCS-SQL[18]、DAIL-SQL[7]研究了问题表征在文本到SQL任务中的关键作用,并提出使用问题相似性来选择合适的小样本以驱动LLM生成SQL,取得了显著成果。
受此启发,我们尝试使用动态小样本以提高代理在文本到SQL任务中的效率。此外,我们还考虑了如何通过从样本中提取更多信息来更好地利用小样本。因此,在OpenSearch-SQL中,我们首先使用掩码问题相似性(MQs)[10]来选择相似的查询。然后,我们通过自学升级了Query-SQL格式的小样本。
对于列表1中显示的Query-SQL对,我们使用LLM补充CoT信息,以将自然语言问题(NLQ)转换为SQL。

如列表2所示,这形成了包含逻辑信息的Query-CoT-SQL对。

与简单的查询-SQL对相比,这些自学的小样本(即Query-CoT-SQL)提供了更丰富的信息。
然后,对于改进的纠错,我们为各种错误类型准备了不同的小样本,使LLM能够更清晰地理解在改进过程中根据不同错误如何纠正SQL。小样本的格式如列表3所示,原始SQL中的具体错误和纠正建议对应于错误类型。

3.3 预处理
在预处理阶段,我们根据数据库的真实结构构建了数据库。此外,为确保由大型语言模型生成的SQL语句与数据库的实际状态一致,我们对数据库内的值进行了索引。这使得SQL能够避免可能因小字符差异而产生的错误。值得注意的是,我们仅对字符串类型的数据进行索引,以节省构建检索数据库所需的空间。
此外,动态少样本的构建也已完成。这包括添加CoT信息和针对不同错误类型设计的校正少样本示例。
总体而言,在预处理阶段,输入是数据库和训练集的信息。输出是向量数据库、为Query-CoT-SQL形式的少样本,以及数据库模式。该过程自动化,无需人工干预,完全由Agent驱动。
3.4 提取
提取的目标是基于特定的自然语言问题(NLQ)准备必要的信息,包括模式链接、存储的数据库值、少样本示例以及任何必需的指令。这部分与特定的数据库查询语言解耦,仅与数据存储格式和解决问题所需的辅助信息相关。例如,C3-SQL[6]

最低0.47元/天 解锁文章
&spm=1001.2101.3001.5002&articleId=147998219&d=1&t=3&u=2118e2d929314171bd308a22581d9e38)
427

被折叠的 条评论
为什么被折叠?



