展會信息港展會大全

【云棲2023】林偉:大數(shù)據(jù)AI一體化的解讀
來源:互聯(lián)網(wǎng)   發(fā)布日期:2023-11-09 09:31:13   瀏覽:7123次  

導讀:本文根據(jù)2023云棲大會演講實錄整理而成,演講信息如下: 演講人: 林偉 | 阿里云研究員,阿里云計算平臺事業(yè)部首席架構師,阿里云人工智能平臺PAI和大數(shù)據(jù)開發(fā)治理平臺DataWorks負責人 演講主題: 大數(shù)據(jù)AI一體化的解讀 今年是AI大爆發(fā)的一年,大語言模型的...

本文根據(jù)2023云棲大會演講實錄整理而成,演講信息如下:

演講人:林偉 | 阿里云研究員,阿里云計算平臺事業(yè)部首席架構師,阿里云人工智能平臺PAI和大數(shù)據(jù)開發(fā)治理平臺DataWorks負責人

演講主題:大數(shù)據(jù)AI一體化的解讀

今年是AI大爆發(fā)的一年,大語言模型的誕生推動了席卷整個行業(yè)的大模型熱潮,許多人認為“AI的iPhone時代”到來了。訓練大模型其實不簡單,因為模型參數(shù)量的增加意味著需要更好的算力、更多的數(shù)據(jù)去錘煉,并且需要合適的工具讓開發(fā)者快速迭代模型,只有這樣才能更快地提高模型精度。這幾年來阿里云一直在宣傳AI工程化和規(guī)模化,其實是這輪AI爆發(fā)的主要推手。

我們看一個典型的模型開發(fā)過程,包括數(shù)據(jù)預訓練、模型訓練到模型部署。我們往往會非常關注訓練,而忽視了整個生產(chǎn)流程。但是要訓練出好的模型,數(shù)據(jù)越來越重要。包括數(shù)據(jù)采集、數(shù)據(jù)清理、特征提娶數(shù)據(jù)管理,再到訓練過程中,需要分發(fā)哪些數(shù)據(jù)參與訓練、哪些數(shù)據(jù)用來評測模型質量。所有數(shù)據(jù)都需要有驗證部分,用于驗證質量,這一步非常關鍵。低質量數(shù)據(jù)對模型的傷害力是超出想象的。這也是為什么吳達恩一直宣傳了一個觀點,就是更好的機器學習是80%的數(shù)據(jù)處理+20%的模型。

“以模型為中心”和“以數(shù)據(jù)為中心”的模型開發(fā)方式演進

這也體現(xiàn)了模型開發(fā)方式的演進。過去我們常常說以模型為中心的模型開發(fā),算法工程師花大量的時間調模型結構,希望通過模型結構來去提高模型泛化能力,解決各類噪聲問題。如果大家看5年前的Paper,會發(fā)現(xiàn)大量的研究都是圍繞模型結構展開的,當時的數(shù)據(jù)、算力都還不足夠支撐今天這樣的大模型時代。那時候的模型訓練更多是“有監(jiān)督的學習”,用的都是標注數(shù)據(jù),這些數(shù)據(jù)是非常昂貴的,這也決定了在訓練過程中,數(shù)據(jù)上沒有太多騰挪的空間,我們更多在考慮模型結構的變化。

今天的大模型訓練有非常多的無監(jiān)督的學習。模型結構反而是沒有那么多變化的,大家好像趨同的,都采用Transformer結構。這個時候我們就慢慢演進到了以數(shù)據(jù)為中心的模型開發(fā)范式里面。這個開發(fā)范式是什么?就是需要用大量數(shù)據(jù)去做無監(jiān)督的訓練,通過大的算力、大的數(shù)據(jù)引擎,結合相對固定的模型結構去萃取出一些有趣的智能的東西。

因此,訓練使用到的數(shù)據(jù)量會暴漲,也需要用到各種方法清洗和評測數(shù)據(jù)。我們可以看到許多大模型研究的團隊都會花費大量的精力去處理數(shù)據(jù),在各種環(huán)境里面反復地、多角度地驗證數(shù)據(jù)質量。通過各種各樣的維度,甚至有時候還會把模型產(chǎn)生出來去評測,通過模型結果反饋數(shù)據(jù)的質量。在這個過程中,就需要積累非常多的數(shù)據(jù)處理工具,只有這樣才能有效地支撐以數(shù)據(jù)為中心的模型開發(fā)工作對于數(shù)據(jù)質量的要求。這也是大家說到以數(shù)據(jù)為中心的模型開發(fā)的范式的核心的一個想法。

