您的位置:首頁>科技>正文

阿裡雲推出機器學習平臺,降低人工智慧門檻與開發成本

機器之心原創

作者:高靜宜

2017 年 3 月 29 日, 阿裡雲首席科學家周靖人博士在 2017 雲棲大會•深圳峰會上重磅推出升級版的機器學習平臺 PAI 2.0, 可以大幅度降低人工智慧門檻以及開發成本。

近年來, 人工智慧迎來新浪潮, 逐漸擴展至城市治理、交通調度、工業製造、健康醫療、司法等應用場景。 在大會上, 周靖人博士表示:「在過去一年的時間裡, 我們協助客戶落實了多項重大的人工智慧應用, 人工智慧已經成為觸手可及的普惠技術, 變成真正幫助人類解決實際問題的得力助手, PAI 正是為此而來。 」

2015 年, 阿裡雲對外發佈國內首個機器學習平臺 PAI (Platform of Artificial Intelligence), 不僅可以實現高性能雲端計算從而降低存儲和計算成本, 還具備相應的工具和演算法庫進而降低技術門檻。 此次版本的重大升級建立在阿裡雲機器學習平臺 1.0 之上, 標誌著阿裡雲在構建 AI 核心技術能力上又進一步。

阿裡雲機器學習平臺 PAI 2.0 的主要特性包括以下方面:

全面相容深度學習框架

自 2012 年深度學習的代表模型 AlexNet 在 ImageNet 大賽中力壓亞軍, 以超過 10 個百分點的絕對優勢奪得頭籌之後, 依託於建模技術的進步、硬體計算能力的提升、優化技術的進步以及海量資料的累積, 深度學習在語音、圖像以及文本等多個領域不斷推進, 相較于傳統作法取得了顯著的效果提升。 工業界和學術界也先後推出了用於深度學習建模用途的開源工具和框架, 包括 Caffe、Theano、Torch、MXNet、TensorFlow、Chainer、CNTK 等等。 TensorFlow、Caffe 和 MXNet 是目前全球主流的深度學習開源框架;TensorFlow 開源演算法和模型最豐富;Caffe 是經典的圖形領域框架, 使用簡單;MXNet 分散式性能優異。

深度學習通過設計複雜模型, 依託于海量資料的表徵能力, 從而獲取相較於經典淺層模型更優的模型表現,

這樣的建模策略促使對底層訓練工具提出了更高的要求。 現有的開源工具, 往往會在性能上、顯存支援上、生態系統的完善性上存在不同層面的不足, 在使用效率上對於普通的演算法建模使用者並不夠友好。

PAI 2.0 程式設計介面完全相容深度學習框架:TensorFlow、Caffe 以及 MXNet, 用戶只需要將自己本地編寫的代碼檔上傳至雲端就可以執行。

對於底層計算資源, PAI 2.0 提供了強大的雲端異構計算資源, 包含 CPU、GPU、FPGA。 在 GPU 方面, PAI 2.0 可以靈活實現多卡調度。

借助這些框架以及強大的計算資源, 用戶非常方便地就可以將計算任務下發到對應的分散式運算機群上,

實現深度學習模型訓練與預測。

演算法庫的豐富與創新

PAI 2.0 提供 100 餘種演算法元件, 涵蓋了分類、回歸、聚類等常用場景, 還針對主流的演算法應用場景, 提供了偏向業務的演算法, 包含文本分析、關係分析、推薦三種類別。

「演算法全部脫胎于阿裡巴巴集團內部的業務實踐, 所有演算法都經歷過 PB 級數據和複雜業務場景的錘煉, 具備成熟穩定的特點」, 阿裡雲首席科學家周靖人說。

支援更大規模的資料訓練

PAI 2.0 新增了參數伺服器(Parameter Server)架構的演算法。 不僅能進行資料並行, 同時還可將模型分片, 把大的模型分為多個子集, 每個參數伺服器只存一個子集, 全部的參數伺服器聚合在一起拼湊成一個完整的模型。

其創新點還在於失敗重試的功能。在分散式系統上,成百上千個節點協同工作時,經常會出現一個或幾個節點掛掉的情況,如果沒有失敗重試機制,任務就會有一定的幾率失敗,需要重新提交任務到集群調度。PS 演算法支援千億特徵、萬億模型和萬億樣本直至 PB 級的資料訓練,適合於電商、廣告等資料規模巨大的推薦場景。

人性化的操作介面

