AI大模型探索之路-实战篇4:深入DB-GPT数据应用开辟框架调研
前言在当今的人工智能期间,大模型技能的迅猛发展为各行各业带来了前所未有的厘革。这些大模型,以其强大的语言明白和天生能力,正在渐渐成为智能化应用的核心。然而,怎样高效地利用这些大模型,构建出满意各种需求的应用,仍然是一个具有挑战性的题目。DB-GPT,作为一个开源的AI原生数据应用开辟框架,应运而生,旨在简化大模型应用的开辟过程,让构建智能化应用变得触手可及。本文将深入先容DB-GPT的核心功能、关键特性,并通过实战操作,展示怎样利用DB-GPT进行数据应用开辟。
一、DB-GPT总体概述
https://img-blog.csdnimg.cn/direct/2ccd391292bd4c3d9bdaf2c4e13a7ab0.png
DB-GPT是一个开源的AI原生数据应用开辟框架。目的是构建大模型范畴的基础设施,通过开辟多模型管理(SMMF)、Text2SQL效果优化、RAG框架以及优化、Multi-Agents框架协作、AWEL(智能体工作流编排)等多种技能能力,让围绕数据库构建大模型应用更简单,更方便。
https://img-blog.csdnimg.cn/direct/867579cd45f94e9fbaa5b3dc3340920c.png
核心能力重要有以下几个部门:
RAG(Retrieval Augmented Generation),RAG是当下落地实践最多,也是最急迫的范畴,DB-GPT目前已经实现了一套基于RAG的框架,用户可以基于DB-GPT的RAG能力构建知识类应用。
[*]GBI:天生式BI是DB-GPT项目的核心能力之一,为构建企业报表分析、业务洞察提供基础的数智化技能保障。
[*]微调框架: 模型微调是任何一个企业在垂直、细分范畴落地不可或缺的能力,DB-GPT提供了完备的微调框架,实现与DB-GPT项目的无缝买通,在最近的微调中,基于spider的准确率已经做到了82.5%
[*]数据驱动的Multi-Agents框架: DB-GPT提供了数据驱动的自进化Multi-Agents框架,目标是可以持续基于数据做决议与执行。
[*]数据工厂: 数据工厂重要是在大模型期间,做可信知识、数据的清洗加工。
[*]数据源: 对接各类数据源,实现生产业务数据无缝对接到DB-GPT核心能力。
二、DB-GPT关键特性
1、私域问答&数据处理&RAG
DB-GPT支持通过内置、多文件格式上传、插件自抓取等方式自界说构建知识库,能够对海量结构化和非结构化数据进行同不停量存储与检索,实现高效的知识管理。此外,DB-GPT还实现了基于RAG的框架,用户可以基于DB-GPT的RAG能力构建知识类应用,为用户提供更加智能的问答体验。
2、多数据源&GBI
DB-GPT支持与多种数据源进行交互,包罗但不限于Excel、各类数据库和数仓,同时支持天生分析陈诉,为用户提供深入的业务洞察。GBI,即天生式BI,是DB-GPT项目的核心能力之一,可以为构建企业报表分析、业务洞察提供基础的数智化技能保障。
3、多模型管理
DB-GPT支持海量模型,包罗多种开源和API代理的大语言模型,如LLaMA/LLaMA2、Baichuan、ChatGLM、文心、通义、智谱、星火等。用户可以根据需求选择符合的模型进行应用开辟,极大地提高了开辟的机动性和便捷性。
https://img-blog.csdnimg.cn/direct/3030dd37fb464cb5b22faf11bebc0959.png
4、自动化微调
围绕大语言模型、Text2SQL数据集、LoRA/QLoRA/Pturning等微调方法构建的自动化微调轻量框架, 让TextSQL微调像流水线一样方便。
https://img-blog.csdnimg.cn/direct/6df1814efb264ff39add91276ec19561.png
5、Data-Driven Multi-Agents&Plugins
DB-GPT支持自界说插件执行任务,并且原生支持Auto-GPT插件模型,通过Agents协议接纳Agent Protocol标准,实现智能体之间的协作和任务的高效执行。这种数据驱动的自进化Multi-Agents框架,可以持续基于数据做决议与执行,大大提高了应用的智能化水平。
6、隐私安全
DB-GPT注意数据隐私和安全,通过私有化大模型、代理脱敏等多种技能保障数据的隐私安全。这一点在当今这个数据安全日益受到器重的期间,显得尤为重要。
https://img-blog.csdnimg.cn/direct/d4858c12a052472592609235858e4459.png
三、服务器资源准备
DB-GPT刚好有支持AutoDL的镜像,因此直接在AutoDL 云平台时进行实践操作;在AutoDL云平台上,选择一台4090 GPU24G的服务器,为DB-GPT的运行提供须要的计算资源。打开jupyterLab,选择“终端”启动项,打开终端页面,后续所有操作都基于终端进行操作。
1、创建实例
选择一台4090 GPU24G的服务器,进行创建实例。
https://img-blog.csdnimg.cn/direct/ef2a77a1e6a9402583313994be8dd33d.png
2、打开jupyterLab
选择”终端“启动项,打开终端页面,后续所有操作都基于终端进行操作。
https://img-blog.csdnimg.cn/direct/d9690e3688b54688905211636de28d92.png
四、DB-GPT启动
1、激活 conda 环境
conda activate dbgpt
2、切换到 DB-GPT 目录
cd /root/DB-GPT/
3、导入 SQLite 样例数据
bash ./scripts/examples/load_examples.sh
https://img-blog.csdnimg.cn/direct/97ea7464c74646539c5aef4e6d05f37a.png
五、DB-GPT运行
1、使用命令行工具启动
dbgpt start webserver --port 6006
dbgpt 是 DB-GPT 项目的命令行工具,这里利用命令行工具来启动(固然,你也可以使用命令 python dbgpt/app/dbgpt_server.py --port 6006 来启动)。
这里使用 6006 端口来启动服务,这个端口方便在 AutoDL 中开启公网访问。
镜像中默认准备好了 Qwen-1_8B-Chat 和 text2vec-large-chinese 模型文件。
https://img-blog.csdnimg.cn/direct/ba0a2d9b253c4f9d8170c5eac595b620.png
2、访问 DB-GPT 页面
在服务器示例列表中,找到自界说服务,点击。
https://img-blog.csdnimg.cn/direct/31a51b59a6194256a8540dec28e7bf23.png
点击 “访问” 后自动打开的页面如下:
https://img-blog.csdnimg.cn/direct/36e01b4e99cd47398e1171644ef6640b.png
六、DB-GPT数据对话
数据对话能力是通过天然语言与数据进行对话,重要是结构化与半结构化数据的对话,可以辅助做数据分析与洞察。在开始数据对话之前,我们首先须要添加数据源
1、安装数据库
步骤1:安装MySQL数据库
sudo apt-get update
sudo apt-get install mysql-server
sudo service mysql start
安装启动mysql完成之后,登录mysql(默认无暗码)
mysql -u root -p
https://img-blog.csdnimg.cn/direct/2688f8975ae94c63b41f951e61a6ed22.png
步骤2:创建数据库用户
CREATE USER 'gpt'@'localhost' IDENTIFIED BY 'gpt';
步骤3:给数据库用户赋权限
GRANT ALL PRIVILEGES ON *.* TO 'gpt'@'localhost';
FLUSH PRIVILEGES;
2、添加数据源
1)数据准备
目前DB-GPT支持多种数据库类型。 选择对应的数据库类型添加即可。这里我们选择的是MySQL作为演示,演示的测试数据:case_1_student_manager_mysql.sql
create database case_1_student_manager character set utf8;
use case_1_student_manager;
CREATE TABLE students (
student_id INT PRIMARY KEY,
student_name VARCHAR(100) COMMENT '学生姓名',
major VARCHAR(100) COMMENT '专业',
year_of_enrollment INT COMMENT '入学年份',
student_age INT COMMENT '学生年龄'
) COMMENT '学生信息表';
CREATE TABLE courses (
course_id INT PRIMARY KEY,
course_name VARCHAR(100) COMMENT '课程名称',
credit FLOAT COMMENT '学分'
) COMMENT '课程信息表';
CREATE TABLE scores (
student_id INT,
course_id INT,
score INT COMMENT '得分',
semester VARCHAR(50) COMMENT '学期',
PRIMARY KEY (student_id, course_id),
FOREIGN KEY (student_id) REFERENCES students(student_id),
FOREIGN KEY (course_id) REFERENCES courses(course_id)
) COMMENT '学生成绩表';
INSERT INTO students (student_id, student_name, major, year_of_enrollment, student_age) VALUES
(1, '张三', '计算机科学', 2020, 20),
(2, '李四', '计算机科学', 2021, 19),
(3, '王五', '物理学', 2020, 21),
(4, '赵六', '数学', 2021, 19),
(5, '周七', '计算机科学', 2022, 18),
(6, '吴八', '物理学', 2020, 21),
(7, '郑九', '数学', 2021, 19),
(8, '孙十', '计算机科学', 2022, 18),
(9, '刘十一', '物理学', 2020, 21),
(10, '陈十二', '数学', 2021, 19);
INSERT INTO courses (course_id, course_name, credit) VALUES
(1, '计算机基础', 3),
(2, '数据结构', 4),
(3, '高等物理', 3),
(4, '线性代数', 4),
(5, '微积分', 5),
(6, '编程语言', 4),
(7, '量子力学', 3),
(8, '概率论', 4),
(9, '数据库系统', 4),
(10, '计算机网络', 4);
INSERT INTO scores (student_id, course_id, score, semester) VALUES
(1, 1, 90, '2020年秋季'),
(1, 2, 85, '2021年春季'),
(2, 1, 88, '2021年秋季'),
(2, 2, 90, '2022年春季'),
(3, 3, 92, '2020年秋季'),
(3, 4, 85, '2021年春季'),
(4, 3, 88, '2021年秋季'),
(4, 4, 86, '2022年春季'),
(5, 1, 90, '2022年秋季'),
(5, 2, 87, '2023年春季');
执行SQL,创建数据库,创建数据表、添加数据
https://img-blog.csdnimg.cn/direct/634969fd865b4c6d829acb1e97f390d2.png
2)数据检查
查看SQL之后,数据是否正常入库
https://img-blog.csdnimg.cn/direct/5d47b981b2124cd797c5f20650aeaa00.png
3、绑定数据库
将我们创建的MySQL数据库设置为数据源
https://img-blog.csdnimg.cn/direct/2bf7018c1b28447caf497f8339d130df.png
配置好数据库毗连信息
https://img-blog.csdnimg.cn/direct/ba56a86d8f1b4021923178e6277a7a42.png
4、对话体验
用户可以通过天然语言提问,DB-GPT会根据题目的语义明白,天生相应的SQL查询语句,并将查询结果以图表、表格或数据的形式返回给用户。如许的交互方式极大地简化了数据分析的复杂性,使得非技能用户也能够轻松地进行数据查询和分析。
1)选择数据对话
https://img-blog.csdnimg.cn/direct/cbb4634fcf794dfdb3db6833031536a1.png
2)开始数据对话
此时界面上数据库已经默认设置为我们前面绑定的数据库了,也可以手动选择
https://img-blog.csdnimg.cn/direct/c7118bd3c92d475c9ea15e16aa0fbc9e.png
3)错误处理
在数据对话的过程中,可能会遇到一些题目,比如缺少须要的Python库或者模型对某些查询的处理不够准确。例如,如果在提问咨询时遇到“RuntimeError: ‘cryptography’ package is required for sha256_password or caching_sha2_password auth methods”的错误,就须要安装相应的Python库来解决题目。通过pip install cryptography命令安装缺少的库后,须要重新启动DB-GPT以使更改生效。
pip install cryptography
https://img-blog.csdnimg.cn/direct/4ea09cf05dab4428bdb47c021d0a5821.png
安装后重新启动DB-GPT
4)数据对话1
题目:请帮我查询统共有多少门生?
可以看到数据查询成功,而且还分3中方式返回Chart、SQL、Data
https://img-blog.csdnimg.cn/direct/9b8af2ca8fdd452d912cb400f03f8c1a.png
返回SQL语句,可以检查相关的SQL是否精确
https://img-blog.csdnimg.cn/direct/21a7e7e799e545dea9e750b6f41b7ac0.png
Data页签返回执行结果
https://img-blog.csdnimg.cn/direct/25d8f2f777d749718ff5108ba73cc6ef.png
SQL执行
还可以点击上面的Editor按钮,复制SQL,直接在页面上执行,查看结果
https://img-blog.csdnimg.cn/direct/bea927160a7d4794bd3cec1f81ed56e2.png
5)数据对话2
后门毗连问了两次稍微比第一次复杂一点的哀求,就搞不定了。
https://img-blog.csdnimg.cn/direct/cfd45a63062c459a82ca2623fe77256b.png
数据对话的体验展示了DB-GPT在处理结构化和半结构化数据方面的能力,它能够明白用户的天然语言查询,并准确地转换成SQL语句,执行查询并返回结果。用户可以通过简单的问答形式,获取到他们须要的数据洞察,这对于数据分析和业务决议来说是非常有代价的。
总结
经过实战测试,DB-GPT展现了其强大的功能、对多种模型的支持以及精良的界面体验。但是在交互体验和复杂任务处理方面存在一定的不足,如果模型的稳固性和任务拆解能力的进一步提升,DB-GPT有望成为大模型应用开辟范畴的优秀工具。
DB-GPT的开辟团队持续在优化其功能和性能,用户社区的反馈和贡献也是推动其进步的重要气力。随着大模型技能的成熟和应用的普及,我们可以等待DB-GPT在未来能够提供更加完善和强大的服务,帮助开辟者轻松构建出智能、高效的应用,推动人工智能技能在各行各业的应用和发展。
https://img-blog.csdnimg.cn/direct/5b11be156f4e49fda84e9fe4ec19f05d.png
页:
[1]