DB-GPT、ChatGLM3-6B全精度部署

本文详细介绍了如何在特定环境下部署DB-GPT,包括Python版本管理、数据库(MySQL)设置、模型下载、.env文件配置,以及多GPU支持的注意事项。
摘要由CSDN通过智能技术生成

0、先看效果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
至少在FP16精度下能跑起来,除了加载的时候会卡一下,对话还是很流畅的。

1、环境准备

# DG-GPT的python版本大于3.10,但是ChatGLM3-6B是要用3.11版本的
conda create -n dbgpt python=3.11.3 

conda activate dbgpt

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

cd DB-GPT

# 这里需要访问github等外网,需要开通VPN,我这里有VPN搭建教程,评论有需要可以出一期
pip install -e ".[defalut]"
# 这个库需要额外安装
pip install openai

在执行过程中,代码还有一些问题,主要是pip安装的dbgpt库存在模块缺失问题,但是代码里是提供了dbgpt模块的,就在项目根目录下面的dbgpt文件夹,代码需要修改,添加库访问路径,并且需要卸载安装的dbgpt库。

在这里插入图片描述

# 卸载dbgpt模块,直接备份库文件
mv /usr/local/anaconda3/envs/dbgpt11/lib/python3.11/site-packages/dbgpt /usr/local/anaconda3/envs/dbgpt11/lib/python3.11/site-packages/dbgpt.bak

源代码修改,就是把这两句代码提前到dbgpt模块导入

在这里插入图片描述

2、 数据库设置(docker + MySQL)

# docker安装与mysql容器搭建就不详细说了
# 主要是数据迁移,有小坑
# 首先查看mysql服务地址
ifconfig

在这里插入图片描述

# 导入数据库
mysql -h 172.17.0.1 -u root -p < ./assets/schema/dbgpt.sql

# 由于代码更新需要修改数据库表结构,有一张表需要添加字段
mysql -u root -p -h 172.17.0.1 

在这里插入图片描述

USE dbgpt;
ALTER TABLE  dbgpt_serve_flow
    ADD COLUMN `error_message` varchar(512) null comment 'Error message' after `state`;

3、模型下载

请参照我的上一篇博客
ChatGLM3-6B 多GPU、Linux环境部署遇到的问题以及解决方法

cd DB-GPT
mkdir models
ln -s /opt/model/cache/ZhipuAI/chatglm3-6b /opt/suwy/DB-GPT/models/chatglm3-6b
# 注意这个bge-large-zh不要加后缀,这个是写死在.env环境文件中的
ln -s /opt/model/cache/AI-ModelScope/bge-large-zh-v1.5 /opt/suwy/DB-GPT/models/bge-large-zh

在这里插入图片描述

4、.env环境文件修改

cp .env.template .env
# 主要修改大语言模型配置、embedding配置、数据库配置、GPU使用配置
## 以下是修改部分

# 大语言模型配置 
#*******************************************************************#
#**                         LLM MODELS                            **#
#*******************************************************************#
# LLM_MODEL, see dbgpt/configs/model_config.LLM_MODEL_CONFIG
#LLM_MODEL=vicuna-13b-v1.5
LLM_MODEL=chatglm3-6b
## LLM model path, by default, DB-GPT will read the model path from LLM_MODEL_CONFIG based on the LLM_MODEL.
## Of course you can specify your model path according to LLM_MODEL_PATH


## embedding配置
#*******************************************************************#
#**                         EMBEDDING SETTINGS                    **#
#*******************************************************************#
#EMBEDDING_MODEL=text2vec
#EMBEDDING_MODEL=m3e-large
#EMBEDDING_MODEL=bge-large-en
EMBEDDING_MODEL=bge-large-zh
KNOWLEDGE_CHUNK_SIZE=500
KNOWLEDGE_SEARCH_TOP_SIZE=5
## Maximum number of chunks to load at once, if your single document is too large,
## you can set this value to a higher value for better performance.
## if out of memory when load large document, you can set this value to a lower value.
# KNOWLEDGE_MAX_CHUNKS_ONCE_LOAD=10
#KNOWLEDGE_CHUNK_OVERLAP=50
# Control whether to display the source document of knowledge on the front end.
KNOWLEDGE_CHAT_SHOW_RELATIONS=False
# Whether to enable Chat Knowledge Search Rewrite Mode
KNOWLEDGE_SEARCH_REWRITE=False
## EMBEDDING_TOKENIZER   - Tokenizer to use for chunking large inputs
## EMBEDDING_TOKEN_LIMIT - Chunk size limit for large inputs
# EMBEDDING_MODEL=all-MiniLM-L6-v2
# EMBEDDING_TOKENIZER=all-MiniLM-L6-v2
# EMBEDDING_TOKEN_LIMIT=8191


# 数据库配置
#*******************************************************************#
#**                  DB-GPT METADATA DATABASE SETTINGS            **#
#*******************************************************************#
### SQLite database (Current default database)
#LOCAL_DB_TYPE=sqlite

### MYSQL database
LOCAL_DB_TYPE=mysql
LOCAL_DB_USER=root
LOCAL_DB_PASSWORD=123456
LOCAL_DB_HOST=172.17.0.1
LOCAL_DB_PORT=3306
LOCAL_DB_NAME=dbgpt
### This option determines the storage location of conversation records. The default is not configured to the old version of duckdb. It can be optionally db or file (if the value is db, the database configured by LOCAL_DB will be used)
#CHAT_HISTORY_STORE_TYPE=db


## GPU使用配置(我是多GPU,注释说得很详细了)
#*******************************************************************#
#**    MUlti-GPU                                                  **#
#*******************************************************************#
## See https://developer.nvidia.com/blog/cuda-pro-tip-control-gpu-visibility-cuda_visible_devices/
## If CUDA_VISIBLE_DEVICES is not configured, all available gpus will be used
# CUDA_VISIBLE_DEVICES=0
## You can configure the maximum memory used by each GPU.
# MAX_GPU_MEMORY=16Gib
CUDA_VISIBLE_DEVICES=0,1
MAX_GPU_MEMORY=8Gib

5、执行

conda  activate dbgpt;
python dbgpt/app/dbgpt_server.py
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Geek V

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值