2024-10-04 17:00 河南
Text-to-SQL系统的发展经历了从早期基于规则的模型到先进的LLM方法的演变。这些系统通过不同的技术方法,如规则基础方法、基于深度学习的方法、预训练语言模型(PLMs),以及最新的大型语言模型(LLMs),来提高从自然语言到SQL的转换能力。这些技术通过更好的上下文理解和模式识别,提高了查询的准确性和系统的泛化能力。
文本到SQL系统的结构包括根据提供的数据库模式和用户话语生成SQL查询。给定数据库模式和用户输入,系统产生一个相关的SQL查询,以向数据库系统查询所需的结果。
展示了文本到SQL研究是如何随时间演变的,突出了不同的实现方法。每个阶段包括关键技术和著名作品。这些日期是大致的,基于这些关键作品发布的时间,可能有大约一年的误差。
大模型Text-to-SQL架构
使用大型语言模型(LLMs)进行文本到SQL处理的关键阶段。过程始于用户输入,形式为自然语言查询,然后是模式链接,其中查询组件映射到相关的数据库模式元素。接着,LLM根据这些映射生成相应的SQL查询,随后在数据库上执行。
自然语言理解 (Natural Language Understanding):
用户以自然语言查询的形式输入。
LLM 首先处理这些输入以理解用户的意图,识别查询中的关键部分,如实体、条件和关系。
模式链接 (Schema Linking):
自然语言查询解析后,系统进行模式链接。
LLM 将查询的组成部分映射到数据库模式中的相应表、列和关系。
这一阶段至关重要,因为它确保系统能够根据数据库模式正确解释查询。
SQL生成 (SQL Generation):
解析并链接到模式后,LLM 基于建立的语义关系生成 SQL 查询。
这一阶段利用模型对 SQL 语法和数据库逻辑的理解来形成反映用户意图的结构化查询。
生成的 SQL 随后被验证和优化以确保准确性和性能。
SQL执行和输出 (SQL Execution and Output):
最终的 SQL 查询在底层数据库(如 SQLite 或 MySQL)上执行以检索请求的信息。
查询结果以原始格式返回,或者在某些系统中转换回自然语言以便于用户解释。
这种可选的 SQL 到文本的阶段对于以比纯表格输出更易读的格式向用户提供响应特别有用。
整个架构旨在使用户能够无需编写 SQL 查询即可提取特定信息,从而使复杂数据更易于访问。此外,随着数据库变得更加复杂,提高 Text-to-SQL 模型的准确性变得至关重要。LLM-based Text-to-SQL 系统通过这些阶段的设计,使非技术用户更容易使用。
Text-to-SQL评估与方法
讨论了评估基于大型语言模型(LLM)的 Text-to-SQL 系统的重要性和方法。
基于LLM的文本到SQL研究的分类树
A. 数据集类型 (Types of Datasets used in Benchmarks)
跨领域数据集 (Cross-domain Datasets): 例如 WikiSQL、Spider 和 KaggleDBA,这些数据集评估模型在多个不同领域的数据库中的泛化能力。
知识增强数据集 (Knowledge-Augmented Datasets): 如 SQUALL 和 BIRD,这些数据集通过添加外部知识来提高 SQL 生成的语义理解。
上下文相关数据集 (Context-Dependent Datasets): 比如 CoSQL 和 SParc,这些数据集强调数据库查询的对话性质,其中先前的交互影响当前查询。
鲁棒性数据集 (Robustness Datasets): 如 ADVETA,通过引入对抗性表格扰动来测试 Text-to-SQL 系统的鲁棒性。
B. 评估指标 (Evaluation Metrics Used in Benchmarks)
评估 Text-to-SQL 系统的基准测试使用能够捕捉 SQL 查询正确性和效率的指标。这些指标分为两类:
基于内容匹配的指标 (Content Matching-based Metrics):
组件匹配 (Component Matching, CM): 单独评估 SQL 查询的每个组件,如 SELECT、FROM、WHERE 等。
精确匹配 (Exact Matching, EM): 要求生成的 SQL 查询在结构和顺序上与标准查询完全匹配。
基于执行的指标 (Execution-based Metrics):
执行准确性 (Execution Accuracy, EX): 检查生成的 SQL 查询在数据库上执行时是否返回与标准查询相同的结果。
有效效率得分 (Valid Efficiency Score, VES): 衡量生成的 SQL 查询与标准查询相比的计算效率。
四个主要的评估指标
C. 方法 (Methods)
LLM-based Text-to-SQL 系统主要分为两类方法:上下文学习(In-context Learning, ICL)和微调(Fine-tuning, FT)。
上下文学习 (ICL): 通过准确构造的提示引导模型生成 SQL 查询,而不更新模型参数。
微调 (FT): 使用特定任务的数据集来细化模型的内部参数,使模型在文本到 SQL 查询生成任务上变得更加专业化。
https://arxiv.org/pdf/2410.01066
From Natural Language to SQL: Review of LLM-based Text-to-SQL Systems
推荐阅读
• 对齐LLM偏好的直接偏好优化方法:DPO、IPO、KTO
• RAG全景图:从RAG启蒙到高级RAG之36技,再到终章Agentic RAG!
• Agent到多模态Agent再到多模态Multi-Agents系统的发展与案例讲解(1.2万字,20+文献,27张图)
欢迎关注我的公众号“PaperAgent”,每天一篇大模型(LLM)文章来锻炼我们的思维,简单的例子,不简单的方法,提升自己。