阿里中間件工具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的算法能夠規模化地用於資料庫系統中,以提升資料庫的運行效率和效果。

文章來源: https://twgreatdaily.com/zh-cn/a0dff83e7d15cacd7d51f06819f71846.html