DB-GPT:强强联合Langchain-Vicuna的应用实战开源项目,彻底改变与数据库的交互方式

news/2024/5/19 20:59:00/文章来源:https://blog.csdn.net/penriver/article/details/131920469

今天看到 蚂蚁科技 Magic 开源的DB-GPT项目,觉得创意很好,集成了当前LLM的主流技术,主要如下

  • Langchain: 构建在LLM之上的应用开发框架
  • HuggingFace: 模型标准,提供大模型管理功能
  • Vicuna: 一个令GPT-4惊艳的开源聊天机器人,基于LLaMA模型和ShareGPT数据集训练的,能够达到接近ChatGPT/Bard的质量,而且明显优于其它基准模型

本文针对DB-GPT详细了解下的笔记

什么是DB-GPT

DB-GPT : Revolutionizing Database Interactions with Private LLM Technology

DB-GPT是一个实验性的开源项目,它使用本地化的GPT大型模型与数据和环境进行交互。使用此解决方案,没有数据泄露的风险,数据是100%私密和安全的。

DB-GPT使用FastChat创建了一个庞大的模型操作系统,并提供了一个由Vicuna驱动的大型语言模型。此外,还提供了私有领域知识库问答功能、对其他插件的支持、支持Auto-GPT插件。

DB-GPT愿景是使围绕数据库和llm构建应用程序变得更容易、更方便。

GPT项目可以直接本地部署连接到私有数据库, 进行私有数据处理, 目前已支持SQL生成、SQL诊断、数据库知识问答、数据处理等一系列的工作

关键特性

  • SQL语言功能
    • SQL生成
    • SQL诊断
  • 私人领域的问答和数据处理
    • 知识管理(目前支持多种文档格式:txt, pdf, md, html, doc, ppt和url)
    • 数据库知识问答
    • 知识嵌入(knowledge Embedding)
  • 插件
    • 支持自定义插件执行任务,并原生支持Auto-GPT插件,例如:
      • 自动执行SQL和检索查询结果
      • 自动爬取和学习知识(crawling and learning of knowledge)
  • 知识库的统一矢量存储/索引
    • 支持PDF、TXT、Markdown、CSV、DOC、PPT、webl等非结构化数据
  • 支持多个LLMs
    • 支持多种大型语言模型,目前支持Vicuna (7b,13b), ChatGLM-6b (int4, int8), guanaco(7b,13b,33b), Gorilla(7b,13b),🔥llama-2(7b, 13b, 70b)
    • TODO: baichuan(7b, 13b)

架构图

具备的能力如下

  • 知识库能力:支持私有领域知识库问答能力
  • 大规模模型管理能力:提供基于FastChat的大型模型操作环境。
  • 统一的数据矢量存储和索引:提供统一的方式来存储和索引各种数据类型
  • 连接模块:用于连接不同模块和数据源,实现数据流和交互
  • 代理和插件:提供代理和插件机制,允许用户自定义和增强系统的行为
  • 提示生成和优化:自动生成高质量的提示并进行优化,提高系统响应效率
  • 多平台产品接口:支持web、移动、桌面等多种客户端产品。
    在这里插入图片描述

子模块

  • DB-GPT-Hub Text-to-SQL parsing with LLMs
  • DB-GPT-Plugins DB-GPT Plugins, Can run autogpt plugin directly
  • DB-GPT-Web ChatUI for DB-GPT

整个知识库的处理过程,可参考如下:
在这里插入图片描述

使用到的开源项目

这个项目是站在巨人的肩膀上,没有开源社区是无法工作的。

  • FastChat for providing chat services
  • vicuna-13b as the base model
  • langchain tool chain
  • Auto-GPT universal plugin template
  • Hugging Face for big model management
  • Chroma for vector storage
  • Milvus for distributed vector storage
  • ChatGLM as the base model
  • llama_index for enhancing database-related knowledge using in-context learning based on existing knowledge bases.

部署硬件说明

DB-GPT在消费级GPU即可完成部署, 具体部署的硬件说明如下:

GPU型号显存大小性能
TRX409024G可以流畅的进行对话推理,无卡顿
TRX309024G可以流畅进行对话推理,有卡顿感,但好与V100
V10016G可以进行对话推理,有明显卡顿

Roadmap

参考

LLM实战系列(1)—强强联合Langchain-Vicuna应用实战
LLM实战系列(2) —— DB-GPT阿里云部署指南

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

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

相关文章

如何在3ds max中创建可用于真人场景的巨型机器人:第 3 部分

推荐: NSDT场景编辑器助你快速搭建可二次开发的3D应用场景 1. 创建腿部装备 步骤 1 打开 3ds Max。 打开在本教程最后一部分中保存的文件。 打开 3ds Max 步骤 2 转到创建> 系统并单击骨骼。 创建>系统 步骤 3 为的 侧视口中的腿,如下图所示…

更省更快更安全的云服务器,一站式集中管理,随时随地远程——站斧云桌面

随着全球化和数字化经济的发展,越来越多的企业开始海外扩张和拓展国际市场。而云服务器作为一种高效、灵活且可靠的IT基础设施方案,已成为出海企业不可或缺的重要工具。这里就为大家介绍云服务器在出海企业中的几个使用场景。 1.全球范围内协同办公 对…

开源大模型LLaMA 2会扮演类似Android的角色么?

在AI大模型没有商业模式?等文章中,我多次表达过这样一个观点:不要把大模型的未来应用方式比喻成公有云,大模型最终会是云端操作系统的核心(新通用计算平台),而它的落地形式会很像过去的沃森&…

python绘制地图时添加比例尺

