当金融遇上 AI 魔法:FinSQL 点燃数据智能新引擎 精华

发布于 2024-12-20 10:56
浏览
0收藏

 一、背景  

1.1 研究背景

在当今数字化时代,金融领域的数据量呈爆炸式增长,对数据的高效分析和利用成为金融机构获取竞争优势的关键。传统的数据库操作依赖于专业的 SQL 编程技能,然而,金融专业人士虽精通金融业务,但在 SQL 编程方面往往技能有限。这一矛盾促使了 Text-to-SQL 技术的兴起,其旨在将自然语言问题转化为可执行的 SQL 查询,为金融分析提供了便捷的数据访问途径,无需编写复杂的 SQL 代码即可获取所需信息,大大提高了工作效率,减少了对专业数据库人员的依赖,使金融专业人士能够更专注于数据分析和决策制定。

然而,尽管 Text-to-SQL 技术在金融领域具有巨大潜力,但仍面临诸多挑战。一方面,缺乏专门针对金融分析的实用基准数据集,现有的数据集无法准确反映金融数据库的复杂特性,如广泛存在的宽表结构等。另一方面,现有的 Text-to-SQL 方法未能充分考虑金融应用中数据库的独特特征,导致模型在处理金融数据时性能受限。

1.2 研究成果


当金融遇上 AI 魔法:FinSQL 点燃数据智能新引擎-AI.x社区


为应对这些挑战,本文作者团队开展了深入研究,取得了一系列创新性成果。

首先,构建了一个名为 BULL 的实用 Text-to-SQL 基准数据集。该数据集源自恒生电子的智能投资助手产品,涵盖基金、股票和宏观经济三个领域的数据库,包含丰富的自然语言问题与 SQL 查询对,且提供中英文版本,为金融 Text-to-SQL 研究提供了宝贵的数据资源,填补了金融领域专用数据集的空白。

其次,提出了一种基于模型无关的大语言模型的 Text-to-SQL 框架 FinSQL 。

该框架从提示构建、参数高效微调及输出校准三个关键方面,为金融 Text-to-SQL 提供了系统性解决方案,有效提升了模型性能,增强了模型在实际金融应用中的适用性和准确性。

通过在 BULL 数据集上的广泛实验验证, FinSQL  框架在金融 Text-to-SQL 任务中展现出卓越性能,达到了当前最优水平,为金融数据处理和分析带来了新的可能,推动了金融领域智能化进程。

 二、现状  

2.1  Text-to-SQL 数据集

高质量数据集是 Text-to-SQL 系统发展和评估的基石。早期的数据集如 GeoQuery 和 Scholar,在查询数量和场景复杂度上存在局限性,主要聚焦于单数据库场景且 SQL 查询较为简单。WikiSQL 和 Spider 等数据集的出现,在查询数量和跨数据库迁移能力上有所提升,引入了复杂多表查询,但与实际应用场景仍有较大差距。

实际应用中的数据库往往规模更大,且可能涉及外部知识以辅助用户理解模式信息。KaggleDBQA 和 BIRD 等数据集在这方面进行了改进,通过引入外部知识和增加查询样本数量,使数据集更贴近实际情况,但仍无法完全满足行业复杂多变的需求。特别是在金融领域,数据库结构复杂,现有数据集在表和列数量上远不及实际场景,给 Text-to-SQL 方法在模式信息融合和处理复杂查询时带来巨大挑战。

2.2  Text-to-SQL 模型

早期基于规则的 Text-to-SQL 模型,依赖手工编写的模板生成 SQL 查询,这类模型对特定场景高度依赖,缺乏通用性和扩展性,难以适应复杂多变的自然语言表达。

随着技术发展,基于 Seq2Seq 架构的模型如 IRNet、RAT-SQL 和  LGESQL 等应运而生。这些模型利用编码器表示问题和模式,通过解码器生成 SQL 查询,部分模型还引入图神经网络来捕捉问题与模式之间的对齐关系,提高了模型的准确性和泛化能力。

