15年老兵談阿里雲大規模機器學習實踐

近年來,機器學習技術的發展歸因於我們有極其龐大的數據用來訓練算法。當企業需要落地大規模機器學習時,往往會面臨很多難題,如何解決這些問題?如何系統瞭解大規模機器學習落地的技巧?其適用場景是什麼?InfoQ希望通過該選題解決這些問題,並推動企業在大規模機器學習方面的實踐。本文,InfoQ有幸採訪了阿里雲機器學習研究員林偉,聽他分享自己的經驗和見解。

何爲大規模機器學習

毫無疑問,我們已經邁入人工智能時代,機器學習幾乎滲透了我們日常生活和工作的方方面面,創建深度學習模型越來越容易,但大規模工業部署卻依然沒有那麼容易,第一現在模型變得越來越大,越來越深,需要強大算力和海量的數據才能夠支撐訓練出更好的模型;第二模型訓練出來需要在推理的時候高效的執行才能真正讓模型落地,這個裏面就需要非常多系統工程優化,以及模型和工程一起的協同優化。當然並不是模型越大,訓練效果就會一定好,模型本身的提高以及訓練方式都決定了最終模型實際效果,這就需要我們也在算法,訓練手段層面的突破。

對衆多深度學習開發者而言,只要擁有一張GPU卡,很多流行的AI模型都可以得以訓練。但對公司而言,隨着業務需求的提高、精度要求的提高,就會面臨更大模型、更多數據訓練的需求,此時就需要更強大分佈式訓練平臺以適應大規模的訓練的需求,同時因爲數據量增加,我們需要讓AI訓練和大數據平臺結合起來,從而滿足算法研究者各種數據組合加工,嘗試不同訓練方式,從而能夠快速迭代模型,提高模型的精度。

那麼,何爲大規模機器學習有明確的界定嗎?

採訪中,林偉表示,我們所說的“大規模”可以解釋爲需要幾千臺機器、幾千個工作者一起協同訓練,也可以理解爲多硬件資源,比如GPU。

在阿里巴巴內部,林偉所在團隊訓練過非常大規模的稀疏網絡,這類模型很容易大,而且更多偏向於推薦、搜索等信息流類型,往往需要幾千個工作者的協同訓練。同時對於稠密網絡,比如感知類的AI網絡,比如視覺、語音、自然語言處理現在也在變得越來越大,也需要要幾十張到幾百張卡一起訓練。

如何設計相對完善的機器學習平臺

根據林偉介紹,一個大規模的機器學習平臺首先要具備優秀的調度能力,並非所有任務每天都需要大量資源,但要保證極限情況下的承受能力足夠強,而所需資源不多時又可及時釋放。所以,大部分機器學習平臺都是從小規模逐漸做起來的,這個過程會積累一些能力,比如沉澱一些框架和平臺,或者幫助開發者做分佈式訓練等。

阿里最近推出了機器學習平臺PAI的DSW,其託管在雲平臺之上,非常方便,開發者可隨時打開IDE,該平臺可自動保存工作內容,然後可以快速開發。如果開發者覺得模型基本完成,希望無感知提交到更大的集羣中時就涉及關於模型的開發。

模型離不開數據,在數據處理中,開發人員需要有配套的大數據處理能力,需要對數據進行清洗和提純,這就要求平臺需要具備大數據能力,這也是爲什麼計算平臺會把AI和大數據作爲兩大引擎,因爲彼此之間需要交互。同時,平臺上訓練出的模型需要在業務中達到一定效果,比如讓服務做到低延時、高吞吐,保證服務發佈、更新、迭代、切換以及報警、監控等。

AI需要大量的數據,而這些數據還得有標籤,這意味着數據標註平臺同樣重要,可以幫助用戶快速處理數據。其實,現在AI整個訓練流程非常靈活,如果要在更大的範圍內做一些訓練,比如發佈一個模型,可能會有一些bad case或者識別不好的負樣本,我們要把這些case積累在一起,並幫助用戶重新調整模型以提高最終效果。