目前为止我没有找到cartopy包自动添加地图比例尺的方式,我结合别人的代码写了这个手动添加比例尺的函数,个人觉得在外观上比线段比例尺漂亮一些。之所以是手动的,是因为这种方法不会根据你的地图坐标系和投影自动生成比例尺,而需要…

Windows如何安装Django及如何创建项目

目录 1、Windows安装Django--pip命令行 2、创建项目 2.1、终端创建项目 2.2、在Pycharm中创建项目 2.3、二者创建的项目有何不同 2.4、项目目录说明 1、Windows安装Django--pip命令行 安装Django有两种方式: pip命令行【推荐--简单】手动安装【稍微复杂一丢丢…

高效协作处理缓存清理需求:生产者-消费者模式助力多模块缓存管理

在现代应用系统中,缓存是提高性能和减少数据库负载的重要手段之一。然而,缓存的数据在某些情况下可能会过期或者变得无效,因此需要及时进行清理。在复杂的应用系统中,可能有多个系统、多个模块产生缓存清理需求,而这些…

机器学习原理(1)集成学习基本方法

一.什么是集成学习 集成学习(ensemble learning)通过将多个学习器进行组合来完成学习任务。下图显示集成学习的一般结构(取自周志华老师的西瓜书),个体学习器通常由一种现有的学习算法从训练数据产生,例如…

window10脚本转服务教程

先说下脚本/我们启动的一些三方服务转window本机服务目前我了解到的好处 一键设置开机自启、随用随启、延时自启解决一些服务类应用启动后会阻塞当前dos窗口导致桌面一直要开着的问题脚本化服务注册,方便管理,统一运维… 1. 实践涉及内容介绍 编写好的…

蓝牙HID配对过程

配对通常调用分两步 1. Bluetooth AdapterService.cancelDiscovery btif_dm_cancel_discovery BTfM_CancelInquiry BTA_DM_SEARCH_CANCEL_CMPL_EVT BTM_BLI_INQ_CANCEL_EVT BTM_BLI_INQ_DONE_EVT discovery_state_changed_cb btif_dm_cancel_discovery BTA_DM_SE…

CBC字节翻转攻击介绍 例题

知识导入(AES-CBC模式) 加密过程 1、首先将明文分组(常见的以16字节为一组),位数不足的使用特殊字符填充。 2、生成一个随机的初始化向量(IV)和一个密钥。 3、将IV和第一组明文异或。 4、用key对3中xor后产生的密文加密。 5、用4中产生的密文…

如何在3ds max中创建可用于真人场景的巨型机器人:第 1部分

推荐: NSDT场景编辑器助你快速搭建可二次开发的3D应用场景 1. 创建主体 步骤 1 打开 3ds Max。 打开 3ds Max 步骤 2 在左侧视口中,按键盘上的 Alt-B 键。它 打开视口配置窗口。 打开“锁定缩放/平移”和“匹配位图”选项。单击“文件”并转到参考 …

刷题小总结

数组 数组是存放在连续内存空间上的相同类型数据的集合。 经典题目: 二分查找 双指针法 滑动窗口 模拟行为 链表 链表的种类主要为:单链表,双链表,循环链表链表的存储方式:链表的节点在内存中是分散存储的&…

github gitlab 多用户多平台切换

一、背景 我需要用账号1 来登录并管理github 账号 我需要用账号2 来登录并管理gitlab 账号 二、设置账号 邮箱 设置账号1用户名与邮箱 git config --global user.name "miaojiang" git config --global user.email "187133163.com" 三、生成本地密钥…

electron-egg 加密报错

electron框架:electron-egg 解决方式 npm uninstall bytenode npm install bytenode1.3.6node:internal/modules/cjs/loader:928 throw err; ^ Error: Cannot find module ‘node:assert/strict’ Require stack: D:\electron-egg-test\new-electron-egg\electr…

PaddleOCR #PP-OCR常见异常扫雷

异常一:ModuleNotFoundError: No module named ‘tools.infer’ 实验案例: PaddleOCR #使用PaddleOCR进行光学字符识别(PP-OCR文本检测识别) 参考代码: 图片文本检测实验时,运行代码出现异常:M…

python取出序号重命名文件

前言 早上好! \;\\\;\\\; 目录 前言源码 源码 date:2023-7-25 周二test-樱花动漫播放器.mp4 -> a1.mp4 这个文件不管 test-樱花动漫播放器(1).mp4 -> a2.mp4 test-樱花动漫播放器(2).mp4 -> a3.m,p4 ... import os,sys,redef change…

Java中的equals方法详解:比较方法

1、equals方法的背景 在Java中,equals方法是Object类的一个方法,用于比较两个对象是否相等。 Java中有两种比较对象的方法:运算符和equals方法。 运算符用于比较两个对象的引用,如果它们指向的是同一个对象,则返回t…

【iOS】自定义字体

文章目录 前言一、下载字体二、添加字体三、检查字体四、使用字体 前言 在设计App的过程中我们常常会想办法去让我们的界面变得美观,使用好看的字体是我们美化界面的一个方法。接下来笔者将会讲解App中添加自定义字体 一、下载字体 我们要使用自定义字体&#x…

视频拼接得AI三维生成方案-开端(一)

想使用二维得图像生成三维得空间图像,英伟达有完整得方案,开源,但是三维拼接不一样,只需要二维,并且要实时,如何生成是我每天都在思考得东西。 cnn 提取特征器和自编码 在训练细胞神经网络时,问…

01背包相关题

题解&#xff1a;dp[j]表示目标和为j时的最大组合种数 class Solution { public:int dp[1005];int findTargetSumWays(vector<int>& nums, int target) {int val;int sum0;for(int i0;i<nums.size();i){sumnums[i];}int wsumtarget;if(w%21){return 0;}else{valw…