正是在這種趨勢下面,我們一直認為大數(shù)據(jù)和AI是一體兩面,需要實現(xiàn)大數(shù)據(jù)和AI的一體化,這樣才能順應當下模型開發(fā)范式的演進。

在阿里云,我們一直努力將數(shù)據(jù)和AI兩個系統(tǒng)緊密地聯(lián)合在一起。我們在計算基礎設施層,提供適應各種場景的計算集群,包括適合大數(shù)據(jù)的以CPU為主的集群,以及適合大模型訓練的需要RDMA網(wǎng)絡的異構計算集群。在此之上,打造了大數(shù)據(jù)和AI一體化平臺,覆蓋模型開發(fā)全過程的能力,包括數(shù)據(jù)采集和集成,再通過大數(shù)據(jù)平臺,做大規(guī)模的離線分析,去驗證數(shù)據(jù)質量。此外還有流式的計算能力。數(shù)據(jù)在大數(shù)據(jù)平臺上處理好之后,就會被“投喂”到PAI這個負責人工智能開發(fā)的平臺,去做訓練和迭代。最后,在模型應用孵化上,依賴向量引擎的數(shù)據(jù)庫,例如Hologres等,一起去構造場景化的應用。

大數(shù)據(jù)AI一體化的應用場景

在正式展開大數(shù)據(jù)AI一體化的技術點之前,先舉兩個應用的例子。

第一個例子是知識庫檢索增強的大模型問答系統(tǒng)。大家可以看到最近很多做大模型的通行,都會提到這個場景,通過一個大模型,可以獲得特定行業(yè)的垂直知識庫。這是怎么做到的呢?首先,需要把這個知識庫的數(shù)據(jù)進行清理后分片,通過大模型把它轉成一個向量,再把這些向量存在一個數(shù)據(jù)系統(tǒng)里面,這是向量檢索的數(shù)據(jù)系統(tǒng)。當有真實請求過來的時候,會先把query對應的向量找出來,轉譯成知識,再用這個知識去約束大模型,控制大模型“胡說八道”的沖動,這樣反饋的結果會更加準確。

這個場景里面用到了很多大模型能力,包括大規(guī)模分布式的批處理,因為在創(chuàng)建embedding的時候,其實是一個非常大的數(shù)據(jù)。同時,也會用到向量數(shù)據(jù)庫這樣的服務能力,真實業(yè)務場景對于查詢時延的敏感度很高,需要非?斓慕o一個向量。當然也用到了大模型訓練的能力,就需要一個很好的AI系統(tǒng)。

第二個例子是個性化推薦系統(tǒng)。在做實時推薦的過程中,所有推薦對象的興趣是動態(tài)變化的,往往這樣的系統(tǒng)它的模型是時時刻刻更新的,需要根據(jù)最新的行為數(shù)據(jù)來更新模型。我們往往會把所收集到的日志經(jīng)過實時或者離線處理,離線數(shù)據(jù)用來生產(chǎn)一個比較好的基礎模型,實時數(shù)據(jù)也會去提取這個特征,經(jīng)過模型訓練產(chǎn)生一個模型的delta,然后再把這個delta應用到線上的系統(tǒng)進行每天更新。在這里面我們可以看到有非常多的數(shù)據(jù)系統(tǒng),有實時的像流計算的系統(tǒng)、有AI的系統(tǒng)、有批處理系統(tǒng)。

大數(shù)據(jù)AI一體化的技術實現(xiàn)

統(tǒng)一的數(shù)據(jù)和AI工作空間管理

首先,我們在模型構造最外層,把AI和大數(shù)據(jù)的流程串聯(lián)在一起,這也是我們在PAI產(chǎn)品里構建工作空間的最初始的想法,這樣就可以把多種資源統(tǒng)一在一個開發(fā)平臺上管理。現(xiàn)在阿里云人工智能平臺PAI已經(jīng)可以支撐多種計算資源,包括ECS資源、流計算平臺,還有PAI靈駿智算用于大模型訓練的集群,還有這次云棲已經(jīng)發(fā)布的容器計算服務ACS等等。

僅僅接入這些資源是不夠的,用戶需要的是把接入的資源有機串聯(lián)到一起。所以我們推出了一個Flow框架,把這些流程串聯(lián)起來,把模型訓練和數(shù)據(jù)處理的各個步驟連接起來。這里面我們提供了多種構建連接的方式,包括靜態(tài)構圖、SDK、圖形交互式等,用來去構建復雜的大數(shù)據(jù)和AI交互的流程圖。

Serverless云原生服務