事實上,AI屬於計算密集型任務,需要大量數據交互,所以分配資源的時候要根據任務大小來考慮如何對應到底層硬件的拓撲結構上,使之能夠充分利用異構特性完成整個過程,我們能夠充分利用系統對訓練任務的理解,有效調度不同部分到不同的資源上面,充分地利用多種硬件資源,發揮系統的最高效率。

此外,要考慮容錯,因爲過大的集羣經常容易發生錯誤,機器並不是永動機,隨時可能出現問題,軟件也不能保證沒有bug,容錯需要和調度系統配合在一起。

在這個流程中,爲了提高效率,還需要配備各種性能優化和加速工具,包括推理、量化、壓縮、蒸餾等,這些工具彼此之間的連接也是平臺需要做的事情。

總之,AI工程非常複雜,牽涉很多環節。

阿里大規模機器學習實踐

回顧阿里的機器學習研發之路,林偉表示,與所有事物的發展過程一樣。起初都是希望通過各種技術手段提升商業效果,當時阿里內部各個部門都有自己的算法團隊,從集團的橫向層面來看,這種煙囪式結構是比較低效的,因此希望沉澱出一些通用能力,這就是PAI的前身。

那時,深度學習還沒有火起來,更多的是傳統機器學習、傳統的訓練模型或者統計算法,阿里希望能夠複用這些算法,進而提高整個集團的研發效率,於是就推出了PAI-Studio,其實就是把算法沉澱爲組件,在數據處理和算法之間做串聯,使之能夠圖形化管理,這是PAI-Studio1.0時代,這個時代就是更好的把工作流程串成可視化的圖。

隨着深度學習的出現,業界開始出現形形色色的算法。此時,阿里希望可以把深度學習的能力做起來,因爲阿里內部有大量數據,特別是核心電商領域,由於數據量過於龐大, 開源引擎的問題開始暴露出來,會遇到各種各樣規模性問題,這促使阿里在這方面走得很快。

隨着優化的逐漸深入,大家已經開始應用深度學習做感知類應用。在這種情況下,阿里自研的機器學習引擎在外面也是有市場的。阿里開始對外輸出,服務更多的企業客戶。

一直以來,林偉認爲做系統的人可以分爲三類:第一類是做出來的系統可以解決業務問題;第二類是做出來的系統可以在未來5年持續不斷地在原來的設計上疊加新功能,並且具備一定可擴展性,這樣的系統具備一定生命力;第三類是通過一些部分的重構和變革,可以讓系統隨着業務規模的增長持續發展,這一類是最強的也是最難的,基於這些想法,林偉整個團隊不斷迭代機器學習平臺 PAI,並且在阿里巴巴內部業務和外部業務均取得了不錯的效果。

機器學習PAI平臺的目的是希望算法開發同學能夠更加高效地開發應用算法,幫開發者做到更好的性能,更大規模和更低成本的訓練。

在阿里巴巴內部,業務場景數量很多,數據規模也很大,這讓我們能夠訓練出一些有效模型。但這些訓練模型往往需要很多異構機器協同,我們會搭建一個很大的共享平臺,讓形形色色的任務都在平臺上跑,最大的任務可能要處理TB級別的數據。如何讓訓練任務跑得起來,在需要共享的集羣裏面做好調度和系統配合,使得我們充分利用這些資源提高集羣效率,是我們整個平臺的願景。

最開始,PAI在Studio方面做得比較多,林偉整個團隊將阿里巴巴的AI能力以Studio的模式開放出去。其中包括智能數據標註、可視化建模、在線預測部署等全託管的AI工程服務

機器學習PAI Studio

最近這一年,PAI更加註重雲原生,與K8s等進行了緊密結合,使服務能夠對雲上的客戶體系更加規則。包括雲原生交互式開發平臺PAI-DSW,以及雲原生分佈式深度學習訓練平臺PAI-DLC

機器學習PAI DSW

機器學習PAI DLC

