对比开源大语言模型的自然语言生成SQL能力

news2024/12/24 8:13:57

背景

NL-to-SQL(自然语言到结构化查询语言)任务是自然语言处理(NLP)领域的一个难题。 它涉及将自然语言问题转换为 SQL 查询,然后可以针对关系数据库执行该查询来回答问题。 该任务是 NLP 中的一个专门子领域,与更广泛的自然语言理解 (NLU) 领域以及自然语言与数据库之间的接口 (NLIDB) 密切相关。

随着 GPT-4、Llama2 和 Falcon 等大型语言模型 (LLM) 开发的最新进展,业界和学术界对 NL 到 SQL 的关注已经转向利用这些 LLM 为现实世界生成 SQL 用例。 这将非常强大,因为它允许非技术用户直接从数据中找到见解。

在 Dataherald,我们构建了一个开源自然语言到 SQL 引擎,可与不同的 LLM 一起使用,尽管我们在企业部署中使用 GPT-4-32K。 当前 NL 到 SQL(例如 DAIL-SQL、C3 和 DIN-SQL)的最先进研究也使用闭源 LLM,例如 GPT-4 和 GPT-3.5-turbo。 这些模型既昂贵又引发了企业的数据隐私问题。 因此,我们开始研究 Llama2 和 Mistral 等开源LLMS如何与 OpenAI 的模型相比较。 以下是我们的结果。

开源的大语言模型

在这篇博文中,我们将探讨各个系列的开源 LLM(大型语言模型)的功能。 这里分享的信息来自最近的三篇论文,即大型语言模型之战、大型语言模型支持的文本到SQL、文本到SQL的分解上下文学习以及我们自己进行的内部测试 使用 Google Colab A100 GPU。
涉及的模型列表如下:

  • Llama-7B
  • Llama-33B
  • MISTRAL-7B
  • Alpaca-7B
  • Llama-2-CHAT-7B
    Llama-2-CHAT-13B
    Vicuna-7B
    Vicuna-33B
    BARD-LAMDA
    BARD-PALM2
    GPT-3.5-turbo
    GPT-4
    其中一些模型,如 Llama、Llama2 和 MISTRAL ,是类似于 GPT-3.5-Turbo 的预训练模型,经过了监督微调和对比微调。 其他模型已经经历了对齐过程,其中涉及额外的指令调整,并且本质上与预训练的模型共享相同的架构。 特别是,Vicuna、Guanaco 和 Alpaca 是在特定数据集上训练的 Llama 模型的对齐版本。

Zero-shot NL-to-SQL 性能

在本节中,我们将评估开源LLM的零样本性能,并将其与更大的闭源对应项目进行对比。 零样本性能是指LLM仅根据给定问题和问题引用的相应数据库模式生成 SQL 查询的能力,而无需提示中的任何少量样本示例。
为了确保公平比较,我们对评估中使用的所有LLM保持一致的提示。 用于报告零样本性能的特定提示基于 Rajkumar 等人提出的模板,与其他提示格式相比,该模板以其卓越的性能而闻名。

我们根据执行准确性评估这些模型的性能,其中包括执行模型生成的 SQL 查询和数据库上的参考 SQL 查询,然后比较它们的结果。 结果是通过在Spider数据集的开发集上使用LLM获得的。

结果如下:
在这里插入图片描述

要点

要点很明确:

  • 闭源模型(GPT 模型和 BARD)在 NL 到 SQL 方面的性能显着优于开源模型。 可以肯定的是,这是因为他们接受了更多的参数训练。
  • 与之前的模型相比,采用额外的监督微调步骤的模型表现出显着的性能改进。 例如,Alpaca-7B 模型比其前身 Llama-7B 改进了近16%。 这强调了使用相同的底层架构进行微调以实现增强性能的潜力。
  • 与前辈相比,Mistral-7B 和 Llama2 等较新的开源模型表现出更优越的性能,并且正在缩小与闭源模型的差距。

