写点什么

NL2SQL 进阶系列 (2):DAIL-SQL、DB-GPT 开源应用实践详解 Text2SQL

  • 2024-04-12
    浙江
  • 本文字数:2177 字

    阅读完需:约 7 分钟

NL2SQL进阶系列(2):DAIL-SQL、DB-GPT开源应用实践详解Text2SQL

NL2SQL 进阶系列(2):DAIL-SQL、DB-GPT 开源应用实践详解[Text2SQL]

NL2SQL基础系列(1):业界顶尖排行榜、权威测评数据集及LLM大模型(Spider vs BIRD)全面对比优劣分析[Text2SQL、Text2DSL]


NL2SQL基础系列(2):主流大模型与微调方法精选集,Text2SQL经典算法技术回顾七年发展脉络梳理


NL2SQL进阶系列(1):DB-GPT-Hub、SQLcoder、Text2SQL开源应用实践详解


NL2SQL进阶系列(2):DAIL-SQL、DB-GPT开源应用实践详解[Text2SQL]


NL2SQL 任务的目标是将用户对某个数据库的自然语言问题转化为相应的 SQL 查询。随着 LLM 的发展,使用 LLM 进行 NL2SQL 已成为一种新的范式。在这一过程中,如何利用提示工程来发掘 LLM 的 NL2SQL 能力显得尤为重要。


1.DB-GPT

官方链接:https://github.com/eosphoros-ai/DB-GPT/blob/main/README.zh.md



DB-GPT 是一个开源的 AI 原生数据应用开发框架(AI Native Data App Development framework with AWEL(Agentic Workflow Expression Language) and Agents)。


目的是构建大模型领域的基础设施,通过开发多模型管理(SMMF)、Text2SQL 效果优化、RAG 框架以及优化、Multi-Agents 框架协作、AWEL(智能体工作流编排)等多种技术能力,让围绕数据库构建大模型应用更简单,更方便。



1.1 架构方案


核心能力主要有以下几个部分:


  • RAG(Retrieval Augmented Generation),RAG 是当下落地实践最多,也是最迫切的领域,DB-GPT 目前已经实现了一套基于 RAG 的框架,用户可以基于 DB-GPT 的 RAG 能力构建知识类应用。

  • GBI:生成式 BI 是 DB-GPT 项目的核心能力之一,为构建企业报表分析、业务洞察提供基础的数智化技术保障。

  • 微调框架: 模型微调是任何一个企业在垂直、细分领域落地不可或缺的能力,DB-GPT 提供了完整的微调框架,实现与 DB-GPT 项目的无缝打通,在最近的微调中,基于 spider 的准确率已经做到了 82.5%

  • 数据驱动的 Multi-Agents 框架: DB-GPT 提供了数据驱动的自进化 Multi-Agents 框架,目标是可以持续基于数据做决策与执行。

  • 数据工厂: 数据工厂主要是在大模型时代,做可信知识、数据的清洗加工。

  • 数据源: 对接各类数据源,实现生产业务数据无缝对接到 DB-GPT 核心能力。

1.2 RAG 生产落地实践架构




  • 特性一览

  • 私域问答 &数据处理 &RAG

  • 支持内置、多文件格式上传、插件自抓取等方式自定义构建知识库,对海量结构化,非结构化数据做统一向量存储与检索

  • 多数据源 &GBI

  • 支持自然语言与 Excel、数据库、数仓等多种数据源交互,并支持分析报告。

  • 自动化微调

  • 围绕大语言模型、Text2SQL 数据集、LoRA/QLoRA/Pturning 等微调方法构建的自动化微调轻量框架, 让 TextSQL 微调像流水线一样方便。详见: DB-GPT-Hub

  • 数据驱动的 Agents 插件

  • 支持自定义插件执行任务,原生支持 Auto-GPT 插件模型,Agents 协议采用 Agent Protocol 标准

  • 多模型支持与管理

  • 海量模型支持,包括开源、API 代理等几十种大语言模型。如 LLaMA/LLaMA2、Baichuan、ChatGLM、文心、通义、智谱等。当前已支持如下模型:


更多内容官方链接:https://github.com/eosphoros-ai/DB-GPT/blob/main/README.zh.md

2.DAIL-SQL

DAIL-SQL 是一种非常有效的方法,用于优化 LLM 在 Text-to-SQL 上的利用率。在 GPT-4 测试中,它在 Spider 排行榜上取得了 86.2%的优异成绩,证明了自己的优势。值得注意的是,在蜘蛛侠开发中,每个问题只需要大约 1600 个令牌。除此之外,通过 GPT-4 的自一致性投票,我们在 spider 测试中获得了更高的 86.6%的分数。



在问题的表示上,DAIL-SQL 发现 SQL 语句加注释的代码表示方式可以有效发掘 LLM 在预训练中学习的代码能力。在样例的选择上,以往的方法着重于选择与用户问题相似的样例问题,或者选择与目标 SQL 相似的样例 SQL。然而,DAIL-SQL 发现通过同时考虑问题相似度和 SQL 相似度来选择样例,可以得到更好的结果。在样例的展示上,以往的方法通常会展示所有样例信息,包括问题、SQL 和数据库信息,或者仅展示 SQL 以追求样例数量。DAIL-SQL 采用了一种折中的方式,同时展示样例的问题和 SQL,以保留问题和 SQL 之间的映射关系,并去除了 token 数最多的数据库信息,以确保能展示更多的样例。最终,DAIL-SQL 在 NL2SQL 的国际权威榜单 Spider 上取得了 86.6 的执行准确率,比第二名的 DIN-SQL 高 1.3 个百分点。同时,每个问题大约只需 700 个 token,比 DIN-SQL 少一个数量级。


零样本场景下评估了从其他作品中总结的五个问题表征,使用了四个 llm: GPT-4, GPT-3.5-TURBO, text - davincic -003 和 Vicuna-33B







DAIL- sql 组织与 Full-Information 和 SQL-Only 组织进行了对比,发现 DAIL 组织对于强大的 llm 来说是一种非常有效和高效的方法。






  • 效果展示:| Method | Dev EM | Dev EX | Test EM | Test EX || --------- | --------- | --------- | --------- | --------- || DAIL-SQL+GPT-4 | 70.0 | 83.1 | 66.5 | 86.2 || DAIL-SQL+GPT-4+Self-consistency | 68.7 | 83.6 | 66.0 | 86.6 |


  • demo:链接:https://modelscope.cn/studios/ml-db/NL2SQL_with_LLM/summary





  • 代码链接:https://github.com/BeachWang/DAIL-SQL

  • 论文:https://arxiv.org/abs/2308.15363

  • Spider 榜单:https://yale-lily.github.io/spider

  • 参考链接

  • Awesome Text2SQL:https://github.com/eosphoros-ai/Awesome-Text2SQL/blob/main/README.zh.md


更多优质内容请关注公号:汀丶人工智能;会提供一些相关的资源和优质文章,免费获取阅读。

发布于: 刚刚阅读数: 3
用户头像

本博客将不定期更新关于NLP等领域相关知识 2022-01-06 加入

本博客将不定期更新关于机器学习、强化学习、数据挖掘以及NLP等领域相关知识,以及分享自己学习到的知识技能,感谢大家关注!

评论

发布
暂无评论
NL2SQL进阶系列(2):DAIL-SQL、DB-GPT开源应用实践详解Text2SQL_自然语言处理_汀丶人工智能_InfoQ写作社区