從操作介面來看,PAI 沒有繁瑣的公式和複雜的代碼邏輯,使用者看到的是各種分門別類被封裝好的演算法元件。每一個實驗步驟都提供視覺化的監控頁面,在深度學習黑箱透明化方面,PAI 也同時集成了各種視覺化工具。

周靖人博士在現場展示了在搭架實驗的過程中,只需要設置資料來源、輸出,就可以讓系統實現人工智慧訓練,拖拽元件即可快速拼接成一個工作流,大幅提升了建立的調試模型的效率。視覺化方式則有助於使使用者清楚地瞭解問題本身以及深度學習的效果。

事實上就目前而言,大規模深度學習優化還是一個方興未艾的技術方向,作為一個交叉領域,涉及到分散式運算、作業系統、電腦體系結構、數值優化、機器學習建模、編譯器技術等多個領域。按照優化的側重點,可以將優化策略劃分為計算優化、顯存優化、通信優化、性能預估模型以及軟硬體協同優化。PAI 平臺目前主要集中在以下四個優化方向。

顯存優化

記憶體優化主要關心的是 GPU 顯存優化的議題,在深度學習訓練場景,其計算任務的特點決定了通常會選擇 GPU 來作為計算設備,而 GPU 作為典型的高通量異構計算設備,其硬體設計約束決定了其顯存資源往往是比較稀缺的,目前在 PAI 平臺上提供的中檔 M40 顯卡的顯存只有 12GB,而複雜度較高的模型則很容易達到 M40 顯存的臨界值,比如 151 層的 ResNet。

36 層的 ResNet 模型示例

PAI 在顯存優化上做了一系列工作,期望能夠解放建模工作中的的負擔,使使用者在模型尺寸上獲得更廣闊的建模探索空間。在記憶體優化方面,通過引入 task-specific 的顯存分配器以及自動化模型分片框架支援,在很大程度上緩解了建模任務在顯存消耗方面的約束。其中自動化模型分片框架會根據具體的模型網路特點,預估出其顯存消耗量,然後對模型進行自動化切片,實現模型並行的支援。在完成自動化模型分片的同時,框架還會考慮到模型分片帶來的通信開銷,通過啟發式的方法在大模型的承載能力和計算效率之間獲得較優的 trade-off。

通信優化

大規模深度學習,或者說大規模機器學習領域裡一個永恆的話題就是如何通過多機分散式對訓練任務進行加速。而機器學習訓練任務的多遍反覆運算式通信的特點,使得經典的 map-reduce 式的並行資料處理方式並不適合這個場景。對於以單步小批量樣本作為訓練單位步的深度學習訓練任務,這個問題就更突出了。

依據 Amdahl's law,一個計算任務性能改善的程度取決於可以被改進的部分在整個任務執行時間中所占比例的大小。而深度學習訓練任務的多機分散式往往會引入額外的通信開銷,使得系統內可被提速的比例縮小,相應地束縛了分散式所能帶來的性能加速的收益。

PAI 平臺通過 pipeline communication、late-multiply、hybrid-parallelism 以及 heuristic-based model average 等多種優化策略對分散式訓練過程中的通信開銷進行了不同程度的優化,並在公開及 in-house 模型上取得了比較顯著的收斂加速比提升。

在 Pipeline communication 中,將待通信資料(模型及梯度)切分成一個個小的資料塊從而在多個計算結點之間充分流動起來,可以突破單機網卡的通信頻寬極限,將一定尺度內將通信開銷控制在常量時間複雜度。

Pipeline communication

在 Late-multiply 中,針對全連接層計算量小,模型尺寸大的特點,對於多機之間的梯度匯總邏輯進行了優化,將「多個 worker 計算本地梯度,在所有結點之間完成資訊交互」的分散式邏輯調整為「多個 worker 將全連接層的上下兩層 layer 的後向傳播梯度及啟動值在所有計算結點之間完成資訊交互」,當全連接層所包含的隱層神經元很多時,會帶來比較顯著的性能提升。

Without late-multiply

With late-multiply

在 Hybrid-parallelism 中,針對不同模型網路的特點,引入資料並行與模型並行的混合策略,針對計算占比高的部分應用資料並行,針對模型通信量大的部分應用模型並行,在多機計算加速與減少通信開銷之間獲得了較好的平衡點。下圖看出將這個優化策略應用在 TensorFlow 裡 AlexNet 模型的具體體現。

AlexNet with hybrid-parallelism

AlexNet 模型示例

性能預估模型

