機(jī)器之心原創(chuàng)
作者:高靜宜
2017 年 3 月 29 日,阿里云首席科學(xué)家周靖人博士在 2017 云棲大會(huì)·深圳峰會(huì)上重磅推出升級(jí)版的機(jī)器學(xué)習(xí)平臺(tái) PAI 2.0,可以大幅度降低人工智能門(mén)檻以及開(kāi)發(fā)成本。
近年來(lái),人工智能迎來(lái)新浪潮,逐漸擴(kuò)展至城市治理、交通調(diào)度、工業(yè)制造、健康醫(yī)療、司法等應(yīng)用場(chǎng)景。在大會(huì)上,周靖人博士表示:「在過(guò)去一年的時(shí)間里,我們協(xié)助客戶(hù)落實(shí)了多項(xiàng)重大的人工智能應(yīng)用,人工智能已經(jīng)成為觸手可及的普惠技術(shù),變成真正幫助人類(lèi)解決實(shí)際問(wèn)題的得力助手,PAI 正是為此而來(lái)?!?/p>
2015 年,阿里云對(duì)外發(fā)布國(guó)內(nèi)首個(gè)機(jī)器學(xué)習(xí)平臺(tái) PAI (Platform of Artificial Intelligence),不僅可以實(shí)現(xiàn)高性能云端計(jì)算從而降低存儲(chǔ)和計(jì)算成本,還具備相應(yīng)的工具和算法庫(kù)進(jìn)而降低技術(shù)門(mén)檻。此次版本的重大升級(jí)建立在阿里云機(jī)器學(xué)習(xí)平臺(tái) 1.0 之上,標(biāo)志著阿里云在構(gòu)建 AI 核心技術(shù)能力上又進(jìn)一步。
阿里云機(jī)器學(xué)習(xí)平臺(tái) PAI 2.0 的主要特性包括以下方面:
全面兼容深度學(xué)習(xí)框架
自 2012 年深度學(xué)習(xí)的代表模型 AlexNet 在 ImageNet 大賽中力壓亞軍,以超過(guò) 10 個(gè)百分點(diǎn)的絕對(duì)優(yōu)勢(shì)奪得頭籌之后,依托于建模技術(shù)的進(jìn)步、硬件計(jì)算能力的提升、優(yōu)化技術(shù)的進(jìn)步以及海量數(shù)據(jù)的累積,深度學(xué)習(xí)在語(yǔ)音、圖像以及文本等多個(gè)領(lǐng)域不斷推進(jìn),相較于傳統(tǒng)作法取得了顯著的效果提升。工業(yè)界和學(xué)術(shù)界也先后推出了用于深度學(xué)習(xí)建模用途的開(kāi)源工具和框架,包括 Caffe、Theano、Torch、MXNet、TensorFlow、Chainer、CNTK 等等。TensorFlow、Caffe 和 MXNet 是目前全球主流的深度學(xué)習(xí)開(kāi)源框架;TensorFlow 開(kāi)源算法和模型最豐富;Caffe 是經(jīng)典的圖形領(lǐng)域框架,使用簡(jiǎn)單;MXNet 分布式性能優(yōu)異。
深度學(xué)習(xí)通過(guò)設(shè)計(jì)復(fù)雜模型,依托于海量數(shù)據(jù)的表征能力,從而獲取相較于經(jīng)典淺層模型更優(yōu)的模型表現(xiàn),這樣的建模策略促使對(duì)底層訓(xùn)練工具提出了更高的要求?,F(xiàn)有的開(kāi)源工具,往往會(huì)在性能上、顯存支持上、生態(tài)系統(tǒng)的完善性上存在不同層面的不足,在使用效率上對(duì)于普通的算法建模用戶(hù)并不夠友好。
PAI 2.0 編程接口完全兼容深度學(xué)習(xí)框架:TensorFlow、Caffe 以及 MXNet,用戶(hù)只需要將自己本地編寫(xiě)的代碼文件上傳至云端就可以執(zhí)行。
對(duì)于底層計(jì)算資源,PAI 2.0 提供了強(qiáng)大的云端異構(gòu)計(jì)算資源,包含 CPU、GPU、FPGA。在 GPU 方面,PAI 2.0 可以靈活實(shí)現(xiàn)多卡調(diào)度。
借助這些框架以及強(qiáng)大的計(jì)算資源,用戶(hù)非常方便地就可以將計(jì)算任務(wù)下發(fā)到對(duì)應(yīng)的分布式計(jì)算機(jī)群上,實(shí)現(xiàn)深度學(xué)習(xí)模型訓(xùn)練與預(yù)測(cè)。
算法庫(kù)的豐富與創(chuàng)新
PAI 2.0 提供 100 余種算法組件,涵蓋了分類(lèi)、回歸、聚類(lèi)等常用場(chǎng)景,還針對(duì)主流的算法應(yīng)用場(chǎng)景,提供了偏向業(yè)務(wù)的算法,包含文本分析、關(guān)系分析、推薦三種類(lèi)別。
「算法全部脫胎于阿里巴巴集團(tuán)內(nèi)部的業(yè)務(wù)實(shí)踐,所有算法都經(jīng)歷過(guò) PB 級(jí)數(shù)據(jù)和復(fù)雜業(yè)務(wù)場(chǎng)景的錘煉,具備成熟穩(wěn)定的特點(diǎn)」,阿里云首席科學(xué)家周靖人說(shuō)。
支持更大規(guī)模的數(shù)據(jù)訓(xùn)練
PAI 2.0 新增了參數(shù)服務(wù)器(Parameter Server)架構(gòu)的算法。不僅能進(jìn)行數(shù)據(jù)并行,同時(shí)還可將模型分片,把大的模型分為多個(gè)子集,每個(gè)參數(shù)服務(wù)器只存一個(gè)子集,全部的參數(shù)服務(wù)器聚合在一起拼湊成一個(gè)完整的模型。
其創(chuàng)新點(diǎn)還在于失敗重試的功能。在分布式系統(tǒng)上,成百上千個(gè)節(jié)點(diǎn)協(xié)同工作時(shí),經(jīng)常會(huì)出現(xiàn)一個(gè)或幾個(gè)節(jié)點(diǎn)掛掉的情況,如果沒(méi)有失敗重試機(jī)制,任務(wù)就會(huì)有一定的幾率失敗,需要重新提交任務(wù)到集群調(diào)度。PS 算法支持千億特征、萬(wàn)億模型和萬(wàn)億樣本直至 PB 級(jí)的數(shù)據(jù)訓(xùn)練,適合于電商、廣告等數(shù)據(jù)規(guī)模巨大的推薦場(chǎng)景。
人性化的操作界面
從操作界面來(lái)看,PAI 沒(méi)有繁瑣的公式和復(fù)雜的代碼邏輯,用戶(hù)看到的是各種分門(mén)別類(lèi)被封裝好的算法組件。每一個(gè)實(shí)驗(yàn)步驟都提供可視化的監(jiān)控頁(yè)面,在深度學(xué)習(xí)黑箱透明化方面,PAI 也同時(shí)集成了各種可視化工具。
周靖人博士在現(xiàn)場(chǎng)展示了在搭架實(shí)驗(yàn)的過(guò)程中,只需要設(shè)置數(shù)據(jù)源、輸出,就可以讓系統(tǒng)實(shí)現(xiàn)人工智能訓(xùn)練,拖拽組件即可快速拼接成一個(gè)工作流,大幅提升了建立的調(diào)試模型的效率??梢暬绞絼t有助于使用戶(hù)清楚地了解問(wèn)題本身以及深度學(xué)習(xí)的效果。
事實(shí)上就目前而言,大規(guī)模深度學(xué)習(xí)優(yōu)化還是一個(gè)方興未艾的技術(shù)方向,作為一個(gè)交叉領(lǐng)域,涉及到分布式計(jì)算、操作系統(tǒng)、計(jì)算機(jī)體系結(jié)構(gòu)、數(shù)值優(yōu)化、機(jī)器學(xué)習(xí)建模、編譯器技術(shù)等多個(gè)領(lǐng)域。按照優(yōu)化的側(cè)重點(diǎn),可以將優(yōu)化策略劃分為計(jì)算優(yōu)化、顯存優(yōu)化、通信優(yōu)化、性能預(yù)估模型以及軟硬件協(xié)同優(yōu)化。PAI 平臺(tái)目前主要集中在以下四個(gè)優(yōu)化方向。
顯存優(yōu)化
內(nèi)存優(yōu)化主要關(guān)心的是 GPU 顯存優(yōu)化的議題,在深度學(xué)習(xí)訓(xùn)練場(chǎng)景,其計(jì)算任務(wù)的特點(diǎn)決定了通常會(huì)選擇 GPU 來(lái)作為計(jì)算設(shè)備,而 GPU 作為典型的高通量異構(gòu)計(jì)算設(shè)備,其硬件設(shè)計(jì)約束決定了其顯存資源往往是比較稀缺的,目前在 PAI 平臺(tái)上提供的中檔 M40 顯卡的顯存只有 12GB,而復(fù)雜度較高的模型則很容易達(dá)到 M40 顯存的臨界值,比如 151 層的 ResNet。
36 層的 ResNet 模型示例
PAI 在顯存優(yōu)化上做了一系列工作,期望能夠解放建模工作中的的負(fù)擔(dān),使用戶(hù)在模型尺寸上獲得更廣闊的建模探索空間。在內(nèi)存優(yōu)化方面,通過(guò)引入 task-specific 的顯存分配器以及自動(dòng)化模型分片框架支持,在很大程度上緩解了建模任務(wù)在顯存消耗方面的約束。其中自動(dòng)化模型分片框架會(huì)根據(jù)具體的模型網(wǎng)絡(luò)特點(diǎn),預(yù)估出其顯存消耗量,然后對(duì)模型進(jìn)行自動(dòng)化切片,實(shí)現(xiàn)模型并行的支持。在完成自動(dòng)化模型分片的同時(shí),框架還會(huì)考慮到模型分片帶來(lái)的通信開(kāi)銷(xiāo),通過(guò)啟發(fā)式的方法在大模型的承載能力和計(jì)算效率之間獲得較優(yōu)的 trade-off。
通信優(yōu)化
大規(guī)模深度學(xué)習(xí),或者說(shuō)大規(guī)模機(jī)器學(xué)習(xí)領(lǐng)域里一個(gè)永恒的話(huà)題就是如何通過(guò)多機(jī)分布式對(duì)訓(xùn)練任務(wù)進(jìn)行加速。而機(jī)器學(xué)習(xí)訓(xùn)練任務(wù)的多遍迭代式通信的特點(diǎn),使得經(jīng)典的 map-reduce 式的并行數(shù)據(jù)處理方式并不適合這個(gè)場(chǎng)景。對(duì)于以單步小批量樣本作為訓(xùn)練單位步的深度學(xué)習(xí)訓(xùn)練任務(wù),這個(gè)問(wèn)題就更突出了。
依據(jù) Amdahl's law,一個(gè)計(jì)算任務(wù)性能改善的程度取決于可以被改進(jìn)的部分在整個(gè)任務(wù)執(zhí)行時(shí)間中所占比例的大小。而深度學(xué)習(xí)訓(xùn)練任務(wù)的多機(jī)分布式往往會(huì)引入額外的通信開(kāi)銷(xiāo),使得系統(tǒng)內(nèi)可被提速的比例縮小,相應(yīng)地束縛了分布式所能帶來(lái)的性能加速的收益。
PAI 平臺(tái)通過(guò) pipeline communication、late-multiply、hybrid-parallelism 以及 heuristic-based model average 等多種優(yōu)化策略對(duì)分布式訓(xùn)練過(guò)程中的通信開(kāi)銷(xiāo)進(jìn)行了不同程度的優(yōu)化,并在公開(kāi)及 in-house 模型上取得了比較顯著的收斂加速比提升。
在 Pipeline communication 中,將待通信數(shù)據(jù)(模型及梯度)切分成一個(gè)個(gè)小的數(shù)據(jù)塊從而在多個(gè)計(jì)算結(jié)點(diǎn)之間充分流動(dòng)起來(lái),可以突破單機(jī)網(wǎng)卡的通信帶寬極限,將一定尺度內(nèi)將通信開(kāi)銷(xiāo)控制在常量時(shí)間復(fù)雜度。
Pipeline communication
在 Late-multiply 中,針對(duì)全連接層計(jì)算量小,模型尺寸大的特點(diǎn),對(duì)于多機(jī)之間的梯度匯總邏輯進(jìn)行了優(yōu)化,將「多個(gè) worker 計(jì)算本地梯度,在所有結(jié)點(diǎn)之間完成信息交互」的分布式邏輯調(diào)整為「多個(gè) worker 將全連接層的上下兩層 layer 的后向傳播梯度及激活值在所有計(jì)算結(jié)點(diǎn)之間完成信息交互」,當(dāng)全連接層所包含的隱層神經(jīng)元很多時(shí),會(huì)帶來(lái)比較顯著的性能提升。
Without late-multiply
With late-multiply
在 Hybrid-parallelism 中,針對(duì)不同模型網(wǎng)絡(luò)的特點(diǎn),引入數(shù)據(jù)并行與模型并行的混合策略,針對(duì)計(jì)算占比高的部分應(yīng)用數(shù)據(jù)并行,針對(duì)模型通信量大的部分應(yīng)用模型并行,在多機(jī)計(jì)算加速與減少通信開(kāi)銷(xiāo)之間獲得了較好的平衡點(diǎn)。下圖看出將這個(gè)優(yōu)化策略應(yīng)用在 TensorFlow 里 AlexNet 模型的具體體現(xiàn)。
AlexNet with hybrid-parallelism
AlexNet 模型示例
性能預(yù)估模型
對(duì)于建模人員來(lái)說(shuō),他們關(guān)心的往往是以最具性?xún)r(jià)比的方式完成他們的建模訓(xùn)練任務(wù),而不是用多少?gòu)埧ǎ允裁礃拥姆植际綀?zhí)行策略來(lái)完成他們的訓(xùn)練任務(wù)。而目前深度學(xué)習(xí)訓(xùn)練工具以及訓(xùn)練任務(wù)的復(fù)雜性,使得建模人員往往不得不透過(guò) leaky abstraction 的管道,去關(guān)心為了完成他們的一個(gè)建模實(shí)驗(yàn),應(yīng)該使用多少?gòu)?GPU 卡,多少個(gè) CPU 核、什么樣的通信介質(zhì)以及選擇哪種分布式執(zhí)行策略,才能有效地完成自己的訓(xùn)練任務(wù)。
基于性能預(yù)估模型,是期望能夠?qū)⒔H藛T從具體的訓(xùn)練任務(wù)執(zhí)行細(xì)節(jié)中解放出來(lái)。具體來(lái)說(shuō),給定建模用戶(hù)的一個(gè)模型結(jié)構(gòu),以及所期望花費(fèi)的費(fèi)用和時(shí)間,PAI 平臺(tái)會(huì)采用模型+啟發(fā)式的策略預(yù)估出需要多少硬件資源,使用什么樣的分布式執(zhí)行策略可以盡可能逼近用戶(hù)的期望。
軟硬件協(xié)同優(yōu)化
上面提到的三個(gè)優(yōu)化策略主要集中在任務(wù)的離線(xiàn)訓(xùn)練環(huán)節(jié),而深度學(xué)習(xí)在具體業(yè)務(wù)場(chǎng)景的成功應(yīng)用,除了離線(xiàn)訓(xùn)練以外,也離不開(kāi)在線(xiàn)布署環(huán)節(jié)。作為典型的復(fù)雜模型,無(wú)論是功耗、計(jì)算性能還是模型動(dòng)態(tài)更新的開(kāi)銷(xiāo),深度學(xué)習(xí)模型為在線(xiàn)部署提出了更高的要求和挑戰(zhàn)。在 PAI 平臺(tái)里,關(guān)于在線(xiàn)部署,除了實(shí)現(xiàn)軟件層面的優(yōu)化,也探索了軟硬件協(xié)同優(yōu)化的技術(shù)路線(xiàn)。目前在 PAI 平臺(tái)里,阿里云技術(shù)團(tuán)隊(duì)正在基于 FPGA 實(shí)現(xiàn)在線(xiàn) inference 的軟硬件協(xié)同優(yōu)化。在 PAI 里實(shí)現(xiàn)軟硬件協(xié)同優(yōu)化的策略與業(yè)界其他同行的作法會(huì)有所不同,我們將這個(gè)問(wèn)題抽象成一個(gè) domain-specific 的定制硬件編譯優(yōu)化的問(wèn)題,通過(guò)這種抽象,我們可以采取更為通用的方式來(lái)解決一大批問(wèn)題,從而更為有效地滿(mǎn)足模型多樣性、場(chǎng)景多樣性的需求。
在 PAI 2.0 介紹的最后環(huán)節(jié),周靖人博士展示了它的相關(guān)使用案例以及已經(jīng)廣泛的應(yīng)用前景。
聯(lián)系客服