在雲栖techday第十五期活動上,阿裡雲idst資深技術專家褚崴給大家帶來了《阿裡雲機器學習平台<b>》</b>的分享,他以機器學習的概念入手展開了此次分享,演講中他重點介紹了阿裡雲機器學習平台的基礎架構和産品特點,并結合阿裡内部的芝麻信用分、推薦系統等場景講解了pai平台的具體應用方案。
下文根據褚崴的演講内容整理。
<b> </b>
<b>機器學習</b><b></b>

<b>圖一</b><b> 機器學習分類</b><b></b>
機器學習簡單來說就是,人教機器在我們積累的資料當中發現規律,然後能夠輔助我們來做一些預測和決策。
機器學習籠統地講可以分為三類:
1)有監督學習(supervised learning),是指每個樣本都有對應的期望值,然後通過搭模組化型,完成從輸入的特征向量到目标值映射,典型的例子是回歸和分類問題;
2)無監督學習(unsupervised learning),是指在所有的樣本中沒有任何目标值,我們期望從資料本身發現一些潛在的規律,比如說做一些簡單的聚類;
3)增強學習(reinforcement learning)相對來說比較複雜,是指一個系統和外界環境不斷地互動,獲得外界回報,然後決定自身的行為,達到長期目标的最優化,其中典型的案例就是阿法狗下圍棋,或者無人駕駛。
<b>圖二</b><b> </b><b>機器學習興起的因素</b><b></b>
最近幾年,機器學習比以前更火了,主要是我們在深度學習技術上取得了一定的進展,總結起來應該是三大因素:
第一個因素是資料的因素。網際網路上每天生成海量的資料,有圖像、語音、視訊、還有各類傳感器産生的資料,例如各種定位資訊、穿戴裝置;非結構化的文本資料也是重要的組成部分。資料越多,深度學習越容易得到表現好的模型。
第二個因素是大規模分布式高性能計算能力的提升。這些年來,gpu高性能計算、分布式雲計算等計算平台迅猛發展,讓大規模的資料挖掘和資料模組化成為可能,也為深度學習的飛躍創造了物質基礎;阿裡雲的願景之一就是成為和水電煤一樣的基礎設施。
第三個因素是指算法上的創新。随着資料和計算能力的提升,算法本身也有了很大的進展,尤其在深度學習方面,譬如從腦神經學上得到的靈感,在激活函數上進行了稀疏性的處理,等等。
基于上述三點,人工智能又迎來了它的第二個春天。人工智能将以更快的速度進入我們的生産和生活中來,成為我們的眼睛,我們的耳朵,幫助我們更快捷地擷取資訊,輔助我們做出決策。機器學習平台産品也是以而産生,加速疊代過程,助力技術的發展。
<b>機器學習平台:pai 平台</b><b></b>
<b>圖三</b><b> 主流機器學習平台</b><b></b>
阿裡去年釋出了自己的智能平台,其目的是為了加速整個創新過程,提高工作效率。該平台是基于阿裡雲的雲計算平台,具有處理超大規模資料的能力和分布式的存儲能力,同時整個模型支援超大規模的模組化以及gpu計算。此外,該平台還具有社群的特點:實驗結果可共享、社群團隊互相協作。該智能平台主要分為三層,第一層是web ui界面,第二層是idst算法層,最後一層是odps平台層。下文更加詳細地介紹。
<b>圖四 pai平台内部界面</b><b></b>
上圖所示的是pai平台内部的界面。左邊是主要功能區,中間是一個畫布。使用者可以用滑鼠将相應的元件拖拽到畫布上,形成一個有向的工作流,完成從中繼資料到資料處理再到模組化等一系列的資料挖掘工作。右邊主要是用于設定元件内參數。
下面來介紹下它主要功能:
搜尋功能:當我們有很多資料、表、實驗時,可以通過搜尋功能快速查找到你需要的資料;
實驗清單:通過輕按兩下實驗名稱,在畫布上顯示原來的有向實驗流圖,可以繼續之前沒有完成的實驗;
資料表,它類似于檔案管理器,可以檢視你所有的資料表;
算法和工具清單,包含了常用的機器學習算法元件等核心功能;
模型清單,通過該功能,使用者可以管理所有的模型,并且可以與其他使用者共享這些産品模型。
<b>圖五 建立一個模型訓練實驗</b><b></b>
建立一個模型訓練實驗的步驟包括:首先,選擇有運作權限的project,建立算法實驗;然後在元件清單中拖拉odps源、特征工程、機器學習算法等元件搭建挖掘流;最後點選運作即可。
<b>圖六 資料探索分析</b><b></b>
在整個過程當中,需要做進行一些資料的探索分析,所有的算法都會提供一個重要性的分析,提供特征排序。這裡面最為重要的是評估分析,我們希望整個評估是全面而準确的。
圖形工作流的優勢在于,使用者可以很容易地進行循環實驗。因為在模型優化時,需要多次循環疊代優化,通過該模闆,每次修改相應的參數再進行重複實驗,大大提高了工作效率。
<b>圖七 pai平台特點</b><b></b>
該平台通過互動的界面降低了技術門檻,使用者可以輕松實作資料挖掘的工作,而無需太多經驗;其次,其内嵌的算法,都是經過阿裡内部多年的淬煉,在性能和準确率上都有較大的提升;最後是資料智能,該平台提供了從中繼資料到模型部署整套流程,通過提供基本的元件,使用者可以搭建各個垂直場景下的解決方案。
我們的客戶主要包括以下幾部分:一類是傳統的大型企業和政府部門,如中石化、中石油、氣象局等;另一類是中小企業,主要是公共雲上的初創使用者;以及一些個人使用者,如資料科學家,研究人員等。
<b>圖八</b><b> pai平台架構圖</b><b></b>
目前依托于pai機器學習平台,提供基本元件,通過拖拽的操作,完成工作流程的整體布局;同時在垂直場景下,提供一些更為專業的元件,例如在文本分析方面,我們提供了一套完整的文本分析的算法元件。
<b>産品特點</b><b></b>
接下來,介紹一下參數伺服器和分布式深度學習的算法産品兩部分。
去年我們基于非常流行的深度學習開源工具caffe做了一版改造,将單機版的caffe改造成了多機版的caffe,内部我們稱其為pluto。在gpu和機器之間的通信進行了相應的開發,使其支援流水式通信,在必要時可以占滿帶寬,減少空閑等待時間,該産品同樣支援dnn、cnn、rnn等常用的機器學習模型。
<b>圖九 </b><b>pluto</b><b></b>
pluto主要的特點在于資料的分片,每個gpu隻處理一部分資料。如果我們采用16個gpu,則處理資料的規模就比以前擴大了16倍;另外,采用了infiniband來做機與機之間的通信,理論上具有56g通信的帶寬。gpu的排程,是由阿裡雲叢集排程管理完成的,擺脫了單機的模式。在pluto做開發時,使用方式完全相容caffe,擴充性很強。
<b>圖十 pluto 性能提升</b><b></b>
上面是一個加速比的圖。我們做了一個對比實驗:如果你用8卡跟1卡的性能做比較,你會得到将近7倍的性能提升。
<b>圖十一 參數伺服器</b><b></b>
下面向大家介紹下參數伺服器,其主要思想是:不僅僅是進行資料并行,同時将模型分片,将大的模型分為多個子集,每個參數伺服器隻存一個子集,全部的參數伺服器聚合在一起拼湊成一個完整的模型。該系統主要的創新點在于失敗重試的功能,在分布式系統上,上百個節點協同工作時,經常會出現一個或幾個節點挂掉的情況,如果沒有失敗重試機制,任務就會有一定的幾率失敗,需要重新送出任務到叢集排程。
失敗重試是将每個節點的狀态備份到相鄰(前後)的節點,當個别節點死掉後,重新開機一個新的節點,同時從原節點相鄰的節點擷取所存儲的狀态,理論上可以實作任務的100%完成。
還有一個功能是異步疊代,無需等待全部節點完成任務,當大部分節點完成任務時,就可以直接更新對應的模型,這樣可以不需要等待慢機的結果,進而擺脫慢機的影響,提升效率<b>。 </b><b></b>
<b>應用案例</b><b> </b>
下面介紹在阿裡内部的三個應用場景。
<b>圖十二 應用一:推薦系統</b><b></b>
第一個應用是推薦系統,主要是參數伺服器在推薦系統内的應用。當在淘寶購物時,經查詢顯示的商品一般都是非常個性化的推薦,它是基于商品的資訊和使用者的個人資訊以及行為資訊三者的特征提取。這個過程中形成的特征一般都是很大,在沒有參數伺服器時,采用的是mpi實作方法,mpi中所有的模型都存在于一個節點上,受限于自身實體記憶體上限,它隻能處理2000萬個特征;通過使用參數伺服器,我們可以把更大模型(比如說2億個特征的模型),分散到10個或者是100個參數伺服器上,打破了規模的瓶頸,實作了性能上的提升。
<b>圖十三 應用二:芝麻信用分</b><b></b>
第二個應用是芝麻信用分。芝麻信用分是通過個人的資料來評估你個人信用。做芝麻信用分時,我們将個人資訊分成了五大緯度:身份特質、履約能力、信用曆史、朋友圈狀況和個人行為進行評估信用等級。
在去年,我們利用dnn深度學習模型,嘗試做芝麻信用分評分模型。
輸入是使用者原始的特征,基于專家知識将上千維的特征分為五部分,每部分對應評分的次元。我們通過一個本地結構化的深度學習網絡,來捕捉相應方面的評分。由于業務對解釋性的需求,我們改變了模型的結構,在最上面的隐層,一共有五個神經原,每個神經原的輸出都對應着它五個次元上面值的變化;再往下一層,是改變次元分數的因子層;用這種本地結構化的方式,維持模型的可解釋性。
<b>圖十四 應用三:光學文字識别</b><b></b>
最後一個應用是圖象上面的光學文字的識别。我們主要做強模闆類、證件類的文字識别,以及自然場景下文字的識别。強模闆服務(身份證識别)在數加平台上也提供了相應的入口,目前可以達到身份證單字準确率99.6%以上、整體的準确率93%。
在識别中用到的是cnn模型,但其實整個流程特别長,不是深度學習一個模組化就能解決的問題,包括版面分析、文字行的檢測、切割等等技術。在cnn訓練中,我們采用了多機多卡分布式算法産品,之前利用一千萬個圖像訓練cnn模型,大約需要耗時70個小時,疊代速度非常緩慢;采用分布式8卡産品之後,不到十個小時就可以完成模型訓練。
<b>總結</b><b></b>
阿裡雲機器學習平台既支援深度學習,又支援cpu、gpu任務混合排程。接下來發展的方向,是資料智能的方向,一是提供智能化的元件,例如将參數調優的工作也替使用者完成;另一個就是開發垂直應用領域需要的算法元件,逐漸形成行業解決方案。
<b>關于分享者</b>
褚崴博士,現任職阿裡雲idst資深技術專家,負責分布式機器學習平台産品的研發。之前先後曾任職美國微軟首席科學家,美國雅虎實驗室科學家,美國哥倫比亞大學副研究科學家。2003年至2006年,在英國倫敦大學學院gatsby unit做博士後研究工作,2003年在新加坡國立大學獲得博士學位,統計機器學習方向。在頂級期刊和國際會議上累計發表40餘篇論文,acm wsdm 2011年會獲得最佳論文獎。2015年入選浙江省“千人計劃”創新人才,2016年入選第十二批國家“千人計劃”創新長期類人才。