酷克数据发布HD-SQL-LLaMA模型,开启数据分析“人人可及”新时代

随着行业数字化进入深水区,企业的关注点正在不断从“数字”价值转向“数智”价值。然而,传统数据分析的操作门槛与时间成本成为了掣肘数据价值释放的阻力。常规的数据分析流程复杂冗长,需要数据库管理员设计数据模型,数据工程师进行ETL处理,再由数据分析师编写SQL查询进行分析,耗时耗力,同时欠缺足够的业务灵活度。

面对这一挑战,业界也在不断探索解决方案,无论是库函数的封装、API的应用、还是各类图形化界面的出现,都是对流程中各个环节的不断简化。然而,大语言模型的广泛应用提供了一种端到端服务的可能性,凭借崭新的交互体验,为企业对内与对外的业务场景带来了大量的新机遇。数据库管理着高价值的结构化数据,成为了探索数据分析智能化的绝佳起点。

HD-SQL-LLaMA:更准确的Text2SQL垂类模型

众所周知,当面临具体特定场景时,通用模型的准确率、精确率和召回率有限,直接使用效果不佳。为了提升模型效果,降低幻觉产生的潜在风险,对基座模型进行微调生成垂类模型成为了一个必选项目。近日,业界领先的云数仓厂商酷克数据发布了专门用于从问题描述生成SQL的大语言模型HD-SQL-LLaMA。该模型依托酷克数据自研云数仓产品HashData和下一代数据科学与AI开发工具HashML,基于知名的开源语言模型LLaMA2,使用大量高质量的中英文Text2SQL训练数据进行微调而来。在推理过程中,通过在Prompt中引入与查询相关数据库表的Schema信息,进一步提升了从文本描述生成SQL的精准度。

图1: Text2SQL模型微调及交互式数据查询分析应用

为保证微调数据的多样性,团队选取了WikiSQL, Spider, sql-create-context, Bird等在内的多个开源数据集,数据涵盖众多行业领域。除此之外,团队还收集整理了大量自有数据,通过数据清洗、正确性验证、数据采样等处理过程得到最终的微调训练数据。

{"data_id": "train_eng_000034","question": "Which teams had more than 3 eliminations?","answer": "SELECT team\nFROM elimination\nGROUP BY team\nHAVING COUNT(*) > 3","context": ["CREATE TABLE elimination (elimination_id text, wrestler_id text, team text, eliminated_by text, elimination_move text, time text)","CREATE TABLE wrestler (wrestler_id number, name text, reign text, days_held text, location text, event text)"]
}
{"data_id": "train_chn_000188","question": "每门课程有多少注册学生?列出课程名称及其注册学生人数?","answer": "SELECT T3.course_name,\n       COUNT(*)\nFROM students AS T1\nJOIN student_course_registrations AS T2 ON T1.student_id = T2.student_id\nJOIN courses AS T3 ON T2.course_id = T3.course_id\nGROUP BY T2.course_id","context": ["CREATE TABLE students (student_id VARCHAR)","CREATE TABLE courses (course_name VARCHAR, course_id VARCHAR)","CREATE TABLE student_course_registrations (course_id VARCHAR, student_id VARCHAR)",]
}

图2:微调样例数据

为了对模型效果进行客观评估,团队参考了CSpider的SQL难度评级方法,构造了一个具备多样性的评估数据集,评估样本涵盖从简单(easy)、中等(medium)、困难(hard)到极难(extra)4个等级。该评价方法主要根据SQL语句中出现关键字(如WHERE、GROUP BY、ORDER BY、 HAVING、UNION、INTERSECT等)的类别和数量对SQL语句的难度进行分级。

{"question":"What are the different names of the colleges involved in the tryout in alphabetical order?","answer":"SELECT DISTINCT cname\nFROM tryout\nORDER BY cname","hardness":"easy"
}
{"question":"What are the vocal types used in song 'Le Pop'?","answer":"SELECT type\nFROM vocals AS T1\nJOIN songs AS T2 ON T1.songid = T2.songid\nWHERE title = \"Le Pop\"","hardness":"medium"
}
{"question":"Which clubs have one or more members whose advisor is '1121'?","answer":"SELECT DISTINCT t1.clubname\nFROM club AS t1\nJOIN member_of_club AS t2 ON t1.clubid = t2.clubid\nJOIN student AS t3 ON t2.stuid = t3.stuid\nWHERE t3.advisor = 1121","hardness":"hard"
}
{"question":"How many faculty members did the university that conferred the most degrees in 2002 have?","answer":"SELECT T2.faculty\nFROM campuses AS T1\nJOIN faculty AS T2 ON T1.id = t2.campus\nJOIN degrees AS T3 ON T1.id = t3.campus\nAND t2.year = t3.year\nWHERE t2.year = 2002\nORDER BY t3.degrees DESC\nLIMIT 1","hardness":"extra"
}

图3:SQL难度分级样例数据

图4:评估数据集难度分级占比