對於建模人員來說,他們關心的往往是以最具性價比的方式完成他們的建模訓練任務,而不是用多少張卡,以什麼樣的分散式執行策略來完成他們的訓練任務。而目前深度學習訓練工具以及訓練任務的複雜性,使得建模人員往往不得不透過 leaky abstraction 的管道,去關心為了完成他們的一個建模實驗,應該使用多少張 GPU 卡,多少個 CPU 核、什麼樣的通信介質以及選擇哪種分散式執行策略,才能有效地完成自己的訓練任務。

基於性能預估模型,是期望能夠將建模人員從具體的訓練任務執行細節中解放出來。具體來說,給定建模使用者的一個模型結構,以及所期望花費的費用和時間,PAI 平臺會採用模型+啟發式的策略預估出需要多少硬體資源,使用什麼樣的分散式執行策略可以盡可能逼近用戶的期望。

軟硬體協同優化

上面提到的三個優化策略主要集中在任務的離線訓練環節,而深度學習在具體業務場景的成功應用,除了離線訓練以外,也離不開線上佈署環節。作為典型的複雜模型,無論是功耗、計算性能還是模型動態更新的開銷,深度學習模型為線上部署提出了更高的要求和挑戰。在 PAI 平臺裡,關於線上部署,除了實現軟體層面的優化,也探索了軟硬體協同優化的技術路線。目前在 PAI 平臺裡,阿裡雲技術團隊正在基於 FPGA 實現線上 inference 的軟硬體協同優化。在 PAI 裡實現軟硬體協同優化的策略與業界其他同行的作法會有所不同,我們將這個問題抽象成一個 domain-specific 的定制硬體編譯優化的問題,通過這種抽象,我們可以採取更為通用的方式來解決一大批問題,從而更為有效地滿足模型多樣性、場景多樣性的需求。

在 PAI 2.0 介紹的最後環節,周靖人博士展示了它的相關使用案例以及已經廣泛的應用前景。

其創新點還在於失敗重試的功能。在分散式系統上,成百上千個節點協同工作時,經常會出現一個或幾個節點掛掉的情況,如果沒有失敗重試機制,任務就會有一定的幾率失敗,需要重新提交任務到集群調度。PS 演算法支援千億特徵、萬億模型和萬億樣本直至 PB 級的資料訓練,適合於電商、廣告等資料規模巨大的推薦場景。

人性化的操作介面

從操作介面來看,PAI 沒有繁瑣的公式和複雜的代碼邏輯,使用者看到的是各種分門別類被封裝好的演算法元件。每一個實驗步驟都提供視覺化的監控頁面,在深度學習黑箱透明化方面,PAI 也同時集成了各種視覺化工具。

周靖人博士在現場展示了在搭架實驗的過程中,只需要設置資料來源、輸出,就可以讓系統實現人工智慧訓練,拖拽元件即可快速拼接成一個工作流,大幅提升了建立的調試模型的效率。視覺化方式則有助於使使用者清楚地瞭解問題本身以及深度學習的效果。

事實上就目前而言,大規模深度學習優化還是一個方興未艾的技術方向,作為一個交叉領域,涉及到分散式運算、作業系統、電腦體系結構、數值優化、機器學習建模、編譯器技術等多個領域。按照優化的側重點,可以將優化策略劃分為計算優化、顯存優化、通信優化、性能預估模型以及軟硬體協同優化。PAI 平臺目前主要集中在以下四個優化方向。

顯存優化

記憶體優化主要關心的是 GPU 顯存優化的議題,在深度學習訓練場景,其計算任務的特點決定了通常會選擇 GPU 來作為計算設備,而 GPU 作為典型的高通量異構計算設備,其硬體設計約束決定了其顯存資源往往是比較稀缺的,目前在 PAI 平臺上提供的中檔 M40 顯卡的顯存只有 12GB,而複雜度較高的模型則很容易達到 M40 顯存的臨界值,比如 151 層的 ResNet。

36 層的 ResNet 模型示例

PAI 在顯存優化上做了一系列工作,期望能夠解放建模工作中的的負擔,使使用者在模型尺寸上獲得更廣闊的建模探索空間。在記憶體優化方面,通過引入 task-specific 的顯存分配器以及自動化模型分片框架支援,在很大程度上緩解了建模任務在顯存消耗方面的約束。其中自動化模型分片框架會根據具體的模型網路特點,預估出其顯存消耗量,然後對模型進行自動化切片,實現模型並行的支援。在完成自動化模型分片的同時,框架還會考慮到模型分片帶來的通信開銷,通過啟發式的方法在大模型的承載能力和計算效率之間獲得較優的 trade-off。

