当前位置: 首页 > news >正文

DB-GPT介绍

DB-GPT介绍

  • 引言
  • DB-GPT项目简介
  • DB-GPT架构
  • 关键特性
    • 私域问答&数据处理
    • 多数据源&可视化
    • 自动化微调
    • Multi-Agents&Plugins
    • 多模型支持与管理
    • 隐私安全
    • 支持数据源
  • 子模块
  • DB-GPT-Hub
  • 微调
  • 参考文献

引言

  随着数据量的不断增长和数据分析的需求日益增多,将自然语言文本转化为结构化查询语言(SQL)的能力变得越来越重要。Text to SQL方案是一种将自然语言查询转化为SQL查询的技术,它可以帮助用户更轻松、更高效地从文本中提取所需的信息。
  博主近期在研究text2sql的项目应用,从大模型和传统的深度学习模型两方面入手,未来会持续发布相关文章,本文将介绍Text to SQL的一种基于大模型的方案:DB-GPT。安装与部署可以参考博主这篇文章:部署DB-GPT

DB-GPT项目简介

  DB-GPT项目(项目地址)是在github上发布的,为解决使用大模型和数据库交互的过程中,私密数据以及环境是否能掌握自己的手里,完全自主可控的问题。项目支持为所有以数据库为基础的场景,构建一套完整的私有大模型解决方案。 此方案因为支持本地部署,所以不仅仅可以应用于独立私有环境,而且还可以根据业务模块独立部署隔离,让大模型的能力绝对私有、安全、可控

DB-GPT架构

  DB-GPT基于 FastChat 构建大模型运行环境。此外,项目通过LangChain提供私域知识库问答能力。同时支持插件模式, 在设计上原生支持Auto-GPT插件。

  整个DB-GPT的架构,如下图所示
在这里插入图片描述
RAG:检索式增强生成方法(retrieval-augmented generation)

关键特性

私域问答&数据处理

支持内置、多文件格式上传、插件自抓取等方式自定义构建知识库,对海量结构化,非结构化数据做统一向量存储与检索

多数据源&可视化

支持自然语言与Excel、数据库、数仓等多种数据源交互,并支持分析报告。

自动化微调

围绕大语言模型、Text2SQL数据集、LoRA/QLoRA/Pturning等微调方法构建的自动化微调轻量框架, 让TextSQL微调像流水线一样方便。详见: DB-GPT-Hub

Multi-Agents&Plugins

支持自定义插件执行任务,原生支持Auto-GPT插件模型,Agents协议采用Agent Protocol标准

多模型支持与管理

海量模型支持,包括开源、API代理等几十种大语言模型。如LLaMA/LLaMA2、Baichuan、ChatGLM、文心、通义、智谱等。

支持多种大语言模型, 当前已支持如下模型(列举几个常用):
Vicuna
vicuna-13b-v1.5
LLama2
baichuan2-13b
baichuan-7B
chatglm-6b
chatglm2-6b

隐私安全

通过私有化大模型、代理脱敏等多种技术保障数据的隐私安全。

支持数据源

MySQL
PostgresSQL
Spark
DuckDB
Sqlite
MSSQL
ClickHouse

子模块

DB-GPT-Hub 通过微调来持续提升Text2SQL效果
DB-GPT-Plugins DB-GPT 插件仓库, 兼容Auto-GPT
DB-GPT-Web 多端交互前端界面

DB-GPT-Hub

  DB-GPT-Hub是一个利用LLMs实现Text-to-SQL解析的实验项目,主要包含数据集收集、数据预处理、模型选择与构建和微调权重等步骤,通过这一系列的处理可以在提高Text-to-SQL能力的同时降低模型训练成本,让更多的开发者参与到Text-to-SQL的准确度提升工作当中,最终实现基于数据库的自动问答能力,让用户可以通过自然语言描述完成复杂数据库的查询操作等工作。
  目前项目已经基于多个大模型打通从数据处理、模型SFT训练、预测输出和评估的整个流程,代码在本项目中均可以直接复用。
