DB-GPT使用

news2024/11/28 14:49:08

一、源码安装

安装

请按照以下步骤安装DB-GPT

1. Hardware Requirements

在这里插入图片描述
如果你的显存不够,DB-GPT支持8-bit和4-bit量化版本
在这里插入图片描述

2. Install

git clone https://github.com/eosphoros-ai/DB-GPT.git

目前使用Sqlite作为默认数据库,因此DB-GPT快速部署不需要部署相关数据库服务。如果你想使用其他数据库,需要先部署相关数据库服务。目前使用Miniconda进行python环境和包依赖管理安装 Miniconda

conda create -n dbgpt_env python=3.10
conda activate dbgpt_env
pip install -e .

在使用知识库之前

python -m spacy download zh_core_web_sm

如果你已经安装好了环境需要创建models, 然后到huggingface官网下载模型
在这里插入图片描述

cd DB-GPT
mkdir models and cd models
#### llm model
git clone https://huggingface.co/lmsys/vicuna-13b-v1.5
or
git clone https://huggingface.co/THUDM/chatglm2-6b

#### embedding model
git clone https://huggingface.co/GanymedeNil/text2vec-large-chinese
or
git clone https://huggingface.co/moka-ai/m3e-large

配置.env文件,它需要从。env.template中复制和创建。

如果想使用openai大模型服务, 可以参考LLM Use FAQ

可以在.env文件中配置基本参数,例如将LLM_MODEL设置为要使用的模型。

