在数字化转型的浪潮中,数据库作为企业数据管理的核心,扮演着至关重要的角色。随着业务规模的扩大和数据量的激增,数据库运维的复杂性也随之增加。传统运维方法在确保数据高可用性、系统稳定性、性能优化及故障快速响应方面,面临着诸多挑战,往往需要投入大量人力和时间成本,且效果依赖于运维人员的个人经验和直觉。
在此背景下,智能运维技术,特别是基于大模型的解决方案,为数据库运维带来了新的突破。
GaussDB AI大模型能够对数据库的运行状态进行实时监控和智能分析,识别出异常状态并检测可能的故障点,克服传统运维中依赖人工经验、响应速度慢、效率低下等问题,帮助企业更好地应对日益增长的数据挑战,确保业务的连续性和数据的安全性,为数字化转型提供坚实支撑。
一、GaussDB AI大模型整体设计思路
大语言模型(LLM,Large Language Model)是基于海量的通用语料进行数据训练而成的超深度学习神经网络,包含数十亿甚乃至更多参数,模型规模可以达到数百GB甚至更大,通过对大规模数据集进行训练,展现出强大的表达和学习能力。
大语言模型在数据库运维领域的应用,具有对运维知识理解、分析流程编排以及工具调用的能力及优势。GaussDB基于盘古大模型构建数据库从咨询、开发、优化、运维等阶段的各种AI应用,如图1所示。
图1 GaussDB AI能力整体方案
在咨询阶段,通过LLM与知识库的结合,构建了数据库垂域的专业知识问答系统。在运维阶段,利用大模型智能体的计划、编排、工具执行能力,实现了自动故障根因分析和定位。
下面我们将围绕GaussDB智能问答和运维智能体能力展开介绍。
二、GaussDB 智能问答和运维智能体
1. GaussDB智能问答
随着数据库产品的功能增强,技术能力的加深,不仅拓展了技术资料的广度和深度,相应地提高了学习成本,也提升了对数据库用户(DBA、开发人员、运维人员)使用数据库的门槛。
GaussDB基于RAG(Retrieval-Augmented Generation,检索增强生成)和LLM技术构建的智能知识问答能力,通过整合产品文档、社区资料、使用手册和运维手册等私域资料,运用自然语言处理和知识检索技术,GaussDB智能问答助手能理解并解答用户关于GaussDB的各类问题,帮助用户快速找到解决方案,在安装配置、性能优化、操作使用以及故障排查方面,提供精确有效、交互式的回答。
在技术实现上,RAG框架通过结合传统的信息检索方法与先进的生成模型,在用户提问时,先从私域部署的知识库中检索相关资料,再通过LLM生成流畅、准确的回答。这种设计既结合了LLM的通用性、灵活性以及对用户意图的理解力,又能将知识库作为大模型的“外脑”,解决了LLM存在的幻觉、信息过时、可解释性不足、专业知识缺乏的问题,确保用户获得的信息既准确又符合实际的操作需求。
图2 GaussDB智能问答流程
GaussDB智能问答主要关键特性如下:
-
文档知识提取
通过NLP(Natural Language Processing,自然语言处理)技术构建一系列文档处理工具,针对Markdown数据进行分块切分,以实现高效的知识管理。此外,还支持用户文档处理成向量知识以及文本知识。
-
知识召回
当用户提出问题时,智能问答系统首先会进行向量检索以及文本检索,在向量检索环节,使用一个重排模型对召回的结果进行排序,来确保与用户问题语义最为相关的知识,汇总到大模型后完成总结输出。
-
数据库领域知识微调
从技术文档、开发文档构建GaussDB专用语料库,并对底座LLM进行SFT微调训练,实现对GaussDB专有名词和场景的知识注入。为了避免训练过程中模型的遗忘,也适量加入通用语料知识进行混合训练微调,可以提高模型在回答数据库专业的准确率。
2. GaussDB运维智能体
在运维阶段,我们同样积极探索将已有的智能运维工具以及当前的大模型技术相结合,建立更加智能化、自治化的数据库故障分析与自愈框架。
图3 GaussDB故障运维智能体
如图3所示,GaussDB当前的故障运维智能体框架,主要依托大模型的多步对话、规划、反思以及工具调用的能力,形成能够自治并完成复杂故障分析任务的智能体应用。
GaussDB以LLM为决策大脑,按照案例知识召回、故障分析计划编排、故障分析执行、故障根因总结等步骤,结合运维工具集进行工作,其工作流程如图4所示。
图4 故障运维智能体工作流程
-
工具能力构建
GaussDB当前通过AI算法构建了系列异常检测、慢SQL诊断、集群故障根因诊断等关键运维能力。通过restful/Dubbo 接口与智能体无缝对接,确保了高效的数据交互与调用。通过构建运维工具API集合,在智能体分析故障流程中,实现不同故障运维场景下大模型能够调用合适的工具。
-
运维案例记忆
通过资深运维专家总结标准作业流程SOP,记录特定故障场景下需要检测的事项信息步骤以及故障判断准则,为智能体引入专家经验,构建故障运维案例库。此部分知识可以储存在数据库当中,留待智能体检索使用,而且在实践过程中,会对现网运维常见的CPU使用率、长事务、集群状态等TOP场景优先进行了支持。
-
故障分析计划编排
根据故障现象,通过相似度搜索,故障智能体在运维案例记忆中召回相关运维案例,组装成提示词,输入到大模型进行分析流程编排。对于不在预设TOP场景的故障类型,则通过大模型会根据现有案例以及运维知识,推理生成规划,形成对未知故障的学习能力。
-
故障分析执行
在计划编排步骤得到的故障分析计划下,重新组装提示词输入到大模型进行工具调用执行的任务,可以利用LLM的工具调用Function call能力,从工具集当中选择各个步骤的所需的工具参数,以及对应的工具接口API,生成的结果可以通过restful/Dubbo等接口协议进行执行,并且获取接口调用结果。对于需要多步执行的流程,上一步接口调用的结果,有可能需要拼接到LLM的下一步输入。
-
故障定位总结与报告生成
经过完整的计划编排以及分析执行后,这些步骤的结果将会汇总输入到LLM输出根因定位总结报告。在用户界面上,展示完整的分析流程以及对应的根因定位总结报告。
通过以上流程,运维智能体可以减少运维人员分析故障的复杂度,节省故障定位时间,同时能够直观展示分析流程以及总结报告。
三、总结与展望
本文介绍了GaussDB AI大模型技术在数据库运维的前沿技术探索与创新实践。通过利用大模型的编排与运维知识理解能力,结合数据库现有的运维工具,构建了知识问答、故障分析定位等一系列智能化应用。
同时,在实践过程中,也认识到单纯依赖大模型自身的知识进行复杂问题解决是不现实的。因此,通过引入知识库以及运维案例专家知识,可以更好地引导大模型生成符合事实的准确答案。
综上,GaussDB在AI大模型技术的加持下,通过整合内外部知识、优化运维工具与增强数据库管理能力,构建了一个高效、智能、全面的数据库运维体系,为数据库运维的未来开辟了新的道路。