一文速学ChatBi“与数据库对话“大模型技术原理及框架一览

本文主要是介绍一文速学ChatBi“与数据库对话“大模型技术原理及框架一览,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

上期写了NL2SQL,相信看过的朋友应该都对现在大模型在数据交互办公层面的探索和发展都十分感兴趣,在此商业化的产品市场上也有很多,比如阿里云的析言GBI:
在这里插入图片描述腾讯云的ChatBI:

在这里插入图片描述
像此类的产品可以说是最贴切业务的。

在许多业务场景中,用户最关心的是如何快速获取最终的数据结果,而不是去理解数据是如何被提取和处理的。学习数据获取的复杂过程往往是一个高成本的障碍,而降低这一成本直接关系到产品的吸引力和用户的转化率。对于我们技术人员而言,尽管研发思维是核心,但我们开发的服务最终还是为了更好地服务于业务需求。随着技术的进步,自然语言到SQL(NL2SQL)转化已成为数据开发的未来趋势,它让用户能够用最少的学习成本获取他们所需的数据。ChatBI正是这一趋势的具体体现,它不仅降低了技术门槛,还显著提升了用户体验和产品竞争力,使数据分析变得更加直观和高效。

那么本期文章我们来研究DB-GPT这类技术作为LLM与数据库结合的产品原理和框架,帮助我们能够真正运用到自己的业务之中。

1.何为DB-GPT

DB-GPT是一个开源的AI原生数据应用开发框架(AI Native Data App Development framework with AWEL(Agentic Workflow Expression Language)and Agents)。旨在简化大模型应用的构建,特别是围绕数据库的应用。它通过整合多种技术能力,如多模型管理(SMMF)、Text2SQL效果优化、RAG框架优化、以及多智能体框架的协作,帮助企业和开发者更方便地开发基于大模型的应用。此外,DB-GPT还引入了AWEL(智能体工作流编排),让复杂的工作流程自动化,减少开发者所需的编码工作量。进入数据3.0时代,这意味着开发者可以用更少的代码、更高的效率,快速构建属于自己的专属数据应用,推动业务创新。
在这里插入图片描述本篇文章主要详解DB-GPT这一体系,会对整个AI框架进行详细的描述。我们根据上图整个DB-GPT的架构来看。

1. Train(训练)

在框架的底层是 DB-GPT-Hub,这是模型训练和数据准备的基础层。它包括多种技术能力的训练,如 Text2SQL、Text2DSL、Text2API、Text2Vis 等。这一层为上层的模块和应用提供了强大的训练支持,确保模型的高效性和精确性。

2. Protocol(协议层)

AWEL(智能体工作流编排语言):AWEL 是一种用于定义和管理智能体工作流的协议语言。在这个层面上,AWEL 提供了 DSL(领域特定语言)、AgentFrame(智能体框架)、Operators(操作符)、Parallelization(并行化)等功能。这些组件使得工作流的编排和执行变得更加灵活和高效。

3. Module(模块层)

模块层包含了三大核心模块:

  • SMMF(多模型管理框架):负责管理和调度多个模型。它包含了 Controller(控制器)、Registry(注册表)、Worker(工作者)、Model(模型)、Prompt(提示词)、Inference(推理)等组件,确保多模型的高效协作和运行。
  • RAGs(检索增强生成模块):包括 Query Rewrite(查询重写)、RAG Retriever(检索器)、Ranking(排序)、Document Loader(文档加载器)、Embedding(嵌入)、Text Splitter(文本分割器)等,主要用于提升生成内容的准确性和相关性。
  • Agents(智能体模块):负责多智能体的协作和任务执行,包括 Auto(自动化)、Plan(计划)、Multi-Roles(多角色)、Data-Driven(数据驱动)等能力。

4. Server(服务层)

服务层包括多个服务组件,如 LLMServer(大语言模型服务)、APIServer(API服务)、RAGServer(RAG服务)以及 dbgptServer(DBGPT服务)等。这些服务组件共同支持上层应用的运行,确保系统的稳定性和可扩展性。