近年来,预训练大语言模型如 T5、mT5 和 LLaMA 等展现出强大的语言理解和生成能力,基于这些模型的微调方法在 Text-to-SQL 任务中取得了较好效果。例如,Graphix 通过使T5具备多跳推理能力提升性能,Picard 利用约束解码器提高生成 SQL 的质量,RESDSQL 采用两阶段方法先检索相关模式元素再生成SQL查询,成为 Spider 排行榜上基于微调的当前最优方法。

然而,当前领先的基于 GPT 模型的方法虽效果显著,但依赖 OpenAI API,成本高昂且存在信息泄露风险,同时在不同场景下需要重新设计指令模板,限制了其在实际金融场景中的应用。

 三、技术  

3.1 问题定义

本文聚焦于基于大语言模型(LLM)的 Text-to-SQL 系统。Text-to-SQL 的任务是,给定自然语言查询 Q 及其对应的数据库模式 S(包括表 T、列 C 和外键关系 R),系统旨在生成与 Q 对应的可执行 SQL 查询 y。传统方法多采用编码器或编码器-解码器模型,而基于 LLM 的方法则利用 LLM 强大的语言理解和生成能力直接生成 SQL 查询。

具体而言,基于 LLM 的 Text-to-SQL 系统通过将问题 Q 和数据库模式 S 组合成提示模板来生成指令提示 P(Q, S),模型M 基于此提示估计 SQL 查询 y 的概率分布,并逐个生成查询中的标记(token),生成过程遵循特定公式,通过对每个标记的条件概率进行连乘来确定最终的 SQL 查询。

3.2 关键技术与概念

3.2.1 模式链接

模式链接是 Text-to-SQL 系统的关键组件,其目的是将数据库模式的元数据与自然语言查询进行关联,从而提取与查询相关的模式元素子集,减少无关信息对模型的干扰,提高生成 SQL 查询的质量。

早期方法主要采用基于规则或字符匹配技术进行模式链接,但在处理语义相似但表达不同的词汇时存在局限性,且无法有效捕捉自然语言与表结构之间的复杂语义关系。近年来,部分研究采用图神经网络(GNN)来表示模式结构,取得了一定成果,但这些方法与常见的开源大模型兼容性较差。为提高与 LLM 的兼容性,一些方法将模式链接作为独立模块,利用Cross-Encoder 模型或精心设计的上下文学习指令来检索相关模式元素,在主流基准测试中表现出色。

3.2.2 思维链

思维链是一种引导大语言模型进行复杂推理任务的方法,通过让模型先输出推理过程再给出最终答案,显著提升了模型在处理推理任务时的性能。在算术推理基准测试 GSM8K 中,思维链技术使谷歌的大型语言模型 Palm-540B 的准确率大幅提升,从 17.9% 提高到 56.5%。这种技术不仅提高了答案的准确性,还增强了模型输出的可解释性,使模型的推理过程更加透明。

3.2.3 参数高效微调

参数高效微调方法(如Adapter、Prompt Tuning、Prefix-Tuning 和 LoRA 等)通过仅调整预训练大语言模型的少量参数(通常小于1%),使其能够快速适应下游任务,有效解决了传统全参数微调方法计算资源消耗大、存储成本高和跨数据库泛化能力弱的问题。这些方法在保持模型性能的同时,显著降低了计算成本和时间,为模型在实际应用中的快速部署和迭代提供了可能。

3.2.4 大语言模型的成本与局限性

不同的大语言模型在上下文长度和使用成本上存在差异。例如,GPT-4 提供了 8k 和 32k 两种上下文长度选项,但使用其API 需要支付相应费用,且模型输出存在一定的随机性和不稳定性,可能导致生成的 SQL 查询在语法和语义上存在错误或不一致。此外,大语言模型还存在幻觉现象,即生成看似合理但与事实不符的内容,这在金融领域的应用中可能带来严重风险。

 四、FinSQL 框架  