为了验证生成SQL的正确性,团队针对每个评估样本构造了一个由若干数据表构成的数据库,每张数据表都包含若干条数据记录。对于每个评估样本,分别执行Ground-Truth SQL和生成的SQL,通过检验生成SQL的可执行度和比对查询结果的一致性,判断生成SQL的正确性,最终统计整个评估集的准确率。评估结果显示,HD-SQL-LLaMA2在不同难度的评估样本集上均表现良好,13B模型准确率接近82%,34B模型准确率超过88%,展现了该模型强大的零样本泛化能力和商业化应用潜力。

表1:Text2SQL难度分级评估结果

与需要大规模计算资源的千亿级参数模型不同,HD-SQL-LLaMA2模型更轻量化,可以部署在单个消费级GPU上进行实时高效推理。这不仅降低了企业使用成本,也使其可以部署于私有环境中,有效保护了企业敏感数据的安全性,满足合规要求。同时,基于HashML提供的AI开发能力,HD-SQL-LLaMA2还支持根据企业数据特点进行快速的本地微调和升级,提供了一个灵活的定制化解决方案。

ChatData:更便捷的对话式数据查询与分析应用

为了帮助客户快速便捷地将这一模型应用于实际业务,酷克数据还研发了ChatData:基于自然语言的交互式数据分析智能应用。

ChatData通过自然语言对话的方式,自动将用户提出的问题转化为SQL查询,使数据库访问和数据分析成为一件尤其简单的事情。用户无需掌握SQL语法,只需用中文或英文提出自己的查询需求,ChatData将自动转换为SQL语句,在后端数据库中检索并返回结果,同时还支持基于自然语言交互的方式对查询结果可视化。这为广大的业务团队提供了简单直观地查询数据的新途径。

图5:中英文对话式数据查询与可视化

结语

HD-SQL-LLaMA2基于大语言模型强大的语言理解和生成能力实现了更精准的Text2SQL,降低了数据分析的工作量,极大地提高了企业大数据团队的工作效率,使得用户能够将宝贵时间投入到更多的商业价值创造中。

ChatData的出现,进一步简化了整个数据分析操作,降低了数据分析的技术门槛。用户只需使用自然语言描述问题,就可以获取所需的信息与结论。这将使得企业内更多的业务团队能够参与到数据驱动的业务决策中,提高整个组织的协同效率和决策准确性,同时大幅缓解数据工程团队的工作负载。在技术创新力量推动下,数据分析正在步入“人人可及”的新时代。

在这个数据赋能商业的时代,酷克数据将继续致力于自主创新的技术和产品,服务助力企业的数智化转型。我们坚信科技进步必将造福人类,让世界变得更加智能与美好。

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

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

相关文章

STP生成树协议详解

一、STP作用 如果链路断开或节点故障,那么互联的设备就无法正常通信了,这类网络问题叫做单点故障。没有备份的链路或节点,出现故障会直接断网。如果要提供 724 小时不间断的服务,那就需要在网络中提前部署冗余。避免出现单点故障…

Python爬虫零基础入门教程

文章目录: 一:Python基础 二:爬虫须知 1.流程 2.遵守规则 三:HTTP请求和响应 1.相关定义 2.HTTP请求响应 2.1 完整的HTTP请求 2.2 完整的HTTP响应 3.Requests库 四:HTML 1.HTML网页结构 2.常用标签 3.…

前端包管理器的工具,npm和Yarn以及pnpm是最常用的

目录 前言npm (Node Package Manager)npm简介npm的优势npm常用指令 YarnYarn简介Yarn的优势Yarn常用指令 pnpmpnpm简介pnpm的优势pnpm常用指令 npm、Yarn和pnpm这三种前端包管理工具的对比性能比较特点和用例比较选择依据 👍 点赞,你的认可是我创作的动力…

快速入门python机器学习

