基于检索增强的 GPT-3.5 的文本到 SQL 框架,具有样本感知提示和动态修订链。

news2024/9/25 15:29:15

文章目录

  • 一、论文关键信息
  • 二、基础概念
  • 三、主要内容
    • 1. Motivations
    • 2. Insights
    • 3. 解决方案的关键
    • 4. 实验
  • 四、总结与讨论

🍉 CSDN 叶庭云https://yetingyun.blog.csdn.net/


一、论文关键信息

论文标题:Retrieval-augmented GPT-3.5-based Text-to-SQL Framework with Sample-aware Prompting and Dynamic Revision Chain

会议信息:2023 ICONIP(CCF C)

论文地址:https://arxiv.org/abs/2307.05074

作者团队:Chunxi Guo, Zhiliang Tian, Jintao Tang, Shasha Li, Zhihua Wen, Kaixuan Wang and Ting Wang.

作者单位:国防科技大学计算机学院

👨‍💻 代码地址:暂无

关键词:大语言模型、Text-to-SQL、提示工程

🚀 一段话总结:基于检索增强 GPT-3.5 的 Text-to-SQL 框架,该方法结合了样本感知提示、动态修订链和检索增强技术来处理 SQL 语法要求的挑战。

Text-to-SQL 旨在针对给定的自然语言问题生成 SQL 查询,从而帮助用户查询数据库。使用大语言模型(LLMs)进行提示学习是最近出现的一种方法,它设计提示来引导 LLMs 理解输入问题并生成相应的 SQL。然而,它面临着严格的 SQL 语法要求的挑战。现有的工作用一系列演示示例(即 question-SQL 对)提示 LLMs 生成 SQL,但静态提示很难泛化到检索到的演示与输入问题之间语义差距较大的情况。这项研究提出了一种基于 LLM 的文本到 SQL 框架的检索增强提示方法,涉及样本感知提示和动态修订链。该方法结合了样本感知演示,其中包括 SQL 运算符的组成以及与给定问题相关的细粒度信息。为了检索与输入问题意图相似的问题,作者提出了两种辅助检索策略。首先,他们利用 LLM 来简化原始问题,统一语法,从而明确用户的意图。为了在无需人工干预的情况下生成可执行且准确的 SQL,设计了一个动态修订链,它迭代地适应先前生成的 SQL 的细粒度反馈。在三个文本到 SQL 基准测试上的实验结果表明,提出的方法优于强基线模型。

在这里插入图片描述


二、基础概念

Text-to-SQL

Text-to-SQL(文本到 SQL)是一种自然语言处理(NLP)任务,旨在将自然语言查询转换为结构化查询语言(SQL)语句。这种技术使得非技术用户能够通过使用他们日常的自然语言来查询和操作数据库,而无需了解复杂的 SQL 语法。

在 Text-to-SQL 任务中,人工智能系统需要理解输入的自然语言文本,并将其映射到相应的 SQL 语句。这个过程通常包括以下几个步骤:

  • 语义解析:首先,AI 系统需要对输入的自然语言文本进行语义解析,以识别关键词、实体、属性和关系。这有助于系统理解用户的查询意图。
  • 数据库架构匹配:接下来,AI 系统需要将解析出的实体和属性与数据库架构中的表和列进行匹配。这一步骤确保生成的SQL语句与目标数据库的结构相符。
  • SQL 生成:最后,AI 系统需要根据解析出的信息和数据库架构生成相应的SQL语句。这可能涉及到选择合适的SQL操作(如 SELECT、INSERT、UPDATE 或 DELETE),以及构建正确的条件子句和连接子句。

Text-to-SQL 任务的挑战之一是处理多种多样的自然语言表达方式。用户可能会用不同的词汇和语法结构来表达相同的查询意图。此外,处理模糊或不完整的查询也是一个关键问题,因为用户可能没有提供足够的信息来生成准确的 SQL 语句。为了解决这些挑战,研究人员通常采用深度学习方法,如循环神经网络(RNN)、长短时记忆网络(LSTM)和 Transformer 架构。这些模型可以在大量的自然语言查询和对应的 SQL 语句上进行训练,从而学会理解和生成复杂的语言结构。

大语言模型的检索增强生成