5. Application(应用层)

应用层展示了多种基于DB-GPT构建的具体应用,包括 DBGPTsGBIChatDBChatDataKBQ4ChatExcel 等。这些应用面向不同的业务需求,利用底层的技术和服务,实现了从自然语言查询到数据分析的自动化流程。

6. Visualization(可视化层)

最上层是可视化层 GPT-Vis,它包括了 Markdown、Charts、Flow、Graph、CodeFragment、StreamOutput、Table 等可视化工具。这些工具帮助用户更直观地理解和展示数据分析的结果。

7. 支持和集成

该框架还集成了多种云服务和容器化技术,如 Kubernetes、Ray、AWS、Alibaba Cloud 和 Private Cloud,支持跨平台和多环境的部署和运行。

8. 辅助功能

在框架的右侧,框架还强调了支持 监控(Monitoring)评估(Evaluation)反馈(Feedback)测试(Testing)调试(Debugging) 的工具和机制,确保系统的可靠性和持续优化。

这个框架展示了 DB-GPT 的强大功能和灵活性,使得开发者能够利用这一平台高效地开发和部署复杂的AI应用,特别是在数据库驱动的环境中。我们拿出关键的核心模块来探讨研究。

核心模块

1.1 SMMF

多模型管理框架(SMMF,Multi-Model Management Framework)是DB-GPT中用于管理和优化多个大语言模型(LLMs)的关键组件。它的主要功能是为开发者提供一种高效、灵活的方式来同时管理多个模型,从而提升大模型应用的性能和效果,特别是在围绕数据库的场景中。
在这里插入图片描述
在企业级应用中,SMMF尤其适用于需要同时处理多种任务或需要集成多种模型的场景。例如,一个智能客服系统可能需要同时处理客户的自然语言查询、产品推荐以及情感分析,这些任务分别可能需要不同的模型来完成。SMMF可以帮助企业灵活地管理这些模型,并根据实际需求动态调整,以确保系统的高效运行。

1.2 RAG(Retrieval Augmented Generation)

正如其名,是一种将检索(Retrieval)和生成(Generation)结合起来的技术。它首先从一个巨大的知识库中检索出与提出的问题最相关的信息,然后基于这些信息来生成回答。这样做的好处是,它允许模型不仅依赖其已有的知识,还可以实时地利用外部数据来提供更准确、更丰富的回答。
在这里插入图片描述
传统的生成式语言模型在面对广泛主题或复杂数据库查询时,可能会因为缺乏特定领域的知识而生成不准确或不完整的答案。RAG 框架通过结合信息检索技术,先从相关的知识库或数据库中检索出与查询相关的信息,再将这些信息输入到生成模型中。这种方法有效地弥补了生成模型在特定领域知识上的不足,从而提升了生成内容的准确性。

在 DB-GPT 中,RAG 框架允许系统动态地处理复杂的自然语言查询。对于一个复杂查询,RAG 首先检索到相关的数据库模式或数据条目,然后将这些信息与用户的查询结合,生成更加准确和上下文相关的SQL查询。这种能力使得 DB-GPT 在处理多样化的用户需求时更加灵活和强大。

1.3 Agents

自动化(Auto):自动化是 Agents 模块的核心功能之一。它允许智能体在没有人工干预的情况下,基于预定义的规则或模型,自主地执行任务。这种能力大大提高了系统的效率,减少了人工操作的需求,尤其是在处理重复性任务时,自动化功能能够显著提升工作流的执行速度和准确性。

计划(Plan):计划功能使得智能体可以根据输入任务和目标,自主制定和调整任务执行计划。智能体通过分析任务的复杂性、时间要求以及资源限制,生成最优的执行计划。这种功能在复杂的多步骤任务中尤为重要,可以确保任务按照最优路径高效完成。

