三篇文章的内容分别是1提出了一种开源的智能数据库对话系统、系统化方法、训练和推理策略;2提出了一个开源的Python库DB-GPT;3对各种开源大模型进行了系统的Text-to-SQL基准测试
DB-GPT:通过私有大型语言模型增强数据库交互
英文:DB-GPT: Empowering Database Interactions with Private Large Language Models
文章主体部分:2系统设计、3模型和训练、4实验
2系统设计
多源RAG:知识构建(多维embedding、神经编码器、倒排索引和图索引)、知识检索(嵌入检索-基于余弦相似度)、学习嵌入和检索(编码器-Multilingual-E5-base )、自适应情景学习ICL和LLM生成
部署推理、多代理策略、DB插件都说的很笼统
3模型和训练
Text-to-SQL微调的模型架构、数据和训练
RAG编码器的模型架构、数据和训练
部署和运行:知识库和web UI、部署机器配置
4实验
Text-to-SQL评估
Spider数据集,评价指标execution accuracy(EX),经过微调后Qwen-7B/14B/Baichuan2-7B/13B优于原大模型
RAG评估
两个问答数据集:DatabaseQA 和 FinancialQA。前者构成:三个代表性数据库系统 1,000 个公开教程 PDF;后者构成:从研究机构抽样 1,000 个文档。对于每个数据集,构建了 100 个用于测试的问题,由专家标注难度。
评价:三个专家对每个响应进行评分,评分范围为 0-5
测试模型:Qwen、Baichuan、ChatGLM-Turbo、ChatGPT3.5
测试结果:ChatGPT-3.5 是 DatabaseQA 数据集上的赢家,而 ChatGLM2-7b 在 FinancialQA 数据集上实现了最佳性能
SMMF 评估
测试模型: Qwen 和 Baichuan
指标:第一个标记延迟 (FTL)、推理延迟 (IL)、吞吐量THROUGHPUT
结论:提高并发用户数量,对比HF和vLLM 框架,vLLM性能优
论文亮点:提出了一种开源的智能数据库对话系统、系统化方法、训练和推理策略
DB-GPT演示:基于大语言模型的下一代数据交互系统
通用数据交互系统的三个挑战
1.设计支持数据库交互的多代理框架
2.支持灵活排列多代理的声明性表示语言
3.私有LLM数据交互的设计
解决方案
1.提出了DB-GPT中的多代理框架,自动化了数据库交互任务,用户输入目标,自动拆解任务并执行
2.提出了一种名为代理工作流表达语言(AWEL)的声明性语言,用几行代码或在界面中拖放即可构建代理工作流
3.提出了面向服务的多模型管理框架(SMMF),支持部署私有LLM
多代理框架:
案例-->构建销售报告并从至少三个不同维度分析用户订单
实现:首先调用一个计划器(PlanManager)来生成针对任务量身定制的四步策略,然后,三名专门负责创建数据分析图表的代理(DataScientist)继续生成销售报告,另一个代理(Reporter)专门负责聚合这些图表,收集、组织并在前端界面上呈现
与MetaGPT和AutoGen相比,DB-GPT的多代理框架将其代理之间的整个通信历史存档在本地存储系统中,从而显著提高了代理生成内容的可靠性
协议层:采用大数据处理中的Apache Airflow概念,有向无环图编排工作流程,将每个代理建模为一个不同的操作员,使用AWEL使其能够支持各种任务,包括流处理、批处理和异步操作
DB-GPT Hub的组件:用于封装文本到SQL的微调过程,可使用开源大模型及Text-to-SQL数据对来优化对应的Text-to-SQL LLM
其他内容与项目文档基本一致
论文亮点:提出了一个开源的Python库DB-GPT
DB GPT Hub:面向由大语言模型支持的开放式Text-to-SQL基准测试
背景:本质上讲,文本到SQL可以被描述为一个序列到序列的建模任务,数据库模式和自然语言问题被转换为顺序输入,而所需的SQL查询作为顺序输出目标。该领域最新进展涉及使用LLM通过上下文学习(ICL)技术生成准确的SQL查询
主要内容:2.背景问题公式化、3.基准设计和计算资源、4.实验
2背景问题公式化
通用设置
数据库信息 D= {S,Kp,Kf} ,其中S是表Tk的集合, S ={T1,T2,...Ts...}.主键Kp,外键Kf。
每个表Tk有表名Nk,列名 cj 和列数据类型 tj,Tk = {Nk,(ck1,tk1),(ck2,tk2)...}
输入:自然语言问题q、数据库信息D
输出:目标sql语句s
建模:考虑到数据可能来自不同的数据库,将数据组成一个三元组M={(qi,si,Di)},i为问题的索引
基于提示和微调的设置
包括:零样本/少样本提示和微调、微调、参数高效微调-PEST
零样本/少样本提示和微调:目标是最大化从LLM生成正确SQL si的概率:
微调:将具有文本的模型调整为SQL数据集,从输入序列生成SQL,其中包含一组序列化的输入qi和相应的SQL输出si对。微调的目的是尽量减少经验损失
参数高效微调-PEST:仅微调少量(额外)模型参数而不是所有模型参数,使大型预训练模型能够有效地适应各种下游应用。两种最常用的技术是LoRA(冻结预训练,模型权重和在每个变换器块中注入可训练层-秩分解矩阵)及其量化版本QLoRA
下述实验均采用LoRA和QLoRA
3.基准设计和计算资源
数据集:Spider、BIRD
查询-响应对 构建:使用的文本响应提示(TRP)格式进行训练、开发和测试,TRP包含查询语言、对应的sql语句,提示符开头添加了表结构(schema),即将模式和数据库描述作为指令集成到提示中
指标:精确集匹配精度(EM)和执行精度(EX),EM测量匹配的SQL关键字,EX比较执行输出,越高越好,主要使用EX
基础模型:GLM、Qwen、Baichuan、Llama
统一设置:最大上下文长度2048、512个token用于生成响应、温度0
基准测试流程
4.实验
Spider/BIRD数据集EX指标:经过调优的CodeLlama系列,其基础模型已经针对代码生成和填充进行了优化,在这两个数据集上都表现出了比其他竞争对手更好的性能;PEST调优后大模型的性能明显优于基础模型
论文亮点:对各种开源大模型进行了系统的基准测试
参考资料
DB-GPT: Empowering Database Interactions with Private Large Language Models
Demonstration of DB-GPT: Next Generation Data Interaction System Empowered by Large Language Models
DB-GPT-Hub: Towards Open Benchmarking Text-to-SQL Empowered by Large Language Models