如果想進一步地去把大數(shù)據(jù)和AI融合好,用戶希望能夠在一份資源里面提供大數(shù)據(jù)和AI的服務。這時候就離不開Serverless云原生服務技術。我們一直在說云原生,但是云原生其實是有很多維度的,云原生更多的是資源是共享的,但是這個資源是什么?其實也是需要定義的。

這個定義也分很多層次。你可以說你是硬件層面的共享,那你共享的是服務器、虛擬服務器;你也可以共享更高層次的虛擬資源,比如容器和服務本身。在不同的層次,共享層次越高,單位計算成本就會越低,當然技術的復雜度也會越高。這也是為什么做云計算的團隊一直在提高自己服務的云原生化,或者是去實現(xiàn)更高技術復雜度的能力,這樣就能以更加經(jīng)濟實惠的方式去提供更高層次的計算資源共享的目的,更加經(jīng)濟高效地提供大數(shù)據(jù)和AI的服務。

也是因為此,我們所有的大數(shù)據(jù)產(chǎn)品都是在第六個維度,也就是Share Everything上的一個產(chǎn)品。但是我們都是架在了第五個維度,也就是Shared container,就是在容器計算服務這一層,這樣我們就可以把大數(shù)據(jù)和AI的系統(tǒng)有機地連在一個資源上面。

統(tǒng)一調度:多負載、差異化SLO增強的調度

為了能夠達到這樣的能力其實并不是那么容易的,因為容器計算服務最開始的產(chǎn)生是為了支持微服務的。微服務在并行調度的力度上面,和大數(shù)據(jù)以及AI智算的場景有很大不同。為了能夠讓不同的大數(shù)據(jù)和AI的任務和服務,能夠跑在一個資源池上,其實我們要做大量工作。比如說,大數(shù)據(jù)場景里面有些很多高并發(fā)、短時長的任務,需要大大增強K8S本身的吞吐能力,解決它各個層次上的性能問題,包括延時和規(guī)模。

同時我們有多元化的任務,它不僅僅有在線服務,還有計算任務,我們要在調度上增強資源的豐富度和多場景的能力。比如在復雜的AI場景,需要做網(wǎng)絡拓撲感知,因為AI大模型訓練對網(wǎng)絡要求非常高。這時候我們怎么樣在這層的容器服務上、計算服務上感知這個拓撲結構,有效做調度,我們怎么樣讓大數(shù)據(jù)和AI的Workload在上面存儲資源,需要有非常多的負載感知、QS感知的調度。

多租安全隔離

對云服務來說,最重要的就是多租安全的隔離。我們需要加強云原生的K8S在這個方向上的能力,這樣我們才能安心地把大數(shù)據(jù)和AI復用在一個資源上。我們在存儲層、網(wǎng)絡層都用了非常多的安全隔離的技術。這樣才能把大數(shù)據(jù)和AI的多款產(chǎn)品,甚至是用戶自己的在線服務,能夠集成在一個資源池里面,來給云上提供企業(yè)化的使用。

容器計算服務ACS

這次云棲大會發(fā)布了容器計算服務ACS,PAI也是第一批容器計算服務支持的首批產(chǎn)品之一。在容器計算服務ACS平臺上,用戶可以很好地調配自己在大數(shù)據(jù)和AI的資源配比,然后在統(tǒng)一的資源底座上、在網(wǎng)絡上、在存儲IO上,就能夠更加自然地聯(lián)在一起。

多級Quota

我們都知道大模型的計算,計算資源是非常昂貴的。我們還要持續(xù)地加強這個底座上的一些精細化的資源管理的能力,所以我們也即將發(fā)布多級Quota能力,使集群的管理員可以更好地管理資源,平時讓各個團隊管理自己的資源,但是到了關鍵時刻。比如到了需要沖刺的階段,管理員可以把所有的資源集中起來,然后去訓練一些比較大的模型。這是我們的多級Quota。

自動拓撲感知調度

對于超大模型的模型訓練,我們要加強容器服務的調度能力。舉一個例子,我們可以看到在模型訓練里面我們常常有一個步驟叫All-Reduce的環(huán)節(jié),如果不加以調度的控制,稍微亂一個順序,去構成reduce的ring,就會發(fā)現(xiàn)會帶來一些cross的交換機的流量。最后我們經(jīng)過拓撲感知的調度和非拓撲感知的調度,前后性能提升的增幅能有30-40%,這是非?捎^的。

MaxCompute4.0Data+AI

