Data+AI 一體架構的產品創新
目前 Data+AI 已經成為數據架構領域的最火熱的技術方向。Data+AI 一體架構可以從縱向和橫向的兩個方向來拆解,一個方向是 Data for AI,另一個方向是 AI for DataWarehouse。大數據與 AI 的融合應用中面向海量的結構化、半結構化與非結構化數據的多場景處理。Data for AI 方向是指如何將海量數據與 AI 深度學習與大模型進行深度數據 AI 協同,其中存在大量的技術協同挑戰;AI for DW 方向主要是指通過 AI 智能技術來改進數據倉庫的核心能力,而數據治理成為了大家最關注的產品能力之一,是否能夠通過 AI 的能力來促進 AI for DW 的實現是另一個重要挑戰。
本文將分享阿里云在 Data+AI 一體架構的產品創新。
一、Data+AI 一體趨勢
1. Data+AI 市場主要趨勢
目前,Data+AI 一體化趨勢可以分開理解成兩個主要技術方向:
- Data for AI
- AI for DataWarehouse
在 Data for AI 產品層面,當前更多是大數據為 AI 賦能的應用,針對結構化、半結構化以及非結構化數據,探索數據預處理如何與 AI 深度學習與大模型數據訓練的協同場景。在這一層面,我們提供了一個基于 MaxCompute 的分布式 Python 開發框架 MaxFrame 和分布式機器學習平臺 PAI,MaxFrame 涵蓋了鏡像管理與 AI 平臺的數據整合與銜接,以實現 MaxCompute + PAI 的一體化產品能力。
而在 AI for DataWarehouse 層面,更多是應用在智能數倉的場景上。其中,數據治理是大家當下比較關注的能力,能否運用更多 AI 智能的能力來實現 AI for DataWarehouse 之上的智能數據管理能力是。在智能數倉層面,我們構建了分層存儲推薦、資源管理優化、查詢計劃優化、物化視圖推薦以及自然語言生成 SQL 的 AI 能力。
2. Data+AI 開發的全生命周期
Data + AI 開發的全生命周期涵蓋了數據分析、數據預處理、模型創建、模型訓練、模型評估、模型預測以及部署發布等諸多流程,涉及業務人員、數據工程師、數據分析師和數據科學家等不同角色。
3. Data+AI架構的開發痛點
在 Data + AI 的全生命周期中,存在成本、效率、運維三方面的核心技術挑戰。在成本方面,包括高效完成 Data + AI 的一體化工作以及相關的學習成本。效率方面,包含了性能、開發效率以及訓練效率等。運維方面,由于 Data + AI 一體屬于技術創新架構,處于從探索到成熟的持續發展階段,還沒有形成行業標準,而運維本身就是一個極為復雜的技術領域,Data+AI 的運維更甚之。我們圍繞這三個維度,提煉出了以下四個主要痛點:
- 數據類型多,數據管理能力差。
- 數據開發與模型開發脫節。
- 性能擴展能力差,訓練效率低。
- 工程化實現,缺少統一運維管理。
總體來說,目前在尚未出現行業統一標準的 Data + AI 一體化技術的當下,我們的技術產品實踐都是在不斷地嘗試解決與優化在成本/效率/運維三個維度的痛點與問題。
二、MaxCompute Data + AI 能力
第二部分,其主要分享阿里云 MaxCompute 產品在 Data+AI 一體架構上的所做的產品架構實踐。
1. MaxCompute Data+AI 分層架構
首先是 Data+AI 分層架構。底層的數據層提供了統一的元數據服務、分布式存儲以及對象存儲。其中,在半結構化數據存儲領域中,JSON 半結構化數據的優化處理頗具挑戰。中間層的計算層包括數據處理、模型開發、訓練與管理。該平臺還提供了交互式開發的 Notebook、統一開發調度平臺的 DataWorks、可視化建模的 PAI Designer 等功能。其中,該平臺創新性地提供分布式計算框架 MaxFrame 與自定義鏡像管理,其主要支持統一的 Python 編程接口,支持構建對 LLM 大模型應用的數據預處理算子、分布式高效計算以及第三方包管理和模型鏡像管理能力等。
2. MaxCompute Data+AI 核心功能
MaxCompute Data + AI 產品架構的核心功能可大致分為四大功能組件,包括統一數據管理、分布式計算框架、交互式開發環境、鏡像管理等。
第一,統一數據管理 OpenLake 平臺之上提供了基于統一數據湖倉的能力,支持對結構化、半結構化以及非結構化數據的管理。
第二,分布式 Python 計算框架 MaxCompute MaxFrame 則通過提供統一 Python 編程接口,提供了分布式計算能力,在數據預處理過程中提供更高效的計算, 為后續 AI 訓練提供完備數據。
第三,交互式開發環境即開箱即用的 Notebook,提供了更便捷的交互式大數據與 AI 開發體驗。
第四,自定義鏡像管理 Compute Image 通過內置第三方依賴包/通用模型及其他,提供了便捷高效的自定義鏡像管理。
3. MaxCompute One Env+One Data+One Code 用戶體驗
MaxCompute 支持統一數據管理,通過 Maxframe 進行數據預處理,并將結果直接集成在 PAI 的機器學習平臺上,進行模型開發。之后使用 PAI-DLC 分布式 AI 訓練平臺進行對 AI 深度學習模型進行分布式訓練優化,并通過 PAI 的鏡像管理能力實現各類 AI 模型的管理。最后由 PAI-EAS 自動化推理組件來實現在線模型部署與發布。
4. 交互式開發環境-MaxCompute Notebook
關于第一個核心能力是交互式開發環境 MaxCompute Notebook。其為相關人員提供 Web 交互式開發環境,支持多引擎與 MaxCompute 集成,將結果輸入到機器學習平臺中,內置豐富的函數庫,且數據安全有保障。
5. 分布式計算框架-MaxFrame
關于第二個核心能力是自研的分布式計算框架 MaxFrame。能夠支持統一的 Python 編程接口,提供更多且靈活的算子兼容。另外是支持大數據、離線和AI的任務統一編排的 Data+AI一體化Pipeline。最后是開箱即用的開發體驗,在可復用 MaxCompute 計算資源和數據接口以及海量數據的支撐下,面向大規模數據處理,數據可視化,科學計算以及 ML/AI 開發等多種開發場景。
6. 面向海量數據預處理場景-性能提升
在此我們分享一下通過 MaxFrame 框架計算對開源大模型項目 RedPajama 所提供的數據集進行預處理工作,包括數據預處理,文檔去重,水印去除,數據過濾等。使用 MaxFrame 框架比使用基于開源算子的數據預處理整體耗時節省了 97.8%。
7. 深化 AI 非結構化數據管理-Object Table
關于第三個核心能力是非結構化數據處理能力。當前國內外數據 AI 領域都非常關注對非結構化數據的接入與處理。因為 Data+AI 重要的數據需求之一是對非結構化數據進行處理與應用管理。比如我們可以把對象存儲中的數據在上層做相關映射的抽象,把非結構化數據抽象成表的格式,通過 Python 編程接口或者 SQL 語法能夠便捷查詢或檢索非結構化數據。對于非結構化數據的緩存加速,查詢優化以及列式數據裁剪,是把在智能數倉的 AI 智能特性應用在非結構化數據的管理上面。
8. MaxCompute+PAI 產品組合-Data+AI 一體化應用
關于第三個核心能力是目前應用最多的 Max Compute 與 PAI 的 Data+AI 的一體化產品應用。其中包括多類型數據存儲、統一元數據管理、數據分析/AI 數據預處理等。MaxCompute 可以為經典機器學習場景提供了通用機器學習算法。標紅部分為 PAI 機器學習平臺產品套件,面向 PAI-DLC 分布式訓練,PAI 模型倉庫,PAI-EAS 推理服務,及 AI 鏡像的管理。能夠將 Data+AI 的一體化應用非常順暢地串聯在一起。
三、MaxCompute AI for DW 探索
第三部分,主要分享如何通過 AI 來讓云原生數倉智能化的能力,即在 AI for DW 方向的技術與產品探索。
1. 分層存儲推薦-按場景分層優化
其一,分層存儲是業內數倉類產品的典型功能,在標準存儲功能之外嘗試提供智能推薦/存儲自動分層等更智能的產品體驗。比如數據在自動存儲之上能夠根據數據的訪問量來推薦冷存或者歸檔的數據形態。另外,根據數據存儲的時間與使用場景在冷存和熱存之間做自動轉化,通過優化存儲來不斷降低客戶數據存儲成本。
2. 物化視圖智能化
其二,要介紹的能力是物化視圖智能化。物化視圖本質上是一種預計算,能夠把一些耗時操作(JOIN,AGGREGATE)的結果保存下來,以便在查詢時直接復用,從而實現加速計算的目的。AI 開始深度改造物化視圖,提供物化視圖推薦等智能化能力。
3. AI for DW 智能數倉新創新
其三,是關于智能數倉包括基于 AI 的數據治理能力。包括統一的元數據管理,以及作業計算統計分析能力來助力 SQL 提速等。在作業管理優化方面,目標是最多跑一次,確保同樣的計算在面對新的數據時能根據已有的數據結構之下進行自動加速或路由分發,無需每次進行海量數據加載與重新計算。還包括資源分配以及查詢計劃的優化。其中比較重要的一環為基于 learning-based query optimizer,基于大模型或者傳統機器學習的 AI 能力提供更強的 Auto 計算查詢優化的用戶體驗。
另外,在大數據層面中數據分布的傾斜是一個重要的問題,需要通過智能數據重分布來實現自動化的數據分布優化,減少數據傾斜。最終實現智能數倉全面自動化。
4. 成本優化器-智能資源配置
其四,MaxCompute 成本優化器是為用戶提供智能資源配置的產品組件。其基于近 30 天內預付費資源請求情況,依據設定評估時間模擬現狀預付費資源配置下的滿足度與作業延遲,并生成推薦變配方案。
其五,DataWorks Copilot 智能助手是阿里云一站式數據開發治理平臺 DataWorks 所打造的 AI 助手。可輔助用戶完成數據開發與數據分析工作,提高效率。目前與 MaxCompute 進行了一些整合,基于 MaxCompute 之前的 SQL 和數據進行相關訓練,提供 Copilot 的能力。舉例來說,通過輸入“統計一下今天的銷售額”,就可以生成相關的 SQL,實測準確率在 80+% 以上。
四、MaxCompute 大模型應用最佳實踐
第四部分,也是在最后,為各位分享一下 MaxComputer 在大數據+大模型應用的最佳實踐。
1. LLM 數據處理-文本去重
實踐一是關于文本去重。在 Data+AI 領域應用最多的是數據預處理,文本去重又是其中最重要的一環,能夠在紛繁的數據中找出有價值的內容。具體場景包括了數據讀取、文本分詞、計算 Hash、近似最近鄰搜索以及原始文本去重。
2. 自定義鏡像構建
在文本去重的場景過程的第一步,可以使用一些開源或自定義的鏡像部署到 MaxFrame 機器學習平臺,在平臺之上會加載相應的分布式模型。
3. 基于 MaxFrame 完成 LLM 數據處理
在文本去重的場景過程的第二步,MaxCompute Notebook 對大模型所需的裸數據進行清洗,文本分詞,Hash 計算等能力,并將任務提交至 MaxCompute MaxFrame 上分布式執行。整個鏈路在交互式開發環境即可實現。
4. 與開源算子性能對比
其中開源算子的性能對比參考如下,對8億條原始數據進行處理,包含多個算子,MaxCompute 處理性能較開源算子在性能層面提升 70% 以上,在環境準備效率上提升 10%-30%。
5. LLM 數據處理-大規模圖片處理
實踐二,是基于大規模圖片的處理更多是對于非結構化數據的處理,此過程中包括基于 MaxCompute 創建彈性資源池,通過 MaxFrame 并發讀取 OSS 數據,調用第三方算子進行圖片渲染,并實現分布式數據讀取和計算處理。
6. MaxCompute 4.0 Data+AI
最后,在此分享總結基于 MaxCompute 4.0 的 Data+AI 的整體產品架構與應用。架構的底層是統一的元數據管理,能夠提供接入結構化、半結構化、非結構化數據的存儲服務。中間層是圍繞著 MaxFrame 的分布式 AI 數據計算框架,其中包括不同的 DAG 分別處理數據預處理、智能數倉、對接 AI 分布式訓練 PAI-DLC 以及多類型鏡像管理,這些 subDAG 均可由在 MaxFrameDAG driver 框架中統一調用和編排。上層是統一使用交互式開發平臺 MaxCompute Notebook 進行全棧大數據+AI 開發處理操作。通過底層-統一開放平臺架構/中間層-多場景 AI 計算訓練/上層-統一交互開發的三層架構來實現 Data+AI 一體產品協同能力,我們也相信這樣的產品架構隨著不斷的業務實踐,會逐步成為未來 Data+AI 領域的行業技術標準。我們共同拭目以待!
五、Q&A
Q:目前用大模型+RAG 的技術架構處理非結構化文本,在不了解業務屬性的情況下如何把文本的知識塊分割的更好,保證拆分的知識塊未來是有價值的,語義是不被拆開的,能在未來做檢索和查詢的時候準確率更高呢?比如上傳一個政策文件,但是不知道文件中哪些內容是需要讓用戶看到的,是否需要對文本進行標注呢?
A:由于每一次拆分跟面向的數據本身的特征是相關的,比如基于 NLP 的大模型,所使用的文本是否有價值是直接可以看到的。如果要過濾的話,去重是比較明確的,不懂業務也可以去重(包括去水印等)。但是哪些數據真的與業務相關,目前阿里云會加載一套標準清洗算法,每次根據業務屬性作出調整。比如與金融相關的業務,模型會加載一個與金融相關的算法來提供處理金融類型數據的能力。另外,文本的標注是必要的,但是只有文本標注是不夠的。我們是在數據存入向量數據庫之前,在數據清洗的時候加入算法,做一些相關的過濾,這其實是一個迭代的過程。總的來說,第一,對于特定行業都會要構建對應專門的知識庫,這些知識庫會根據行業通過 RAG 加載到 AI 算法模型中。第二,每次處理完之后,都會進行人工審查,然后經過微調之后重新再清洗數據。第三,在訓練過程中也會針對性地進行調優與微調。由于目前清洗的算法不算先進,所以在 Data+AI 中 Data 處理這部分的智能化是很關鍵的。另外,在云計算服務中,我們常常遇到一個 AI 大模型用戶一周的計算資源處理量比十個典型大數據用戶的資源使用都要多,這就存在極致彈性波峰波谷的技術問題,因此如何對整體資源消耗的優化也是一個非常重要的工作。