RB-SQL:利用检索LLM框架处理大型数据库和复杂多表查询的NL2SQL

news2024/11/15 19:56:07

NL2SQL的任务是将自然语言问题转换为SQL查询,以便从数据库中获取答案。现有LLM来指导SQL生成的方法在处理大型数据库和复杂多表查询时存在挑战,尤其是在处理冗余信息和提高提示工程效率方面。

(a) 利用大型语言模型(LLM)解决文本到SQL任务的一个示例。(b) DPR模型和提出的RB模型的图表。与DPR模型相比,RB模型将输入从文档扩展到其他数据类型(即表格、列、SQL框架)。

图片

为了解决上述问题,提出了RB-SQL框架,包含三个模块:

  • Table-Retriever:检索与问题最相关的表格。

  • Column-Retriever:在检索到的表格中进一步检索相关列。

  • SQL-Skeleton-Retriever:搜索具有相似SQL骨架的少量示例,并将SQL骨架引入示例组织,以增强上下文学习过程。

RB-SQL框架。表格检索器从数据库中筛选表格,列检索器进一步筛选列。SQL框架检索器用于选择相似的少量示例,并将SQL框架添加到示例组织中。

图片

RB-SQL框架利用密集型段落检索(Dense Passage Retrieval, DPR)模型来检索相关表格、列和示例,以构建有效的提示工程。此外,框架还引入了SQL骨架作为示例组织中的中间步骤,以指导正确的SQL生成过程。

(a) 表格检索器的工作流程。该模块计算问题与表格之间的相似度,并检索与问题高度相关的表格。(b) 表格检索器的框架。使用BERT分别对问题和表格进行编码,并使用基于MaxSim的后期交互来计算相似度得分。

图片

(a) 列检索器的工作流程。该模块检索与问题高度相关的列。(b) 列检索器的框架。

图片

(a) SQL骨架检索器的工作流程。 (b) SQL骨架检索器的框架。

图片

通过在公共数据集BIRD和Spider上的实验,结果表明RB-SQL模型在性能上优于几个竞争基线:GPT-4、DIN-SQL、DAIL-SQL

图片

图片

还进行了消融研究,证明了RB-SQL框架中所有模块对于性能提升都起到了重要作用。

图片

​​

https://arxiv.org/pdf/2407.08273RB-SQL: A Retrieval-based LLM Framework for Text-to-SQLprompt:https://anonymous.4open.science/r/Anonymize-A5E7/prompt_case.txt

 当前论文已经被作者撤回,不清楚为什么

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

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

相关文章

ctfshow-web入门-sql注入(web249-web253)nosql 注入

目录 1、web249 2、web250 3、web251 4、wen252 5、web253 1、web249 开始nosql,flag在flag中 $user $memcache->get($id); 使用 Memcache 类的 get 方法从缓存中获取数据,$id 是传入的键,用于从缓存中获取与该键对应的值,结果存储…

明基相机sd卡格式化还能恢复数据吗?可以这样操作

随着数字摄影的普及,相机SD卡已成为我们记录生活点滴的重要载体。然而,不小心将SD卡格式化,导致珍贵照片和视频瞬间消失,无疑是摄影爱好者的一大噩梦。面对这样的突发情况,许多朋友可能会感到无助与绝望。但实际上&…

【计算机组成原理】概述+数制与编码

目录 计算机组成原理概述计算机基本组成计算机系统的层次结构计算机性能指标 数制与编码进位计数制及其相互转换数据的编码与表示校验码 计算机组成原理概述 计算机基本组成 运算器、控制器、存储器、输入输出设备 运算器:完成数据的暂存、变换、算术运算和逻辑…

OpenCV结构分析与形状描述符(23)确定一个点是否位于多边形内的函数pointPolygonTest()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 进行点在轮廓内的测试。 该函数确定点是在轮廓内、轮廓外,还是位于一条边上(或与顶点重合)。它返回正值&…

【可变参模板】基类参数包的展开

一、基类参数包的展开 1.1基类参数包的展开 C C C是一个支持多继承的语言,因此继承的类也可以是一个基类的参数包 注意继承的语法是 p u b l i c : c l a s s . . . public: class ... public:class...,需要补充 . . . ... ...作为基类参数包的标志。…

Linux 驱动编写框架 并编译导入开发板

向内核新加文件&#xff1a;例如 demo1.c 1. 创建并编辑新的文件 #include <linux/init.h> #include <linux/kernel.h> #include <linux/types.h> #include <linux/fs.h> #include <linux/module.h> #include <linux/kdev_t.h> #include …

Qt控制开发板的LED

Qt控制开发板的LED 使用开发板的IO接口进行控制是嵌入式中非常重要的一点&#xff0c;就像冯诺依曼原理说的一样&#xff0c;一个计算机最起码要有输入输出吧&#xff0c;我们有了信息的接收和处理&#xff0c;那我们就要有输出。 我们在开发板上一般都是使用开发板的GPIO接口…

vue3使用provide和inject传递异步请求数据子组件接收不到

