论文标题: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 语句。这个过程通常包括以下几个步骤:
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 的效果,这一策略被越来越多的研究人员认可。该策略带来的好处有:
RAG 的目标是提高生成模型的上下文准确性和信息丰富性。通过引入信息检索系统,RAG 可以从外部知识库中检索事实,以确保生成的文本基于最准确和最新的信息。这种结合了检索模型和生成模型的方法在 NLP 领域具有重要意义。RAG 的应用场景包括开放域问答、对话系统、摘要生成等任务。通过使用 RAG,研究人员和工程师可以快速开发和部署适用于知识密集型任务的解决方案。
解决什么问题?做这个事儿的意义、挑战?
针对给定的自然语言问题生成 SQL 查询
就 Text-to-SQL 这个任务而言,其目的是将自然语言问题转换为可执行的 SQL 查询,用于为关系数据库提供用户友好界面,并使数据管理的各个环节受益,如数据库的可访问性、网站设计的灵活性等。
严格的 SQL 语法、检索到的演示与输入问题之间语义差距较大
已有的方法不足:
为了解决前面提到的问题,作者提出了基于检索增强的 GPT-3.5 的文本到 SQL 框架,具有样本感知提示和动态修订链。
🔎 洞察在于,受 Rethinking the Role of Demonstrations: What Makes In-Context Learning Work? 的启发,作者认为提供动态演示可以适应 SQL 生成的特定样本和模式。动态示例使 SQL 生成能够适应各种场景。通过根据特定实例进行调整,可以对演示进行定制,以包含必要的查询结构、逻辑操作和问题语义。这种适应性有助于生成适用于不同情况的相关 SQL。
为基于 LLM 的文本到 SQL 模型提出了检索增强提示,该模型包含样本感知提示和动态修订链。具体来说:
提出的框架由两个模块组成,如下图所示:
框架概述:左半部分显示了分三个步骤构建检索库。前三句分别是三个具体的例子。绿色虚线框显示训练集。右半部分是一个动态修订链,将 LLM 迭代生成的 SQL 查询作为节点(绿色框)。步骤 2 和 4 的输出统称为细粒度反馈。
为基于 LLM 的文本到 SQL 模型提出了检索增强提示。通过使用示例感知提示和动态修订链,解决了检索有用示例和基于细粒度反馈调整生成的 SQL 的挑战。在三个文本到 SQL 基准测试上的实验结果证明了方法的有效性。
论文中使用了三个 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 样本时,设置温度
。对于检索样本的数量,分别设置
和
。在三个 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 基准测试中优于强基线模型,证明了该方法的有效性。此外,论文还对该方法进行了详细的分析和讨论,进一步支持了该科学假设的正确性。
📚️ 相关工作:
🚀 论文的主要贡献总结如下:
👀 可能的改进和进一步工作:
📚️ 参考链接: