論文解讀|李國良等:Database Meets AI

qing_yun發表於2022-04-19

本文對清華大學李國良教授團隊論文《Database Meets AI:A Survey》進行解讀,全文共4040字,預計閱讀需要10至15分鐘

一、概述

隨著資料庫近年來的不斷髮展,資料庫開始與各項新興技術結合,如人工智慧、區塊鏈、密態計算等。本篇論文所涉及的是資料庫與人工智慧結合的探索,二者的結合是一種雙贏,資料庫和人工智慧都能從這次結合中受益:一方面,人工智慧可以使資料庫更加智慧化(AI4DB)。傳統的經驗資料庫優化技術難以滿足大規模資料庫例項、各種應用程式和多樣化使用者的高效能要求,尤其是在雲上。而幸運的是,人工智慧基於學習的技術可以緩解這個問題。另一方面,資料庫技術可以優化AI模型(DB4AI)。例如,人工智慧很難在實際應用中部署,因為它需要開發人員編寫複雜的程式碼和訓練複雜的模型。資料庫技術可用於降低使用人工智慧模型的複雜性,加速人工智慧演算法,並在資料庫中提供人工智慧功能。下圖所示,為論文關於兩種模型的主要研究內容:對於AI4DB,文章研究了基於學習的配置調優、優化器、索引/檢視顧問和安全性方面的技術;對於DB4AI,文章研究了面向AI的宣告性語言、面向AI的資料治理、訓練加速和推理加速。

二、AI4DB

傳統的資料庫設計基於經驗方法和規範,需要人工參與(例如DBA)來調整和維護資料庫。人工智慧技術被用來緩解這些限制,下圖所示為機器學習能為資料庫帶來的一些技術突破:

我們從上圖中選取一些AI優化DB的現有技術進行介紹:

1)基於學習的資料庫配置

(1) 旋鈕調節

資料庫旋鈕的數量龐大且關係複雜。DBA通常擅長於特定的資料庫,並且需要相對較長的時間。顯然,DBA無法擴充套件到雲資料庫上的數百萬個資料庫例項。但是通過基於學習的技術自動調整旋鈕,可以探索更多旋鈕組合空間並推薦高質量旋鈕值,從而獲得比DBA更好的結果。

(2) 索引/檢視顧問

資料庫索引和檢視對於實現高效能非常重要。然而,傳統資料庫高度依賴DBA來構建和維護索引和檢視。由於存在大量列/表組合,因此推薦和構建適當的索引/檢視的成本很高。最近,有一些基於學習的工作可以自動推薦和維護索引和檢視。

(3) SQL重寫器

許多SQL程式設計師無法編寫高質量的SQL,因此需要重寫SQL查詢以提高效能。例如,巢狀查詢會被重寫為連線查詢來使一些SQL優化可用。現有方法採用基於規則的策略,使用一些預定義的規則重寫SQL查詢。然而,這些基於規則的方法依賴於高質量的規則,這些規則過多。因此,深度強化學習可用於明智地選擇適當的規則,並以良好的順序應用規則。

2)基於學習的資料庫優化

(1)基數/成本估算

資料庫選擇優化策略需要依靠成本和技術估計,但傳統技術無法有效捕獲不同列/表之間的相關性,因此無法提供高質量的估計。這時候通過使用深度神經網路捕捉相關性來估計成本和基數,從而獲得更好的結果。

(2)連線順序選擇。

一個SQL查詢可能有數百萬甚至數十億個可能的計劃,高效地找到一個好的計劃非常重要。傳統的優化器並不能在數以萬計的表裡找到合適的連線順序,因為探索巨大的計劃空間成本相當高,這時我們可以利用深度強化學習去自動選擇好的計劃。

(3)端到端優化器。

一個成熟的優化器不僅要有好的代價估計和連線順序,而且還需要考慮索引和檢視,並且設計端到端優化器是很重要的。因此可以通過使用深度神經網路優化SQL查詢。

3)基於學習的資料庫設計

(1)學習索引。不僅可以減少索引大小,還可以提高索引效能。