检索增强生成(Retrieval Augmented Generation,RAG)是一种结合了信息检索和生成模型的混合框架,用于生成文本回复。RAG 的核心思想是在大语言模型(Large Language Model,LLM)的基础上,添加一个信息检索系统,以提供生成回复所需的数据。这种框架的引入使得我们能够在生成回复时对使用的数据进行控制。RAG 的应用在自然语言处理(Natural Language Processing,NLP)领域具有重要意义。它能够生成既具有上下文准确性又富含信息的文本。通过将信息检索模型和生成模型结合起来,RAG 在 NLP 中具有革命性的作用。RAG 的架构通常使用大型的自回归语言模型(Autoregressive Language Model),并且采用 Decoder-only 的架构。这是因为自回归模型对生成任务更加友好,能够利用上文信息。此外,大型语言模型的参数规模需要超过 13B 才能具备较强的生成能力。

在大语言模型(ChatGPT、GPT-4、LLaMA 等)应用落地中,利用【外挂】知识库进行上下文检索增强(In-Context Retrieval-Augmented )来进一步提升 LLMs 的效果,这一策略被越来越多的研究人员认可。该策略带来的好处有:

  • 让大模型获取更多的知识,尤其最新的信息,而大模型是无法记住所有的知识;
  • 缓解大模型存在的幻觉问题(类似一本正经的胡说八道),提供外挂信息,可让大模型的输出更有据可循;例如在利用 LLMs 做事件点评时,嵌入事件之间的因果逻辑,能让大模型输出的结果合理性更强;
  • 很多开源的大模型都是通用型的,结合领域专门的外挂知识库,能让这类大模型在领域问题表现的更好,这也是低成本应用大模型的一种好策略。

RAG 的目标是提高生成模型的上下文准确性和信息丰富性。通过引入信息检索系统,RAG 可以从外部知识库中检索事实,以确保生成的文本基于最准确和最新的信息。这种结合了检索模型和生成模型的方法在 NLP 领域具有重要意义。RAG 的应用场景包括开放域问答、对话系统、摘要生成等任务。通过使用 RAG,研究人员和工程师可以快速开发和部署适用于知识密集型任务的解决方案。


三、主要内容

1. Motivations

解决什么问题?做这个事儿的意义、挑战?

  • 解决什么问题? → \rightarrow 针对给定的自然语言问题生成 SQL 查询
  • 做这个事儿的意义? → \rightarrow Text-to-SQL 这个任务而言,其目的是将自然语言问题转换为可执行的 SQL 查询,用于为关系数据库提供用户友好界面,并使数据管理的各个环节受益,如数据库的可访问性、网站设计的灵活性等。
  • 做这个事儿的挑战? → \rightarrow 严格的 SQL 语法、检索到的演示与输入问题之间语义差距较大

已有的方法不足:

  • 端到端训练的 encoder-decoder 架构的神经网络需要多样化和广泛的训练数据来训练模型,这是非常昂贵的。这样的方法还容易过拟合,泛化性能不佳。
  • 使用特定的提示或指令来驱动 LLMs 生成所需的回应(提示学习),Rajkumar 等人和 Liu 等人评估了文本到 SQL 任务的几个提示学习基线。他们的研究结果表明,尽管 LLMs 生成文本序列是很自然的,但由于 SQL 的严格语法要求,生成 SQL 仍然是一个挑战。
  • 受少样本学习的启发,现有工作采用一系列演示示例(即 question-SQL 对)来提示 LLMs 生成 SQL 查询。然而,他们通常依靠体力劳动来创建针对特定任务的静态演示示例。DIN-SQL 从每个类别中选择预定义的样本,Self-Debugging 向 LLM 解释代码,但没有解释演示。这些方法采用静态演示,这意味着提供给 LLMs 的演示示例是固定的,不会在不同的示例中进行调整或更改。这些静态演示示例很难适应检索到的演示与输入问题之间的语义差距较大的场景,这被称为检索偏差,通常出现在检索增强生成中。

2. Insights

为了解决前面提到的问题,作者提出了基于检索增强的 GPT-3.5 的文本到 SQL 框架,具有样本感知提示和动态修订链

🔎 洞察在于,受 Rethinking the Role of Demonstrations: What Makes In-Context Learning Work? 的启发,作者认为提供动态演示可以适应 SQL 生成的特定样本和模式。动态示例使 SQL 生成能够适应各种场景。通过根据特定实例进行调整,可以对演示进行定制,以包含必要的查询结构、逻辑操作和问题语义。这种适应性有助于生成适用于不同情况的相关 SQL。

3. 解决方案的关键

