【LLM text2sql】浅看大模型用于text2sql的综述

前言

之前笔者分享了text2sql & LLM & KG的有机结合实现KBQA的问答,
《【LLM & RAG & text2sql】大模型在知识图谱问答上的核心算法详细思路及实践》、
《【开源分享】KBQA核心技术及结合大模型SPARQL查询生成问答实践》。
我们再来看看大模型在text2sql上的一篇综述,大模型的发展,出现了一系列新方法,主要集中在提示工程(prompt engineering)和微调(fine-tuning)上。这篇综述提供了LLMs在Text-to-SQL任务中的全面概述,讨论了基准数据集、提示工程、微调方法和未来的研究方向。

Text2SQL

利用大型语言模型(LLMs)解决文本到SQL任务的方法,主要包括提示工程和微调两大类。

  1. 提示工程

    提示工程通过设计结构化的提示,使LLMs能够理解任务需求并生成相应的SQL查询。提示工程分为三个阶段:预处理、推理和后处理。

    • 预处理:包括问题描述和数据库模式的格式化和布局,以及引入额外的SQL知识或外部知识。问题描述可以采用Openai模板或"Create Table"布局,样本数据可以帮助LLM更好地理解数据库内容。

    • 推理:在接收到用户问题和数据库模式后,生成相应的SQL查询。推理过程可以设计特定的工作流,如Chain-of-Thought和Least-to-Most方法,也可以使用Demonstrations来增强SQL生成能力。

    • 后处理:对生成的SQL进行优化,提高其性能和稳定性。常见的后处理方法包括自校正(Self-Correction)和一致性方法(Self-Consistency和Cross-Consistency)。

  2. 微调

    微调通过在特定任务数据上训练LLMs来提升其性能。微调过程包括数据准备、预训练模型选择、模型微调和模型评估。

    • 数据:可以通过整合现有数据集或构建新数据集来获取训练数据。新数据集可以通过半自动或全自动的方法生成。

    • 预训练模型选择:选择适合的预训练模型进行微调,考虑模型参数规模、预训练语料库和计算能力等因素。

    • 模型微调:采用全量微调和参数高效微调等方法。参数高效微调通过仅微调少量模型参数来提高训练效率。

    • 模型评估:通过综合指标分析、分类分析和基于LLM的分析评估来衡量模型性能。常用的评估指标包括精确集匹配准确率(EM)、执行准确率(EX)、测试集准确率(TS)和有效效率得分(VES)。

参考文献

A Survey on Employing Large Language Models for Text-to-SQL Tasks,https://arxiv.org/pdf/2407.15186v3

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

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

相关文章

Axure RP实战:打造高效图形旋转验证码

Axure RP实战:打造高效图形旋转验证码 在数字产品设计的海洋中,验证码环节往往是用户交互体验的细微之处,却承载着验证用户身份的重要任务。 传统的文本验证码虽然简单直接,但随着用户需求的提高和设计趋势的发展,它…

【人工智能】OpenAI最新发布的GPT-o1模型,和GPT-4o到底哪个更强?最新分析结果就在这里!

在人工智能的快速发展中,OpenAI的每一次新模型发布都引发了广泛的关注与讨论。2023年9月13日,OpenAI正式推出了名为o1的新模型,这一模型不仅是其系列“推理”模型中的首个代表,更是朝着类人人工智能迈进的重要一步。本文将综合分析…

详细分析linux中的MySql跳过密码验证以及Bug(图文)

目录 1.问题所示2. 基本知识3. 解决方法3.1 跳过验证Bug3.2 设定初始密码 1.问题所示 发现密码验证错误,遗失密码 2. 基本知识 停止MySQL服务:sudo systemctl stop mysql 以跳过权限表模式启动MySQL:sudo mysqld_safe --skip-grant-tables …

vulnhub靶机:Holynix: v1

下载 下载地址:https://www.vulnhub.com/entry/holynix-v1,20/ 打开虚拟机 选择下载解压之后的文件打开 新添加一张 NAT 网卡,mac 地址修改如下 00:0c:29:bc:05:de 给原来的桥接网卡,随机生成一个 mac 地址 然后重启虚拟机 信息收集 主…

【C++二分查找 容斥原理】1201. 丑数 III

本文涉及的基础知识点 C二分查找 容斥原理:组合数学汇总 LeetCode1201. 丑数 III 丑数是可以被 a 或 b 或 c 整除的 正整数 。 给你四个整数:n 、a 、b 、c ,请你设计一个算法来找出第 n 个丑数。 示例 1: 输入:n …

单机docker-compose部署minio

单机多副本docker-compose部署minio 简单介绍 如果服务器有限可以单机挂载多硬盘实现多副本容错(生产不推荐) 部署好的文件状态 有两个重要文件 docker-compose.yaml和nginx.conf docker-compose.yaml是docker部署容器的配置信息包括4个minio和1个ng…