4.1 整体框架概述

针对金融分析领域中基于大语言模型(LLM)的 Text-to-SQL 方法面临的挑战,作者提出了 FinSQL 框架。该框架由三个关键组件构成,分别是 提示构建、参数高效微调及输出校准,每个组件均针对特定挑战进行设计,共同实现了金融文本到SQL 的高效转换。

4.2 提示构建

4.2.1 混合数据增强

当金融遇上 AI 魔法:FinSQL 点燃数据智能新引擎-AI.x社区

图 4:基于自我检查的思维链生成概述


在金融应用中,数据标注的专业性和高成本导致训练数据的短缺和多样性不足。为解决这一问题,作者提出了一种混合数据增强方法,结合了思维链(CoT)数据、同义问题数据和 SQL 骨架数据三种形式,分别从推理能力、表达多样性和SQL结构理解三个方面增强数据质量。

当金融遇上 AI 魔法:FinSQL 点燃数据智能新引擎-AI.x社区

表 3:在中文数据集中使用不同方法生成思维链(CoT)的成功率。


当金融遇上 AI 魔法:FinSQL 点燃数据智能新引擎-AI.x社区

图 5:思维链(Chain of Thought,CoT)提示模板。红色的字是输入变量。在这里,我们需要提供问题、模式信息、正确的 SQL 语句以及一个示例来填充这个模板。


当金融遇上 AI 魔法:FinSQL 点燃数据智能新引擎-AI.x社区

图 6:同义问题生成概述


当金融遇上 AI 魔法:FinSQL 点燃数据智能新引擎-AI.x社区

图 8:SQL 骨架增强数据的一个例子


对于思维链增强,通过设计特殊的提示模板引导 LLM 生成正确的 CoT 内容,并利用执行结果进行自我检查,确保生成内容的准确性,有效提高了模型的推理能力。同义问题增强则借助 ChatGPT 自动生成与原始问题同义的问题,丰富了问题的表达形式,使模型能够适应不同用户的语言习惯。规则增强通过提取 SQL 查询的骨架,在训练阶段引导模型先生成骨架再生成完整 SQL,加深了模型对 SQL 结构的理解。

4.2.2 并行模式链接


当金融遇上 AI 魔法:FinSQL 点燃数据智能新引擎-AI.x社区

图 9:交叉编码器模型的推理过程


现有的模式链接方法在金融场景中存在局限性,如基于图神经网络的方法与开源 LLM 兼容性差,基于 Cross-Encoder的方法受限于上下文长度且在处理多宽表场景时效率低下。为克服这些问题,作者提出了并行 Cross-Encoder 模型,将表格组织成批次并行处理,快速准确地检索相关模式元素,有效提升了模式链接的效率和准确性,为模型生成高质量 SQL 查询提供了有力支持。

4.3 参数高效微调

传统的全参数微调方法在处理下游任务时面临计算成本高、存储成本高和跨数据库泛化能力弱的问题。FinSQL 框架采用基于 LoRA 的参数高效微调方法,仅调整少量低秩矩阵的权重,显著降低了计算资源需求。

当金融遇上 AI 魔法:FinSQL 点燃数据智能新引擎-AI.x社区

图 10:通过低秩适应(LoRA)对大语言模型(LLMs)进行微调的过程。

具体而言,通过在预训练权重矩阵上添加两个低秩矩阵(A和B),在训练过程中冻结原模型权重,仅更新这两个低秩矩阵,实现了多任务参数高效微调。同时,引入 LoRA 插件中心,存储针对不同数据库或任务训练的 LoRA 模块,通过权重合并方法实现跨数据库的高效迁移学习,在低资源场景下也能快速适应新数据库,有效提升了模型的泛化能力。

当金融遇上 AI 魔法:FinSQL 点燃数据智能新引擎-AI.x社区

图 11:基于少样本 LoRA 的微调过程以及权重合并

4.4 输出校准

