Text2SQL之Vanna优化

文章目录

  • 前言
  • 一、优化方向
  • 二、干就完了
    • 一次性生成多个Question-SQL对
    • 先生成一个问题,再根据DDL和业务数据生成SQL
  • 总结


前言

前阵子写了篇Text2SQL的简单介绍,发现其也是RAG只会,写下了Text2SQL之不装了,我也是RAG

最近也一直在做Text2SQL的优化,于是把自己的一些心得,总结于这篇文章。

一、优化方向

既然本质是RAG,那顺着RAG的优化方向走,准没错。

  • 文档增强:
    • 对文档进行摘要:先对摘要进行检索,如果有必要,才深入文档细节
    • 对文档进行QA生成:同时检索文档和生成的QA
    • 数据清洗,去除文档中存在的特殊字符或不相关信息
  • 元数据过滤:例如对query和文档分类,对应类别的query只查找对应类别的文档,能有效提升检索效率和召回率
  • 混合检索:语义检索 + 关键词检索
  • query改写:让LLM对query改写,在嵌入空间中,看似相同的两个问题并不一定很相似
    • 同义词替换:例如,将“LLM”、“大语言模型”和“大模型”标准化为通用术语。
    • 缩写替换
  • query分解:将复杂query分解成多个子问题,逐个进行匹配,然后汇总文档,生成答案
  • HyDE: 用LLM直接生成query的回答,将生成的答案与query 拼接,再进行RAG
  • 文档分块优化:
    • 内容重叠分块&

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

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

相关文章

QSpinBox、QDoubleSpinBox 的使用,进制转换

实现目的 使用QSpinBox、QDoubleSpinBox 实现数量*单价,float结果显示 使用QSpinBox、QDoubleSpinBox 实现进制的转换 拟实现界面 布局 垂直布局、groupBox中为栅格布局 控件进制设置属性 displayIntegerBase 16代表16进制 #include "spinboxexample.h" #…

SpringMVC的控制器方法的一些要点

一、控制器类的注解 1、SpringMVC的控制器类,一般用注解Controller来注释,代表该类是控制器类。 2、如果整个控制器都采用响应体数据返回,那么可以用组合注解 RestController。 二、控制方法的注解 (一)映射请求路径 1、RequestMapping注解…

Algorithm Data Management Cube(ADM-Cube)本科生招募