参考链接:https://zhuanlan.zhihu.com/p/642719916
  博主计划下一篇文章进行微调操作的讲解。

微调

本项目微调不仅能支持QLoRA和LoRA法,还支持deepseed(多卡训练)
QLoRA方法: https://zhuanlan.zhihu.com/p/634516004

参考文献

[1]DB-GPT: 用私有化LLM技术定义数据库下一代交互方式:https://zhuanlan.zhihu.com/p/654452504

相关文章:

  • C++性能优化笔记-6-C++元素的效率差异-7-类型转换
  • 吴恩达《机器学习》4-6->4-7:正规方程
  • MacOS安装homebrew
  • 2023-macOS下安装anaconda,终端自动会出现(base)字样,如何取消
  • k8spod详解其二
  • 1-Docker虚拟化平台技术概述及简介
  • 大数据毕业设计选题推荐-智慧小区大数据平台-Hadoop-Spark-Hive
  • javaee实验:搭建maven+spring boot开发环境,开发“Hello,Spring Boot”应用
  • 栈相关代码
  • [hive]中的字段的数据类型有哪些
  • 关于ROS的网络通讯方式TCP/UDP
  • 68 内网安全-域横向PTHPTKPTT哈希票据传递
  • Redis的持久化机制
  • 如何在苹果Mac系统设置中查看Wi-Fi密码?
  • 阿里云二级域名绑定与宝塔Nginx反向代理配置
  • 【mysql】环境安装、服务启动、密码设置
  • 【node学习】协程
  • Android路由框架AnnoRouter:使用Java接口来定义路由跳转
  • angular学习第一篇-----环境搭建
  • laravel5.5 视图共享数据
  • Mysql5.6主从复制
  • node学习系列之简单文件上传
  • Python socket服务器端、客户端传送信息
  • spring学习第二天
  • Vue全家桶实现一个Web App
  • win10下安装mysql5.7
  • 高程读书笔记 第六章 面向对象程序设计
  • 关于Flux,Vuex,Redux的思考
  • 前端面试之闭包
  • 使用 QuickBI 搭建酷炫可视化分析
  • 项目管理碎碎念系列之一:干系人管理
  • 用Visual Studio开发以太坊智能合约
  • 在Mac OS X上安装 Ruby运行环境
  • 职业生涯 一个六年开发经验的女程序员的心声。
  • ​​快速排序(四)——挖坑法,前后指针法与非递归
  • ​批处理文件中的errorlevel用法
  • $.ajax()
  • (Matalb回归预测)PSO-BP粒子群算法优化BP神经网络的多维回归预测
  • (九)c52学习之旅-定时器
  • (十一)c52学习之旅-动态数码管
  • (一)kafka实战——kafka源码编译启动
  • (自适应手机端)响应式新闻博客知识类pbootcms网站模板 自媒体运营博客网站源码下载
  • ***linux下安装xampp,XAMPP目录结构(阿里云安装xampp)
  • .NET “底层”异步编程模式——异步编程模型(Asynchronous Programming Model,APM)...
  • .NET 8.0 发布到 IIS
  • .NET Core6.0 MVC+layui+SqlSugar 简单增删改查
  • .NET Micro Framework 4.2 beta 源码探析
  • .NET 常见的偏门问题
  • .net 反编译_.net反编译的相关问题
  • .one4-V-XXXXXXXX勒索病毒数据怎么处理|数据解密恢复
  • @Bean注解详解
  • @Conditional注解详解
  • [ Linux 长征路第五篇 ] make/Makefile Linux项目自动化创建工具
  • [120_移动开发Android]008_android开发之Pull操作xml文件
  • [2018/11/18] Java数据结构(2) 简单排序 冒泡排序 选择排序 插入排序