当金融遇上 AI 魔法:FinSQL 点燃数据智能新引擎-AI.x社区

图 12:由大型语言模型生成的无效 SQL 查询示例。第一个 SQL 在连接和条件语句中有语法错误。第二个使用了一个无效的列,因为数据库中不存在 “aquirementrium” 这个列。正确的 SQL 中的列是 “acquireramount”。第三个 SQL 在表和列之间建立了错误的连接。列 “chinameabbr” 和 “firstindustryname” 分别属于表 “lc_sharestru” 和 “lc_exgindustry”。

由于 LLM 本身的局限性,如幻觉和随机解码策略,其生成的 SQL 查询可能存在语法错误、无效列引用或表列关联错误等问题。为提高生成 SQL 查询的正确性和一致性, FinSQL 框架提出了一种输出校准算法。

该算法无需执行 SQL 查询,通过修复语法错误、提取关键词和值进行非执行式自一致性检查以及表列对齐等操作,有效减少了无效 SQL 查询的出现,提高了输出 SQL 查询的质量,确保了模型在实际金融应用中的可靠性。

 五、BULL 数据集  

5.1 数据集构建

BULL 数据集基于恒生电子的智能投资助手产品构建,涵盖了基金、股票和宏观经济三个与金融分析密切相关的领域。数据集包含了来自真实业务场景的丰富数据,共计 31、28 和 19 个表,平均每个表具有较多的列,截止到 2022 年 4 月,数据全面且时效性强。

为确保数据的准确性和专业性,数据集的构建过程涉及多方合作。金融专业人士和数据科学家共同编写了 4966 条多样化的中文问题,软件工程师为这些问题编写对应的 SQL 查询,随后由具备数据库和金融知识的实习生进行验证和纠错。此外,为满足不同语言需求,团队还将数据集扩展为英文版本,包括对表和列描述的专业翻译,以及问题和 SQL 查询的准确改写,确保了数据集在中英文环境下的可用性和一致性。


当金融遇上 AI 魔法:FinSQL 点燃数据智能新引擎-AI.x社区

图 2:BULL 数据库的介绍。BULL 的英文和中文版本具有相同的数据库结构。“#Tab Num” 代表数据库中的表的数量。“#Avg Col” 和 “#Max Col” 分别表示数据库中每个表的平均列数和最大列数。

5.2 数据特点与优势


当金融遇上 AI 魔法:FinSQL 点燃数据智能新引擎-AI.x社区

与其他广泛使用的 Text-to-SQL 基准数据集相比, BULL 数据集具有显著优势。其每个数据库包含的表和列数量远超同类数据集,如 WikiSQL、Spider 和 BIRD 等,更接近实际金融应用中的复杂数据库结构。这一特点使得在该数据集上训练的模型能够更好地处理大规模、多表关联的金融数据查询,增强了模型在实际场景中的实用性和泛化能力。

此外, BULL 数据集的表和列名称常采用缩写或模糊表示,这要求模型具备更强的上下文理解能力,从而推动了 Text-to-SQL 模型在语义理解和推理能力上的发展,为金融领域的智能化数据分析提供了更具挑战性和现实意义的数据资源。

 六、实验  

6.1 实验设置

6.1.1 数据集与评估指标

当金融遇上 AI 魔法:FinSQL 点燃数据智能新引擎-AI.x社区

表 4:不同先前方法在 BULL-en 上的总体结果。对于微调方法,我们使用 T5-large 和 LLaMA2-13B。星号表示我们采用我们的并行交叉编码器模型进行模式链接。

实验在 BULL 数据集上进行,该数据集包含基金、股票和宏观经济三个领域的数据库,提供了丰富的中英文问题-SQL查询对。评估指标选用执行准确率(EX),通过比较预测 SQL 查询与真实 SQL 查询在数据库中的执行结果来判断模型的准确性,这一指标与流行的 Text-to-SQL 排行榜(如Spider)所使用的官方评估指标一致,确保了实验结果的可比性和可靠性。