为基于 LLM 的文本到 SQL 模型提出了检索增强提示,该模型包含样本感知提示和动态修订链。具体来说:

  • 建议检索类似的 SQL 查询,以使用示例感知的演示示例构建提示。请注意,用户经常用不同的表达式提问,即使他们有相同的意图和 SQL 查询。这使得模型很难检索到有用的示例。为了解决这个问题,通过两种策略提取问题的真实意图:首先,通过 LLM 简化原始问题,以明晰用户的意图并统一检索语法。其次,提取问题骨架来检索具有相似问题意图的项目。
  • 为了生成可执行且准确的 SQL,设计了一个动态修订链,通过根据先前版本生成的 SQL 迭代适应细粒度反馈来生成 SQL 查询。反馈包括 SQL 执行结果、SQL 解释以及相关的数据库内容。这个动态链通过语言模型和数据库之间的自动交互,在没有人为干预的情况下,能够生成可执行且准确的 SQL。

提出的框架由两个模块组成,如下图所示:

  • 检索库:构建了一个添加了简化问题的检索存储库,然后使用问题骨架来检索样本感知的 SQL 演示示例。

  • 动态修订链:通过添加细粒度反馈来进一步修订生成的 SQL 查询。

请添加图片描述

框架概述:左半部分显示了分三个步骤构建检索库。前三句分别是三个具体的例子。绿色虚线框显示训练集。右半部分是一个动态修订链,将 LLM 迭代生成的 SQL 查询作为节点(绿色框)。步骤 2 和 4 的输出统称为细粒度反馈。

为基于 LLM 的文本到 SQL 模型提出了检索增强提示。通过使用示例感知提示和动态修订链,解决了检索有用示例和基于细粒度反馈调整生成的 SQL 的挑战。在三个文本到 SQL 基准测试上的实验结果证明了方法的有效性。

4. 实验

论文中使用了三个 Text-to-SQL 基准测试数据集进行定量评估,分别是 Spider、Spider-Syn 和 Spider-DK。其中,Spider 是一个跨领域的大规模基准测试,包含 138 个不同领域的数据库,而 Spider-Syn 和 Spider-DK 是基于 Spider 的变体数据集。

使用 FAISS 进行问题骨架的存储和高效检索,然后应用 Retrieval-augmented GPT-3.5-based Text-to-SQL 框架进行 SQL 查询生成。在生成 SQL 样本时,设置温度 τ = 0.5 \tau=0.5 τ=0.5。对于检索样本的数量,分别设置 k 1 = 4 k_{1}=4 k1=4 k 2 = 4 k_{2}=4 k2=4。在三个 Text-to-SQL 基准测试中,实验结果表明,该方法优于强基线模型。


四、总结与讨论

生成 SQL 查询是一个长期存在的问题,因为 SQL 查询需要遵循严格的语法规则,而自然语言问题通常不遵循这些规则。因此,这个问题一直存在,并且一直在研究中得到关注。这篇论文提出了一种新的方法来解决这个问题。

这项研究深入探索了 Text-to-SQL 任务,即将自然语言问题转换为 SQL 查询。传统方法使用固定提示和示例对大语言模型进行提示,但存在一些挑战。因此,这篇论文提出了一种检索增强的提示方法,包括样本感知提示和动态修订链,以提高生成 SQL 的准确性和可执行性。实验证明,该方法在三个基准数据集上优于现有模型。文章还讨论了该方法的普适性、问题简化的合理性、检索库的覆盖性、匹配准确性和扩展性。

论文中提出的解决方案的关键是结合了样本感知提示和检索增强技术的 Retrieval-augmented GPT-3.5-based Text-to-SQL 框架,以及动态修订链。其中,样本感知提示和检索增强技术用于处理 SQL 语法要求的挑战,动态修订链用于生成可执行和准确的 SQL 查询

论文中的实验及结果很好地支持了需要验证的科学假设,即结合样本感知提示和检索增强技术的 Retrieval-augmented GPT-3.5-based Text-to-SQL 框架以及动态修订链可以生成可执行和准确的 SQL 查询。具体来说,论文中的实验结果表明,该方法在三个 Text-to-SQL 基准测试中优于强基线模型,证明了该方法的有效性。此外,论文还对该方法进行了详细的分析和讨论,进一步支持了该科学假设的正确性。

📚️ 相关工作:

  • 基于编码器-解码器架构的 SQL 生成;
  • 基于 LLMs 的 SQL 生成;

🚀 论文的主要贡献总结如下:

  • 通过提示 LLMs 进行样本感知演示,开发了一个用于文本到 SQL 任务的检索增强框架。
  • 提出了一个动态修订链,它可以通过细粒度的反馈来适应之前生成的 SQL。
  • 三个 Text-to-SQL 基准测试的实验结果表明,论文提出的方法超越了强基线模型。

