小白也会SQL:大模型改变交互方式(上)

news2025/1/22 5:15:02

在人工智能与自然语言处理交汇点,有一种技术正悄然改变与数据交互的方式——将日常语言转化为精准SQL查询。这一“text-to-sql”转换任务,使非专业人士也能轻松驾驭复杂的数据库操作,极大地拓宽了数据应用的边界。

然而,现有前沿方法往往依赖于封闭源代码的大型语言模型,它们虽然功能强大,却伴随着模型透明度缺失、数据隐私风险增大以及高昂推理成本等难题。有没有既开放、高效又安全的替代方案呢?鲁班模锤今天带来的论文《CodeS: Towards Building Open-source Language Models for Text-to-SQL》正在尝试破局。

课题背景

Text-to-sql的任务是指将用户的自然语言的提问(文本)转化成能在数据库上执行的结构化查询查询语言(SQL)。下图为对某一 “银行金融”数据库提出自然语言的问题,再转化为数据库查询语言(SQL)的过程。这个过程使得不熟悉SQL或数据库结构的用户也能够使用自然语言与数据库交互。

依赖部分现有的大模型也能实施,例如闭源的大语言模型 DIN-SQL(基于GPT-4)、SQL-PaLM(基于PaLM-2)或是C3(基于GPT-3.5)。尽管这些模型在Text-to-sql性能上表现出色,但也可能存在以下问题:

  1. 闭源模型隐藏了落地的具体架构以及训练/推理细节,阻碍了针对特定应用的持续开发。(这里突然想起来最近有位大佬说某大厂坚持闭源,回头另文点评

  2. 通过API调用这些云端模型可能会带来数据隐私风险,因为必须将数据发送给模型提供商。

  3. 大多数闭源模型具有大量参数(例如基于GPT-3.5则有175B个参数),导致显著的推理开销,通常反映在调用API的花销上

综上所述,研究者推出了专为SQL生成而设计的开源语言模型CodeS。其特点是体量小,与ChatGPT和GPT-4比小10-100倍,而性能上却可以比肩SOTA。

知识补充:SOTA是“State of the Art”的缩写,这个术语通常用于描述某个领域或技术中当前最先进的成果或最高水平的性能。

基座模型StarCoder

StarCoder 和 StarCoderBase 是针对代码的大语言模型 (代码 LLM),模型基于 GitHub 上的许可数据训练而得,训练数据中包括 80 多种编程语言、Git 提交、GitHub 问题和 Jupyter notebook。与 LLaMA 类似,基于 1 万亿个词元训练了一个约15B参数的模型。此外还针对一个35B词元的Python 数据集对 StarCoderBase 模型进行了微调,从而获得了一个称之为 StarCoder 的新模型。当然这个系列有1B/3B/7B/15B四种规模的基座模型。

CodeS结构拆解

首先A阶段为了提高现有语言模型的SQL生成和自然语言理解能力,研究人员采集了新语料库,该语料库由来自不同来源的11GB SQL相关数据、6GB NL-to-code(自然语言转代码)数据和4.5 GB NL相关数据集组成。基于StarCoder,采用该语料库进行增量预训练,并获得预训练的语言模型CodeS(StarCoder按照上文而言拥有1B、3B、7B和15B 4种规模)。

紧接着来到了B阶段,研究人员提出一种全面的数据库提示构建方法来生成高质量的数据库提示。该策略主要包含模式过滤器和值检索器。模式过滤器是根据给定的问题消除不相关的表和列。值检索器经过定制可以提取与问题相符的潜在有用的数据库值。 除了表名和列名之外,还合并了各种元数据,包括数据类型、注释、代表性列值以及主键和外键的信息。 如此为文本到SQL的转化提供更加真实而且丰富的上下文。

这个时候来到了C阶段,毕竟不同的客户拥有不同的业务数据库,但是又无法提供足够多的适配样本。因此研究人员提出了一种双向数据增强方法,为新应用场景自动化的生成大量新语料(提问和对应的SQL语句)。 那么如何操作呢?在文本-SQL方向的语料方面,从现实的业务场景入手需要人工标记一些数据项,再交由GPT-3.5模拟生成进行语料库扩展。而在SQL-文本方向的语料方面则需要研究人员从现有的文本-SQL的基准中提炼模板,然后用新的业务数据库填充模板,然后使用 GPT-3.5 来自动的精炼语料。 这种双向策略创建了最小人力标注投入,但是能够构建一个强大和好用的训练集。

若有着丰富的训练数据,CodeS出现的D阶段就可以执行,利用SFT进行模型训练(后续会解释,这里可以理解为对于大模型的部分参数进行微调)。

相反,若训练数据有限,那么只能使用不改变模型参数的In-Context学习(阶段E),只能提供一些文本到sql的演示,在不微调模型的情况下利用大模型的学习和模仿能力快速给出答案。

在这两种模式种,Incremental pre-traning(阶段A)和Database prompt construction(阶段B)都是其基石,而在SFT策略模式中还需要Bi-directional augmentation for new domain adaptation(阶段C)的辅助。下篇文章将开启具体组件的详细解读。

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

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

相关文章

Hello, GPT-4o!

2024年5月13日,OpenAI 在官网正式发布了最新的旗舰模型 GPT-4o 它是一个 多模态模型,可以实时推理音频、视频和文本。 * 发布会完整版视频回顾:https://www.youtube.com/watch?vDQacCB9tDaw GPT-4o(“o”代表“omni”&#xff0c…

【JavaSE】反射机制-基础概述

Catalog JavaSE-反射机制-基础概述1. 应用场景2. 优点3. 缺点4. Class类解析5. 获取Class类实例的方式6. 反射机制是什么7. 反射机制原理图(老韩)8. 具体应用 JavaSE-反射机制-基础概述 1. 应用场景 常见的如下: 当获取到一个未知类型但是知…

错误、调试和测试

在程序运行过程中,总会遇到各种各样的错误。 有的错误是程序编写有问题造成的,比如本来应该输出整数结果输出了字符串,这种错误我们通常称之为bug,bug是必须修复的。 有的错误是用户输入造成的,比如让用户输入email地…

万亿国债即将发行,普通人能分一杯羹吗?信任为何提前亮起红灯?

财政部最新公告揭示:《2024年国债发行计划》正式出炉,涵盖一系列长期至超长期限的国债,涵盖20年、30年及50年期限。这一消息瞬间点燃了市场的讨论热情,激发了民众对于国家债务投资的兴趣与疑虑。 一、超长国债,你准备好…

春秋云镜 CVE-2023-52064

靶标介绍: Wuzhicms v4.1.0 被发现存在一个 SQL 注入漏洞,该漏洞通过位于/core/admin/copyfrom.php 的 $keywords 参数触发。 开启靶场: 打开靶场链接,如上图所示 开始实验: 1、通过安装Wuzhicms的知后台登录链接&a…

【OceanBase诊断调优】—— 备份恢复如何定位 NFS 服务异常

当备份、归档出现异常时,我们应该首先排除备份介质、网络是否正常,本文讲述如何通过系统表和日志来定位 NFS 服务异常。 适用版本 OceanBase 数据库所有版本。 如何查看备份归档异常? 查看备份归档状态表,MAX_NEXT_TIME 应与当…

树莓派5安装使用

文章目录 树莓派(Raspberry Pi)一、树莓派1、介绍2、构造3、信息 二、系统搭建1、硬件准备2、烧录系统2.1、下载[烧录软件](https://www.raspberrypi.com/software/) Raspberry Pi Imager2.2、下载[镜像](https://www.raspberrypi.com/software/operatin…

GO语言核心30讲 实战与应用 (io包,bufio包,os包,网络服务,http,性能分析)

原站地址:Go语言核心36讲_Golang_Go语言-极客时间 一、io包中的接口和工具 1. strings.Builder、strings.Reader 和 bytes.Buffer 这些类型实现了 io 包的很多接口,目的是什么? 是为了提高不同程序实体之间的互操作性。 程序实体是指比如网…

给app引导页说goodbye吧,皮之不存,毛将焉附。

有几个原因导致大部分创业者选择不开发独立的移动应用程序(App): 成本和资源:开发和维护一个独立的移动应用程序需要投入大量的时间、资金和人力资源。对于创业公司来说,他们可能没有足够的资源来支持这样的开发和维护…

jumpserver接入ldap

ldap部署 基本安装和人员导入 1.CentOS7安装配置OpenLDAP与phpLDAPadmin (koomu.cn) 2.https://koomu.cn/centos7-install-openldap-server-and-phpldapadmin/ https://senmer.github.io/zh/posts/tech/ldap/openldap%E5%AE%89%E8%A3%85%E5%92%8C%E4%BD%BF%E7%94%A8/#%e4%b8%…

【上海生物发酵展精选展商】三门峡市高瑞生物技术有限公司

三门峡市高瑞生物技术有限公司注册成立于2017年2月23日,经营范围是微生物培养基原材料制造、销售。2017年度因场地搬迁、异地重建,公司由“三门峡市高山生物制品有限公司”更名为“三门峡市高瑞生物技术有限公司”。 该公司具有20余年丰富经验的微生物培…

杨校老师项目之基于SpringBoot的驾校预约课程管理系统

1.获取代码: 有偿获取:mryang511688 2.技术栈 后端 SpringBoot MySQL MyBatis Redis 前端 html、css、Javascript、Jquery 3.开发环境 JDK1.8、Maven3.5.4、MySQL5.7、Redis5.0.5、IntelliJ IDEA 4.内置功能 Springboot的项目,代码简…

React渲染流程

在 React 渲染分为两个阶段,Render 和 Commit,Render 是修改 React 组件的状态,把需要更新的组件标记为待更新,在 Commit 阶段将待更新的组件进行渲染并最终更新到浏览器的 Dom 树中。 Render 阶段是可以并执行操作的&#xff0c…

创龙教仪联合武汉纺织大学机械工程与自动化学院DSP实验室建设案例

原文链接:http://985.so/9n8h7 1►院校简介 西安邮电大学是一所以工为主,以信息科学技术为特色,工、管、理、经、文、法、艺多学科协调发展的普通高等学校,是我国特别是西北地区信息产业和现代邮政业人才培养、科学研究的重要基地…

Alembic 的使用(配合一款免费云数据库MemfireDB)

已经使用 Go 开发好一段时间了,最近因为工作原因又重操旧业搞起了 Python,基于 FastAPI 进行接口开发,然后去找了一下相关的脚手架,发现这其中挺多都用到了 Alembic,之前没使用过,于是学习了一下&#xff0…

MySQL创建存储过程函数(2)

DDL CREATE TABLE student (id int(11) NOT NULL AUTO_INCREMENT COMMENT 学号,createDate datetime DEFAULT NULL,userName varchar(20) DEFAULT NULL,pwd varchar(36) DEFAULT NULL,phone varchar(11) DEFAULT NULL,age tinyint(3) DEFAULT NULL,sex char(2) DEFAULT NULL,i…

STM32时钟系统和时钟树

目录 STM32时钟系统 认识时钟树 什么是时钟 认识时钟树(F407) 配置系统时钟 系统时钟配置步骤 外设时钟使能和失能 sys_stm32_clock_init函数(F4) 时钟配置一般步骤 System文件夹_时钟系统工作原理 System文件夹介绍 Sys文件介绍 Delay文件介绍 Systic工作原理 S…

Ps 滤镜:干画笔

Ps菜单:滤镜/滤镜库/艺术效果/干画笔 Filter Gallery/Artistic/Dry Brush 干画笔 Dry Brush滤镜用于模拟使用干画笔技术(介于油彩和水彩之间)绘制的效果。此滤镜特别适用于为图像添加粗糙而富有表现力的笔触效果,同时减少细节&…

计算机发展史故事【17】

任天堂崛起 七十年代美国雅达利公司开创一个高科技的电脑游戏业。无独有偶,一家专营电脑游戏机的日本任天堂公司,自八十年代初期把它的家庭电脑游戏机(FC)投放市场后,不平静的世界被再一次激起轩然大波。这个小小的日本…

测缝计测量的是实际缝宽吗?

在土木工程中,测缝计作为一种重要的监测工具,广泛应用于桥梁、隧道、大坝等大型结构中,用以测量和监控结构接缝或裂缝的实际宽度变化。然而,有些人可能会产生疑问:测缝计测量的是实际缝宽吗?本文将对这一问题进行深入…