(2)學習資料結構設計。不同的資料結構可能適用於不同的環境,很難為每個場景設計合適的結構。哈佛大學的論文闡述了一種旨在為不同的資料結構建立一個資料推理的引擎,用於推薦和設計資料結構。

(3)基於學習的事務管理。傳統的事務管理技術側重於事務協議,而人工智慧技術能夠從現有的資料模式中學習,有效地預測未來的工作負載趨勢,並通過平衡衝突率和併發性有效地排程它們,從而實現預測並安排事務。

4)基於學習的資料庫監控

資料庫監控可以捕獲資料庫執行時指標,如讀/寫延遲、CPU/記憶體使用情況,從而在出現異常時提醒資料庫管理員。然而,傳統的監視方法依賴於資料庫管理員來監視大多數資料庫活動並報告問題,效率較為低下。而通過基於機器學習的技術來優化資料庫監控,可以較為高效地確定何時以及如何監控哪些資料庫指標。

5)基於學習的資料庫安全

傳統的資料庫安全技術依賴於使用者定義的規則,但無法自動檢測未知的安全漏洞。通過基於AI的演算法來自動識別發現敏感資料,監視資料庫活動並檢測漏洞,通過自動估計不同的資料訪問操作來避免資料洩漏,通過深入學習挖掘使用者行為和識別並避免SQL隱碼攻擊。

三、DB4AI

人工智慧在當今逐漸普及用於解決許多現實問題,但由於人工智慧現存系統複製性較差,很難被普通使用者使用。為了解決這個問題,資料庫技術可以用來降低人工智慧的使用門檻,如下圖所示:

下面基於上圖中部分內容進行介紹:

1)宣告式查詢範例

SQL相對容易使用並在資料庫系統中廣為接受。然而,與其他高階機器學習語言相比,SQL相較於其它高階機器學習語言缺少一些複雜的處理模式(例如,迭代訓練)。但是,SQL可以被延伸至以支援AI模型,可以通過設計使用者友好的工具在SQL語句中支援AI模型。

2)資料治理

資料質量對於機器學習非常重要,資料治理可以提高資料質量,包括資料發現、資料清理、資料整合、資料標記和資料血緣。

(1)資料發現。基於學習的資料發現增強了查詢相關資料的能力,能夠自動且有效發現海量資料之間的關係。

(2)資料清理。髒資料或不一致資料會嚴重影響訓練效果。資料清洗和資料整合技術可以對髒資料和未持久化資料進行檢測和清理修復,並整合多個資料來源的資料,以生成高質量資料。

(3)資料標籤。藉助領域專家、眾包和知識庫,可以適當利用人力或現有知識為ML演算法標記大量訓練資料。

(4)資料血緣。資料血緣描繪了輸入和輸出之間的關係,對於確保ML模型正常工作很重要。通過連線和圖對映等資料庫技術,可以跟蹤資料前後關係。

3)模型訓練

模型訓練旨在訓練一個用於線上推理的好模型,是一個耗時且複雜的過程,因此需要特徵選擇、模型選擇、模型管理和硬體加速這些優化技術。

(1)特徵選擇。需要從大量可能的特徵中選擇合適的特徵。通過批處理模型、物化模型等技術來解決選擇和評估非常耗時這一問題。

(2)模型選擇。需要從大量可能的模型中選擇合適的模型(和引數值)。通過一些並行技術來加速這一步,包括任務並行、批量同步並行、引數伺服器和模型平行計算。

(3)模型管理。由於模型訓練是一個反覆試驗的過程,需要維護許多已經嘗試過的模型和引數,因此有必要設計一個模型管理系統來跟蹤、儲存和搜尋ML模型。本文采用基於GUI的和基於命令的模型管理系統。

(4)硬體加速。硬體如GPU和FPGA也被用來加速模型訓練。硬體加速技術被應用在行儲存和列儲存資料庫中。

4)模型推理。

模型推理旨在使用經過訓練的模型有效地推斷結果,資料庫中的優化技術包括運算元支援、運算元選擇和執行加速。