前言 一般接口返回的格式是数组或对象&#xff0c;使用reactive定义共享变量 父组件传递 const data reactive([])// 使用settimout模拟接口返回 setTimeout(() > {// 将接口返回的数据赋值给变量Object.assign(data, [{ id: 10000 }]) }, 3000);provide(shareData, dat…

02请求响应(简单参数)

一、操作目的 前端通过post/get请求&#xff0c;传递给后端简单的数据&#xff0c;后端接收后在控制台打印出来&#xff0c;并将结果返回给前端页面展示出来。&#xff08;这里我们用postman来模拟前端页面&#xff0c;而非真实的通过编写前端代码&#xff0c;通过浏览器来展示…

Docker数据挂载本地目录

docker内的数据映射可以不通过数据卷&#xff0c;直接映射到本地的目录。下面将以mysql容器示例&#xff0c;完成容器的数据映射。 注意&#xff1a;每一个不同的镜像&#xff0c;将来创建容器后内部有哪些目录可以挂载&#xff0c;可以参考DockerHubDocker Hub Container Ima…

求树上任意两个点的距离lca

前言&#xff1a;一开始看到这个题目的时候&#xff0c;感觉就和lca有关&#xff0c;但是没有想到具体的公式 d d e p [ x ] d e p [ y ] − 2 ∗ d e p [ l c a ( x , y ) ] d dep[x] dep[y] - 2*dep[lca(x,y)] ddep[x]dep[y]−2∗dep[lca(x,y)] 并且我们这个题目还是一个…

[数据集][目标检测]烟叶病害检测数据集VOC+YOLO格式612张3类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;612 标注数量(xml文件个数)&#xff1a;612 标注数量(txt文件个数)&#xff1a;612 标注类别…

【重学 MySQL】二十六、内连接和外连接

【重学 MySQL】二十六、内连接和外连接 内连接&#xff08;INNER JOIN&#xff09;外连接&#xff08;OUTER JOIN&#xff09;总结 在MySQL中&#xff0c;内连接和外连接是两种常见的表连接方式&#xff0c;它们在处理多个表之间的关系时发挥着重要作用。 内连接&#xff08;I…

光器件 -- 拉曼放大器(原理、分类和应用)

拉曼工作原理 拉曼放大器基于受激拉曼散射效应&#xff08;SRS&#xff0c;Stimulated Raman Scattering&#xff09;&#xff0c;以传输光纤作为增益介质&#xff0c;将拉曼泵浦功率转移到C波段信号上进行放大。受激拉曼散射基本原理为&#xff1a;如果一个弱信号光与一个强泵…

流动性质押协议 Drop:DeFi 新一轮革新

近年来&#xff0c;去中心化金融&#xff08;DeFi&#xff09;领域经历了迅猛的增长和创新&#xff0c;而其中一项重要的发展便是流动性质押协议的兴起。在传统的区块链网络中&#xff0c;用户为了参与网络的验证过程和维护网络安全&#xff0c;通常需要将加密资产锁定在区块链…

Java集合(八股)

这里写目录标题 Collection 接口List 接口ArrayList 简述 1. ArrayList 和 LinkedList 区别&#xff1f;⭐️⭐️⭐️⭐️2. ArrayList 和 Array 的区别&#xff1f;⭐️⭐️⭐️ArrayList 和 Vector 区别&#xff1f;⭐️⭐️ArrayList 的扩容机制&#xff1f;⭐️⭐️⭐️ Qu…

Lesson08---string类(3)

1.find_first_of string里面的find成员函数就是找一个字符串然后返回第一个字符 find_first_of函数看个例子就很快就能明白 它返回的下标是参数的其中任意一个字符的下标通过以上操作就可以把原来的那一整个字符串替换成自己想要的字符 第二个参数其实就是一个缺省参数默认从0…

多种传感器输出的模拟量转换

目录 内部温度传感器与参照电压 传感器 光敏电阻 热敏电阻 反射式红外 对射式红外 驱动代码 Sensor.h Sensor.c AD.h AD.c main.c 内部温度传感器与参照电压 STM32有一个内部的温度传感器&#xff0c;可以用来测量CPU及周围的温度。 该温度传感器在内部和ADCx_I…

IBM中国研发中心撤出:挑战与机遇并存

IBM中国研发中心撤出&#xff1a;挑战与机遇并存 引言 近日&#xff0c;IBM宣布撤出在中国的两大研发中心的消息&#xff0c;引起了广泛关注。这一举动不仅对IBM自身的全球布局产生了影响&#xff0c;也在一定程度上反映了跨国公司在中国市场策略的调整。本文将探讨这一事件背…

5.9 使用LBA 的模式来读取磁盘

注意&#xff1a; 如果再 cmake 中想要 make clean 的话&#xff0c; 直接 删除 build 目录就可以了。 1 也是说 是 MBR还是 LBA 硬盘是可以控制的。 LBA 没有 磁盘&#xff0c; 柱面的概念。 2 对于寄存器的说明。 什么是 CHS呢&#xff1f; 就是机械磁盘。 这里只找到了 LB…