数据库领域的大语言模型应用时代已经开启了

2023-05-17 00:00:00 数据库 语言 模型 部署 知识
半年前CHATGPT大热的时候,我就觉得运维工作可能会因为这种形态的AI产品而发生改变。只不过那时候大家都还在惊叹CHATGPT的善解人意,行业应用还没有开展起来。我们一直是做运维知识自动化的,而大语言模型正好是知识的佳载体,因此我看到CHATGPT后立即就有把这玩意融入D-SMART产品的冲动。
不过数据库是和数据密切相关的,其安全性要求决定了公有云部署的大语言模型很难直接应用于数据库运维,只能在外网作为一个知识工具使用。而真正需要大语言模型能力的数据库运维场景是在内网,必须将大语言模型与数据库监控运维工具相结合,才能发挥出其大的作用。
今年2月份复旦发布 MOSS模型时候,我还是有点小兴奋的。和互联网企业发布的模型不同,高校发布的模型往往部署成本较低,不过虽然MOSS已经很小了,还是无法在普通的单卡环境部署,这样要想应用到大量的中小企业还是有些困难的。DBAIOPS社区的目的是让一些没太多钱用于数据库智能化运维的企业也能用得起智能化的工具。3月28日清华发布CHATGLM-6B的时候,我觉得眼前一亮。能够在一张RTX 3060/3090就能跑起来的模型,是小企业也用得起的大模型。实际上现在已经开源的大模型,已经有很多款都可以用于单显卡部署了,这就意味着在一台不到1万块钱的台式机上,就可以把大语言模型的能力引入进来了。
清明节的时候,DBAIOPS社区的同事就开始在一块RTX 3090上尝试做CHATGLM-6B的微调,利用专业的运维知识在模型上做前置微调,从而提升模型在分析Oracle数据库故障方面的性能。经过一个月的尝试,我们发现这条路是走得通的,只是门槛并不低,知识梳理和训练都是挺费劲的。在一块老旧的单卡上跑一次完整的微调大约需要56个小时。
         
训练后的效果还是不错的,虽然技术水平一般般,不过自我感觉很好,问他是谁,都自称:“我是名为ChatGLM的数据库专家”。才微调训练了几千条样本,就狂得可以了。通过这段时间的探索我认为,利用可本地化部署的6B到17B规模的模型,构建私有化部署的平台,用于运维知识自动化系统,肯定是一条行得通的路子。利用语言模型可以把数据库运行的状态做语义加工后发布,遇到的故障,通过语言推理形成结论性的文字发送给DBA或者高管,比发送一组数据要直观得多。今年下半年,DBAIOPS社区会发布一个D-SMART社区版的组件,只要你有一台16G以上显卡的台式机就可以部署运行。
近大家都在讨论DBA领域的一个大语言模型开源应用,这就是两周前发布的DB-GPT。这是一个十分不错的数据库领域利用LLM做知识自动化的框架。利用VectorStore存储向量化的知识,通过langchain和大语言模型之间构建协同,在语言模型上,目前DB-GPT只支持Vicuna,Vicuna-13B需要占用20GB+的显存,在我的24GB的老破小上跑起来有点卡,所以我选择了VICUNA-7B,ChatGLM目前还没实现对接,我修改了一下loader.py的代码,llmserver是启动起来了,不过在推理时还是有些问题,可能还需要再调整一下代码,今天我会继续尝试。经过一天的折腾和不断踩坑后,DB-GPT终于在我的台式机上跑起来了。上图是DB-GPT的逻辑架构图,这个开源项目刚刚启动,所以图上大多数还都是未来的蓝图。不过这张蓝图还是挺诱人的。
         
让它做点简单的操作还是中规中矩的,复杂些的问题还是能力不足,这些都可以通过知识库的不断丰富来解决。有了这个开源项目作为基础,构建智能化运维的基础能力还是比较容易的。
目前在领域内的诸多开源项目为DB-GPT提供了基础能力。其中FastChat 提供 chat 服务,vicuna-13b 提供了基础LLM,通过langchain 构建了工具链,使用AutoGPT 通用的插件模版来完成各种自动化工作,向量存储使用了Chroma,Milvus ,采用llama-index 基于现有知识库进行In-Context Learning来对其进行数据库相关知识的增强。
我昨晚尝试了一下在llmserver中用chatglm-6b来替换vicuna-7b,不过家里那台台式机上用WSL构建的环境里折腾到临睡觉还没部署完。昨晚的睡眠很不好,睡到半夜突然醒了,又坐到电脑边上折腾了个把小时,llmserver倒是启动起来了,不过在CHAT的时候还是有错误。上了年纪了,精力有限,还是尽量少这样折腾,不过新鲜的玩意给人带来的诱惑有时候还是无法拒绝的。
         

相关文章