👀 可能的改进和进一步工作:

  • 使用更先进的语言模型,如 GPT-4、Claude 3 Opus、Gemini Ultra 等,以进一步提高生成的 SQL 查询的准确性。
  • 可以探索使用更有效的检索技术,如语义搜索或基于知识图谱的检索,以提高检索到的示例的质量。
  • 结合强化学习,根据数据库的反馈进一步优化生成的 SQL 查询。
  • 探索将该框架应用于其他相关任务,如自然语言数据库接口(NLIDB)或自然语言编程(NLP),以评估其在其他领域的泛化能力和有效性。

📚️ 参考链接:

  • 也看大模型与数据库查询分析的落地结合:C3 Text2SQL 方案及 Data-Copilot 数据自动化编排机制的实现思想阅读
  • 知乎 | 大模型(LLM) + 上下文检索增强
  • 检索增强生成(RAG)
  • RAG:使用检索增强生成构建特定行业的大型语言模型
  • 论文领读 | 别再第四范式:看看新热点检索增强怎么做文本生成!
  • Google 机器学习术语表

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1517541.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Windows安装及配置jdk

Windows安装及配置jdk Windows安装及配置jdk下载安装环境变量配置JAVA_HOME和JRE_HOME 配置Path验证环境 Windows安装及配置jdk 下载安装 JDK的下载是免费的,可以直接去官网下载最新版本,比较安全,安装的时候直接点击下一步到底,…

人生就像是一场旅行,房子和车子不过是旅途中的临时栖息地和代步工具

图片由AI生成 人生就像是一场漫无目的的旅行,房子和车子不过是旅途中的临时栖息地和代步工具。 我们费尽心思,经过无数个日夜的奋斗,终于有了自己的车和房,以为这就是生活的全部。 但,物质的堆砌永远无法定义我们的价值…

unity3d Animal Controller的Animal组件中Speeds,States和modes基础部分理解

Speeds 速度集是修改你可以做的原始动画,增加或减少运动,旋转,或动画速度。它们与 州 所以,当动物在运动状态下,在飞行或游泳时,你可以有不同的速度 如果你的性格动画是 (已到位), 你一定要调整速度 位置 和 旋转 每一种的价值观 速度装置 …否则,它们不会移动或旋转。 每个速…

微服务分布式springcloud研究生志愿填报辅助系统

本文讲述了研究生志愿填报辅助系统。结合电子管理系统的特点,分析了研究生志愿填报辅助系统的背景,给出了研究生志愿填报辅助系统实现的设计方案。 本论文主要完成不同用户的权限划分,不同用户具有不同权限的操作功能,在用户模块&…

Spring状态机简单实现

一、什么是状态机 状态机,又称有限状态自动机,是表示有限个状态以及在这些状态之间的转移和动作等行为的计算模型。状态机的概念其实可以应用的各种领域,包括电子工程、语言学、哲学、生物学、数学和逻辑学等,例如日常生活中的电…

SpringBoot之Bean扫描、Bean注册

目录 Bean扫描 Bean注册 Bean lmport 自定义注解 注册条件 Bean扫描 Bean扫描有两种方式 1、标签:<context:component-scan base-package"com.mybatis"/> 2、注解: ComponentScan(basePackages "com.mybatis") springboot启动类注解可以自…

Android 异常重启--踩坑归来--干货篇

如果你未对自己的app进行过处理&#xff0c;那么线上各种偶发莫名其妙的闪退、白屏、数据丢失&#xff0c;请检查一下是否因此而引发的。 起因 异常重建指的是非配置变更情况下导致的 Activity 重新创建。 常见场景大多是因为内存等资源不足&#xff0c;从而导致后台应用被系…

python统计分析——单变量分布的特征描述之分布中心

参考资料&#xff1a;python统计分析【托马斯】 也可查看&#xff1a;python统计分析——单变量描述统计-CSDN博客 当我们有一个来自分布的数据样本时&#xff0c;我们可以用不同的参数来描述分布中心。因此&#xff0c;数据可以用两种方式来评估&#xff1a; &#xff08;1&a…

Xcode15.3 -Library ‘iconv2.4.0‘ not found

今天升级了一下Mac mini 和Xcode15.3&#xff0c;运行项目就报 Library ‘iconv2.4.0’ not found的错误 xcode升级到&#xff1a;15.3(15A240d) 项目在旧版本下&#xff0c;是能通过编译 并且能运行的。 解决方法&#xff1a; 方案1&#xff1a;在Build Phases --> Link…

SSL VPN基础原理

