LLM大模型实战 —— DB-GPT阿里云部署指南

news2024/11/23 19:21:40

简介:  DB-GPT 是一个实验性的开源应用,它基于FastChat,并使用vicuna-13b作为基础模型, 模型与数据全部本地化部署, 绝对保障数据的隐私安全。 同时此GPT项目可以直接本地部署连接到私有数据库, 进行私有数据处理, 目前已支持SQL生成、SQL诊断、数据库知识问答、数据处理等一系列的工作。

背景

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

DB-GPT从5月6号正式发布第一个可运行版本,到目前刚刚经过一周的时间,引起了大家的广泛关注。 但是因为DB-GPT是用的Vicuna-13B的模型作为Base Model,所以很多同学在部署过程中遇到了较大的困难。DB-GPT在消费级GPU即可完成部署, 具体部署的硬件说明如下:

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

在本文中,为了方便大家部署测试,所以我们基于阿里云写了个完整的部署教程,感兴趣的同学可以基于此教程进行部署实践,因为项目主要是实验性质,不建议生产环境直接使用。

环境准备

创建阿里云GPU实例

  1. 阿里云账号准备, 如果没有阿里云账号,首先需要在阿里云注册一个账号,并充值100元。充值可以在右上角账号中心进行操作。

  1. 充值好之后,我们就可以去购买GPU服务器了。找到GPU云服务器产品,点击购买,进入到选配页面,在如下页面,选择按量付费,然后选择图中所示的型号即可。如果对推理性能有要求,可以选择更高的配置。

选择型号之后,还需要选择系统、GPU驱动、SSD存储、以及实例释放策略等选项。这里需要注意,云盘的规格不要选择太小,建议不小于200G, 同时去掉随实例释放的选项,这样后续我们可以只释放实例,模型数据可以保留。如果此实例,你想长期使用,建议做个快照备份。当然,考虑到价格原因,也可以挂一块NFS来存储数据。

选择完以上步骤之后,点击下一步进入到网络与安全组配置界面,这里注意的是网络带宽我们可以选择大一点。这里我选择的是25M的网络。注意我们要选择按流量付费, 同时需要去买个流量包。

选择好之后,进入下一步, 系统配置界面,注意要选择一下自定义密码,需要设置一下root密码,如果这一步未设置,等机器启动之后设置也可。

这一步结束之后,分组设置无需特殊设置,直接进入下一步即可。 最后在确认订单界面,我们需要重点设置一下自动释放时间,防止后续忘记释放造成持续的费用。选择好之后,直接点击创建实例,开实例阶段就结束了。

登陆实例安装环境依赖

进入到管理控制台,实例界面,点击远程连接,然后直接登陆,在登陆界面输出对应的密码,即可完成登陆。进入到管理控制台之后,首先会安装对应的GPU显卡驱动。显卡驱动安装完成之后,我们需要安装以下必要的依赖包

yum -y install git 
yum install git-lfs
yum install g++
yum install docker

如上,我们的环境准备就完成了,接下来我们开始部署服务。

部署服务

部署服务有以下几步。1. 模型准备 2. 依赖服务启动 3. DB-GPT服务启动

模型准备

在准备模型阶段,我们首先要下载模型。 这里我们依赖两个基础模型,分别是vicuna-13B以及sentence-transformer

git clone https://github.com/csunny/DB-GPT.git
git clone https://huggingface.co/Tribbiani/vicuna-13b
https://huggingface.co/sentence-transformers/all-MiniLM-L6-v2

模型下载好之后,模型文件需要防止到代码路径下。

DB-GPT/models/

依赖服务启动

我们的项目因为要直接连接数据库,这里我们以MySQL作为样例。前面我们已经安装好了Docker,这里我们只需要通过docker命令启动MySQL即可

docker run --name=mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=aa12345678 -dit mysql:latest

向量数据库我们默认使用的是Chroma内存数据库,所以无需特殊安装,如果有需要连接其他的同学,可以按照我们的教程进行安装配置。

DB-GPT服务启动

首先安装环境与依赖

python 环境我们要起是大于3.9,这里我们用3.10来进行安装。

首先我们需要安装conda环境,我们使用miniconda3

wget https://repo.anaconda.com/miniconda/Miniconda3-py310_23.3.1-0-Linux-x86_64.sh
sh Miniconda3-py310_23.3.1-0-Linux-x86_64.sh

如上,我们就安装conda环境完成了,安装完成之后,需要生效一下环境变量。

source /root/.bashrc
conda create -n dbgpt_env python=3.10
conda activate dbgpt_env

如图所示,我们即进入到了我们的环境,接下来安装pip依赖运行就可以啦。

pip install -r requirements.txt

