Text-to-SQL技术为操作关系型数据库提供了零代码接口,在金融分析领域备受关注。然而,目前尚无用于金融分析的实用Text-to-SQL基准数据集,并且现有的Text-to-SQL方法没有考虑到金融领域中数据库的特征,比如普遍存在的宽表。为了解决这些问题,作者收集了一个实用的Text-to-SQL基准数据集,并提出了一个基于大语言模型(LLMs)、适用于金融分析的无模型依赖Text-to-SQL框架。
其中,基准数据集BULL是从恒生电子股份有限公司的实际金融分析业务中收集而来,包含了基金、股票和宏观经济相关的数据库。此外,FinSQL是一个基于大语言模型的Text-to-SQL框架,从提示构建、高效参数微调以及输出校准等方面,对金融Text-to-SQL任务进行了系统处理。在BULL数据集上进行的大量实验结果表明,FinSQL能够以较低成本实现最先进的Text-to-SQL性能。
1.1 Text-to-SQL在金融领域的兴起
Text-to-SQL旨在将自然语言问题转换为可执行的SQL查询,这使得关系型数据库能够实现低代码操作,为不熟悉SQL的非专业数据库用户提供了便捷的数据访问途径。这在各个领域,尤其是金融分析领域受到了广泛关注,许多金融专业人士(如投资顾问)需要频繁查询相关数据库,但他们通常并不擅长SQL编程。因此,Text-to-SQL对于金融分析至关重要,并已引起了广泛关注。
然而,目前尚无用于金融分析的Text-to-SQL基准数据集,现有的Text-to-SQL方法也没有考虑到金融分析中所用数据库的独特特征。为了解决这些问题,本文基于恒生电子的智能投资辅助产品构建了一个实用的金融分析Text-to-SQL数据集BULL。BULL数据集包含三个数据库,分别对应基金、股票和宏观经济领域,有由恒生电子的金融专业人士、数据科学家和软件工程师标注的自然语言问题-SQL的查询对。而且,BULL数据集有中英文两个版本。