另外,林偉帶領團隊在使用體驗上不斷投入,包括產品的易用性和敏捷性,以及Open API ,希望可以幫助更多個人和小型企業慢慢成長。

PAI同樣是一個開放的平臺,在深度學習框架這層一直是擁抱開源、兼容生態,比如會在開源的TF框架下面做優化,同時將更改及時提交到開源社區,也與Facebook形成戰略合作,推動有關Pytorch的一系列優化想法。在開源開放層面,開源的ALink與Flink形成數據和算法的有效結合。如今,阿里在集羣管理層面也開始參與到K8s社區,希望有更多貢獻。

實踐建議

如果企業希望內部實踐大規模機器學習平臺,林偉建議,在人才層面,想要構建大規模機器學習平臺需要對業務有所理解,算法團隊需要具備一些基本功,雖然現在的機器學習沒有傳統的機器學習對算法要求那麼高,但迭代模型還是需要建立在對算法、數據、模型原理的理解上,並且需要具備一定數學基礎。

在工程上面,林偉表示,工程是模型落地、產業化很重要的一環,企業需要深入考慮各種引擎的優劣,挑選適合自己需求的,可能是研發爲主,也可能是效率或者模型很大的情況下需要分佈式的訓練、服務和推理平臺等。

同時,AI工程比較複雜,不僅侷限於訓練和推理,還需要關注數據的處理,現在業界也有很多做深度學習的企業,如果具備有算法團隊,再加上開源框架,單機或許就可以訓練模型,這種方式遇到大規模訓練的時候,其實是有很多挑戰的,最開始碰到的可能是數據問題,數據該怎麼管,怎麼樣存、再往後可能就是訓練的問題,所以是否可以有效管理並探索出適合自己的方向,可能是比較重要的事情。

“我不是打廣告,我覺得選擇雲平臺最終可以幫助企業提高效率、節省成本,並且開發人員應該把自己的關注點放在業務相關的算法層面,這一層其實有大量發展空間。同時,因爲阿里雲兼容各類生態和標準,因此也不存在綁定問題,不滿意隨時可以搬下去,但上雲確實是業界的趨勢。”

初始上雲時,企業可能在考慮與使用物理機相比到底有沒有競爭力,但從長遠來看,雲平臺提供的彈性和靈活等特性會大大節省成本。而且,對於有技術夢想的公司來說,雲平臺其實有很多想象和實驗的空間,企業可以根據自己的需求選擇不同層次的API,接入不同的能力,然後提高自己公司的生產效率,更好地應對業務發展。

結束語

在過往15年分佈式系統的從業生涯中,林偉同樣見證了開發者生產力被一步步解放的過程,自從雲計算、人工智能等新興技術出現,市面上不時就可以聽到開發者對這些技術將取代人工的擔憂。

對此,林偉表示,其實你從另一個層面來看就會發現技術的世界一直在更新換代,以操作系統爲例,當Linux和Windows佔據上風之後,其他操作系統都慢慢消失了,那曾經的這羣開發者去哪裏了呢?要麼積極加入到Linux和Windows的開發中,要麼擁抱新的技術變化,去看看下一個技術熱點是什麼。事實上,每一個業務場景發生變化的時候,都可能是新的機會,可以嘗試做下一波要爆發的技術,從中獲得的滿足感將會很大。

對於做平臺的研發人員而言,只要場景清晰了,就會開始沉澱,但肯定也會有一些混沌的、未知的領域,這些地方就會有大量新的思路和想法出現,身處其中的每個人都在發揮自己的長處,然後慢慢沉澱。

嘉賓介紹:

林偉,阿里雲機器學習研究員,對大規模併發系統有10年以上的系統架構設計及研發經驗,並在國際一流ODSI、NSDI、SIGMOD會議上多次發表論文。原微軟大數據平臺組的核心成員,曾在微軟亞洲搜索技術中心和微軟美國工作10年,一直從事分佈式系統開發和大數據平臺的相關工作。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章