这两天一个朋友和我探讨AIGC在数据库运维领域的能力问题,他们准备搞一个题库,用于对大模型做这方面的能力测试。这是一件十分好的事情,因为最近这半年里,我一直在使用NewBing辅助我的工作,用NewBing内置的GPT4帮我收集资料,分析资料,颇为得心应手。也有一些朋友在用AIGC分析SQL执行计划、自动生成BI查询所需的SQL语句。甚至更为激进的朋友已经开始用AIGC自动生成SQL语句,运维自己的系统了。
就我这段时间的探索获得的经验,AIGC用于DBA工作辅助,最大的问题依然是幻觉问题。在一些模棱两可的问题或者一些ZERO SHOT场景,大模型依然会一本正经的说瞎话。
图片
我尝试给NewBing出了一道题,这道题难度并不算太大,不过如果不了解Oracle共享池原理的人还真的不一定能答对。
图片
NewBing给出了一个十分完美的答案,不仅答对了,其分析过程也无懈可击。可能很多DBA干了五年十年,对Oracle共享池的理解也不过如此吧。
图片
继续提问,不过这回出了一道更为复杂的题目,参杂了Oracle与PG的知识,这回NewBing显然没有给出正确的答案。
图片
它答对了A,但是把容易混淆的C也当成错误答案了。当日这道题普通的DBA也容易答错。我把比较容易出现歧义的地方做了修改,不过没办法,在这个对话SESSION中,AIGC已经认定了自己的判断了。
图片
面对如此顽固的Newbing,我我只能新开了一个会话,再次提问这个问题。
图片
在一个新的会话中,我用了作为Postgresql专家这个提示,NewBing居然十分正确的回答了这个问题。从上面的测试可以看出,AIGC已经具备了很强的人类辅助能力,但是因为幻觉的存在,它的回答是不确定的,也是无法保证准确的。基于此AIGC在DBA领域的作用也最好被放在辅助上,而完全自动化驾驶的环境中,还是要慎用的。前阵子在Oracle PAB大会上,Oracle的一些技术专家对此的看法也是如此。AIGC支持下的MOS肯定会有,AIGC支持下的智能分析诊断也一定会有,AIGC支持的CBO优化器还不一定能有。
在DBA领域,AIGC支持下的知识库、教学课程、数据建模辅助、SQL优化辅助、AI4BI的SQL自动生成、日志分析辅助定位、故障溯源辅助、复杂场景预警等这些工作,AIGC已经可以胜任了。只要是在辅助领域,而不是数据库的自动化驾驶领域,AIGC都可以进行很好的支撑。不过在自动化操作这个领域,因为幻觉的存在,绝对是要十分慎重的。
图片
AIGC已经被证明是十分有效的辅助手段了,大模型结合RAG是目前比较流行的解决方案。RAG 是检索增强生成(Retrieval-augmented generation)的缩写,是一种利用大语言模型和检索系统来生成文本的方法。RAG 可以从大规模的文本数据库中检索相关的文档,然后将它们作为上下文信息提供给 LLM,从而提高 LLM 的生成质量和准确性。RAG 可以应用于多种任务,如问答、摘要、对话等。
我一直在关注的蚂蚁的开源项目DB-GPT也发展得日臻完善。以此框架为基础,在数据库智能化运维领域构建自己的企业级AIGC智能化运维体系应该是可行的。有兴趣的朋友不妨关注一下这个开源项目。