通信優化

大規模深度學習,或者說大規模機器學習領域裡一個永恆的話題就是如何通過多機分散式對訓練任務進行加速。而機器學習訓練任務的多遍反覆運算式通信的特點,使得經典的 map-reduce 式的並行資料處理方式並不適合這個場景。對於以單步小批量樣本作為訓練單位步的深度學習訓練任務,這個問題就更突出了。

依據 Amdahl's law,一個計算任務性能改善的程度取決於可以被改進的部分在整個任務執行時間中所占比例的大小。而深度學習訓練任務的多機分散式往往會引入額外的通信開銷,使得系統內可被提速的比例縮小,相應地束縛了分散式所能帶來的性能加速的收益。

PAI 平臺通過 pipeline communication、late-multiply、hybrid-parallelism 以及 heuristic-based model average 等多種優化策略對分散式訓練過程中的通信開銷進行了不同程度的優化,並在公開及 in-house 模型上取得了比較顯著的收斂加速比提升。

在 Pipeline communication 中,將待通信資料(模型及梯度)切分成一個個小的資料塊從而在多個計算結點之間充分流動起來,可以突破單機網卡的通信頻寬極限,將一定尺度內將通信開銷控制在常量時間複雜度。

Pipeline communication

在 Late-multiply 中,針對全連接層計算量小,模型尺寸大的特點,對於多機之間的梯度匯總邏輯進行了優化,將「多個 worker 計算本地梯度,在所有結點之間完成資訊交互」的分散式邏輯調整為「多個 worker 將全連接層的上下兩層 layer 的後向傳播梯度及啟動值在所有計算結點之間完成資訊交互」,當全連接層所包含的隱層神經元很多時,會帶來比較顯著的性能提升。

Without late-multiply

With late-multiply

在 Hybrid-parallelism 中,針對不同模型網路的特點,引入資料並行與模型並行的混合策略,針對計算占比高的部分應用資料並行,針對模型通信量大的部分應用模型並行,在多機計算加速與減少通信開銷之間獲得了較好的平衡點。下圖看出將這個優化策略應用在 TensorFlow 裡 AlexNet 模型的具體體現。

AlexNet with hybrid-parallelism

AlexNet 模型示例

性能預估模型

對於建模人員來說,他們關心的往往是以最具性價比的方式完成他們的建模訓練任務,而不是用多少張卡,以什麼樣的分散式執行策略來完成他們的訓練任務。而目前深度學習訓練工具以及訓練任務的複雜性,使得建模人員往往不得不透過 leaky abstraction 的管道,去關心為了完成他們的一個建模實驗,應該使用多少張 GPU 卡,多少個 CPU 核、什麼樣的通信介質以及選擇哪種分散式執行策略,才能有效地完成自己的訓練任務。

基於性能預估模型,是期望能夠將建模人員從具體的訓練任務執行細節中解放出來。具體來說,給定建模使用者的一個模型結構,以及所期望花費的費用和時間,PAI 平臺會採用模型+啟發式的策略預估出需要多少硬體資源,使用什麼樣的分散式執行策略可以盡可能逼近用戶的期望。

軟硬體協同優化

上面提到的三個優化策略主要集中在任務的離線訓練環節,而深度學習在具體業務場景的成功應用,除了離線訓練以外,也離不開線上佈署環節。作為典型的複雜模型,無論是功耗、計算性能還是模型動態更新的開銷,深度學習模型為線上部署提出了更高的要求和挑戰。在 PAI 平臺裡,關於線上部署,除了實現軟體層面的優化,也探索了軟硬體協同優化的技術路線。目前在 PAI 平臺裡,阿裡雲技術團隊正在基於 FPGA 實現線上 inference 的軟硬體協同優化。在 PAI 裡實現軟硬體協同優化的策略與業界其他同行的作法會有所不同,我們將這個問題抽象成一個 domain-specific 的定制硬體編譯優化的問題,通過這種抽象,我們可以採取更為通用的方式來解決一大批問題,從而更為有效地滿足模型多樣性、場景多樣性的需求。

在 PAI 2.0 介紹的最後環節,周靖人博士展示了它的相關使用案例以及已經廣泛的應用前景。

Next Article
喜欢就按个赞吧!!!
点击关闭提示