对于 NL 到 SQL 工作负载,虽然较新的开源模型正在缩小与 OpenAI 模型的差距,但在开箱即用的准确性方面仍然存在很大差距。 然而,即使在相同的架构上,针对特定数据集的微调似乎也可以大大提高准确性。

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

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

相关文章

C++补充内容--语法篇

这里写目录标题 语法其他语法函数的存储类函数参数默认值格式默认参数位置重载函数的默认参数 指针名与正常指针的自增自减以及解引用与的优先级问题指针的赋值、加减数字、加减指针二维数组中的一些指针辨析输出调用字符指针时 会将该指针以及之后的元素全部输出二维数组未完全…

【力扣题解】P530-二叉搜索树的最小绝对差-Java题解

👨‍💻博客主页:花无缺 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 花无缺 原创 收录于专栏 【力扣题解】 文章目录 【力扣题解】P530-二叉搜索树的最小绝对差-Java题解🌏题目描述💡题解&…

【性能测试入门】详解客户端性能测试和服务器端性能测试!

一:客户端性能测试和服务器端性能测试 客户端性能测试和服务器端性能测试是两个不同但相关的概念: 客户端性能测试: - 测试应用程序客户端(如Web浏览器、移动应用等)的性能,例如加载时间,响应时间等。 - 测试在不同系统配置(CPU、内存、网络等)下客户端的运行性…

在Gitee上维护Erpnext源

在Gitee上维护Erpnext源 官方的frappe和erpnext地址: GitHub - frappe/frappe: Low code web framework for real world applications, in Python and Javascript GitHub - frappe/erpnext: Free and Open Source Enterprise Resource Planning (ERP) 1, 仓库地址输入frappe的官…

cissp 第10章 : 物理安全要求

10.1 站点与设施设计的安全原则 物理控制是安全防护的第一条防线,而人员是最后一道防线。 10.1.1 安全设施计划 安全设施计划通过关键路径分析完成。 关键路径分析用于找出关键应用、流程、运营以及所有必要支撑元索间的关系。 技术融合指的是各种技术、解决方案…

适用于生物行业的生信云平台

随着基因检测技术的不断发展,生物信息云平台在基因检测行业的应用越来越广泛。生物信息云平台是一种基于云计算的技术,可以将基因检测数据存储在云端,并通过数据分析、挖掘等技术手段,对基因数据进行处理、分析和解读。 这种技术的…

16、Kubernetes核心技术 - 节点选择器、亲和和反亲和

目录 一、概述 二、节点名称 - nodeName 二、节点选择器 - nodeSelector 三、节点亲和性和反亲和性 3.1、亲和性和反亲和性 3.2、节点硬亲和性 3.3、节点软亲和性 3.4、节点反亲和性 3.5、注意点 四、Pod亲和性和反亲和性 4.1、亲和性和反亲和性 4.2、Pod亲和性/反…

实战干货:用 Python 批量下载百度图片!

为了做一个图像分类的小项目,需要制作自己的数据集。要想制作数据集,就得从网上下载大量的图片,再统一处理。 这时,一张张的保存下载,就显得很繁琐。那么,有没有一种方法可以把搜索到的图片直接下载到本地电…

python实现圆圈烟花_附完整源码【第21篇—python过新年】

文章目录 前言效果图(动态)完整代码代码讲解总结寄语 前言 烟花是一种庆祝、欢庆或庆典活动中常见的美丽表现,它们以多彩的光芒和炫丽的形状为人们带来欢乐和惊喜。在这个项目中,我们将使用Python编程语言创建一个简单而有趣的程…

使用printJS使网页打印成PDF、网页html结合printJS导出为pdf

先放几个参考链接 感谢! Vue使用PrintJS实现页面打印功能_vue print.js 设置打印pdf的大小-CSDN博客 前台导出pdf经验汇总 (html2canvas.js和浏览器自带的打印功能-print.js)以及后台一些导出pdf的方法_iqc后台管理系统怎么做到导出pdf-CSD…

第34期 | GPTSecurity周报

GPTSecurity是一个涵盖了前沿学术研究和实践经验分享的社区,集成了生成预训练Transformer(GPT)、人工智能生成内容(AIGC)以及大型语言模型(LLM)等安全领域应用的知识。在这里,您可以…