安装完成之后我们就可以运行了,但是运行过程中我们发现报了以下错误。 我们通过添加.pth的方式指定一下环境路径。

echo "/root/workspace/DB-GPT" > /root/miniconda3/env/dbgpt_env/lib/python3.10/site-packages/dbgpt.pth

运行命令启动服务端:

python pilot/server/vicuna_server.py

如下图所示,我们的服务就启动成功了,接下来我们来启动客户端。

运行命令启动客户端

python pilot/server/webserver.py

运行过程中,我们发现报了以下错误。 表明我们的mysql容器未创建成功,需要重新创建一下。

需要注意,mysql容器创建的密码是否与代码配置中的密码一致。 如果不一致可以重新创建或者修改代码。如图所示,我们的客户端服务就启动起来了。

配置安全策略

虽然我们服务已经启动了,但是我们还是无法通过公网访问,我们需要配置安全策略,将端口开放出来。

在阿里云管理控制台,我们找到安全组 -> 管理规则。

通过手动添加开启如下三个规则。

好了,到这里我们就可以访问我们的服务了。如果你需要在本地启动代码,远程连接到阿里云的服务器,只需要在阿里云启动一个后端服务,前端服务本地启动即可。 需要注意要修改本地服务的VICUNA_MODEL_SERVER IP为你的阿里云IP。 然后在本地只启动前端服务即可:

python pilot/server/webserver.py

演示

通过服务器公网ip,我们可以在浏览器打开我们的服务。剩下的就是使用了,我们简单做个小演示吧。

原生回答

基于知识库

小结

本教程中介绍了如何在阿里云上通过申请GPU来部署DB-GPT服务

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

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

相关文章

Swift 6:导入语句上的访问级别

文章目录 前言示例启用 AccessLevelOnImport破坏性变更采用这些更改总结前言 SE-0409 提案引入了一项新功能,即允许使用 Swift 的任何可用访问级别标记导入声明,以限制导入的符号可以在哪些类型或接口中使用。由于这些变化,现在可以将依赖项标记为对当前源文件(private 或…

数据分析三剑客-Matplotlib

数据分析三剑客 数据分析三剑客通常指的是在Python数据分析领域中,三个非常重要的工具和库:Pandas、NumPy和Matplotlib。Pandas主要负责数据处理和分析,NumPy专注于数值计算和数学运算,而Matplotlib则负责数据可视化。这三个库相…

友力科技广州数据中心搬迁

搬迁工作内容 1.搬迁技术工作 1)确定机房搬迁的负责人以及负责人的联系方式,保证在搬迁的过程中统一指挥管理。 2)确定服务器的数量,服务器的型号,服务器的配置等,如有需要,联系相关服务器的供货商或者厂家提供技术支持…

HBuilder X 小白日记01

1.创建项目 2.右击项目&#xff0c;可创建html文件 3.保存CtrlS&#xff0c;运行一下 我们写的内容&#xff0c;一般是写在body里面 注释的快捷键&#xff1a;Ctrl/ h标签 <h1> 定义重要等级最高的(最大)的标题。<h6> 定义最小的标题。 H标签起侧重、强调的作用…

Pinia详解

文章目录 简介特点用法1. 安装Pinia2. 注册Pinia Store3. 创建Pinia Store4. 使用Pinia Store 区别 Vuex详解 Pinia是一个基于Vue 3的状态管理库&#xff0c;专为Vue 3设计。它提供了一种简单、直观且可扩展的方式来组织和访问应用程序的状态。Pinia的设计灵感来源于Vuex&#…

数据资产管理的艺术:构建智能化、精细化的数据资产管理体系,从数据整合、分析到决策支持,为企业提供一站式的数据资产解决方案,助力企业把握数字时代的新机遇

一、引言 在数字化浪潮席卷全球的今天&#xff0c;数据已经成为企业最重要的资产之一。如何高效、安全地管理这些海量数据&#xff0c;从中提取有价值的信息&#xff0c;并将其转化为决策支持&#xff0c;是每个企业都必须面对的挑战。本文将探讨数据资产管理的艺术&#xff0…

中国高分辨率土壤质地数据(1KM)

土壤中各粒级占土壤重量的百分比组合&#xff0c;叫做土壤质地。土壤质地是土壤的最基本物理性质之一&#xff0c;对土壤的各种性状&#xff0c;如土壤的通透性、保蓄性、耕性以及养分含量等都有很大的影响是评价土壤肥力和作物适宜性的重要依据。 中国土壤质地空间分布数据是根…

ChatTTS超真实自然的语音合成模型

