写点什么

DB-GPT: Github 两周 2.6k star 数据库领域的 GPT 来了~

作者:csunny
  • 2023-05-31
    四川
  • 本文字数:3004 字

    阅读完需:约 10 分钟

DB-GPT:  Github 两周2.6k star  数据库领域的GPT来了~

项目地址: https://github.com/csunny/DB-GPT



效果展示



插件模式自动执行

什么是 DB-GPT?

随着大模型的发布迭代,大模型变得越来越智能,在使用大模型的过程当中,遇到极大的数据安全与隐私挑战。在利用大模型能力的过程中我们的私密数据跟环境需要掌握自己的手里,完全可控,避免任何的数据隐私泄露以及安全风险。基于此,我们发起了 DB-GPT 项目,为所有以数据库为基础的场景,构建一套完整的私有大模型解决方案。 此方案因为支持本地部署,所以不仅仅可以应用于独立私有环境,而且还可以根据业务模块独立部署隔离,让大模型的能力绝对私有、安全、可控。


DB-GPT 是一个开源的以数据库为基础的 GPT 实验项目,使用本地化的 GPT 大模型与您的数据和环境进行交互,无数据泄露风险,100% 私密,100% 安全。

特性一览

目前我们已经发布了多种关键的特性,这里一一列举展示一下当前发布的能力。

  • SQL 语言能力 

  • SQL 生成

  • SQL 诊断

  • 私域问答与数据处理 

  • 数据库知识问答

  • 数据处理

  • 插件模型 

  • 支持自定义插件执行任务,原生支持 Auto-GPT 插件。如: 

  • SQL 自动执行,获取查询结果

    自动爬取学习知识

  • 知识库统一向量存储/索引 

  • 非结构化数据支持包括 PDF、MarkDown、CSV、WebURL

  • 多模型管理

  • 目前已支持 ChatGLM-6b、vicuna-13b、vicuna-7b、guanaco-33b 等

效果展示

示例通过 RTX 4090 GPU 演示,YouTube 地址(无加速版本)



SQL 生成

1. 生成建表语句

2. 生成可运行 SQL

3. 自动分析执行结果

知识问答

1. 基于默认知识库的对话

2. 自己新增知识库



3. 自动爬取知识学习

TODO,  ON THE WAY~

架构方案

DB-GPT 基于FastChat构建大模型运行环境,并提供 vicuna 作为基础的大语言模型。此外,我们通过 langchain 提供私域知识库问答能力。同时我们支持插件模式, 在设计上原生支持 Auto-GPT 插件。


整个 DB-GPT 的架构,如下图所示:



核心能力主要有以下几个部分。


  1. 知识库能力:支持私域知识库问答能力

  2. 大模型管理能力:基于 FastChat 提供一个大模型的运营环境。

  3. 统一的数据向量化存储与索引:提供一种统一的方式来存储和索引各种数据类型。

  4. 连接模块:用于连接不同的模块和数据源,实现数据的流转和交互。

  5. Agent 与插件:提供 Agent 和插件机制,使得用户可以自定义并增强系统的行为。

  6. Prompt 自动生成与优化:自动化生成高质量的 Prompt,并进行优化,提高系统的响应效率。

  7. 多端产品界面:支持多种不同的客户端产品,例如 Web、移动应用和桌面应用等。


下面对每个模块也做一些简要的介绍:

知识库能力

知识库作为当前用户需求最大的场景,我们原生支持知识库的构建与处理。同时在本项目当中,也提供了多种知识库的管理策略。 如: 1. 默认内置知识库 2. 自定义新增知识库 3. 通过插件能力自抓取构建知识库等多种使用场景。 用户只需要整理好知识文档,即可用我们现有的能力构建大模型所需要的知识库能力。

大模型管理能力

在底层大模型接入中,设计了开放的接口,支持对接多种大模型。同时对于接入模型的效果,我们有非常严格的把控与评审机制。对大模型能力上与 ChatGPT 对比,在准确率上需要满足 85%以上的能力对齐。我们用更高的标准筛选模型,是期望在用户使用过程中,可以省去前面繁琐的测试评估环节。

统一的数据向量化存储与索引

为了方便对知识向量化之后的管理,我们内置了多种向量存储引擎,从基于内存的 Chroma 到分布式的 Milvus, 可以根据自己的场景需求,选择不同的存储引擎,整个知识向量存储是 AI 能力增强的基石,向量作为人与大语言模型交互的中间语言,在本项目中的作用非常重要。

连接模块

为了能够更方便的与用户的私有环境进行交互,项目设计了连接模块,连接模块可以支持连接到数据库、Excel、知识库等等多种环境当中,实现信息与数据交互。

Agent 与插件

Agent 与插件能力是大模型能否自动化的核心,在本的项目中,原生支持插件模式,大模型可以自动化完成目标。 同时为了充分发挥社区的优势,本项目中所用的插件原生支持 Auto-GPT 插件生态,即 Auto-GPT 的插件可以直接在我们的项目中运行。

Prompt 自动生成与优化

Prompt 是与大模型交互过程中非常重要的部分,一定程度上 Prompt 决定了大模型生成答案的质量与准确性,在本的项目中,我们会根据用户输入与使用场景,自动优化对应的 Prompt,让用户使用大语言模型变得更简单、更高效。

多端产品界面

TODO: 在终端展示上,我们将提供多端产品界面。包括 PC、手机、命令行、slack 等多种模式。

安装教程

硬件说明

因为我们的项目在效果上具备 ChatGPT 85%以上的能力,因此对硬件有一定的要求。 但总体来说,我们在消费级的显卡上即可完成项目的部署使用,具体部署的硬件说明如下:


GPU型号 |  显存大小 |   性能-------|----------|------------------------------TRX4090| 24G      |可以流畅的进行对话推理,无卡顿TRX3090| 24G      |可以流畅进行对话推理,有卡顿感,但好与V100V100   | 16G      |可以进行对话推理,有明显卡顿
复制代码

DB-GPT 安装

本项目依赖一个本地的 MySQL 数据库服务,你需要本地安装,推荐直接使用 Docker 安装。


docker run --name=mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=aa12345678 -dit mysql:latest
复制代码


向量数据库我们默认使用的是 Chroma 内存数据库,所以无需特殊安装,如果有需要连接其他的同学,可以按照我们的教程进行安装配置。整个 DB-GPT 的安装过程,我们使用的是 miniconda3 的虚拟环境。创建虚拟环境,并安装 python 依赖包


wget https://repo.anaconda.com/miniconda/Miniconda3-py310_23.3.1-0-Linux-x86_64.shsh Miniconda3-py310_23.3.1-0-Linux-x86_64.shsource /root/.bashrc
复制代码


安装完 conda 之后,创建虚拟环境,并安装 python 依赖包


conda create -n dbgpt_env python=3.10conda activate dbgpt_envpip install -r requirements.txt
复制代码


运行大模型

安装完以上所有依赖,我们即可启动我们的服务。以此需要启动 Server 端与 Web 客户端,命令分别如下:关于基础模型, 可以根据vicuna合成教程进行合成。如果此步有困难的同学,也可以直接使用Hugging Face上的模型进行替代. 替代模型


# Server 端python pilot/server/llmserver.py
# Web客户端python pilot/server/webserver.py
复制代码


注意: 在启动 Webserver 之前, 需要修改 pilot/configs/model_config.py 文件中的 VICUNA_MODEL_SERVER = "http://127.0.0.1:8000", 将地址设置为你的服务器地址。

使用说明

我们提供了 gradio 的用户界面,可以通过我们的用户界面使用 DB-GPT, 同时关于我们项目相关的一些代码跟原理介绍,我们也准备了以下几篇参考文章。


  1. 大模型实战系列(1) —— 强强联合Langchain-Vicuna应用实战

  2. 大模型实战系列(2) —— DB-GPT 阿里云部署指南

  3. 大模型实战系列(3) —— DB-GPT插件模型原理与使用

致谢(Acknowledgement)

我们的工作是建立在大量的开源项目基础之上,特别感谢以下开源项目:


FastChat  提供 chat 服务


Vicuna    作为基础模型


Langchain 工具链


Auto-GPT 通用的插件模版


Hugging Face 大模型管理


ChatGLM  基础模型


Chroma  向量存储


Milvus 分布式向量存储


llama-index基于现有知识库进行In-Context Learning来对其进行数据库相关知识的增强。


最后,我们还在发展初期,DB-GPT 也仅仅只是一个用于数据库的复杂且创新的实验项目, 我们的项目也在紧急的开发当中, 会陆续发布一些新的 feature。如在使用当中有任何具体问题, 可以关注我们的项目,并优先在项目下提 issue, 我们会尽力提供帮助,同时也非常欢迎大家参与到项目建设中来,一起做一些微小的改变。


发布于: 29 分钟前阅读数: 6
用户头像

csunny

关注

不会写代码的物理人不是好的DBA 2022-01-04 加入

蚂蚁成都区域数据库负责人、 DB-GPT项目发起人,关注数据库、DevOps、分布式系统、区块链、AI等技术的发展与应用

评论

发布
暂无评论
DB-GPT:  Github 两周2.6k star  数据库领域的GPT来了~_GPT_csunny_InfoQ写作社区