阿里中间件工具PilotScope正式开源,将开发速度缩至分钟级别

2023-12-20   DeepTech深科技

原标题:阿里中间件工具PilotScope正式开源,将开发速度缩至分钟级别

“审稿人认为,PilotScope的诞生给学界和业界的的AI for DB(database,数据库)领域,提供了一个非常好的中间件系统,为该领域开启了一个全新的方向。”对于所在团队的最新论文,阿里巴巴PilotScope项目负责人朱镕博士表示。

据了解,从哈尔滨工业大学博士毕业后,朱镕入职阿里巴巴担任算法专家,PilotScope正是其带领团队开发的新成果。基于该产品,开发者使用Python语言就可以收集各种复杂的数据库数据,只需通过简单的代码就能快速将AI算法部署到数据库中。与传统的开发方式相比,效率上有着极大提升。目前,该系统已经正式开源(https://github.com/alibaba/pilotscope)。

相关论文则于近日以《PilotScope:利用机器学习驱动程序控制数据库》(PilotScope: Steering Databases with Machine Learning Drivers)为题在数据库顶会VLDB2024上发表[1]。

图丨相关论文(来源:VLDB2024)

PilotScope:为AI算法和数据库牵线搭桥

AI for DB,也叫智能数据库。通过使用AI算法来开发一套解决方案,借此替换数据库中的功能,从而提升数据库的性能。过去十年中,该领域十分热门,但存在严重瓶颈。

主要原因有两个:

首先,开发者无法彻底了解现有复杂的数据库细节,导致开发出的AI算法不能被完美地嵌入到数据库中。这里所说的完美,是指AI算法既能发挥应有的作用,又不会给原来的数据库系统造成影响。

其次,AI算法本身非常多样,且不同的方法对应不同的需求,同时,数据库的底层架构也各不相同,这导致嵌入模式、交互需求和实现方式都存在差异,以至于即便耗时耗力地搞研发,也很难实现AI算法在实际系统中的落地应用。

“这也是为什么现有方法更多地还是以研究为主,在生产环境中使用得较少的原因。因此我们亟需一套可以帮助AI算法部署、迭代和检验的工具体系。”朱镕表示。

正是为了应对这一挑战,他和同事开发了PilotScope。那么,这款产品是如何帮助AI算法部署到数据库中的?

为了保证数据库端和AI端的低耦合程度,PilotScope目前支持Spark SQL和PostgreSQL两种主流数据库系统,在AI端提供了Python语言为主的运行环境和接口,开发者只需按照算法特点写好相应的配置,就能基于PilotScope的环境调取相应的接口,以及在数据库中进行测试。“数据库这段的开发和操作,由数据库的开发人员负责,对AI来说是完全没有感知的。”朱镕解释道。

图丨PilotScope的系统架构和工作流程(来源:VLDB2024)

如上所说,PilotScope相较于传统的部署方式,在效率上实现了极大提升。这具体表现在采用传统方式需要数天甚至数周的时间,在数据库底层逻辑上也要花费大量的学习成本。而PilotScope在不需要学习成本的前提下,就能将开发速度缩短到小时甚至分钟级别。

需要说明的是,AI for DB算法对于数据库系统性能的提升仅仅取决于算法本身,与PilotScope无关。后者只起到一个桥梁作用,旨在确保AI算法在进行相应部署时,不会造成额外的负担。

总的来看,PilotScope主要拥有以下几点关键创新:

第一,屏蔽不同数据库异构的细节,提供了抽象的、可对AI调用的一整套接口,方便进行开发和调用。

第二,仅需一个方法就能支持所有类型数据库的运行,极大降低开发成本和部署成本,方便推广到不同的框架上。

第三,只要不断地拓展和丰富接口,就能支持更多场景之下的AI算法需求,目前已经能够支持参数调优、索引推荐、基数估计、查询优化等四大主流任务。并且,开发者可以基于接口直接套用现成的模版,进行算法部署。

第四,对AI和DB两端都能实现最小的扰动,能实现AI模型的无缝嵌入,保证业务系统的稳定和连续。

从应用场景来看,目前PilotScope已能支持阿里内部的一些数据库和开源数据库。对于那些使用开源数据库的厂商来说,可以直接安装使用PilotScope。

PilotScope不会给数据库带来风险

事实上,当PilotScope和数据库进行交互时,不可避免地会带来额外的通信时间,进而影响数据库整体性能的发挥。在打造PilotScope的过程中,该团队尽可能地降低通信时间,并借助一些异步模式,让交互本身不干扰整个程序的正常运行。

另外,在此之前,AI for DB的算法通常是单点式的,A算法解决A问题,B算法解决B问题,很少考虑同时加入两种算法是否会带来新的交互影响。“而我们通过一些简单的场景发现,‘1+1’不仅不一定大于2,可能还远远小于2,因为两种算法之间会产生相应的影响。”朱镕表示,如果从这个角度出发,就应该系统性地考虑单个模块的优化,以及让它们之间在交互之后带来的影响,尽量达到“1+1”大于2的效果。

图 | PilotScope使用效果对比图(来源:相关论文)

对于数据库来说,保障安全和稳定是一个大前提。如果安装了PilotScope,会不会给数据库本身带来风险?对此,朱镕也给出了明确的回答。

首先,如果已经安装PilotScope,但并没有使用它,就不会对数据库的正常行为做出任何干涉。“我们不会因为安装PilotScope而带来任何新的风险,因为我们使用的都是成熟的命令,而且代码也都没有被激活。”他说。

其次,如果已经使用PilotScope,并运行了某些AI算法的情况下,其中的检测机制会发挥作用,一旦判定模型输出异常的内容,就会对其进行相应的处理和限定,比如可以让数据库不采用AI算法输出的结果,回退到原来使用的模块,就不会再对接下来执行的流程产生任何影响。

“这是我们在设计PilotScope时考虑的一点,毕竟AI算法天生带有一些不确定性,我们希望能够尽可能地避免。”他说。

依靠开源力量,继续丰富PilotScope体系

在朱镕看来,PilotScope的开发并非易事,从项目立项到产品真正落地,一共经历了两年时间。

首先是概念构思阶段,在开发AI for DB算法的过程中,他和同事在使用、落地和测试等方面都曾遇到难题。起初,他们选择点对点的解决方法,后来发现不仅成本太高,通用性也很差。正是在这样的背景下,他们才走上了设计和开发PilotScope的道路。

其次是概念设计阶段,要想打造出目标产品,就要先确立核心需求。也就是说,不仅要确定它能支持哪些主流方法,还要明确对于这些方法的支持程度。朱镕表示,他们积极地从学界和业界吸取经验,做了诸多准备之后才真正将需求落实下来。

最后是系统开发阶段,该团队从2022年9月正式启动研发工作,经过一年的不断打磨,最终将产品推至成熟阶段。“中间还反复迭代了好几次,主要是融合了一些新方法,对产品设计进行了局部修改。当然,考虑到对于两个数据库的适配,还做了很多细小的修改和调整。”朱镕说。

据了解,PilotScope开发团队约有十几人,他们大多拥有深度交叉的知识背景。对于这支团队来说:其一,既要有懂算法的人才,能够提出算法的具体需求;又要有懂系统的人才,将需求真正抽象为系统化的设计,并实现系统的开发。其二,既要有能够开发AI算法的人才,又要有擅长搭建数据库体系的人才。其三,既要将系统模式抽象出来,又要让开发者用代码落实抽象的概念。其四,开源系统必须实现学界和业界两方面的平衡,即既要满足前者对先进算法的探索和研究的需求,又要满足业界致力于应用落地的需求。

朱镕认为,正是因为拥有以上四个层面的复合交叉人才,才能推动PilotScope产品的成功落地。

在目前的基础上,该团队计划借助开源社区的力量,继续丰富PilotScope体系,包括AI算法的场景、对不同DB数据库的支持等,从而迭代出一些真正好用的AI for DB的算法。与此同时也将依靠PilotScope的力量,让AI for DB的算法能够规模化地用于数据库系统中,以提升数据库的运行效率和效果。