x-cmd pkg | doggo - 现代化的 DNS 客户端

目录 简介首次用户快速实验指南功能特点类似工具与竞品进一步探索 简介 doggo 是一个由 Karan Sharma 于 2020 年使用 Go 语言开发的 DNS 客户端。它类似于 dig 命令,但旨在以现代化、简洁和可读的格式输出 DNS 查询结果。 首次用户快速实验指南 使用 x doggo 即可…

【AI视野·今日Robot 机器人论文速览 第六十八期】Tue, 2 Jan 2024

AI视野今日CS.Robotics 机器人学论文速览 Tue, 2 Jan 2024 Totally 12 papers 👉上期速览✈更多精彩请移步主页 Daily Robotics Papers Edge Computing based Human-Robot Cognitive Fusion: A Medical Case Study in the Autism Spectrum Disorder Therapy Author…

SpringBoot+RocketMQ集群(dledger)部署完整学习笔记

文章目录 前言一、单台集群部署二、多台集群部署1.修改配置2.dashboard修改 三、整合springboot1.引入pom和修改yml2.编写消费者3.编写生产者4.测试效果 总结 前言 RocketMQ集群方式有好几种 官网地址 https://rocketmq.apache.org/zh/docs/4.x/deployment/01deploy 2m-2s-asy…

CISP-DSG和CDGA该如何选择?

同样是数据治理,CDGA证书和CISP-DSG证书,它们之间有什么区别和各自的优势呢❓ 1️⃣CISP-DSG CISP-DSG证书聚焦于信息an全领域,特别guan注数据an全治理。 国际知名zi询机构Gartner用“风暴之眼”比喻“数据an全治理”,&#x1f44…

kubernetes(k8s)集群常用指令

基础控制指令 # 查看对应资源: 状态 $ kubectl get <SOURCE_NAME> -n <NAMESPACE> -o wide 查看默认命名空间的pod [rootk8s-master ~]# kubectl get pod NAME READY STATUS RESTARTS AGE nginx 1/1 Running 0 3h53m查看所有pod [roo…

【C++】STL 算法 ③ ( 函数对象中存储状态 | 函数对象作为参数传递时值传递问题 | for_each 算法的 函数对象 参数是值传递 )

文章目录 一、函数对象中存储状态1、函数对象中存储状态简介2、示例分析 二、函数对象作为参数传递时值传递问题1、for_each 算法的 函数对象 参数是值传递2、代码示例 - for_each 函数的 函数对象 参数在外部不保留状态3、代码示例 - for_each 函数的 函数对象 返回值 一、函数…

【开源项目】WPF 扩展组件 -- Com.Gitusme.Net.Extensiones.Wpf

一、项目简介 Com.Gitusme.Net.Extensiones.Wpf 是一款 Wpf 扩展组件。基于.Net Core 3.1 开发&#xff0c;当前最新 1.0.1 版本。包含 核心扩展库&#xff08;Com.Gitusme.Net.Extensiones.Core&#xff09;、视频渲染&#xff08;Com.Gitusme.Media.Video&#xff09;、串口…

苹果Mac图像修图软件Photomator和Pixelmator Pro 有什么区别?

同为一个团队设计的Mac修图软件Photomator和Pixelmator Pro有哪些区别呢&#xff1f;有哪些不一样的功能&#xff1f; Photomator和Pixelmator Pro区别如下&#xff1a; 1、用途不同 Photomator 和 Pixelmator Pro 是两个功能强大的应用程序&#xff0c;具有两个不同的用途。…

从Eumetsat批量下载哨兵数据等各种数据

从Eumetsat批量下载哨兵数据等各种数据 那些最好的程序员不是为了得到更高的薪水或者得到公众的仰慕而编程&#xff0c;他们只是觉得这是一件有趣的事情&#xff01; 批量下载Sentinel数据脚本2023 从Eumetsat批量下载哨兵数据等各种数据&#x1f33f;前言&#x1f340;脚本构成…