HCIA--实验十三:VLAN间通信子接口实验/双单臂路由实验

一、实验内容 1.需求/要求: 将两个单臂路由通过两台交换机连接起来,成为双臂路由,并探讨这么做的原因。实现全网通,让任何一台主机之间都可以通信。 二、实验过程 1.拓扑图: 2.步骤: 1.给PC配置ip地址…

大数据新视界 --大数据大厂之HBase深度探寻:大规模数据存储与查询的卓越方案

💖💖💖亲爱的朋友们,热烈欢迎你们来到 青云交的博客!能与你们在此邂逅,我满心欢喜,深感无比荣幸。在这个瞬息万变的时代,我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

如何将本地项目上传到GitHub(SSH连接)

在个人GitHub中新建项目(远程仓库),添加一个README文件,方便后面验证 记住这个默认分支,我这里是main,你的可能是master或其他 先复制下SSH地址 在项目文件夹中右键打开Git命令行 初始化本地仓库,同时指定默认分支为ma…

OA项目值用户登入首页展示

1.什么是OA 办公自动化(Office Automation,简称OA)是将现代化办公和计算机技术结合起来的一种新型的办公方式。办公自动化没有统一的定义,凡是在传统的办公室中采用各种新技术、新机器、新设备从事办公业务,都属于办公自动化的领域。通过实现办公自动化,或者说实现数字化…

Java 每日一刊(第6期):整数运算

文章目录 前言Java 的整数类型基本的整数运算符整数除法与取模自增与自减运算整数的进制表示整数溢出问题位运算整数的优化技巧类型自动提升(Type Promotion)强制类型转换(Type Casting)本期小知识 在有限的符号中,我们…

web基础之信息泄露

1、目录遍历漏洞 (1)原理:本质是没有过滤用户输入的 ../ 相关的目录跳转符,使得攻击者通过目录跳转符来遍历服务器中的任意文件。 (2)题解: eg:根据提示遍历网页目录信息,会在某一个…

文生视频算法

文生视频 Sora解决问题:解决思路: CogVideoX解决问题:解决思路: Stable Video Diffusion(SVD)解决问题:解决思路: 主流AI视频技术框架: Sora Sora: A Review on Backg…

Vue3 响应式工具函数isRef()、unref()、isReactive()、isReadonly()、isProxy()

isRef() isRef():检查某个值是否为 ref。 isRef函数接收一个参数,即要判断的值。如果该参数是由ref创建的响应式对象,则返回true;否则,返回false。 import { ref, isRef } from vue const normalValue 这是一个普通…

Ajax 揭秘:异步 Web 交互的艺术

Ajax 揭秘:异步 Web 交互的艺术 一 . Ajax 的概述1.1 什么是 Ajax ?1.2 同步和异步的区别1.3 Ajax 的应用场景1.3.1 注册表单的用户名异步校验1.3.2 内容自动补全 二 . Ajax 的交互模型和传统交互模型的区别三 . Ajax 异步请求 axios3.1 axios 介绍3.1.1 使用步骤3…

STM32——看门狗通俗解析

笔者在学习看门狗的视频后,对看门狗仍然是一知半解,后面在实际应用中发现它是一个很好用的检测或者调试工具。所以总结一下笔者作为初学小白对看门狗的理解。 主函数初始化阶段、循环阶段和复位 众所周知,程序的运行一般是这样的&#xff1…

【面试八股总结】Redis持久化

Redis 实现了数据持久化的机制,这个机制会把数据存储到磁盘,这样在 Redis 重启就能够从磁盘中恢复原有的数据。 Redis 共有三种数据持久化的⽅式: AOF 日志:每执行一条写操作命令,就把该命令以追加的方式写入到⼀个文…

【计算机网络】HTTP相关问题与解答

此篇文章内容会不定期更新,仅作为学习过程中的笔记记录 目录 一、HTTP请求和响应报文是怎样的? 1、请求报文 2、响应报文 二、HTTP请求方法有哪些? GET HEAD POST PUT DELETE PATCH OPTIONS TRACE CONNECT 三、GET请求与POST请…

菜单、工具栏 的基本使用

效果 代码 #include "mainwindow.h" #include "ui_mainwindow.h" #include<QToolBar> #include<QDebug> #include<QPushButton>MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow) {ui->setupU…

将一个字符串以三个字符为间隔分别放在三个字符串数组里

要求 请编写函数fun&#xff0c;其功能是:编写函数char *fun(char*s0,char *s1,char *s2,char*s3)&#xff0c; 要求实现: 将s0所指字符串分解成三个字符串&#xff0c;分别存入s1、s2、s3所指内存中。分解的方法是&#xff0c;s1、s2、53从s0中依次顺序每隔3个字符取1例如:s0…