大模型訓練往往需要海量的數(shù)據(jù),就跟我們前面說的我們不僅僅要把數(shù)據(jù)存下來,更多的是我們要進行批處理進行清洗、反復評估數(shù)據(jù)質量、并根據(jù)反饋來調整數(shù)據(jù)。這時候我們就需要大數(shù)據(jù)平臺,以及湖倉一體的能力在背后支撐。阿里云數(shù)倉產(chǎn)品MaxCompute上推出了MaxFrame的開放的數(shù)據(jù)格式,可以把強大的數(shù)據(jù)管理、數(shù)據(jù)計算的能力,和AI系統(tǒng)進行有機和開放的連接。此外還有Flink-Paimon,在流計算的場景里,可以把流計算和online machine learning結合起來,把數(shù)據(jù)和訓練的這條通路打通。

數(shù)據(jù)集加速DataSetAcc

在PAI靈駿集群的AI智算場景里面,不僅僅是高密的機器學習任務,還有數(shù)據(jù)處理的任務,但是高密計算的資源是非常寶貴的,這個時候可以去連接遠端的大數(shù)倉來解決。但這里又會出現(xiàn)一個矛盾,就是遠端的數(shù)據(jù)I/O不能匹配高密度的計算。為了解決這個問題,我們提供了一個數(shù)據(jù)集加速的DatasetAcc能力,就是利用PAI靈駿集群本地的SD和本地的儲存來做一個近端的cache,異步地把遠端數(shù)倉的數(shù)據(jù)拉到近端。這樣就能很好地解決大數(shù)據(jù)和AI智算集群在訓練場景上的結合,提升訓練效率。

正是因為具備了這樣的有效連接大數(shù)據(jù)和AI智算集群的能力,我們才能在大規(guī)模的LLM訓練過程中更好地使用大數(shù)據(jù)分析的能力。舉個例子,我們在訓練通義千問的過程中,獲取了大量重復的文本信息,去重是非常關鍵的步驟,不然整個訓練數(shù)據(jù)集會被這些數(shù)據(jù)拉偏,導致有一些過擬合的情況產(chǎn)生。我們利用我們構造的FlinkML的lipary構建了一個高效的文本去重算法,算法的同學就可以快速地進行多次文本去重,提高整個模型開發(fā)的效率。

我們前面說的都是大數(shù)據(jù)怎么能夠助力于AI訓練的部分,也就是我們經(jīng)常聽到的 Data for AI,但其實反方向,AI技術的成長也能夠幫助數(shù)據(jù)系統(tǒng),去提高它的服務質量和效率,現(xiàn)在的數(shù)據(jù)分析也從BI走向了BI+AI。

DataWorksCopilot

過去的數(shù)據(jù)分析做的更多的是 business intelligence,如今有更多AI技術可以去推動數(shù)據(jù)分析能力的提升。我們在這方面做了一些工作,比如說在數(shù)據(jù)開發(fā)和治理平臺DataWorks,我們推出了 DatawWorks Copilot,也就是代碼助手。代碼助手可以幫助用戶用自然語言的方式,去找到感興趣的表格,然后再幫助用戶構建SQL query,最后再去執(zhí)行query。

當然,真正要做出一個好用的代碼助手,只用基礎模型是不夠的。DataWorks平臺基于大量的公開query,然后我們用本身的語言,就是MaxCompute的或者是Flink的語言,作為一個數(shù)據(jù)集,我們拿基礎模型和這個數(shù)據(jù)集做了finetune,產(chǎn)生一個垂類模型,然后再在這個垂類模型做推理,產(chǎn)生了這個特定場景里的更有效的代碼輔助工具。通過這種方式,我們能夠提效30%的代碼的開發(fā)。

DataWorksAI 增強分析

不僅僅是輔助代碼生成,我們今年也發(fā)布了DataWorks數(shù)據(jù)洞察功能。我們可以通過AI的方式、AI的能力,自動地根據(jù)已有數(shù)據(jù),提供一些智能的數(shù)據(jù)洞察。通過這種方式,我們可以讓用戶更快速地掌握數(shù)據(jù)的特性,從而加快用戶對于數(shù)據(jù)的理解和分析能力。

以上的分享是希望通過剛才說的一些技術點和案例闡述現(xiàn)在AI和大數(shù)據(jù)的一體化的演進過程。我們堅信大數(shù)據(jù)和AI是相輔相成的,也希望推動數(shù)據(jù)智能更快的落地和實現(xiàn)。

贊助本站

人工智能實驗室
相關內容
AiLab云推薦
推薦內容
展開

熱門欄目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能實驗室 版權所有    關于我們 | 聯(lián)系我們 | 廣告服務 | 公司動態(tài) | 免責聲明 | 隱私條款 | 工作機會 | 展會港