文章目录 机器学习概述1.1 人工智能概述机器学习与人工智能、深度学习1.1.2 机器学习、深度学习能做些什么 1.2 什么是机器学习1.2.1 定义1.2.2 解释1.2.3 数据集构成 1.3 机器学习算法分类1.3.1 总结1.3.2 练习1.3.3 机器学习算法分类 1.4 机器学习开发流程(了解&a…

Java封装JDBC通用工具类

Java封装通用工具类 一、JDBC配置类二、配置文件三、通用工具类 一、JDBC配置类 import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.sql.*; import java.util.Properties;public …

centos安装supervisor和配置进程

使用 yum 安装 Supervisor: sudo yum install epel-release sudo yum install supervisor启动 Supervisor 服务并设置开机启动: sudo systemctl start supervisord sudo systemctl enable supervisord3.验证 Supervisor 是否已成功安装并正在运行 sud…

ubuntu基本操作

好记性不如烂笔头,把一些常用的ubuntu文件操作记录下来 1. 把一个文件夹下的所有文件复制到另一个文件夹下 sudo cp -r source_dir/* aim_dir/ 2. 克隆一个文件夹: 创建一个文件夹dir2,复制dir1中的所有文件到dir2中 cp -r dir1 dir2 3. 命令行查看…

ECharta雷达图 样式调整

预期效果&#xff1a; <template><div id"operationalRisk-radar-chart" class"h-290 w-385"></div> </template><script>export default {name: radarChart} </script> <script setup>import { onMounted, r…

Arduino驱动BMM150三轴地磁传感器(惯性测量传感器篇)

目录 1、传感器特性 2、硬件原理图 3、控制器和传感器连线图 4、驱动程序

day39

今日内容概要 数据库数据的演变史 数据存储的发展史 数据库的本质 数据库的分类 SQL与nosql的介绍 MySQL的介绍 MySQL的下载与安装 MySQL服务的制作 MySQL如何登录 管理员密码的修改以及忘记密码怎么办 基本的SQL语句(针对库、表、记录的增删改查) 数据库的演变史 …

【数据库】SQL 检索数据

检索数据 基本检索数据检索单个列检索多个列检索所有列检索不同的值限制检索数量 注释规则排序检索数据单列排序多列排序按列位置排序指定排序方向 基本检索数据 检索单个列 从 Products 表中检索一个名为 prod_name 的列&#xff1b; SELECT prod_name FROM Products;该 s…

CleanMyMac X4.14.4最新免费版本功能介绍

最新版CleanMyMac X 让您的Mac焕然一新&#xff0c;时刻保持安全&#xff01;CleanMyMac X是一款专业的Mac清理软件&#xff0c;可智能清理mac磁盘垃圾和多余语言安装包&#xff0c;快速释放电脑内存&#xff0c;轻松管理和升级Mac上的应用。同时CleanMyMac X可以强力卸载恶意软…

GEO生信数据挖掘(八)富集分析(GO 、KEGG、 GSEA 打包带走)

第六节&#xff0c;我们使用结核病基因数据&#xff0c;做了一个数据预处理的实操案例。例子中结核类型&#xff0c;包括结核&#xff0c;潜隐进展&#xff0c;对照和潜隐&#xff0c;四个类别。第七节延续上个数据&#xff0c;进行了差异分析。 本节对差异基因进行富集分析。 …

大咖云集,智慧碰撞|第 18 届 CLK 大会完整议程揭晓(内附报名通道)

自 2006 年以来&#xff0c;在国内 Linux 技术爱好者和行业公司的鼎力支持下&#xff0c;中国 Linux 内核开发者大会已走过 17个年头&#xff0c;是中国 Linux 内核领域最具影响力的峰会之一。今年的中国内核开发者大会依然秉承历届理念&#xff0c;以“自由、协作、创新”为理…

Kotlin协程简介

文章目录 官网地址1 来源2 出现原因3 特点1&#xff09; 轻量2&#xff09;内存泄漏更少3&#xff09;内置取消支持4&#xff09;Jetpack 集成 4 依赖项信息5 在后台线程中执行6 使用协程确保主线程安全7 处理异常 官网地址 https://developer.android.google.cn/kotlin/corou…

挑战分布式架构,解密Java在业务场景下的高效应用面试题目介绍常用的通信方式有哪些请分别说明各自的特点和适用场景

本人详解 作者:王文峰,参加过 CSDN 2020年度博客之星,《Java王大师王天师》作者 公众号:山峯草堂,非技术多篇文章,专注于天道酬勤的 Java 开发问题、中国国学、传统文化和代码爱好者的程序人生,期待你的关注和支持!本人外号:神秘小峯 转载说明:务必注明来源(注明:…

Python-Python高阶技巧:闭包、装饰器、设计模式、多线程、网络编程、正则表达式、递归

版本说明 当前版本号[20231018]。 版本修改说明20231018初版 目录 文章目录 版本说明目录Python高阶技巧闭包简单闭包修改外部函数变量的值实现以下atm取钱的闭包实现了闭包注意事项 装饰器装饰器的一般写法&#xff08;闭包写法&#xff09;装饰器的语法糖写法 设计模式单例…

x86 架构的机载计算机,它来了!

Allspark 2-x86采用Intel酷睿11代或12代CPU&#xff0c;x86架构&#xff0c;适用于无人机等机器人运行SLAM、VIO等复杂逻辑和高精度的机器视觉任务。预装 Ubuntu 22.04或Windows 11&#xff0c;满足多种使用场景。 市面上现有的一些NUC产品&#xff0c;不仅没有针对移动机器人使…

【数据结构】线性表(三)循环链表的各种操作(创建、插入、查找、删除、修改、遍历打印、释放内存空间)

目录 线性表的定义及其基本操作&#xff08;顺序表插入、删除、查找、修改&#xff09; 四、线性表的链接存储结构 1. 单链表 2. 循环链表 a. 循环链表节点结构体 b. 创建新节点 c. 在循环链表末尾插入节点 d. 删除循环链表中指定值的节点 e. 在循环链表中查找指定值的…

Java 中用的是值传递还是引用传递?

值传递&#xff08;Pass by Value&#xff09;和引用传递&#xff08;Pass by Reference&#xff09;是两种参数传递的方式。 值传递是指在调用函数或方法时&#xff0c;将参数的值复制给一个临时变量然后传递给函数或方法。在函数或方法内部&#xff0c;对参数进行修改不会影…