Algorithm & Data Management Cube(算法与数据管理研究小组,A&DM-Cube, http://www.adm-cube.online/ )是隶属于天津大学管理与经济学部信息管理与管理科学系/复杂管理系统实验室的研究团队。为了进一步加强团队建设,推动…

ezButton-按钮库

ezButton-按钮库 使用按钮时,初学者通常会遇到以下麻烦: Floating input issue 浮动输入问题Chattering issue 抖动问题Detecting the pressed and released events 检测按下和释放的事件Managing timestamp when debouncing for multiple buttons 在多…

cocosCreator获取手机剪切板内容

最近游戏中需要加上复制粘贴的功能,这个时候就涉及到安卓原生层的东西。步骤如下: 公开文章地址,见个人博客 复制功能 ts代码 调用代码,在需要复制的地方调用即可。 public static copyToClipBoard(str) {if (sys.platform == sys.Platform.ANDROID) {PlatformMgr.callN…

工业设计初学者手册——第四部分:制造工艺

工业设计初学者手册 文章目录 工业设计初学者手册第四部分:制造工艺7. 常见制造工艺介绍7.1 传统制造工艺7.2 现代制造工艺 8. 材料选择与应用8.1 材料的基本分类与特性8.2 材料选择的原则8.3 环保材料的应用 总结 第四部分:制造工艺 7. 常见制造工艺介…

Laravel 中 使用模型作为标志

我最近一直在尝试的一件事是使用模型作为标志,并取得了积极的成果。当你需要以某种方式标记你的一个模型时,你可以在表中添加一个布尔值来指示某种状态。例如,假设你向应用程序添加了一个停用用户的功能。你可以使用如下迁移来更改用户表&…

社团管理系统

用Spring Boot、Vue.js和MyBatis实现社团管理系统 温馨提示:项目源代码获取方式见文末 摘要 本文探讨了如何使用Spring Boot作为后端框架,Vue.js作为前端框架,以及MyBatis作为数据库持久层框架,构建一个社团管理系统。该系统旨…

在Ubuntu上配置和设置防火墙UFW

在本文我们学习如何在Ubuntu上配置和设置UFW(防火墙),UFW代表“不复杂的防火墙”,它充当IPTABLES的接口,从而简化了防火墙的配置过程,对于防火墙来说,这是非常困难的。初学者学习和配置防火墙规…

从 PERL 脚本获取输出并将其加载到 MySQL 数据库的解决方案

1、问题背景 有一段 Python 脚本可以调用 Perl 脚本来解析文件,解析后,Perl 脚本会生成一个输出,这个输出将被加载到 Python 脚本中的 MySQL 数据库中。Python 脚本如下: pipe subprocess.Popen(["perl", "./pa…

JSR303校验

校验的需求 前端请求后端接口传输参数,需要校验参数。 在controller中需要校验参数的合法性,包括:必填项校验、数据格式校验等在service中需要校验业务规则,比如:课程已经审核过了,所以提交失败。 servi…

【UML用户指南】-17-对基本行为建模-交互

目录 1、消息的可视化表示 2、对象与角色 3、链和连接件 4、消息 5、序列 6、创建、修改和撤销 7、表示法 8、常用建模技术 8.1、对控制流建模 8.1.1、基于时间的控制流 8.1.2、基于结构的控制流 在任何有意义的系统中,对象都不是孤立存在的,…

Gitlab SSH无法连接但是HTTP可以连接

项目场景: Gitlab在docker中布置好之后测试,发现SSH无法连接但是HTTP可以连接 提示:这是一个无效的源路径 问题描述 http可以识别为git项目,而ssh无法识别成git项目。 原因分析: 三种猜想 端口号被占用 尝试查看…

韩兴国/姜勇团队在《Trends in Plant Science》发表植物根系氮素再分配的观点文章!

氮素是陆地生态系统中的关键限制性营养元素,通过生物固氮和土壤氮供应通常远低高等植物的氮需求。当土壤氮素供应无法充分满足植物茎叶生长需求时,植物会通过自身营养器官(如根或根茎)再分配来实现氮的内部循环和再利用。尽管植物…

SaaS产品运营|一文讲清楚为什么ToB产品更适合采用PLG模式?

在数字化时代,ToB(面向企业)产品市场的竞争愈发激烈。为了在市场中脱颖而出,许多企业开始转向PLG(产品驱动增长)模式。这种模式以产品为核心,通过不断优化产品体验来驱动用户增长和业务发展。本…

RAG未来的出路

总有人喊RAG已死,至少看目前不现实。 持这个观点的人,大多是Long context派,老实说,这派人绝大多数不甚理解长上下文的技术实现点,就觉得反正context越长,越牛B,有点饭圈化 ,当然我并不否认长上下文对提升理解力的一些帮助,就是没大家想的那么牛B而已(说个数据,达到…

2024年ERP软件公司排名前十!

在当今的商业环境中,ERP(企业资源规划)系统已成为企业日常运营不可或缺的一部分。然而,如何在这众多的ERP系统软件中筛选出最适合自己的一款,成为许多企业共同面临的挑战。今天,我将带大家盘点erp软件公司的…

李沐:用随机梯度下降来优化人生!

大侠幸会,在下全网同名「算法金」 0 基础转 AI 上岸,多个算法赛 Top 「日更万日,让更多人享受智能乐趣」 今天我们来聊聊达叔 6 大核心算法之 —— 优化 算法。吴恩达:机器学习的六个核心算法! 梯度下降优化算法是机器…

【初体验 threejs】【学习】【笔记】hello,正方体 3!

前言 为了满足工作需求,我已着手学习 Three.js,并决定详细记录这一学习过程。在此旅程中,如果出现理解偏差或有其他更佳的学习方法,请大家不吝赐教,在评论区给予指正或分享您的宝贵建议,我将不胜感激。 项…

【Python支持多种数据类型及案列】

Python 数据类型教学 Python支持多种数据类型,每种类型有其特定的用途和特点。以下是Python中常见的数据类型及其示例。 1. 基本数据类型 整数(int) 整数是没有小数部分的数字。例如:-2, -1, 0, 1, 2 a 10 b -5 print(type(a)…