这部分注重数据读取和NL2SQL任务的准备工作
- SQL训练数据
- 加载BIRD训练数据集,数据用于微调LLM和选择代理
- LLM提取关键字+LSH值提取
- 使用LLM从自然语言问题中提取相关关键字。使用少样本提示来指导LLM。
- 采用局部敏感哈希(LSH)来有效地从数据库中检索与提取的关键字在句法上相似的值
- 基于嵌入相似度和编辑距离对它们进行重新排序
- 读取数据库schema
- 提取BIRD数据集中使用的Schema
- 连接数据库执行SQL语句,得到执行结果,所用时间
- DC-COT
- 鼓励LLM将复杂的问题分解为较小的子问题,为每个子问题生成伪SQL查询,然后将结果组合成最终的SQL查询
- QP-COT
- 利用查询执行计划的概念。提示LLM通过模仿数据库引擎执行查询所采取的步骤(例如,识别表、连接它们、过滤行)来生成SQL。使用“EXPLAIN”命令获取查询计划,再经过一定的程序转换成LLM(人类)可以阅读的语言
- OS
- 生成合成的问题-SQL对,以增强提供给LLM的少样本示例
- 消融实验,验证三种提示词工程生成的SQL语句均有效果
- 输入提示词工程生成的SQL语句,根据执行结果进行聚类
- 通过与gold SQL语句执行结果比较得到正确类,错误类,两类中各自选取一个语句得到一组训练数据
- 将训练数据输入给deepseek-7b模型,微调
- 比对训练前后的结果