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