Text-to-SQL数据集之间的比较
与广泛使用的Text-to-SQL基准数据集(如Spider和BIRD)相比,BULL数据集中每个数据库的表更多,每张表的列也更多。此外,BULL数据集中的表名和列名通常使用缩写或模糊的表达方式。这些特点要求金融Text-to-SQL模型能够支持较长的输入上下文长度,并具备强大的上下文理解能力。幸运的是,基于大语言模型的Text-to-SQL方法能够满足这些要求,并且最近已经提出了几种相关方法。然而,现有的Text-to-SQL方法通常依赖OpenAI的API(GPT-3.5-turbo或GPT-4),这些API成本高昂且存在信息泄露风险。因此,这些方法无法应用于对信息隐私要求极高的金融应用场景。
1.2基于大语言模型的Text-to-SQL方法的局限性
为了避免信息泄露,一种可行的方法是采用开源大语言模型,并在私有领域对其进行训练。然而,这面临三个挑战:
1.模式链接困境和数据稀缺:因为金融数据库通常包含大量的列和表,很难在问题和模式项之间建立连接。此外,由于标注成本的限制,标注的问题-SQL对的数量和多样性有限。这阻碍了简洁多样的提示构建,进而影响了模型的性能。
2.资源消耗大的微调以及跨数据库泛化困难:在下游任务上对大语言模型进行微调需要多个GPU进行数天的计算,导致模型更新和迭代相关的高昂成本构成了巨大挑战。将模型迁移到新的数据库也会产生大量成本,这阻碍了跨数据库迁移。
3.输出不一致:由于大语言模型固有的随机性和解码器的采样策略,于是经常生成不一致的输出,导致语法错误和无效的SQL查询。
1.3提出FinSQL的动机
FinSQL框架概览
为了应对这些挑战,本文提出了一种基于大语言模型、无模型依赖的金融Text-to-SQL模型训练和推理框架FinSQL。它可用于基于任何开源大语言模型开发Text-to-SQL模型。
FinSQL由三个关键组件组成:提示构建、高效参数微调以及输出校准,分别对应上述挑战。
1.提示构建:包含并行模式链接方法和混合数据增强方法,有助于构建更简洁多样的提示,并从输入侧提升模型性能。
2.高效参数微调:采用低秩自适应(LoRA)技术,对不到1%的极少比例参数进行微调,以获取适用于不同业务场景的权重插件,并通过插件中心管理这些插件。
3.输出校准:通过对SQL进行后处理来提高生成的SQL的正确性。
本文主要关注基于大语言模型的Text-to-SQL系统。在本节中,首先给出Text-to-SQL的定义,然后介绍基于大语言模型的Text-to-SQL系统。
Text-to-SQL:给定一个自然语言查询
及其对应的数据库模式
,其中
分别表示多个表、列和外键关系,Text-to-SQL系统旨在生成与
对应的可执行SQL查询
。传统的Text-to-SQL方法通常采用仅编码器或编码-解码器模型。近年来,受益于仅解码器大语言模型的新兴能力,基于大语言模型的Text-to-SQL方法实现了最先进的性能。
基于大语言模型的Text-to-SQL系统:基于大语言模型的Text-to-SQL利用大语言模型
来生成SQL查询。它首先接收一个指令提示
,该提示是通过将问题
和数据库模式
组合到一个提示模板中生成的。随后,模型
估计SQL查询
的概率分布,并逐个生成token。
2.2模式链接
模式链接旨在将数据库模式的元数据与自然语言查询联系起来,是Text-to-SQL系统的一个基本组件。具体来说,给定一个自然语言查询
及其对应的数据库模式
,模式链接会提取与
相关的元数据子集。模式链接的结果表示为
,其中
。
模式链接可以通过减少冗余表和列带来的噪声,帮助减少大语言模型对自然语言查询的误解。因此,它可以有效地提高生成的SQL查询的质量。
早期的Text-to-SQL方法(如IRNet和IESQL)依赖基于规则或字符匹配的技术,在问题中的token与数据库模式中的元素之间进行精确或部分匹配。随后,它们识别查询与表名和列名之间的关系,然后利用这些关系生成与问题对应的SQL查询。然而,这些方法的泛化能力有限。当遇到同义词时,它们往往无法进行准确匹配。此外,这些方法无法捕捉自然语言与表结构之间的全面语义关系,以及模式元素之间的各种关系。为了表达这种结构关系,一些研究人员采用图神经网络(GNN)进行表示,如LGESQL、RATSQL等,取得了不错的效果。然而,这些方法需要使用特定的GNN模块作为整体模型的一部分,很难适用于流行的开源大模型,如LLaMA、百川等。
为了提高与大语言模型的兼容性,一些方法将模式链接分离为一个单独的模块。比如RESDSQL利用Roberta模型作为基础模型,构建一个交叉编码器模型来召回和排序模式元素。C3和DIN-SQL为GPT模型提供精心设计的上下文学习指令,以检索相关的模式项。这些方法在一些流行的基准测试中都取得了出色的性能。
2.3思维链
思维链(CoT)是一种使大语言模型能够像人类一样思考以解决复杂推理任务的方法。在思维链设置中,大语言模型首先输出推理过程,然后提供最终答案,这在处理推理任务方面有显著改进。此外,思维链技术指示大语言模型首先生成推理过程,然后产生最终结果,这一过程提高了模型输出的可解释性。
2.4高效参数微调
高效参数微调(PEFT)方法仅对预训练大语言模型的一小部分参数进行微调,就能实现与全参数微调相当的性能,使大语言模型能够以较少的计算资源适应下游任务。它们只需要微调不到1%的模型权重,就能使其适应下游任务。这个过程可以在单个GPU上短时间内完成。
2.5大语言模型的成本
不同的大模型具有不同的上下文长度,通常以token数量来衡量。比如GPT-4提供8k和32k token的上下文长度。大模型一次能够处理的信息量是有限的。实验中可以通过使用它们各自的付费API接口来访问ChatGPT和GPT-4模型。这些模型的定价如下:

GPT模型的API定价
2.6大语言模型的幻觉现象
大语言模型中的幻觉现象是指大语言模型在生成事实性内容时,有时会产生看似正确但与实际事实相矛盾的信息。这种现象的本质在于大语言模型无法对知识进行精确控制。即使是像GPT-4这样最强大的大语言模型,也可能会遇到这个问题。
2.7大语言模型的不确定性
由于大语言模型固有的随机性,其输出具有不确定性和不稳定性。使用相同的输入提示多次执行大语言模型,会生成多个结果。这个问题可能导致一次生成正确的SQL查询,而下一次却生成错误的查询。因此,提高大语言模型生成的输出内容的一致性,对于Text-to-SQL任务具有重要意义。
正如前文所说,基于大语言模型的金融分析Text-to-SQL方法通常会遇到三个挑战:模式链接困境和数据稀缺;资源消耗大的微调以及跨数据库泛化困难;输出不一致。
为了应对这些挑战,我们提出了一个用于金融数据的Text-to-SQL框架FinSQL,它由三个关键组件组成,分别对应解决上述挑战:提示构建、高效参数微调以及输出校准。
FinSQL框架概览
(1)提示构建:该模块专注于构建清晰的提示并丰富训练数据,这对训练和推理过程都有益。它基于大语言模型和精心设计的规则对原始数据进行增强,生成一个新的数据集,涵盖三种与SQL相关的指令提示:思维链数据、同义问题数据和框架数据。增强后的数据随后用于微调大语言模型,与原始数据相比,这可以显著提高模型在Text-to-SQL任务中的推理和综合能力。此外,该模块训练了一个交叉编码器模型,用于检索与问题对应的相关模式元素。它可以帮助消除无关元素,生成更简洁清晰的提示,从而显著提高模型性能。
(2)高效参数微调:在获得增强数据后,该模块使用高效参数微调方法(如LoRA),在单个GPU上短时间内使大语言模型适应下游的Text-to-SQL任务。训练得到的LoRA权重随后添加到LoRA插件中心。在低资源数据库场景中,首先通过将基础模型的原始参数与插件中心之前的LoRA权重合并,来更新基础模型的原始参数。然后,在此基础上应用额外的LoRA模块进行进一步微调。这种数据库领域迁移方法展示了在有限数据情况下实现强大性能的能力。一个数据库对应一个LoRA模块,该模块存储在LoRA插件中心。在处理不同的数据库场景时,可以轻松地将相关的LoRA模块插入基础模型以生成SQL查询。
(3)输出校准:由于大语言模型固有的随机性,大语言模型生成的SQL查询往往具有不确定性,导致无效的SQL查询。该模块引入了一种专门针对SQL的后处理增强算法,使SQL查询更加一致。首先FinSQL纠正SQL中的拼写错误,随后解析SQL查询以提取关键字和值,进而挖掘出最为一致的SQL。最后,它对SQL查询进行表和列的对齐操作。
4.1数据库来源

BULL数据集详细信息
BULL数据集的三个数据库是基于恒生电子的智能投资辅助产品构建的,数据分别与中国A股、中国公募基金和中国宏观经济相关。这三个数据库分别包含31、28和19张表,数据截至2022年4月。大多数表有十多列。此外,BULL数据集中的表名和列名常使用缩写或模糊表达,如示例所示:

BULL数据集的一个示例
4.2标注
生成用于训练Text-to-SQL模型的问题-SQL对需要专业的金融知识。为构建BULL数据集的问题-SQL对,恒生电子的多位金融专家、数据科学家和软件工程师共同工作了一周多时间。金融专家和数据科学家先编写了4966个不同的中文问题,然后软件工程师为这些问题编写相应的SQL查询。随后,由具备数据库和金融知识的实习生对这些问题-SQL对的正确性进行验证。此外,他们将BULL数据集扩展成了英文版本。
提示对基于大语言模型的Text-to-SQL性能有显著影响。为构建合适的提示,本文提出了混合数据增强策略和并行模式链接方法。混合数据增强策略结合大语言模型和精心设计的规则来丰富训练数据,可以提高训练数据的质量和数量,从而提升后续训练模型的性能。此外,并行模式链接方法采用交叉编码器模型并行检索与问题相关的多个模式元素,有效减少输入数据中的无关内容和噪声,最终帮助模型生成更高质量的SQL查询。
5.1混合数据增强
在金融应用中,数据标注需要专业知识和大量人工工作,这导致专业标注人员短缺和标注数据受限,造成数据不足和缺乏多样性。增强数据集的多样性很有必要,因为多样的数据集能反映更广泛的现实场景和情况。然而,现有的Text-to-SQL增强方法主要集中在增强SQL查询和问题上,没有考虑SQL生成背后的推理过程。
本文提出一种混合数据增强方法,包含三种数据形式:思维链、同义问题和SQL框架,分别对应推理能力、有意义表达和SQL结构。
5.1.1思维链增强
思维链提示技术可以有效提高大语言模型的推理能力。但是现有的方法无法应用于Text-to-SQL,因为大语言模型可能生成错误的SQL查询,这会导致错误的思维链推理内容。为解决这个问题,作者设计了一个专门的提示模板,可有效指导大语言模型生成正确的思维链内容,并使用基于执行的自检查模块过滤掉错误内容:

基于自检查的思维链生成过程
对于给定的数据,首先将SQL查询放入相应数据库中执行。如果执行结果为空,就跳过该数据;否则,就将其与一个单样本示例结合创建提示,然后用该提示指导大语言模型生成中间推理内容。最后,同时在数据库中执行生成的SQL和真实的SQL,如果执行结果匹配,则认为生成的数据是准确的,否则丢弃该数据。
这其中,首先过滤掉执行结果为空的SQL,这一步非常关键,因为当黄金标准的SQL和生成的SQL执行结果都为空时,很难确保这两个SQL查询之间的语义一致性。同时,作者还设计了执行自检查步骤,排除与黄金标准SQL查询执行结果不同的生成SQL查询。实验展示了有无自检查生成思维链的成功率对比:

有无自检查生成思维链的成功率对比

大语言模型的思维链提示模板
上图可以看到一个用于指导大语言模型的提示模板。在这个提示模板中,首先给大语言模型一个生成思维链内容的示例,指定所需的生成风格,然后提供黄金标准的SQL查询,要求大语言模型生成与之相关的思维链内容。由于只需要思维链内容而不是问题对应的SQL,于是可以通过这种方式获得良好的思维链内容。
5.1.2同义问题增强

同义问题增强概述
为丰富问题风格的多样性,作者利用ChatGPT自动生成同义问题,如图所示,首先人为手动编写几个问题及其同义句作为少样本示例,随后将给定的问题与这些示例连接起来形成一个综合提示,该提示指导ChatGPT生成同义问题。
5.1.3基于规则的增强
除了从自然语言问题的角度提高数据质量,还可以从SQL查询的框架或者结构角度增强数据。SQL框架包含所有SQL关键字,并为缺失的标识符(如表名和列名)设置占位符:

SQL框架示例
作者设计了从SQL查询中提取关键字以获得相应框架的规则,随后创建框架增强数据集。在训练阶段,该数据集指导模型先生成SQL框架,然后生成最终的SQL查询。

SQL框架增强
5.2并行模式链接
模式链接旨在建立问题与模式项之间的连接,对提高Text-to-SQL的性能很重要。然而,现有的最先进的模式链接方法不能直接应用于现实的金融场景。

使用并行交叉编码器进行模式链接
作者提出了一种并行交叉编码器模型,用于快速准确地检索模式项。此处不是将模式项串行化为单个序列,而是将表组织成一个批次,每个元素代表一个表及其相应的列描述。这个批次的大小与表的数量相同,然后被输入到修改后的交叉编码器模型中,使其能够并行预测每个表及其相关列的概率值。这种并行交叉编码器模型能够从数百个模式项中快速准确地检索出相关的表和列。
全参数微调通过更新模型的所有内部参数来处理下游任务,但面临以下问题:
计算成本高:在多个GPU上对大语言模型进行微调通常需要大量的训练时间。
存储成本高:在下游任务上对大语言模型进行微调后,需要保存全新的模型参数,导致模型权重文件达到几十GB。
缺乏跨数据库泛化能力:全参数微调通常是特定于某个数据库的,这使得微调后的模型难以泛化到其他数据库。
为了解决这些问题,本文提出了一种基于LoRA的高效参数微调框架,支持低资源微调以及跨数据库泛化。该框架由基于LoRA的高效参数微调(PEFT)方法、LoRA插件中心和权重合并方法组成,分别实现了低计算成本、低存储成本和跨数据库泛化。
6.1基于LoRA的多任务高效参数微调
在本节中,作者提出一种基于低秩自适应(LoRA)的多任务高效参数微调方法。LoRA仅调整额外的低秩分解矩阵的权重,就能实现与全参数微调相当的性能,可以显著减少微调大模型所需的计算资源。
作者对三个与SQL相关的指令任务应用LoRA,即思维链生成、同义问题驱动的SQL生成和框架感知生成。思维链生成任务要求大语言模型先输出推理过程,然后输出最终的SQL查询,这有助于增强大语言模型的推理能力;同义问题驱动的SQL生成用ChatGPT生成的同义问题替换原始问题,直接指导大语言模型生成SQL查询,使大语言模型能够学习有意义的表达;框架感知生成要求大语言模型先生成SQL框架,然后输出SQL查询,使大语言模型对SQL结构有更全面的理解。在这些数据集中,每个表和列都连接了它们的描述,以确保对数据库结构的全面理解。将这些数据集均匀混合在一起,随后使用LoRA方法对大语言模型进行微调。