多角色(Multi-Roles):这一功能允许单个智能体承担多个角色,或者通过多个智能体的合作来完成一个复杂任务。多角色功能能够灵活分配任务,确保每个任务都由最合适的角色或智能体来执行。这种灵活性使得系统可以应对多样化的业务需求和任务复杂性。

数据驱动(Data-Driven):数据驱动是指智能体能够基于实时数据进行决策和任务执行。这种功能使得智能体能够动态调整其行为,以适应环境的变化或数据的更新,从而提高任务执行的准确性和及时性。数据驱动的能力确保了系统在面对不确定性和动态变化时,仍然能够保持高效和稳定的运行。

智能体可以利用 RAGs 模块提供的信息检索和增强生成能力,更准确地理解用户查询并生成响应。也可以与 SMMF 模块协作,动态调用和管理多个模型,确保在不同的任务场景中使用最合适的模型,以达到最佳效果。这种扩展性确保了 DB-GPT 框架可以适应各种复杂的应用场景,并提供高度定制化的解决方案。

1.4 自动化微调

在这里插入图片描述
围绕大语言模型、Text2SQL数据集、LoRA/QLoRA/Pturning等微调方法构建的自动化微调轻量框架, 让TextSQL微调像流水线一样方便。

1.数据存储与处理(Data Storage & Data Process)

用户的原始数据首先被存储,通常包括用于训练的大规模SQL查询数据集,如Spider数据集。Spider数据集是一个广泛用于Text-to-SQL任务的基准数据集,包含了大量的SQL查询及其对应的自然语言描述。接下来,存储的数据会经过数据处理阶段,包括清洗、格式化和预处理,以确保数据能够被下游的大语言模型(LLMs)高效利用。这一步骤至关重要,因为高质量的数据处理能够显著提升模型的训练效果。

2. 大语言模型加载(Base LLMs Loader)

在这一阶段,预先训练的基础大语言模型(LLMs)会被加载。这些模型包括OpenAI的GPT、Meta的LLaMA、Google的BERT等。这些基础模型已经通过大规模数据预训练,具备了强大的自然语言理解和生成能力,但在特定领域的表现可能还需要进一步优化。

3. 微调(Fine-Tuning)

模型会通过几种不同的微调方法进行优化,包括LoRA(低秩自适应)、QLoRA(量化低秩自适应)、SST(逐步缩放训练)和SPT(逐步渐进训练)等。这些方法能够在保留原有模型强大能力的基础上,对模型进行更加精细的调整,使其在特定任务上表现更好。例如特定领域的SQL生成,提升模型的实际应用效果。

4. 强化学习与人类反馈(RLHF)

RLHF(Reinforcement Learning with Human Feedback):在微调后,模型会进一步通过强化学习结合人类反馈进行优化。这一过程通过结合用户的实际使用反馈来不断调整模型,使其生成的内容更加符合用户的预期。通过RLHF,模型不仅能够更好地理解用户的意图,还能持续改进,以应对不断变化的需求。

5. 预测与评估(Predict & Evaluation)

  • 预测:经过微调和RLHF后的模型会用于实际的预测任务,如生成SQL查询或其他复杂任务的解决方案。
  • 评估:最后,模型的表现会通过一系列的评估指标进行评估,以确保其生成的结果准确、高效,并符合预期。

那么下一章我们将在算力云服务器上面来进行完整部署搭建整个DB-GPT来使用,并且贴合业务去做一些实践验证。

如有纰漏之处,请留言指教,非常感谢

以上就是本期全部内容。我是fanstuck ,有问题大家随时留言讨论 ,我们下期见。

这篇关于一文速学ChatBi“与数据库对话“大模型技术原理及框架一览的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1133314

相关文章

Oracle数据库定时备份脚本方式(Linux)

