当前位置: 首页 > article >正文

【text2sql】低资源场景下Text2SQL方法

SFT的text2sql方法

SFT使模型能够遵循输入指令并根据预定义模板进行思考和响应。如上图,、 和 是用于通知模型在推理过程中响应角色的角色标签。 后面的内容表示模型需要遵循的指令,而 后面的内容传达了当前用户对模型的需求。 后面的内容代表模型的预期输出,也可以定义为模型预测的标签。在监督微调期间,模型根据 和 中的内容预测 后面的内容,然后将其与标签进行比较以计算损失函数。 标记作为结束标记,以防止模型在后续推理阶段偏离思路,从而减少推理时间。通过定义监督微调模板,模型可以在推理时根据模板唤起微调知识,用户可以从预先建立的响应模板中提取答案。

text2sql一些研究涵盖两个基本任务:schema_linking和SQL生成。

  • Schema Linking: 主要目的是识别和提取与问题相关的表,并通过分步推理和链式思维方法在有限内存下处理大规模数据库。
  • SQL 生成: 主要目的是根据模式链接任务的结果生成准确的SQL查询语句,同时通过减少输入表的数量来降低内存消耗。

方法

LR-SQL方法框架

提出了LR-SQL方法,解决低资源场景下的Text2SQL任务,具体如下:

1.schema_link模型:首先,LR-SQL方法包含两个监督微调模型:schema_link模型和SQL生成模型。schema_link模型的主要作用是简化整个流程,通过将完整的数据库分解为灵活的表组合,使模型能够从这些分散的切片中学习数据库内关系。

2.数据分解:在schema_link模型的微调过程中,LR-SQL将数据库分解为多个切片,每个切片具有可调节的表数量。这种方法允许模型根据GPU内存限制灵活地覆盖不同数量的表。

LR-SQL的监督模板构建


将数据库中的表分解成多个片段,每个片段包含一定数量的表和其列的描述

3.思维链:为了增强模型在推理过程中感知各个离散切片之间关系的能力,LR-SQL训练了模型的链式思维能力。COT能力使模型能够逐步引导自己生成最终结果。

LR-SQL训练

4.SQL生成模型:在schema_link模型微调完成后,预测的目标表和问题被发送到SQL生成模型以生成最终的SQL查询。该模型仅使用包含目标表的少量表进行微调,从而显著减少了所需的内存。


在推理阶段,与训练相比,模型处理长文本所需的内存需求大幅减少

实验

schema_link模型评估:LR-SQL方法在两个数据集上的总准确率分别为91.38和94.38,过滤准确率分别为94.26和97.19,平均精度分别为95.50和96.91,平均召回率分别为95.76和97.85。与现有方法相比,LR-SQL在保持较高准确率的同时,显著减少了GPU内存使用。

切片大小对性能的影响:实验还探讨了不同切片大小对模型性能和GPU内存使用的影响。结果表明,当切片大小适中时,模型的性能最佳。

参考文献

  • LR-SQL: A Supervised Fine-Tuning Method for Text2SQL Tasks under Low-Resource Scenarios,https://arxiv.org/pdf/2410.11457

http://www.kler.cn/a/429053.html

相关文章:

  • 论文阅读:CosAE Learnable Fourier Series for Image Restoration
  • opencv3.4 ffmpeg3.4 arm-linux 交叉编译
  • Pytorch|YOLO
  • 洛谷P3916 图的遍历
  • 改进果蝇优化算法之一:自适应缩小步长的果蝇优化算法(ASFOA)
  • Python GUI Pyside6 实例笔记
  • 【CKS最新模拟真题】从ETCD 中读取 Secret的键值
  • mac电脑安装hadoop、hive等大数据组件
  • 计算机病毒的特效及种类【知识点+逐字稿+答辩题】----高中信息技术教资面试
  • 设计模式10:观察者模式(订阅-发布)
  • 朗新科技集团如何用云消息队列 RocketMQ 版“快、准、狠”破解业务难题?
  • 生活大爆炸版石头剪刀布(洛谷P1328)
  • SpringBoot 赋能:精铸超稳会员制医疗预约系统,夯实就医数据根基
  • flume对kafka中数据的导入导出、datax对mysql数据库数据的抽取
  • vscode(二)常用的文件变量
  • 基于卷积神经网络的人脸表情识别系统,resnet50,mobilenet模型【pytorch框架+python源码】
  • C# AES
  • spring中的@Bean和@Component有什么区别?
  • CentOS 9 Stream上安装SQL Server 2022
  • OceanBase数据库使用 INSERT 语句违反唯一约束冲突解决办法及两者差异分析
  • python+docker实现分布式存储的demo
  • git commit -m “Add user login feature“
  • Winform(C#)实现下拉列表显示表格(利用自定义组件)
  • Vector软件CANdb++的信号起始位Bug
  • Bellman-Ford 算法详解及应用
  • c语言学生管理系统(内置数据库版本)