项目介绍 ChatTTS是一款专为优化对话场景而生的语音生成模型&#xff0c;尤其匹配大型语言模型&#xff08;LLM&#xff09;的交互需求&#xff0c;以及生成对话式音频、视频旁白等应用场景&#xff0c;无缝覆盖中英文双语。 通过汲取约100,000小时的高质量中英语音数据进行深…

全球首个真人级数字人,开源了!

全球首个2D真人级AIGC**实时渲染数字人模型开源了&#xff01; 这是数字人技术界的一次大爆炸&#xff0c;我们即将迈入一个全新的交互时代&#xff0c;一个由数字人代理引领的时代。 DUIX&#xff08;Dialogue User Interface System&#xff09;&#xff0c;这个由硅基智能…

Unity的Excel转表工具

该Excel工具主要由Python语言完成&#xff0c;版本为3.x 主要功能&#xff1a; 1.转换后的数据存储结构为二进制。 2.excel文件可以选择多种数据类型&#xff1a;int、float、string、一维&#xff08;int、float、string&#xff09;、二维int、Map&#xff08;int/int、in…

杂谈咋说-事业编与公务员建议收藏!

杂谈咋说-事业编与公务员建议收藏&#xff01; 什么是铁饭碗 在中国&#xff0c;「铁饭碗」这个词常常被用来形容那些稳定、有保障的工作。 当我们谈论"铁饭碗"时&#xff0c;人们往往会将公务员和事业编制人员进行比较。 尽管这两者都是相对稳定的工作&#xff…

从单一到多元:EasyCVR流媒体视频汇聚技术推动安防监控智能升级

随着科技的飞速发展&#xff0c;视频已成为我们日常生活和工作中的重要组成部分。尤其在远程办公、在线教育、虚拟会议等领域&#xff0c;视频的应用愈发广泛。为了满足日益增长的视频需求&#xff0c;流媒体视频汇聚融合技术应运而生&#xff0c;它不仅改变了传统视频的观看和…

已解决javax.transaction.InvalidTransactionException:事务无效的正确解决方法,亲测有效!!!

已解决javax.transaction.InvalidTransactionException&#xff1a;事务无效的正确解决方法&#xff0c;亲测有效&#xff01;&#xff01;&#xff01; 目录 问题分析 报错原因 解决思路 解决方法 1. 确保事务的正确启动和结束 Spring中的事务管理 2. 避免嵌套事务问题…

第五节:如何使用其他注解方式从IOC中获取bean(自学Spring boot 3.x的第一天)

大家好&#xff0c;我是网创有方&#xff0c;上节我们实践了通过Bean方式声明Bean配置。咱们这节通过Component和ComponentScan方式实现一个同样功能。这节实现的效果是从IOC中加载Bean对象&#xff0c;并且将Bean的属性打印到控制台。 第一步&#xff1a;创建pojo实体类studen…

SpringBoot——整合Shiro,实现安全认证和权限管理功能

目录 Shiro 项目总结 新建一个SpringBoot项目 pom.xml application.properties&#xff08;配置文件&#xff09; User&#xff08;实体类&#xff09; UserMapper&#xff08;数据访问层接口&#xff09; UserMapper.xml&#xff08;数据库映射文件&#xff09; User…

量化投资 日周月报 2024-06-28

文章 深度学习在量化交易中的应用:在BigQuant量化交易平台的文章中,探讨了深度学习在量化交易中,特别是在因子挖掘方面的应用。文章提到,随着传统线性模型的潜力逐渐枯竭,非线性模型逐渐成为量化交易的主要探索方向。深度学习因其对非线性关系的拟合能力,在量化交易中展现…

【保姆级详细介绍JavaScript初识及基本语法】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

WPS表格下拉数据不自动增长的办法

使用WPS表格的时候&#xff0c;发现下拉数据总是会自动增长。但是当我们不需要它自动增长的话&#xff0c;怎么办呢&#xff1f; 只需要按住ctrl然后再下拉&#xff0c;这样数据就不会自动增长啦

建投数据人力资源管理系统APP完成迭代升级

近日&#xff0c;建投数据人力资源管理系统APP完成迭代升级。 此次升级思路&#xff0c;遵循提升移动应用的功能和用户体验&#xff1b;直观的界面、快速的响应速度和安全的数据存储&#xff1b;个性化的功能&#xff0c;以满足不同员工的需求和使用偏好。 人力资源管理系统A…

Vite脚手架+Vant组件库初始化前端项目

脚手架概念&#xff1a; 在前端开发中&#xff0c;脚手架&#xff08;Scaffold&#xff09;是指一个用于快速搭建项目基础结构的工具或模板。脚手架包含了项目所需的基本文件结构、配置文件、依赖管理等内容&#xff0c;使开发者能够更快速地开始项目开发&#xff0c;而不必从…