《Oracle数据库定时备份脚本方式(Linux)》文章介绍Oracle数据库自动备份方案,包含主机备份传输与备机解压导入流程,强调需提前全量删除原库数据避免报错,并需配置无密传输、定时任务及验证脚本... 目录说明主机脚本备机上自动导库脚本整个自动备份oracle数据库的过程(建议全程用root用户)总结

Spring Security 单点登录与自动登录机制的实现原理

《SpringSecurity单点登录与自动登录机制的实现原理》本文探讨SpringSecurity实现单点登录(SSO)与自动登录机制,涵盖JWT跨系统认证、RememberMe持久化Token... 目录一、核心概念解析1.1 单点登录(SSO)1.2 自动登录(Remember Me)二、代码分析三、

springboot自定义注解RateLimiter限流注解技术文档详解

《springboot自定义注解RateLimiter限流注解技术文档详解》文章介绍了限流技术的概念、作用及实现方式,通过SpringAOP拦截方法、缓存存储计数器,结合注解、枚举、异常类等核心组件,... 目录什么是限流系统架构核心组件详解1. 限流注解 (@RateLimiter)2. 限流类型枚举 (

Python Web框架Flask、Streamlit、FastAPI示例详解

《PythonWeb框架Flask、Streamlit、FastAPI示例详解》本文对比分析了Flask、Streamlit和FastAPI三大PythonWeb框架:Flask轻量灵活适合传统应用... 目录概述Flask详解Flask简介安装和基础配置核心概念路由和视图模板系统数据库集成实际示例Stre

Python实现PDF按页分割的技术指南

《Python实现PDF按页分割的技术指南》PDF文件处理是日常工作中的常见需求,特别是当我们需要将大型PDF文档拆分为多个部分时,下面我们就来看看如何使用Python创建一个灵活的PDF分割工具吧... 目录需求分析技术方案工具选择安装依赖完整代码实现使用说明基本用法示例命令输出示例技术亮点实际应用场景扩

在MySQL中实现冷热数据分离的方法及使用场景底层原理解析

《在MySQL中实现冷热数据分离的方法及使用场景底层原理解析》MySQL冷热数据分离通过分表/分区策略、数据归档和索引优化,将频繁访问的热数据与冷数据分开存储,提升查询效率并降低存储成本,适用于高并发... 目录实现冷热数据分离1. 分表策略2. 使用分区表3. 数据归档与迁移在mysql中实现冷热数据分

Olingo分析和实践之OData框架核心组件初始化(关键步骤)

《Olingo分析和实践之OData框架核心组件初始化(关键步骤)》ODataSpringBootService通过初始化OData实例和服务元数据,构建框架核心能力与数据模型结构,实现序列化、URI... 目录概述第一步:OData实例创建1.1 OData.newInstance() 详细分析1.1.1

一文解密Python进行监控进程的黑科技

《一文解密Python进行监控进程的黑科技》在计算机系统管理和应用性能优化中,监控进程的CPU、内存和IO使用率是非常重要的任务,下面我们就来讲讲如何Python写一个简单使用的监控进程的工具吧... 目录准备工作监控CPU使用率监控内存使用率监控IO使用率小工具代码整合在计算机系统管理和应用性能优化中,监

虚拟机Centos7安装MySQL数据库实践

《虚拟机Centos7安装MySQL数据库实践》用户分享在虚拟机安装MySQL的全过程及常见问题解决方案,包括处理GPG密钥、修改密码策略、配置远程访问权限及防火墙设置,最终通过关闭防火墙和停止Net... 目录安装mysql数据库下载wget命令下载MySQL安装包安装MySQL安装MySQL服务安装完成

MySQL进行数据库审计的详细步骤和示例代码

《MySQL进行数据库审计的详细步骤和示例代码》数据库审计通过触发器、内置功能及第三方工具记录和监控数据库活动,确保安全、完整与合规,Java代码实现自动化日志记录,整合分析系统提升监控效率,本文给大... 目录一、数据库审计的基本概念二、使用触发器进行数据库审计1. 创建审计表2. 创建触发器三、Java