基于LoRA的多任务高效参数微调方法的概述
如图给出了所提出的基于LoRA的多任务高效参数微调方法的概述。首先使用基于数据增强的多个任务的数据集,并选择一个开源大语言模型作为基础模型。之后冻结这个基础模型的权重,随后,插入一个LoRA模块,并使用多任务数据集不断更新LoRA模块的参数。最后,训练好的LoRA模块被保存到LoRA插件中心。
6.2 LoRA插件中心
通过上个章节的描述,可以高效地获得LoRA模块。之后,将这些LoRA模块存储在一起,并构建了一个LoRA模块中心,由于LoRA模块独立于基础模型,可以看作是基础模型的插件,因此我们将其称为LoRA插件中心。此外,LoRA插件中心可以包括在不同基础模型(如LLaMA2)上训练的LoRA插件。
6.3基于权重合并的少样本LoRA
在实际应用中,随着业务的增长,新数据库会迅速构建。对于一个新数据库,训练数据的数量是有限的,因此有必要进行少样本微调以克服这种低资源场景。本文提出一种基于权重合并的少样本LoRA微调方法,以实现高效的跨数据库泛化,并处理新数据库的Text-to-SQL任务。
在本文中,权重合并是在存储于LoRA插件中心的LoRA插件上进行的。具体来说,首先oRA插件中心取出几个相关的LoRA插件,通过加权求和的方式将它们合并成一个单独的LoRA插件。之后,用合并后的LoRA插件初始化基础模型。随后,再插入一个额外的LoRA插件,并在此基础上进一步微调。这种方法使大语言模型能够利用在不同领域训练的LoRA插件中编码的知识和能力,提高它们在目标领域数据库上的性能。

基于权重合并的少样本LoRA微调方法的过程
上图展示了基于权重合并的少样本LoRA微调方法的过程。它首先从插件中心提取LoRA模块并进行合并,然后使用之前生成的多任务数据集对LoRA模型进行微调。微调后,训练好的LoRA模块被保存到插件中心。
由于大语言模型的幻觉现象和解码策略,基于大语言模型的Text-to-SQL模型经常生成无效和语法错误的SQL查询。例如,生成的SQL查询中可能存在不存在的表和列名,以及表和列之间的错误关联关系。
为了校准大语言模型的输出并提高其正确性,本文提出了一种高效的输出校准算法。所提出的方法无需执行SQL查询即可校准输出,解决了现有最先进方法中存在的执行依赖问题:

输出校准算法
其中,算法的输入包括大语言模型并行生成的n个候选SQL查询列表,以及这些SQL查询对应的模式信息。算法的目标是识别出最一致和有效的SQL查询。由于大语言模型固有的随机性,它们生成的SQL查询经常包含语法错误,这会阻碍SQL解析过程。首先,作者为每个SQL查询纠正一些拼写错误,当遇到无效列时,采用模糊匹配方法,用模式中字符最相似的列替换它。这些问题会影响后续SQL关键字及其值的提取。随后,作者解析修改后的SQL并提取关键字及其相应的值,通过评估SQL关键字和值的一致性来确定两个SQL查询是否等价。使用这个标准,将等价的SQL查询聚类在一起,然后从最大的聚类中选择一个SQL查询作为结果。这种方法显著提高了SQL查询的一致性。最后,作者验证SQL查询中表和列的关联,并对表和相应的列进行对齐。
文中的输出校准算法依赖于SQL的固有结构和语法规则,在校准SQL查询时有效地减轻了大语言模型中幻觉和不确定性的影响。通过对SQL查询的这种校准,该方法显著提高了最终SQL查询的一致性和实用性。
8.1实验设置
数据集:本文实验在从实际企业场景收集的金融Text-to-SQL数据集BULL上进行实验。该数据集包含三个数据库,涵盖基金、股票和宏观经济这三个常见金融领域。平均而言,每个数据库包含26个表和390列。它包括4966个问题-SQL查询对。BULL分为中英文两个版本(BULL-en和BULL-cn)。
评估指标:实验中使用准确率(此处为EX)作为评估指标,通过Test Suite Accuracy进行衡量。EX指在数据库中执行预测的SQL查询和黄金标准的SQL查询,并判断两者的执行结果是否相同。
实验实现:实验采用仅有解码器架构的模型LLaMA2和百川2,以及编码器-解码器架构的模型T5和mT5作为基础大语言模型。同时分别使用基于Roberta-large和Chinese-Bert-large的交叉编码器模型来处理BULL-en和BULL-cn任务。所有微调实验均使用LoRA在单个A40GPU上进行。
基线模型:实验在金融数据集上进行实验,并与以下基线模型进行比较:DAIL-SQL,DIN-SQL,C3,RESDSQL,Token Preprocessing,Picard。
8.2整体性能

在BULL-en的整体结果

在BULL-cn的整体结果
从上述两个实验结果可以看到,FinSQL方法在BULL-en和BULL-cn上基本上优于所有其他方法。在BULL-en上,FinSQL与LLaMA2结合时的EX为82.2%,与T5结合时为81.5%。在BULL-cn上,FinSQL与百川2结合时的EX为76.6%,与mT5结合时为70.4%。
对于使用GPT-4和ChatGPT的方法,实验根据先前表中的单价以及输入和输出tokens的数量计算每条SQL的成本。实验表明,基于GPT的方法结果各异的EX均低于FinSQL两个方法。除了产生额外成本外,基于GPT的方法从不到100个数据条目中推断结果需要几个小时。相比之下,FinSQL更适合适应现实世界的数据场景,因此具有很高的实用价值和成本效益。
基于T5的方法比基于GPT的方法实现了更高的准确率,它们都能够实现超过60%的执行准确率。值得注意的是,Picard展示了相当高的准确率,是FinSQL之后表现最好的方法。对于应用于mT5的方法,FinSQL的表现比Picard低2.3%。尽管FinSQL在BULL-cn中仍存在不足,但它为金融分析中Text-to-SQL的挑战和复杂性提供了有价值的见解,为我们未来的研究方向提供了指导。
8.3模式链式的效果

模式链接实验结果
为了评估FinSQL模式链接方法的有效性,我们采用受试者工作特征曲线下面积(AUC)作为评估指标。实验结果显示BULL-en和BULL-cn中表的AUC和列的AUC均大于0.99。这些指标验证了FinSQL方法的稳健性,表明在两个数据集中都能精确识别相关的模式项。

并行交叉编码器实验结果
此外,实验对并行交叉编码器模型进行了实验,该模型的有效性通过召回率(R@k)指标来衡量。实验表明,在BULL-en中,该模型在表召回率方面表现出色,R@3、R@5和R@10分别达到99.1%、99.5%和99.8%。在BULL-cn中,它的表现更为优异。在更复杂的列召回任务中,该模型在BULL-en和BULL-cn中的召回率都高达96%以上。这些结果突出了该模型在处理多语言数据集时具有卓越的精度和召回率,这对于Text-to-SQL任务的后续阶段至关重要。
8.4数据增强的效果

数据增强实验结果
在本节中仅关注数据增强的效果,未进行输出校准。实验结果显示,排除每种特定的增强方法都会导致性能下降。当省略思维链数据时,中文的执行准确率降低1.9%,英文降低2.4%,证实了这种特定数据增强的重要性。同样,缺少同义数据导致中文下降1.5%,英文下降2.7%,而去除框架数据导致中文下降4.3%,英文下降2.6%。当排除所有形式的增强数据时,影响最为显著,中文下降4.7%,英文下降3.8%。这些结果共同验证了混合数据增强方法对于保持FinSQL稳健性的必要性。
8.5基于权重合并的少样本LoRA的效果