可以在.env文件中配置基本参数,例如将LLM_MODEL设置为要使用的模型。(Vicuna-v1.5, 目前Vicuna-v1.5模型(基于llama2)已经开源了,推荐使用这个模型通过设置LLM_MODEL=vicuna-13b-v1.5

3. Run

(Optional) load examples into SQLlite

bash ./scripts/examples/load_examples.sh

On windows platform:

.\scripts\examples\load_examples.bat

1.Run db-gpt server

python pilot/server/dbgpt_server.py

打开浏览器访问http://localhost:5000
在这里插入图片描述
如果你想了解web-ui, 请访问https://github./csunny/DB-GPT/tree/new-page-framework/datacenter

python pilot/server/dbgpt_server.py --light

Multiple GPUs

DB-GPT默认加载可利用的gpu,你也可以通过修改 在.env文件 CUDA_VISIBLE_DEVICES=0,1来指定gpu IDs

你也可以指定gpu ID启动

# Specify 1 gpu
CUDA_VISIBLE_DEVICES=0 python3 pilot/server/dbgpt_server.py

# Specify 4 gpus
CUDA_VISIBLE_DEVICES=3,4,5,6 python3 pilot/server/dbgpt_server.py

同时你可以通过在.env文件设置MAX_GPU_MEMORY=xxGib修改每个GPU的最大使用内存

Not Enough Memory

DB-GPT 支持 8-bit quantization 和 4-bit quantization.

你可以通过在.env文件设置QUANTIZE_8bit=True or QUANTIZE_4bit=True

Llama-2-70b with 8-bit quantization 可以运行在80GB VRAM机器, 4-bit quantization可以运行在 48 GB VRAM

二、docker安装

1、安装docker镜像

docker pull eosphorosai/dbgpt:latest
bash docker/build_all_images.sh
docker images|grep "eosphorosai/dbgpt"

你也可以docker/build_all_images.sh构建的时候指定参数

bash docker/build_all_images.sh \
--base-image nvidia/cuda:11.8.0-runtime-ubuntu22.04 \
--pip-index-url https://pypi.tuna.tsinghua.edu.cn/simple \
--language zh

可以指定命令bash docker/build_all_images.sh --help查看如何使用

2、运行容器

Run with local model and SQLite database

docker run --gpus all -d \
    -p 5000:5000 \
    -e LOCAL_DB_TYPE=sqlite \
    -e LOCAL_DB_PATH=data/default_sqlite.db \
    -e LLM_MODEL=vicuna-13b-v1.5 \
    -e LANGUAGE=zh \
    -v /data/models:/app/models \
    --name dbgpt \
    eosphorosai/dbgpt

打开浏览器访问http://localhost:5000

-e LLM_MODEL=vicuna-13b-v1.5, means we use vicuna-13b-v1.5 as llm model, see /pilot/configs/model_config.LLM_MODEL_CONFIG

-v /data/models:/app/models, 指定挂载的模型文件 directory /data/models to the docker container directory /app/models, 你也可以替换成你自己的模型.

你也可以通过命令查看日志

docker logs dbgpt -f

Run with local model and MySQL database

docker run --gpus all -d -p 3306:3306 \
    -p 5000:5000 \
    -e LOCAL_DB_HOST=127.0.0.1 \
    -e LOCAL_DB_PASSWORD=aa123456 \
    -e MYSQL_ROOT_PASSWORD=aa123456 \
    -e LLM_MODEL=vicuna-13b-v1.5 \
    -e LANGUAGE=zh \
    -v /data/models:/app/models \
    --name db-gpt-allinone \
    db-gpt-allinone

打开浏览器访问http://localhost:5000

-e LLM_MODEL=vicuna-13b-v1.5, means we use vicuna-13b-v1.5 as llm model, see /pilot/configs/model_config.LLM_MODEL_CONFIG

-v /data/models:/app/models, 指定挂载的模型文件 directory /data/models to the docker container directory /app/models, 你也可以替换成你自己的模型.

你也可以通过命令查看日志

docker logs db-gpt-allinone -f

Run with openai interface

PROXY_API_KEY="You api key"
PROXY_SERVER_URL="https://api.openai.com/v1/chat/completions"
docker run --gpus all -d -p 3306:3306 \
    -p 5000:5000 \
    -e LOCAL_DB_HOST=127.0.0.1 \
    -e LOCAL_DB_PASSWORD=aa123456 \
    -e MYSQL_ROOT_PASSWORD=aa123456 \
    -e LLM_MODEL=proxyllm \
    -e PROXY_API_KEY=$PROXY_API_KEY \
    -e PROXY_SERVER_URL=$PROXY_SERVER_URL \
    -e LANGUAGE=zh \
    -v /data/models/text2vec-large-chinese:/app/models/text2vec-large-chinese \
    --name db-gpt-allinone \
    db-gpt-allinone
-e LLM_MODEL=proxyllm, 通过设置模型为第三方模型服务API, 可以是openai, 也可以是fastchat interface…

-v /data/models/text2vec-large-chinese:/app/models/text2vec-large-chinese, 设置知识库embedding模型为text2vec. container.”

打开浏览器访问http://localhost:5000

3、AutoDL部署

创建实例

1、选择右侧镜像AutoDL创建实例
2、选择主机环境,GPU环境,这里CPU类型选择Xeon®Platnum8336C,GPU根据情况,建议4090
在这里插入图片描述
3、开机
在这里插入图片描述
4、打开jupyterLab
在这里插入图片描述5、选择终端
在这里插入图片描述

终端构建过程

1.安装环境依赖

设置加速

source /etc/network_turbo
conda activate dbgpt_env

2.模型准备(这里已经准备好了chatglm2-6b-int4)

3.启动数据库

service mysql start

如果遇到mysql实例启动问题,需要卸载重装下
在这里插入图片描述

#卸载
sudo apt-get autoremove --purge mysql-server
sudo apt-get remove mysql-server
sudo apt-get autoremove mysql-server
sudo apt-get remove mysql-common

sudo apt update
sudo apt install mysql-server

service mysql start

4.启动DBGPT服务

python /root/DB-GPT/pilot/server/dbgpt_server.py --port 6006

在这里插入图片描述
访问服务
在这里插入图片描述在这里插入图片描述
使用其他模型
chatgpt
1.申请openai API_KEY
在这里插入图片描述
2.修改/root/DB-GPT/.env配置文件
在这里插入图片描述
chatglm-6b2
1.下载chatglm-6b2模型(确保你的数据盘足够,chatglm-6b 24G)

cd /root/autodl-tmp/models
git lfs clone https://huggingface.co/THUDM/chatglm2-6b

2.修改/root/DB-GPT/.env配置文件

在这里插入图片描述
vicunna-13b
1.下载vicuna-13b模型(确保你的数据盘足够,vicunna-13b有50G)

cd /root/autodl-tmp/models
git lfs clone https://huggingface.co/Tribbiani/vicuna-13b

2.修改/root/DB-GPT/.env配置文件
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PixelSNAIL论文代码学习(2)——门控残差网络的实现

文章目录 引言正文门控残差网络介绍门控残差网络具体实现代码使用pytorch实现 总结 引言 阅读了pixelSNAIL,很简短,就用了几页,介绍了网络结构,介绍了试验效果就没有了,具体论文学习链接 这段时间看他的代码,还是挺痛…

【数学建模竞赛】Matlab逻辑规则,结构基础及函数

逻辑基础 逻辑变量 在Matlab中,逻辑变量是一种特殊类型的变量,用于表示逻辑值。逻辑变量只有两个可能的值:true(真)和false(假)。在Matlab中,我们可以使用0和1来表示逻辑变量的值。…

数据结构(Java实现)-字符串常量池与通配符

字符串常量池 在Java程序中,类似于:1, 2, 3,3.14,“hello”等字面类型的常量经常频繁使用,为了使程序的运行速度更快、更节省内存,Java为8种基本数据类型和String类都提供了常量池。…

Excel_VBA程序文件的加密及解密说明

VBA应用技巧及疑难解答 Excel_VBA程序文件的加密及解密 在您看到这个文档的时候,请和我一起念:“唵嘛呢叭咪吽”“唵嘛呢叭咪吽”“唵嘛呢叭咪吽”,为自己所得而感恩,为付出者赞叹功德。 本不想分享之一技术,但众多学…

【Java核心知识】JUC包相关知识

文章目录 JUC包主要内容Java内置锁为什么会有线程安全问题Synchronize锁Java对象结构Synchronize锁优化线程间通信Synchronize与wait原理 CAS和JUC原子类CAS原理JUC原子类ABA问题 可见性和有序性为什么会有可见性参考链接 显式锁Lock接口常用方法显式锁分类显式锁实现原理参考链…

数据结构(Java实现)-排序

排序的概念 排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序&#xff…

chatgpt谈论日本排放污水事件

W...Y的主页 😊 代码仓库分享 💕 近日,世界发生了让人义愤填膺的时间——日本排放核污水。这件事情是那么的突然且不计后果,海洋是我们全人类共同的财产,而日本却想用自己一己私欲将全人类的安全置之度外&#xff0c…

攻防世界-Caesar

原题 解题思路 没出现什么特殊字符,可能是个移位密码。凯撒密码加密解密。偏移12位就行。

Spring Cloud--从零开始搭建微服务基础环境【三】

😀前言 本篇博文是关于Spring Cloud–从零开始搭建微服务基础环境【三】,希望你能够喜欢 🏠个人主页:晨犀主页 🧑个人简介:大家好,我是晨犀,希望我的文章可以帮助到大家,…

全网都在用的nnUNet V2版本改进了啥,怎么安装?(一)

nnUNet,这个医学领域的分割巨无霸!在论文和比赛中随处可见他的身影。大家对于nnUNet v1版本的教程都赞不绝口,因为它简单易懂、详细全面,让很多朋友都轻松掌握了使用方法。 最近,我也抽出时间仔细研究了nnUNet v2,并全…

vue声明周期

1.在created中发送数据 async created(){ const resawait axios.get("url) this.listres.data.data } 2.在mounted中获取焦点 mounted(){ document.querySelector(#inp).focus()

分类预测 | MATLAB实现GRNN广义回归神经网络多特征分类预测

分类预测 | MATLAB实现GRNN广义回归神经网络多特征分类预测 目录 分类预测 | MATLAB实现GRNN广义回归神经网络多特征分类预测分类效果基本介绍模型描述预测过程程序设计参考资料分类效果 基本介绍 MATLAB实现GRNN广义回归神经网络多特

企业架构LNMP学习笔记9

nginx配置文件定义php-fpm服务&#xff1a; 编写测试文件&#xff1a; vim /usr/local/nginx/html/index.php 内容&#xff1a; <?phpphpinfo(); 在nginx的配置文件中配置&#xff1a; 修改配置文件&#xff0c;告知nginx如果收到.php结尾的请求&#xff0c;交由给php-…

「MySQL-02」数据库的操纵、备份、还原和编码规则

目录 一、库操作 1. 创建数据库 2. 查看所有数据库 3. 删除数据库 4. 修改数据库 5. 进入一个数据库 二、查看和设置数据库的编码规则 1. MySQL的两个编码规则&#xff1a;字符集和校验规则 2. 查看MySQL当前使用的字符集以及校验规则 3. 查看MySQL支持的所有字符集 4. 查看MyS…

nnUNet v2数据准备及格式转换 (二)

如果你曾经使用过nnUNet V1&#xff0c;那你一定明白数据集的命名是有严格要求的&#xff0c;必须按照特定的格式来进行命名才能正常使用。 这一节的学习需要有数据&#xff0c;如果你有自己的数据&#xff0c;可以拿自己的数据来实验&#xff0c;如果没有&#xff0c;可以用十…

JVM类的加载过程

加载过程 JVM的类的加载过程分为五个阶段&#xff1a;加载、验证、准备、解析、初始化。 加载   加载阶段就是将编译好的的class文件通过字节流的方式从硬盘或者通过网络加载到JVM虚拟机当中来。&#xff08;我们平时在Idea中书写的代码就是放在磁盘中的&#xff0c;也可以通…

Kubernetes可视化管理工具Kuboard部署使用及k8s常用命令梳理记录

温故知新 &#x1f4da;第一章 前言&#x1f4d7;背景&#x1f4d7;目的&#x1f4d7;总体方向 &#x1f4da;第二章 安装 Kubernetes 多集群管理工具 - Kuboard v3&#x1f4d7;部署方式&#x1f4d7;通过Kuboard v3 - Kubernetes安装&#xff08;在master节点执行)&#x1f4…

大学生攻略:正确的购买和使用你的电脑

笔者是计算机专业在读大学生&#xff0c;从小学开始接触电脑&#xff0c;进行过各种操作(更换硬件维修&#xff0c;换系统&#xff0c;系统命令行&#xff0c;管理员权限&#xff0c;无视风险继续安装&#xff0c;没有这条 )&#xff0c;相对大学生有一定参考价值。 购买 1.买…

【Java并发】聊聊AQS原理机制

什么是AQS AbstractQueuedSynchronizer是一个抽象队列同步器&#xff0c;主要是实现并发工具类的基石。 是用来构建锁或者其它同步器组件的重量级基础框架及整个JUC体系的基石&#xff0c; 通过内置的FIFO队列来完成资源获取线程的排队工作&#xff0c;并通过一个int类变量表示…

仿京东 项目笔记1

目录 项目代码1. 项目配置2. 前端Vue核心3. 组件的显示与隐藏用v-if和v-show4. 路由传参4.1 路由跳转有几种方式&#xff1f;4.2 路由传参&#xff0c;参数有几种写法&#xff1f;4.3 路由传参相关面试题4.3.1 路由传递参数&#xff08;对象写法&#xff09;path是否可以结合pa…