目录 SSL ---安全传输协议&#xff08;安全套接层&#xff09;---TLS ----传输层安全协议 SSL的工作原理 SSL会话建立的过程 ​编辑 数据传输过程中的封装示意图 无客户端认证的过程 有客户端认证的过程 SSL VPN的核心技术---虚拟网关技术 服务器验证的点&#xff1a; 资源…

Gitlab光速发起Merge Request

前言 在我们日常开发过程中需要经常使用到Merge Request&#xff0c;在使用过程中我们需要来回在开发工具和UI界面之前来回切换&#xff0c;十分麻烦。那有没有一种办法可以时间直接开发开工具中直接发起Merge Request呢&#xff1f; 答案是有的。 使用 Git 命令方式创建 Me…

npm、nodejs和vue之间关系和区别介绍

本文讲解npm、Node.js和Vue.js这三者之间的关系和区别&#xff0c;以及它们各自的特点。 首先&#xff0c;让我们来了解一下Node.js。 **Node.js** 是一个开源的服务器端运行环境&#xff0c;它允许开发者使用JavaScript来编写服务器端的代码。在传统的Web开发中&#…

免费 Copilot 用户可以访问 OpenAI 的 GPT-4 Turbo;面向 3D 虚拟环境的多面手 AI 代理

&#x1f989; AI新闻 &#x1f680; 免费 Copilot 用户可以访问 OpenAI 的 GPT-4 Turbo 摘要&#xff1a;微软宣布免费版Copilot已升级到GPT-4 Turbo模型&#xff0c;所有用户都可以免费使用。此外&#xff0c;Copilot Pro新增了GPT Builder工具&#xff0c;订阅者可创建自定…

网上商城购物系统|基于springboot框架+ Mysql+Java+B/S架构的网上商城购物系统设计与实现(可运行源码+数据库+设计文档+部署说明)

推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 目录 前台功能效果图 管理员功能登录前台功能效果图 用户功能模块 系统功能设计 数据库E-R图设计 lunwen参…

【数据结构】哈希表(哈希函数+负载因子+解决冲突方法)

文章目录 五、哈希表1.概念2.哈希函数1.设计哈希函数&#xff1a;2.常见的哈希函数1.直接定址法&#xff08;常用&#xff09;&#xff1a;2.除留余数法&#xff08;常用&#xff09; 3.负载因子4.解决冲突1.闭散列法&#xff08;开放地址法&#xff09;1.线性探测法&#xff1…

docker容器启动rabbitmq

docker容器启动rabbitmq 一、RabbitMQ部署1.1.在线拉取mq镜像1.2.运行mq容器1.3.访问mq 二、RabbitMQ的集群2.1.集群分类2.1.设置 /etc/hosts文件 endl 一、RabbitMQ部署 1.1.在线拉取mq镜像 # 在线拉取 docker pull rabbitmq:3-management1.2.运行mq容器 docker run \ -e R…

python爬虫 Appium+mitmdump 京东商品

爬虫系列&#xff1a;http://t.csdnimg.cn/WfCSx 前言 我们知道通过Charles进行抓包可以发现其参数相当复杂&#xff0c;Form 表单有很多加密参数。如果我们只用 Charles 探测到这个接口链接和参数&#xff0c;还是无法直接构造请求的参数&#xff0c;构造的过程涉及一些加密…

Kafka-生产者报错javax.management.InstanceAlreadyExistsException

生产者发送消息到 kafka 中,然后控制台报错 然后根据日志查看 kafka 的源码发现了问题原因 说的是MBean已经注册了,然后报异常了,这样就会导致生产者的kafka注册失败, 原因是项目上生产者没有配置clientId,默认都是空导致的, 多个生产者(项目)注册到kafka集群中的 id 都相同。 …

水泵房远程监控物联网系统

随着物联网技术的快速发展&#xff0c;越来越多的行业开始利用物联网技术实现设备的远程监控与管理。水泵房作为城市供水系统的重要组成部分&#xff0c;其运行状态的监控与管理至关重要。HiWoo Cloud作为专业的物联网云服务平台&#xff0c;为水泵房远程监控提供了高效、稳定、…

SpringCloud(22)之Sentinel实战应用

一、Sentinel核心库 sentinel主页&#xff1a;主页 alibaba/Sentinel Wiki GitHub 1.1 Sentinel介绍 随着微服务的流行&#xff0c;服务和服务之间的稳定性变得越来越重要。Sentinel 是面向分布式、多语言异构化服务架构的流量治理组件&#xff0c;主要以流量为切入点&…