Text2SQL / NL2SQL(二)实现:站在 LLM 肩膀上

B站影视 内地电影 2025-03-24 10:37 1

摘要:跟 AI 发展类似,Text-to-SQL 的研究由来已久,可以追溯到上世纪60年代,经历过起起伏伏,本文跳过“古老”的历史,直接从最近的热点方法讲起,下面是一个发展简图:

实现方法发展简介

跟 AI 发展类似,Text-to-SQL 的研究由来已久,可以追溯到上世纪60年代,经历过起起伏伏,本文跳过“古老”的历史,直接从最近的热点方法讲起,下面是一个发展简图:

2015 年以来该话题研究再度热门起来,最初是简单的解析树和基于规则的方法。

快进到 2019 年,继长短时记忆网络(LSTMs)后,Transformer 大受欢迎,Encoder-decoder-based 的方法如 SQL sketch 也备受关注。

2021 年,在 Text-to-SQL 语料库上对 BERT、RoBERTa 这类现成的预训练语言模型进行微调变得流行。

随着像 ChatGPT(闭源)和 Llama 2/3(开源)、DeepSeek(开源)、Claude(闭源)等大语言模型(LLMs)的兴起,基于 LLM 在 Text-to-SQL 语料库的应用几乎成了解决该问题的实际标准,方法有微调、RAG、Agent ...

举个例子,看看业内最新成果

根据 Spider 2 的榜单,链接:https://spider2-sql.github.io/

榜单前十,均是在大模型的基础上做的工作

有2个中国大模型进入了榜单:DeepSeek-V3 和 Qwen2.5-Coder-32B-Instruct

顺道一提,从 2025.1 的最新结果来看,最好分值也只有31.26,一方面说明 Spider 2 数据集难度和领先性,而且并没有被 LLM 拟合,另一方面也说明 AI 在 Spider 2 任务上仍面临着很多挑战。

Notably, even the advanced LLMs-o1-preview solve only 17.1% of Spider 2.0 tasks. For widely-used models like GPT-4o, the success rate is only 10.1% on Spider 2.0 tasks, compared to 86.6% on Spider 1.0, underscoring the substantial challenges posed by Spider 2.0.

举个例子,看看榜单 TOP1:ReFoRCE + o1-preview

下面分享下 Spider 2 排行第一的 ReFoRCE + o1-preview,文章链接:https://arxiv.org/abs/2502.00675

ReFoRCE,即为 Self-Refinement Agent with Format Restriction and Column Exploration (ReFoRCE) workflow.

使用 chatGPT o1-preview 大模型

ReFoRCE 创新点如下:表信息压缩:针对大数据库长上下文问题,采用基于模式匹配的方法,合并相似前缀或后缀的表,为模型减负。减少 token 数,省成本,同时降低 LLM 幻觉预期答案格式限制:在任务开始时生成预期答案格式,并在自我优化过程中强化,要求模型严格遵循 CSV 格式输出,明确各列属性,确保答案清晰准确。潜在有用列探索:设计系统方法,从简单到复杂生成 SQL 查询,逐步理解数据库结构。使用额外的 LLM 聊天会话确定相关表和列,执行查询获取结果,并通过算法动态纠错。自我优化工作流程:输入处理后的信息到模型进行自我优化,通过执行反馈修正错误,达到自洽性或满足终止条件时输出最终结果。对复杂查询,利用 CTE 进行分步细化。并行化:启动多个线程同时执行整个工作流程,通过投票机制确定最可能正确的结果,提高结果的可信度和准确性,还支持不同示例的并行处理,加速整体过程。该方案有如下优点:复杂数据集表现好:在 Spider 2.0-Snow 和 Spider 2.0-Lite 数据集上,ReFoRCE 的执行准确率分别达到 31.26 和 30.35,显著超越其他方法,如 Spider-Agent 在相同数据集上得分仅约 23。多数据库适应性强:能支持多种 SQL dialect,在跨数据库任务 Spider 2.0-Lite 中表现出良好的适应性,尽管提示主要针对 Snowflake dialect,但仍能有效处理其他方言的情况。复杂情况处理能力优:有效处理嵌套列和复杂数据类型,在处理复杂数据库结构和查询要求时更具优势,解决了现有方法在这些方面的不足。

总结一下:大模型时代 Text-to-SQL 特点

随着基于 LLM 技术的发展,RAG / Agent 等方法也广泛应用于 Text-to-SQL 领域,大模型时代发展出如下特点:

平台化

提高兼容性,便于接入其他产品,生产环境下,不同产品 schema 定义不一样,甚至用的数据库都不一样,比如:mysql / postgressql / nosql ...,就要求具有平台的兼容特点。埋个伏笔,实际产业界会引入专门的数据产品,数据产品负责接入不同源的实际数据表,采用 Text-to-GraphQL / NL-to-GraphQL 来调用数据湖的数据,有兴趣可以留言评论区,安排一期专门内容。

插件化提高扩展性,便于功能扩展,如:提供记忆功能,缓存用户问题,提高响应速度和优化精度;提供 tools 调用功能,用于返回数据的后处理(LLM的数据计算能力,一直是限制产业试用的短板);提供结果渲染功能,生成表格,图片,报告
自我进化

评测 -> 反馈 -> 优化,形成闭环,不断自动提高准确性

成本控制

大模型调用按照 token 数量算钱,本地部署也需要占用算力资源,因此如何优化 prompt template,降低成本,也是必须考虑的因素

来源:正正杂说

相关推荐