近年來,機器學(xué)習(xí)技術(shù)的發(fā)展歸因于我們有極其龐大的數(shù)據(jù)用來訓(xùn)練算法。當(dāng)企業(yè)需要落地大規(guī)模機器學(xué)習(xí)時,往往會面臨很多難題,如何解決這些問題?如何系統(tǒng)了解大規(guī)模機器學(xué)習(xí)落地的技巧?其適用場景是什么?InfoQ 希望通過該選題解決這些問題,并推動企業(yè)在大規(guī)模機器學(xué)習(xí)方面的實踐。本文,InfoQ 有幸采訪了阿里云機器學(xué)習(xí)研究員林偉,聽他分享自己的經(jīng)驗和見解。
何為大規(guī)模機器學(xué)習(xí)
毫無疑問,我們已經(jīng)邁入人工智能時代,機器學(xué)習(xí)幾乎滲透了我們?nèi)粘I詈凸ぷ鞯姆椒矫婷?,?chuàng)建深度學(xué)習(xí)模型越來越容易,但大規(guī)模工業(yè)部署卻依然沒有那么容易,第一現(xiàn)在模型變得越來越大,越來越深,需要強大算力和海量的數(shù)據(jù)才能夠支撐訓(xùn)練出更好的模型;第二模型訓(xùn)練出來需要在推理的時候高效的執(zhí)行才能真正讓模型落地,這個里面就需要非常多系統(tǒng)工程優(yōu)化,以及模型和工程一起的協(xié)同優(yōu)化。當(dāng)然并不是模型越大,訓(xùn)練效果就會一定好,模型本身的提高以及訓(xùn)練方式都決定了最終模型實際效果,這就需要我們也在算法,訓(xùn)練手段層面的突破。
對眾多深度學(xué)習(xí)開發(fā)者而言,只要擁有一張 GPU 卡,很多流行的 AI 模型都可以得以訓(xùn)練。但對公司而言,隨著業(yè)務(wù)需求的提高、精度要求的提高,就會面臨更大模型、更多數(shù)據(jù)訓(xùn)練的需求,此時就需要更強大分布式訓(xùn)練平臺以適應(yīng)大規(guī)模的訓(xùn)練的需求,同時因為數(shù)據(jù)量增加,我們需要讓 AI 訓(xùn)練和大數(shù)據(jù)平臺結(jié)合起來,從而滿足算法研究者各種數(shù)據(jù)組合加工,嘗試不同訓(xùn)練方式,從而能夠快速迭代模型,提高模型的精度。
那么,何為大規(guī)模機器學(xué)習(xí)有明確的界定嗎?
采訪中,林偉表示,我們所說的“大規(guī)模”可以解釋為需要幾千臺機器、幾千個工作者一起協(xié)同訓(xùn)練,也可以理解為多硬件資源,比如 GPU。
在阿里巴巴內(nèi)部,林偉所在團(tuán)隊訓(xùn)練過非常大規(guī)模的稀疏網(wǎng)絡(luò),這類模型很容易大,而且更多偏向于推薦、搜索等信息流類型,往往需要幾千個工作者的協(xié)同訓(xùn)練。同時對于稠密網(wǎng)絡(luò),比如感知類的 AI 網(wǎng)絡(luò),比如視覺、語音、自然語言處理現(xiàn)在也在變得越來越大,也需要要幾十張到幾百張卡一起訓(xùn)練。
如何設(shè)計相對完善的機器學(xué)習(xí)平臺
根據(jù)林偉介紹,一個大規(guī)模的機器學(xué)習(xí)平臺首先要具備優(yōu)秀的調(diào)度能力,并非所有任務(wù)每天都需要大量資源,但要保證極限情況下的承受能力足夠強,而所需資源不多時又可及時釋放。所以,大部分機器學(xué)習(xí)平臺都是從小規(guī)模逐漸做起來的,這個過程會積累一些能力,比如沉淀一些框架和平臺,或者幫助開發(fā)者做分布式訓(xùn)練等。
阿里最近推出了機器學(xué)習(xí)平臺 PAI 的 DSW,其托管在云平臺之上,非常方便,開發(fā)者可隨時打開 IDE,該平臺可自動保存工作內(nèi)容,然后可以快速開發(fā)。如果開發(fā)者覺得模型基本完成,希望無感知提交到更大的集群中時就涉及關(guān)于模型的開發(fā)。
模型離不開數(shù)據(jù),在數(shù)據(jù)處理中,開發(fā)人員需要有配套的大數(shù)據(jù)處理能力,需要對數(shù)據(jù)進(jìn)行清洗和提純,這就要求平臺需要具備大數(shù)據(jù)能力,這也是為什么計算平臺會把 AI 和大數(shù)據(jù)作為兩大引擎,因為彼此之間需要交互。同時,平臺上訓(xùn)練出的模型需要在業(yè)務(wù)中達(dá)到一定效果,比如讓服務(wù)做到低延時、高吞吐,保證服務(wù)發(fā)布、更新、迭代、切換以及報警、監(jiān)控等。
事實上,AI 屬于計算密集型任務(wù),需要大量數(shù)據(jù)交互,所以分配資源的時候要根據(jù)任務(wù)大小來考慮如何對應(yīng)到底層硬件的拓?fù)浣Y(jié)構(gòu)上,使之能夠充分利用異構(gòu)特性完成整個過程,我們能夠充分利用系統(tǒng)對訓(xùn)練任務(wù)的理解,有效調(diào)度不同部分到不同的資源上面,充分地利用多種硬件資源,發(fā)揮系統(tǒng)的最高效率。
此外,要考慮容錯,因為過大的集群經(jīng)常容易發(fā)生錯誤,機器并不是永動機,隨時可能出現(xiàn)問題,軟件也不能保證沒有 bug,容錯需要和調(diào)度系統(tǒng)配合在一起。
在這個流程中,為了提高效率,還需要配備各種性能優(yōu)化和加速工具,包括推理、量化、壓縮、蒸餾等,這些工具彼此之間的連接也是平臺需要做的事情。
總之,AI 工程非常復(fù)雜,牽涉很多環(huán)節(jié)。
阿里大規(guī)模機器學(xué)習(xí)實踐
回顧阿里的機器學(xué)習(xí)研發(fā)之路,林偉表示,與所有事物的發(fā)展過程一樣。起初都是希望通過各種技術(shù)手段提升商業(yè)效果,當(dāng)時阿里內(nèi)部各個部門都有自己的算法團(tuán)隊,從集團(tuán)的橫向?qū)用鎭砜?,這種煙囪式結(jié)構(gòu)是比較低效的,因此希望沉淀出一些通用能力,這就是 PAI 的前身。
那時,深度學(xué)習(xí)還沒有火起來,更多的是傳統(tǒng)機器學(xué)習(xí)、傳統(tǒng)的訓(xùn)練模型或者統(tǒng)計算法,阿里希望能夠復(fù)用這些算法,進(jìn)而提高整個集團(tuán)的研發(fā)效率,于是就推出了?PAI-Studio,其實就是把算法沉淀為組件,在數(shù)據(jù)處理和算法之間做串聯(lián),使之能夠圖形化管理,這是 PAI-Studio1.0 時代,這個時代就是更好的把工作流程串成可視化的圖。
隨著深度學(xué)習(xí)的出現(xiàn),業(yè)界開始出現(xiàn)形形色色的算法。此時,阿里希望可以把深度學(xué)習(xí)的能力做起來,因為阿里內(nèi)部有大量數(shù)據(jù),特別是核心電商領(lǐng)域,由于數(shù)據(jù)量過于龐大, 開源引擎的問題開始暴露出來,會遇到各種各樣規(guī)模性問題,這促使阿里在這方面走得很快。
隨著優(yōu)化的逐漸深入,大家已經(jīng)開始應(yīng)用深度學(xué)習(xí)做感知類應(yīng)用。在這種情況下,阿里自研的機器學(xué)習(xí)引擎在外面也是有市場的。阿里開始對外輸出,服務(wù)更多的企業(yè)客戶。
一直以來,林偉認(rèn)為做系統(tǒng)的人可以分為三類:第一類是做出來的系統(tǒng)可以解決業(yè)務(wù)問題;第二類是做出來的系統(tǒng)可以在未來 5 年持續(xù)不斷地在原來的設(shè)計上疊加新功能,并且具備一定可擴(kuò)展性,這樣的系統(tǒng)具備一定生命力;第三類是通過一些部分的重構(gòu)和變革,可以讓系統(tǒng)隨著業(yè)務(wù)規(guī)模的增長持續(xù)發(fā)展,這一類是最強的也是最難的,基于這些想法,林偉整個團(tuán)隊不斷迭代機器學(xué)習(xí)平臺 PAI,并且在阿里巴巴內(nèi)部業(yè)務(wù)和外部業(yè)務(wù)均取得了不錯的效果。
機器學(xué)習(xí) PAI 平臺的目的是希望算法開發(fā)同學(xué)能夠更加高效地開發(fā)應(yīng)用算法,幫開發(fā)者做到更好的性能,更大規(guī)模和更低成本的訓(xùn)練。
在阿里巴巴內(nèi)部,業(yè)務(wù)場景數(shù)量很多,數(shù)據(jù)規(guī)模也很大,這讓我們能夠訓(xùn)練出一些有效模型。但這些訓(xùn)練模型往往需要很多異構(gòu)機器協(xié)同,我們會搭建一個很大的共享平臺,讓形形色色的任務(wù)都在平臺上跑,最大的任務(wù)可能要處理 TB 級別的數(shù)據(jù)。如何讓訓(xùn)練任務(wù)跑得起來,在需要共享的集群里面做好調(diào)度和系統(tǒng)配合,使得我們充分利用這些資源提高集群效率,是我們整個平臺的愿景。
最開始,PAI 在 Studio 方面做得比較多,林偉整個團(tuán)隊將阿里巴巴的 AI 能力以 Studio 的模式開放出去。其中包括智能數(shù)據(jù)標(biāo)注、可視化建模、在線預(yù)測部署等全托管的 AI 工程服務(wù)
最近這一年,PAI 更加注重云原生,與 K8s 等進(jìn)行了緊密結(jié)合,使服務(wù)能夠?qū)υ粕系目蛻趔w系更加規(guī)則。包括云原生交互式開發(fā)平臺 PAI-DSW,以及云原生分布式深度學(xué)習(xí)訓(xùn)練平臺 PAI-DLC
另外,林偉帶領(lǐng)團(tuán)隊在使用體驗上不斷投入,包括產(chǎn)品的易用性和敏捷性,以及 Open API ,希望可以幫助更多個人和小型企業(yè)慢慢成長。
PAI 同樣是一個開放的平臺,在深度學(xué)習(xí)框架這層一直是擁抱開源、兼容生態(tài),比如會在開源的 TF 框架下面做優(yōu)化,同時將更改及時提交到開源社區(qū),也與 Facebook 形成戰(zhàn)略合作,推動有關(guān) Pytorch 的一系列優(yōu)化想法。在開源開放層面,開源的 ALink 與 Flink 形成數(shù)據(jù)和算法的有效結(jié)合。如今,阿里在集群管理層面也開始參與到 K8s 社區(qū),希望有更多貢獻(xiàn)。
實踐建議
如果企業(yè)希望內(nèi)部實踐大規(guī)模機器學(xué)習(xí)平臺,林偉建議,在人才層面,想要構(gòu)建大規(guī)模機器學(xué)習(xí)平臺需要對業(yè)務(wù)有所理解,算法團(tuán)隊需要具備一些基本功,雖然現(xiàn)在的機器學(xué)習(xí)沒有傳統(tǒng)的機器學(xué)習(xí)對算法要求那么高,但迭代模型還是需要建立在對算法、數(shù)據(jù)、模型原理的理解上,并且需要具備一定數(shù)學(xué)基礎(chǔ)。
在工程上面,林偉表示,工程是模型落地、產(chǎn)業(yè)化很重要的一環(huán),企業(yè)需要深入考慮各種引擎的優(yōu)劣,挑選適合自己需求的,可能是研發(fā)為主,也可能是效率或者模型很大的情況下需要分布式的訓(xùn)練、服務(wù)和推理平臺等。
同時,AI 工程比較復(fù)雜,不僅局限于訓(xùn)練和推理,還需要關(guān)注數(shù)據(jù)的處理,現(xiàn)在業(yè)界也有很多做深度學(xué)習(xí)的企業(yè),如果具備有算法團(tuán)隊,再加上開源框架,單機或許就可以訓(xùn)練模型,這種方式遇到大規(guī)模訓(xùn)練的時候,其實是有很多挑戰(zhàn)的,最開始碰到的可能是數(shù)據(jù)問題,數(shù)據(jù)該怎么管,怎么樣存、再往后可能就是訓(xùn)練的問題,所以是否可以有效管理并探索出適合自己的方向,可能是比較重要的事情。
“我不是打廣告,我覺得選擇云平臺最終可以幫助企業(yè)提高效率、節(jié)省成本,并且開發(fā)人員應(yīng)該把自己的關(guān)注點放在業(yè)務(wù)相關(guān)的算法層面,這一層其實有大量發(fā)展空間。同時,因為阿里云兼容各類生態(tài)和標(biāo)準(zhǔn),因此也不存在綁定問題,不滿意隨時可以搬下去,但上云確實是業(yè)界的趨勢?!?/p>
初始上云時,企業(yè)可能在考慮與使用物理機相比到底有沒有競爭力,但從長遠(yuǎn)來看,云平臺提供的彈性和靈活等特性會大大節(jié)省成本。而且,對于有技術(shù)夢想的公司來說,云平臺其實有很多想象和實驗的空間,企業(yè)可以根據(jù)自己的需求選擇不同層次的 API,接入不同的能力,然后提高自己公司的生產(chǎn)效率,更好地應(yīng)對業(yè)務(wù)發(fā)展。
結(jié)束語
在過往 15 年分布式系統(tǒng)的從業(yè)生涯中,林偉同樣見證了開發(fā)者生產(chǎn)力被一步步解放的過程,自從云計算、人工智能等新興技術(shù)出現(xiàn),市面上不時就可以聽到開發(fā)者對這些技術(shù)將取代人工的擔(dān)憂。
對此,林偉表示,其實你從另一個層面來看就會發(fā)現(xiàn)技術(shù)的世界一直在更新?lián)Q代,以操作系統(tǒng)為例,當(dāng) Linux 和 Windows 占據(jù)上風(fēng)之后,其他操作系統(tǒng)都慢慢消失了,那曾經(jīng)的這群開發(fā)者去哪里了呢?要么積極加入到 Linux 和 Windows 的開發(fā)中,要么擁抱新的技術(shù)變化,去看看下一個技術(shù)熱點是什么。事實上,每一個業(yè)務(wù)場景發(fā)生變化的時候,都可能是新的機會,可以嘗試做下一波要爆發(fā)的技術(shù),從中獲得的滿足感將會很大。
對于做平臺的研發(fā)人員而言,只要場景清晰了,就會開始沉淀,但肯定也會有一些混沌的、未知的領(lǐng)域,這些地方就會有大量新的思路和想法出現(xiàn),身處其中的每個人都在發(fā)揮自己的長處,然后慢慢沉淀。
嘉賓介紹:
林偉,阿里云機器學(xué)習(xí)研究員,對大規(guī)模并發(fā)系統(tǒng)有 10 年以上的系統(tǒng)架構(gòu)設(shè)計及研發(fā)經(jīng)驗,并在國際一流 ODSI、NSDI、SIGMOD 會議上多次發(fā)表論文。原微軟大數(shù)據(jù)平臺組的核心成員,曾在微軟亞洲搜索技術(shù)中心和微軟美國工作 10 年,一直從事分布式系統(tǒng)開發(fā)和大數(shù)據(jù)平臺的相關(guān)工作。
評論
查看更多