基于权重合并的少样本LoRA的实验结果
本实验中讨论基于权重合并的少样本LoRA在低样本场景中的作用。从图中可以看出,无论LLaMA2、百川2、T5还是mT5,使用权重合并的LoRA Merge的性能通常都高于单独使用LoRA,并且在较低的k-shot值下性能差异更大。随着少样本实例数量的增加,差异逐渐减小。当样本数量超过200时,训练后的LoRA有时表现优于合并后的LoRA。然而,实验结果仍然可以观察到合并LoRA权重的显著优势。当训练数据稀缺时,LoRA Merge比从头开始训练的LoRA模块表现更出色,说明基于权重合并的少样本LoRA这种方法特别适用于低样本场景。
8.6输出校准的效果

输出校准实验结果
实验研究输出校准技术对模型性能的影响。输出校准包括自一致性和对齐两种方法。结果以中文和英文的执行准确率进行量化。研究结果表明,排除输出校准会导致中文的EX准确率降低1.3%,英文降低1.5%。缺少自一致性会导致中文下降0.2%,英文下降0.3%。最后,去掉对齐会导致中文的EX准确率下降1.1%,英文下降1.2%。这进一步证实了在两种语言环境下,观察到的EX下降确实与排除输出校准有关。
9.1 Text-to-SQL数据集
高质量的数据集在Text-to-SQL系统的开发和评估中发挥着重要作用。早期的Text-to-SQL数据集,在查询数量方面存在局限,主要集中在单数据库场景,且SQL查询相对简单。另一方面,WikiSQL和Spider提供了超过10,000个SQL查询,支持跨数据库迁移场景,并引入了复杂的多表查询。尽管取得了这些进展,但这些数据集与现实场景之间仍存在相当大的差距。现实应用中使用的数据库通常更大,可能会提供外部知识来帮助用户理解模式信息。KaggleDBQA引入了外部知识来解释列的含义。BIRD提供了更多的SQL查询样本和更大的数据库,并在问题和数据库内容之间融入了外部知识,使Text-to-SQL数据集更适合现实情况。

数据集对比
然而,这些数据集仍然无法完全满足行业的需求,行业需求往往更加复杂和具有挑战性。在实际企业场景中,数据库中的表和列的数量远远超过现有的开源数据集。这给现有的Text-to-SQL方法在整合模式信息方面带来了挑战,使其难以在这种场景中有效工作。
9.2 Text-to-SQL模型
近年来,Text-to-SQL模型取得了显著进展。早期基于规则的方法依赖手工制作的模板来生成SQL,虽然有一定效果,但严重依赖手动定义的规则。它们对其他场景的适用性有限,缺乏可扩展性,并且泛化能力较差。为了克服这些限制,研究人员开发了基于序列到序列(Seq2Seq)架构的Text-to-SQL方法,如IRNet、RAT-SQL、LGESQL和S2SQL等。
随着大语言模型的发展,像T5、mT5、LLaMA等预训练模型展现出更强的语言理解和泛化能力。基于对这些模型进行微调的方法在Text-to-SQL任务中取得了更好的效果,如Graphix,Picard,RESDSQL等一些基于微调的最优方法。
最近,大语言模型展现出卓越的能力,给人留下了深刻印象,如C3、DIN-SQL和DAIL-SQL。然而,这些方法需要调用OpenAI API,成本高昂且存在隐私风险。
本文作者提出了BULL,一个源自现实金融场景的Text-to-SQL数据集。基于该数据集,文章提出了FinSQL框架,FinSQL通过混合数据增强和并行交叉编码器构建简洁多样的提示,利用LoRA合并方法提高跨数据库模型迁移的性能,并提出输出校准方法来提高大语言模型生成的SQL查询质量。在BULL数据集上的大量实验证明了FinSQL在金融分析中的有效性。BULL和FinSQL一起有望开创金融Text-to-SQL研究的新趋势。
论文解读联系人:
刘思源
13691032906(微信同号)
liusiyuan@caict.ac.cn