(1)運算元支援。ML模型可能包含不同型別的運算元,它們具有不同的優化要求。因此,提出了一些資料庫內技術來支援AI運算元,包括標量運算、張量運算和張量分割槽。

(2)運算元選擇。相同的ML模型轉換為不同的物理運算元可能會帶來顯著的效能差異。因此在資料庫中,運算元選擇可以估計資源消耗並做出正確的排程。

(3)執行加速。加速推理提高效率。一方面,記憶體資料庫將模型資料壓縮到記憶體中進行記憶體優化。另一方面,分散式資料庫通過將任務傳送到不同節點提高整體效率。

四、挑戰

1)利用人工智慧技術優化資料庫仍然存在一些挑戰。

(1)大規模、高質量、多樣化的訓練資料獲取困難。例如,在資料庫旋鈕調優中,訓練樣本需要基於DBA經驗獲得,因此很難獲取非常大數量的樣本。此外,為了構建有效的模型,訓練資料需要涵蓋不同場景、不同硬體環境和不同工作負載,因此迫切需要一個新的方法用小型的訓練資料集去獲得高質量模型。

(2)適應性是一個巨大的挑戰。如何使資料集上經過訓練的模型適應其他資料集?如何使硬體環境中經過訓練的模型適應其他硬體環境?如何使經過訓練的資料庫模型適應其他資料庫?如何使經過訓練的模型支援動態資料更新?

(3)資料治理。學習模型能否收斂至關重要,如果模型不能被收斂,需要用其它方式規避延遲和不準確的決策。例如,在旋鈕調優中,如果模型不收斂,就不能利用模型提供線上旋鈕建議。

(4)OLAP學習。傳統OLAP任務聚焦關係型資料分析,然而大資料時代,圖資料、時序資料、空間資料層出不窮,需要新的資料分析技術去分析這些多模資料。

(5)OLTP學習。事務模型和排程對OLTP系統很重要,因為不同事務間可能存在衝突。利用學習技術優化OLTP查詢是很有希望的,例如一致性快照等。

2)利用資料庫優化AI模型也存在部分挑戰

(1) 庫內訓練方面。在資料庫中支援人工智慧訓練是一項挑戰,包括模型儲存、模型更新和並行訓練。首先,在多租戶可以訓練和使用模型時,庫記憶體儲模型的安全和隱私問題是一個挑戰;其次,資料動態更新時區更新模型也是一大挑戰。

(2) 利用資料庫技術加速AI訓練。目前大多數研究都集中在人工智慧演算法的有效性上,而對演算法的效率關注不多,需要利用資料庫技術提高演算法的表現效能。

(3) AI優化器。當前研究主要利用使用者定義函式(UDF)來支援AI模型,但這些模型沒有得到有效優化。需要將AI模型作為運算元在庫內執行,同時還需要為每個運算元設計物理運算元,最重要的是,需要將AI運算元下推並預估cost/cardinality值,AI優化器應支援優化AI訓練和推理,此外,對於分散式環境下AI運算元的有效支援也非常重要。

(4) 容錯學習。現有的學習模式訓練不考慮容錯度。一個分散式訓練執行中穿一個程式崩潰,整個任務就會失敗,需要將現有的容錯技術以提高庫內訓練的健壯性。為了確保在可預測和不可預測的災難下的業務連續性,資料庫系統必須保證容錯和災難恢復能力。

五、總結

該論文綜述了AI4DB和DB4AI的最新技術。前者側重於利用人工智慧技術解決計算複雜度高的資料處理問題,例如旋鈕調整、成本估算、連線順序選擇、索引顧問和檢視顧問。後者側重於使用資料庫技術來降低使用人工智慧的複雜性和加速人工智慧模型,例如,宣告式AI,以及加速AI訓練和推理。資料庫和人工智慧都能從對方那裡獲得各方面的提升,資料庫與人工智慧結合勢必成為未來二者發展的一大趨勢。

來自 “ 資料庫應用創新實驗室 ”, 原文作者:劉思源、劉蔚;原文連結:https://mp.weixin.qq.com/s/QNs3JzTY5DAJHvwwYDx5kw,如有侵權,請聯絡管理員刪除。

相關文章