6.1.2 实验模型与基线方法

当金融遇上 AI 魔法:FinSQL 点燃数据智能新引擎-AI.x社区

表 5:不同先前方法在我们的 BULL-cn 上的总体结果。对于微调方法,我们使用 mT5-large 和 Baichuan2-13B。星号表示我们使用我们的并行交叉编码器模型进行模式链接。

实验采用了多种先进的大语言模型作为基础模型,包括解码器架构的 LLaMA2 和 Baichuan2,以及编码器-解码器架构的T5 和 mT5。为了进行对比,作者选择了多个在 Spider 排行榜上表现优异的基线方法,如DAIL-SQL、DIN-SQL、C3、RESDSQL、Token Preprocessing 和 Picard 等,通过在 BULL 数据集上比较 FinSQL 框架与这些基线方法的性能,全面评估了 FinSQL 的有效性和先进性。

6.2 实验结果分析

6.2.1 整体性能对比

当金融遇上 AI 魔法:FinSQL 点燃数据智能新引擎-AI.x社区

表 6:模式链接的性能

在 BULL 数据集的中英文版本上, FinSQL 框架均取得了领先的性能表现。与基于 GPT 的方法相比, FinSQL 不仅在执行准确率上更优,且避免了高昂的 API 使用成本,展现出更高的性价比和实用性。在与基于 T5 的方法对比中, FinSQL 同样表现出色,尽管在某些情况下略低于 Picard,但整体上在处理金融领域复杂查询时具有明显优势,验证了 FinSQL 框架在实际金融数据场景中的强大适应性和高效性。

6.2.2 模式链接效果评估

当金融遇上 AI 魔法:FinSQL 点燃数据智能新引擎-AI.x社区

表 7 :展示了我们的并行交叉编码器模型中表格和列的召回率 @k 的情况。其中,“recall@k” 指的是在检索任务中,在前 k 个结果中正确结果的召回比例;

通过采用AUC(Area Under the ROC Curve)作为评估指标,实验表明 FinSQL 框架中的并行 Cross-Encoder 模型在模式链接任务中表现卓越。无论是在英文还是中文数据集上,该模型在识别相关表和列时均达到了极高的准确率,AUC 值接近 1,这意味着模型能够精准地筛选出与查询相关的模式元素,有效减少了无关信息的干扰,为后续 SQL 查询生成提供了坚实基础,显著提升了模型在复杂金融数据库环境中的性能。

6.2.3 数据增强效果分析

当金融遇上 AI 魔法:FinSQL 点燃数据智能新引擎-AI.x社区

表 8:不同数据增强方法的有效性

通过消融实验,研究了混合数据增强方法中各组成部分的贡献。结果显示,去除任何一种数据增强方式都会导致模型性能下降,证明了思维链数据、同义问题数据和SQL骨架数据在提升模型推理能力、表达多样性和SQL结构理解方面的不可或缺性,强调了混合数据增强策略在提高 FinSQL 框架鲁棒性和泛化能力方面的关键作用。

6.2.4 权重合并方法在少样本跨数据库场景中的效果

当金融遇上 AI 魔法:FinSQL 点燃数据智能新引擎-AI.x社区

图 13:基于权重合并的小样本低秩自适应(LoRA)在四个模型上的执行准确率

在少样本跨数据库场景下,实验对比了 LoRA 权重合并方法与普通 LoRA 方法的性能。结果表明,权重合并方法在低样本情况下表现优异,尤其在零样本和少量样本学习设置中,能够显著提升模型的执行准确率。随着样本数量增加,两者差距逐渐缩小,但合并权重方法仍具有明显优势,有效解决了新数据库构建时训练数据不足的问题,提高了模型在不同数据库间的迁移能力和适应性。

6.2.5 输出校准效果评估

当金融遇上 AI 魔法:FinSQL 点燃数据智能新引擎-AI.x社区

表 9:输出校准的效果

