随着大模型的发布迭代,大模型变得越来越智能,在使用大模型的过程当中,遇到极大的数据安全与隐私挑战。在利用大模型能力的过程中我们的私密数据跟环境需要掌握自己的手里,完全可控,避免任何的数据隐私泄露以及安全风险。基于此,我们发起了DB-GPT项目,为所有以数据库为基础的场景,构建一套完整的私有大模型解决方案。 此方案因为支持本地部署,所以不仅仅可以应用于独立私有环境,而且还可以根据业务模块独立部署隔离,让大模型的能力绝对私有、安全、可控。我们的愿景是让围绕数据库构建大模型应用更简单,更方便。
DB-GPT 是一个开源的以数据库为基础的GPT实验项目,使用本地化的GPT大模型与您的数据和环境进行交互,无数据泄露风险,100% 私密
示例通过 RTX 4090 GPU 演示
目前我们已经发布了多种关键的特性,这里一一列举展示一下当前发布的能力。
-
SQL 语言能力
- SQL生成
- SQL诊断
-
私域问答与数据处理
- 知识库管理(目前支持 txt, pdf, md, html, doc, ppt, and url)
- 数据库知识问答
- 数据处理
-
数据库对话
-
Chat2Dashboard
-
插件模型
-
知识库统一向量存储/索引
- 非结构化数据支持包括PDF、MarkDown、CSV、WebURL
-
多模型支持与管理
- 支持多种大语言模型, 当前已支持如下模型:
- meta-llama/Llama-2-7b-chat-hf
- baichuan2-7b/baichuan2-13b
- internlm/internlm-chat-7b
- Qwen/Qwen-7B-Chat/Qwen-14B-Chat
- Vicuna
- BlinkDL/RWKV-4-Raven
- camel-ai/CAMEL-13B-Combined-Data
- databricks/dolly-v2-12b
- FreedomIntelligence/phoenix-inst-chat-7b
- h2oai/h2ogpt-gm-oasst1-en-2048-open-llama-7b
- lcw99/polyglot-ko-12.8b-chang-instruct-chat
- lmsys/fastchat-t5-3b-v1.0
- mosaicml/mpt-7b-chat
- Neutralzz/BiLLa-7B-SFT
- nomic-ai/gpt4all-13b-snoozy
- NousResearch/Nous-Hermes-13b
- openaccess-ai-collective/manticore-13b-chat-pyg
- OpenAssistant/oasst-sft-4-pythia-12b-epoch-3.5
- project-baize/baize-v2-7b
- Salesforce/codet5p-6b
- StabilityAI/stablelm-tuned-alpha-7b
- THUDM/chatglm-6b
- THUDM/chatglm2-6b
- tiiuae/falcon-40b
- timdettmers/guanaco-33b-merged
- togethercomputer/RedPajama-INCITE-7B-Chat
- WizardLM/WizardLM-13B-V1.0
- WizardLM/WizardCoder-15B-V1.0
- baichuan-inc/baichuan-7B
- HuggingFaceH4/starchat-beta
- FlagAlpha/Llama2-Chinese-13b-Chat
- BAAI/AquilaChat-7B
- all models of OpenOrca
- Spicyboros + airoboros 2.2
- VMware's OpenLLaMa OpenInstruct
-
支持在线代理模型
-
支持数据源
DataSource | support | Notes |
---|---|---|
MySQL | Yes | |
PostgresSQL | Yes | |
Spark | Yes | |
DuckDB | Yes | |
Sqlite | Yes | |
MSSQL | Yes | |
ClickHouse | Yes | |
Oracle | No | TODO |
Redis | No | TODO |
MongoDB | No | TODO |
HBase | No | TODO |
Doris | No | TODO |
DB2 | No | TODO |
Couchbase | No | TODO |
Elasticsearch | No | TODO |
OceanBase | No | TODO |
TiDB | No | TODO |
StarRocks | No | TODO |
DB-GPT基于 FastChat 构建大模型运行环境。此外,我们通过LangChain提供私域知识库问答能力。同时我们支持插件模式, 在设计上原生支持Auto-GPT插件。我们的愿景是让围绕数据库和LLM构建应用程序更加简便和便捷。
整个DB-GPT的架构,如下图所示
核心能力主要有以下几个部分。
- 多模型:支持多LLM,如LLaMA/LLaMA2、CodeLLaMA、ChatGLM、QWen、Vicuna以及代理模型ChatGPT、Baichuan、tongyi、wenxin等
- 私域知识库问答: 可以根据本地文档(如pdf、word、excel等数据)进行高质量的智能问答。
- 统一数据向量存储和索引: 将数据嵌入为向量并存储在向量数据库中,提供内容相似性搜索。
- 多数据源: 用于连接不同的模块和数据源,实现数据的流动和交互。
- Agent与插件: 提供Agent和插件机制,使得用户可以自定义并增强系统的行为。
- 隐私和安全: 您可以放心,没有数据泄露的风险,您的数据100%私密和安全。
- Text2SQL: 我们通过在大型语言模型监督微调(SFT)来增强文本到SQL的性能
- DB-GPT-Hub 通过微调来持续提升Text2SQL效果
- DB-GPT-Plugins DB-GPT 插件仓库, 兼容Auto-GPT
- DB-GPT-Web 多端交互前端界面
🌐 AutoDL镜像
🌐 阿里云镜像
在.env 配置文件当中,修改LANGUAGE参数来切换使用不同的语言,默认是英文(中文zh, 英文en, 其他语言待补充)
提交代码前请先执行
black .
这是一个用于数据库的复杂且创新的工具, 我们的项目也在紧急的开发当中, 会陆续发布一些新的feature。如在使用当中有任何具体问题, 优先在项目下提issue, 如有需要, 请联系如下微信,我会尽力提供帮助,同时也非常欢迎大家参与到项目建设中。
The MIT License (MIT)
- Multi Documents
- Excel, csv
- Word
- Text
- MarkDown
- Code
- Images
- RAG
- Graph Database
- Neo4j Graph
- Nebula Graph
- Multi Vector Database
- Chroma
- Milvus
- Weaviate
- PGVector
- Elasticsearch
- ClickHouse
- Faiss
-
支持数据源
- MySQL
- PostgresSQL
- Spark
- DuckDB
- Sqlite
- MSSQL
- ClickHouse
- Oracle
- Redis
- MongoDB
- HBase
- Doris
- DB2
- Couchbase
- Elasticsearch
- OceanBase
- TiDB
- StarRocks
- 集群部署
- fastchat支持
- fastchat支持
- vLLM 支持
- 云原生环境与Ray环境支持
- 注册中心引入nacos
- 上层接口兼容Openai
- Embedding模型扩充,优化
- 多Agents框架
- 自定义Agents
- 插件市场
- CoT集成
- 丰富插件样本库
- 支持AutoGPT协议
- Multi-agents & 可视化能力打通,定义LLM+Vis新标准
- 知识库的数据文本集
- 问题集合 [easy、medium、hard]
- 评分机制
- Excel + DB库表的测试评估
- debugging
- 可观测性
- 推理预算
-
support llms
- LLaMA
- LLaMA-2
- BLOOM
- BLOOMZ
- Falcon
- Baichuan
- Baichuan2
- InternLM
- Qwen
- XVERSE
- ChatGLM2
-
SFT模型准确率 截止20231010,我们利用本项目基于开源的13B大小的模型微调后,在Spider的评估集上的执行准确率,已经超越GPT-4!
模型名称 | 执行准确率 | 说明 |
---|---|---|
GPT-4 | 0.762 | numbersstation-eval-res |
ChatGPT | 0.728 | numbersstation-eval-res |
CodeLlama-13b-Instruct-hf_lora | 0.789 | sft train by our this project,only used spider train dataset ,the same eval way in this project with lora SFT |
CodeLlama-13b-Instruct-hf_qlora | 0.774 | sft train by our this project,only used spider train dataset ,the same eval way in this project with qlora and nf4,bit4 SFT |
wizardcoder | 0.610 | text-to-sql-wizardcoder |
CodeLlama-13b-Instruct-hf | 0.556 | eval in this project default param |
llama2_13b_hf_lora_best | 0.744 | sft train by our this project,only used spider train dataset ,the same eval way in this project |