Text2SQL技术,即将自然语言查询转换为结构化查询语言(SQL)的技术,正在迅速成为数据库查询的一个关键工具。它使得非技术用户能够通过自然语言与数据库进行交互,极大地提高了数据库操作的便捷性和效率。
一、主流数据集
Spider:这是一个跨域的复杂Text2SQL数据集,包含了大量的自然语言问句和对应的SQL查询语句。它旨在测试模型在复杂的、未见过的SQL查询上的性能以及其在新领域的泛化能力。
WikiSQL:这是一个大型的语义解析数据集,由大量的自然语句表述和对应的SQL标注构成。它主要用于训练模型学习如何将简单的自然语言查询转换为SQL查询。
CHASE:一个跨领域多轮交互Text2SQL中文数据集,包含多个多轮问题组成的列表,以及大量的<query, SQL>二元组,涉及不同领域的数据库。
二、主流实战方法
一、基于SQLCoder模型,结合业务进行微调
下载模型:llama3-sqlcoder-8b是一种适用于 PostgreSQL、 Snowflake(基于云的数据仓库平台) 的文本到 SQL 生成的强大的语言模型,可与最强大的通用前沿模型相媲美。
下载数据集:WikiSQL是一个基于维基百科的语义解析数据集,主要用于自然语言查询到SQL查询的转换任务。它包含了超过8万个(问题,SQL)对,即80,645条自然语言问句及相应的SQL语句,以及24,241张表。
第二步:模型微调(收集业务数据、选择微调策略、训练模型、评估模型)
微调数据集:根据业务需求和数据库架构,收集相关的自然语言查询和对应的SQL语句作为训练数据。 选择微调策略:根据业务需求和数据集的特点,选择合适的微调策略,如基于特定数据库模式的微调、针对复杂查询的微调等。 训练模型:使用微调数据集对SQLCoder模型进行训练,调整模型的参数以优化其在特定业务场景下的性能。 评估模型:在训练过程中,定期评估模型的性能,如准确率、召回率等,以确保微调的有效性。
第三步:模型部署与推理
Enter special instructions(输入特殊说明):明确特殊说明的内容,这可能涉及对某项任务的具体要求、注意事项、优先级调整或其他任何有助于任务执行或结果理解的额外信息。例如:异常处理
Enter the database schema(输入数据库模式):数据库模式(也称为数据库结构或数据库架构)定义了数据库中表、列、关系和其他数据库对象的组织方式。
二、基于开箱即用的DB-GPT-Hub,结合业务整合到应用
目的是构建大模型领域的基础设施,通过开发多模型管理(SMMF)、Text2SQL效果优化、RAG框架以及优化、Multi-Agents框架协作、AWEL(智能体工作流编排)等多种技术能力,让围绕数据库构建大模型应用更简单,更方便。
DB-GPT-Hub是一个利用LLMs实现Text-to-SQL解析的实验项目,主要包含数据集收集、数据预处理、模型选择与构建和微调权重等步骤,通过这一系列的处理可以在提高Text-to-SQL能力的同时降低模型训练成本,让更多的开发者参与到Text-to-SQL的准确度提升工作当中,最终实现基于数据库的自动问答能力,让用户可以通过自然语言描述完成复杂数据库的查询操作等工作。
目前DB-GPT-Hub已经基于多个大模型打通从数据处理、模型SFT训练、预测输出和评估的整个流程,代码在项目中均可以直接复用。-- 开箱即用,架构师带你玩转AI