对输出校准算法的研究表明,该算法中的自一致性检查和表列对齐等操作对提高模型生成 SQL 查询的质量至关重要。去除输出校准步骤会导致执行准确率下降,证明了该算法在减少 LLM 幻觉和随机解码策略影响方面的有效性,确保了生成 SQL查询在语法和语义上的正确性,提高了模型在实际金融应用中的可靠性和稳定性。

 七、结论  

7.1 研究成果总结

本研究成功构建了 BULL 数据集,为金融领域的 Text-to-SQL 研究提供了重要的数据基础。该数据集基于真实金融业务场景,具有丰富的表结构和数据多样性,填补了金融分析专用数据集的空白。

提出的 FinSQL 框架为金融 Text-to-SQL 任务提供了一种创新性的解决方案。通过独特的提示构建、参数高效微调和输出校准策略,有效提升了模型在处理金融数据时的性能,达到了当前最优水平。实验结果充分证明了 FinSQL 框架在实际金融应用中的有效性和优越性,为金融数据处理和分析带来了新的思路和方法。

7.2 未来研究方向

尽管 FinSQL 框架取得了显著成果,但仍有进一步提升的空间。未来研究可考虑进一步优化混合数据增强策略,探索更多有效的数据生成方式,以提高模型对复杂金融语义的理解能力。在模型训练和推理过程中,如何更好地结合领域知识和上下文信息,也是一个值得深入研究的方向。

随着金融数据规模的不断增长和业务需求的日益复杂,如何提升模型的可扩展性和适应性,以应对大规模、多模态金融数据的挑战,将是未来研究的重点之一。此外,探索更加高效的模型压缩和加速技术,降低模型计算成本,提高推理效率,也将有助于推动 FinSQL 框架在实际金融场景中的广泛应用。

7.3 对金融领域智能化发展的意义

本研究成果对金融领域的智能化发展具有重要意义。FinSQL 框架的应用将大大降低金融专业人士操作数据库的门槛,提高数据获取和分析的效率,使他们能够更快速、准确地获取有价值的信息,为投资决策、风险管理等核心业务提供有力支持。

随着 Text-to-SQL 技术在金融领域的普及,有望推动金融机构内部数据流程的优化和创新,促进不同业务系统之间的数据融合与协同工作。例如,在投资分析中,分析师可以通过自然语言直接查询海量金融数据,快速获取公司财务报表、市场趋势等信息,结合专业知识进行深度分析,及时发现潜在投资机会,优化投资组合。在风险管理方面,能够实时监测市场动态数据,利用模型预测风险指标,提前制定风险应对策略,有效降低金融风险。

从行业层面来看, FinSQL 框架的推广有助于提升整个金融行业的数据利用效率和智能化水平,推动金融创新发展。它可以激发更多基于数据驱动的金融产品和服务创新,如智能投顾、个性化金融推荐等,为投资者提供更加精准、个性化的金融服务体验,满足不同客户群体的多样化需求。同时,也为监管机构提供了更高效的数据监测和分析工具,有助于加强金融市场监管,维护市场稳定。

在金融科技发展的大趋势下, FinSQL 框架为金融领域与人工智能技术的深度融合提供了实践范例,引领着金融数据处理向更加智能化、自动化的方向迈进。未来,随着技术的不断进步和完善,其在金融领域的应用前景将更加广阔,有望成为推动金融行业数字化转型和高质量发展的重要力量。

综上所述,本研究不仅在学术上为金融 Text-to-SQL 领域提供了新的数据集和框架,在实际应用中也为金融行业的智能化变革带来了积极影响和广阔发展空间,助力金融机构在激烈的市场竞争中抢占先机,实现可持续发展。同时,也为后续相关研究和技术发展奠定了坚实基础,激发更多研究者和从业者探索金融与人工智能融合的创新之路。

本文转载自 AIGC前沿技术追踪​,作者: AIGC前沿技术追踪

收藏
回复
举报
回复
相关推荐