近年來,機器學習技術的發展歸因于我們有極其龐大的數據用來訓練算法。當企業需要落地大規模機器學習時,往往會面臨很多難題,如何解決這些問題?如何系統了解大規模機器學習落地的技巧?其適用場景是什么?InfoQ 希望通過該選題解決這些問題,并推動企業在大規模機器學習方面的實踐。本文,InfoQ 有幸采訪了阿里云機器學習研究員林偉,聽他分享自己的經驗和見解。
何為大規模機器學習
毫無疑問,我們已經邁入人工智能時代,機器學習幾乎滲透了我們日常生活和工作的方方面面,創建深度學習模型越來越容易,但大規模工業部署卻依然沒有那么容易,第一現在模型變得越來越大,越來越深,需要強大算力和海量的數據才能夠支撐訓練出更好的模型;第二模型訓練出來需要在推理的時候高效的執行才能真正讓模型落地,這個里面就需要非常多系統工程優化,以及模型和工程一起的協同優化。當然并不是模型越大,訓練效果就會一定好,模型本身的提高以及訓練方式都決定了最終模型實際效果,這就需要我們也在算法,訓練手段層面的突破。
對眾多深度學習開發者而言,只要擁有一張 GPU 卡,很多流行的 AI 模型都可以得以訓練。但對公司而言,隨著業務需求的提高、精度要求的提高,就會面臨更大模型、更多數據訓練的需求,此時就需要更強大分布式訓練平臺以適應大規模的訓練的需求,同時因為數據量增加,我們需要讓 AI 訓練和大數據平臺結合起來,從而滿足算法研究者各種數據組合加工,嘗試不同訓練方式,從而能夠快速迭代模型,提高模型的精度。
那么,何為大規模機器學習有明確的界定嗎?
采訪中,林偉表示,我們所說的“大規模”可以解釋為需要幾千臺機器、幾千個工作者一起協同訓練,也可以理解為多硬件資源,比如 GPU。
在阿里巴巴內部,林偉所在團隊訓練過非常大規模的稀疏網絡,這類模型很容易大,而且更多偏向于推薦、搜索等信息流類型,往往需要幾千個工作者的協同訓練。同時對于稠密網絡,比如感知類的 AI 網絡,比如視覺、語音、自然語言處理現在也在變得越來越大,也需要要幾十張到幾百張卡一起訓練。
如何設計相對完善的機器學習平臺
根據林偉介紹,一個大規模的機器學習平臺首先要具備優秀的調度能力,并非所有任務每天都需要大量資源,但要保證極限情況下的承受能力足夠強,而所需資源不多時又可及時釋放。所以,大部分機器學習平臺都是從小規模逐漸做起來的,這個過程會積累一些能力,比如沉淀一些框架和平臺,或者幫助開發者做分布式訓練等。
阿里最近推出了機器學習平臺 PAI 的 DSW,其托管在云平臺之上,非常方便,開發者可隨時打開 IDE,該平臺可自動保存工作內容,然后可以快速開發。如果開發者覺得模型基本完成,希望無感知提交到更大的集群中時就涉及關于模型的開發。
模型離不開數據,在數據處理中,開發人員需要有配套的大數據處理能力,需要對數據進行清洗和提純,這就要求平臺需要具備大數據能力,這也是為什么計算平臺會把 AI 和大數據作為兩大引擎,因為彼此之間需要交互。同時,平臺上訓練出的模型需要在業務中達到一定效果,比如讓服務做到低延時、高吞吐,保證服務發布、更新、迭代、切換以及報警、監控等。
事實上,AI 屬于計算密集型任務,需要大量數據交互,所以分配資源的時候要根據任務大小來考慮如何對應到底層硬件的拓撲結構上,使之能夠充分利用異構特性完成整個過程,我們能夠充分利用系統對訓練任務的理解,有效調度不同部分到不同的資源上面,充分地利用多種硬件資源,發揮系統的最高效率。
此外,要考慮容錯,因為過大的集群經常容易發生錯誤,機器并不是永動機,隨時可能出現問題,軟件也不能保證沒有 bug,容錯需要和調度系統配合在一起。
在這個流程中,為了提高效率,還需要配備各種性能優化和加速工具,包括推理、量化、壓縮、蒸餾等,這些工具彼此之間的連接也是平臺需要做的事情。
總之,AI 工程非常復雜,牽涉很多環節。
阿里大規模機器學習實踐
回顧阿里的機器學習研發之路,林偉表示,與所有事物的發展過程一樣。起初都是希望通過各種技術手段提升商業效果,當時阿里內部各個部門都有自己的算法團隊,從集團的橫向層面來看,這種煙囪式結構是比較低效的,因此希望沉淀出一些通用能力,這就是 PAI 的前身。
那時,深度學習還沒有火起來,更多的是傳統機器學習、傳統的訓練模型或者統計算法,阿里希望能夠復用這些算法,進而提高整個集團的研發效率,于是就推出了?PAI-Studio,其實就是把算法沉淀為組件,在數據處理和算法之間做串聯,使之能夠圖形化管理,這是 PAI-Studio1.0 時代,這個時代就是更好的把工作流程串成可視化的圖。
隨著深度學習的出現,業界開始出現形形色色的算法。此時,阿里希望可以把深度學習的能力做起來,因為阿里內部有大量數據,特別是核心電商領域,由于數據量過于龐大, 開源引擎的問題開始暴露出來,會遇到各種各樣規模性問題,這促使阿里在這方面走得很快。
隨著優化的逐漸深入,大家已經開始應用深度學習做感知類應用。在這種情況下,阿里自研的機器學習引擎在外面也是有市場的。阿里開始對外輸出,服務更多的企業客戶。
一直以來,林偉認為做系統的人可以分為三類:第一類是做出來的系統可以解決業務問題;第二類是做出來的系統可以在未來 5 年持續不斷地在原來的設計上疊加新功能,并且具備一定可擴展性,這樣的系統具備一定生命力;第三類是通過一些部分的重構和變革,可以讓系統隨著業務規模的增長持續發展,這一類是最強的也是最難的,基于這些想法,林偉整個團隊不斷迭代機器學習平臺 PAI,并且在阿里巴巴內部業務和外部業務均取得了不錯的效果。
機器學習 PAI 平臺的目的是希望算法開發同學能夠更加高效地開發應用算法,幫開發者做到更好的性能,更大規模和更低成本的訓練。
在阿里巴巴內部,業務場景數量很多,數據規模也很大,這讓我們能夠訓練出一些有效模型。但這些訓練模型往往需要很多異構機器協同,我們會搭建一個很大的共享平臺,讓形形色色的任務都在平臺上跑,最大的任務可能要處理 TB 級別的數據。如何讓訓練任務跑得起來,在需要共享的集群里面做好調度和系統配合,使得我們充分利用這些資源提高集群效率,是我們整個平臺的愿景。
最開始,PAI 在 Studio 方面做得比較多,林偉整個團隊將阿里巴巴的 AI 能力以 Studio 的模式開放出去。其中包括智能數據標注、可視化建模、在線預測部署等全托管的 AI 工程服務
最近這一年,PAI 更加注重云原生,與 K8s 等進行了緊密結合,使服務能夠對云上的客戶體系更加規則。包括云原生交互式開發平臺 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 年,一直從事分布式系統開發和大數據平臺的相關工作。
評論