ChatGPT与数据库能擦出什么火花?

ChatGPT,可以说是今年最火的一个科技名词。
随着这几个月的发展,我们看到有越来越多的ChatGPT与数据库结合的应用出现。
这也不禁令人畅想,未来ChatGPT与数据库的结合,能擦出什么火花?
DEV、DBA未来会失业吗?
本文尝试阐述下未来两者的结合前景。

 

一、ChatGPT为什么火

让我们先看看ChatGPT,是如何来解释自己的?

 

图片

 

作为一个人工智能的外行,一直有点好奇,为什么ChatGPT的出现,能产生如此颠覆性的影响。可以说在过去几十年里,人工在很多领域都有不错的表现。从最早的IBM Watson,到近几年的Google AlphaGo,都在具备领域有所突破,但似乎都没有办法解决通用性问题,只能满足特定场景。因而人们常说,AI没有那么聪明。其背后的原理也查了查资料是因为让AI掌握常识,并且能够融会贯通地运用这些常识、形成推理能力非常难,一直以来这都是巨大的难题。

 

但这次以ChatGPT为代表的一众大语言模型,突然突破了这个门槛,变得非常“聪明”。当然背后的原因有很多,比如自监督学习、Fine-tuning策略等等,但有一个重要的底层变化——大语言模型的“涌现”现象,就是说一些业界从未想象到的能力,例如基础的社会知识、上下文学习、推理等等,在训练参数和数据量超过一定数值后,这些能力突然出现了,令AI一下子变得非常智能。伴随着这一技术突破,很多领域可采用新交付方式甚至是全面重塑。数据库作为重要的基础软件,也与其全面结合,产生很多新方向。

 

二、回顾AI与数据库的结合

在开始之前,先简单回顾下之前AI与DB之前的结合。下面部分内容摘自清华大学李国良教授团队论文《Database Meets AI:A Survey》。之前的数据库和人工智能的结合主要来自两个方面:一是人工智能可以使数据库更加智能化(AI4DB)。传统的经验数据库优化技术难以满足大规模数据库实例、各种应用程序和多样化用户的高性能要求,尤其是在云上。

 

而幸运的是,人工智能基于学习的技术可以缓解这个问题。二是数据库技术可以优化AI模型(DB4AI)。例如,人工智能很难在实际应用中部署,因为它需要开发人员编写复杂的代码和训练复杂的模型。数据库技术可用于降低使用人工智能模型的复杂性,加速人工智能算法,并在数据库中提供人工智能功能,其全貌如下。

 

图片

 

这里我们重点关注AI4DB的方向。传统的数据库设计基于经验方法和规范,需要人工参与(例如DBA)来调整和维护数据库。人工智能技术被用来缓解这些限制,下图所示为机器学习能为数据库带来的一些技术突破:

 

图片

 

其中的主要能力包括:参数调优、索引/视图顾问、SQL改写、成本估算、连接顺序优化等。从上述能力可见,AI4DB的方向重点是解决数据库运行问题,包括很多产品页都提出了“自治”、“自动驾驶”的概念。也就是说,是主要解决数据库自身问题。与之不同的是,ChatGPT更多是解决人与数据库间及数据自身的问题。

 

三、畅想ChatGPT与数据库结合

1.生成 SQL 语句(受益方:开发者、分析师)

 

这是目前最为常见的一类应用,将传统SQL语句编写,改为自然语言描述。通过这样的方式,降低数据库使用门槛,提升开发效率。主要受益的人群是数据库应用的开发者及数据探索者(如数据分析师)。很多产品纷纷集成了这一能力,如国内的NineData、Bytebase或者国外的sqlTranslate、AI2sql等。下面我们做个小测试,观察下ChatGPT能力(以下基于ChatGPT 3.5测试)。

 

图片

 

图片

 

通过这个简单例子,可以看出ChatGPT具备的能力。可将自然语言描述生成对应SQL。

 

2.性能优化(受益方:DBA、开发者)

 

ChatGPT另外一个能力,则是对数据对象或语句的优化能力。如下文是给出的一些通用性建议。

 

图片

 

也可以根据具体语句,给出进一步优化建议:

 

图片

 

当然上述优化建议还是比较通用的,当然针对具体对象的优化也是可以的。再如下文是对语句级提出的优化建议。

 

图片

 

上述能力可以解决很多常规的性能问题,能大大简化开发者和初级DBA的很多工作,可以说能解决大部分的初级性能问题。

 

3.结构设计(受益方:DBA、开发者)

 

除了根据已有对象或语句完成优化提示外,ChatGPT还可以前置完成结构的设计。根据的简单的场景描述,给出数据库结构定义,简化结构设计工作。如下图就是一个简单登记学生成绩系统的库表设计。这其中包括了主要表、字段、约束等的定义,还是比较全的。

 

图片

 

4.架构设计(受益方:DBA、架构师)

如果再进一步,将数据库架构设计也由ChatGPT完成如何?下图是我将上述例子场景提出,由ChatGPT提出推荐数据库选型。在明确使用AWS产品范围后,它给出了部分选型的建议。在给出一定性能要求后,甚至给出了推荐规格(db.r5.large)及潜在架构优化点(如读写分离)。

图片

 

图片

 

5.数据分析、挖掘与探索(受益方:数据分析师)

ChatGPT的一个很强能力在于对信息的理解,这一能力可利用在很多数据分析、挖掘、探索领域。其可以敏锐的洞察到数据的变化、甚至做一些趋势性的分析。如下图是国内各省份2021、2022年的GDP情况,可以这些信息可让ChatGPT估算今年的GDP。

 

图片

 

6.数据治理(受益方:数据管理者、安全人员)

企业内包含着大量业务数据,如何有效利用数据,形成数据资产,进而发挥数据最大价值是企业管理者关心的问题。传统方式需要通过数据建模等手段自上而下完成治理动作,但受限于企业发展阶段、应用开发水平等因素,这种方式会存在很大推进难点。

 

ChatGPT提供了另外一种可能,即从数据本身含义理解做起,自下而上完成治理结构的构建。例如我们提供一组数据给ChatGPT,看它是符合判断数据属性的。

 

图片

 

亦或是给出明确规则定义的情况下,判断数据质量问题。

 

图片

 

图片

 

四、总结

综上,ChatGPT在构建数据应用的全流程中均可发挥作用。从前期的架构、结构设计,到中期的应用开发与优化,再到后期的数据分析挖掘乃至数据治理领域。可以说覆盖了企业对数据及上层应用的方方面面。当然,除了简化开发外其他能力当前还稍显初级,但相信随着其技术本身的成熟及垂直领域的定向增强,未来构建全自动的数据应用将不是幻想。可能只需要提出一个业务Idea,后续从应用设计、开发,到资源选型、部署,再到应用运营分析等,都可以自助完成。

 

>>>>

参考资料

 

  • 上观新闻:人工智能技术并非新鲜事物,ChatGPT为何如此火?

    https://export.shobserver.com/baijiahao/html/587303.html

  • 清华大学李国良团队论文:Database Meets AI:A Survey

  • 光点科技:利用Chat GPT会在数据治理方面发挥哪些作用?

    https://baijiahao.baidu.com/s?id=1759949851524856806&wfr=spider&for=pc

 

整理丨韩锋
posted @ 2023-07-16 06:55  古道轻风  阅读(289)  评论(0编辑  收藏  举报