天天看點

快速在阿裡雲上建構機器學習應用

3月28日雲栖大會開源專場,阿裡雲技術專家必嘫給大家帶來了“在阿裡雲上建構機器學習應用”的演講。本文主要從深度學習應用發展曆史開始談起,進而介紹了如何結合阿裡雲容器服務的機器學習解決方案快速打造一套深度學習應用的案例。

深度學習在2016年有兩款應用特别火爆,影響到每個普通人的生活。第一個是會下圍棋的alphago,它向大家證明了計算機不隻有強大的運算能力,同時具備了自學能力,更厲害的是這種學習能力是可以縱向深入的,換句話說,不需要人賦予的邏輯,計算機可以通過大量的資料和不斷的訓練成為一個領域的專家。

快速在阿裡雲上建構機器學習應用

而另一款是萌萌的手機應用:prisma,這也是一款基于深度學習技術的手機應用,在2016年底,它分别登上了ios和android手機最佳應用的頭名,成為全球潮人的家具旅行必備良品。這款産品的功能直白一點說,就是使用者提供自家小區的照片,結合繪畫大師的藝術風格,最後産生一款有大師風格的使用者照片。用機器學習的語言來描述,這個工作分為兩個部分

求解描述大師風格的方程f,這是整個過程中最消耗時間的事情,大概占據了整個消耗時間的99%

當風格方程f的參數确定後,将x代入方程f

快速在阿裡雲上建構機器學習應用

這套風格轉換的深度學習算法并不是prisma首創的,實際上在2015年,就有三個來自德國的研究員發明了這套算法,并發表了論文。同時他們也創辦了一家叫deep art的公司。使用者在 deep art 網頁上上傳自己的照片,然後通過 deep art 提供的 “機器人梵高” 進行新畫創作。整個過程需要等待幾個小時讓計算機進行資料運算和處理。使用者可以選擇清晰程度不等的作品。使用者可以花上 19 歐買一張适合明信片用的作品,或者多掏 100 歐,買一張大尺寸油畫級别的。他們的生意不錯但是并沒有大火。

其中的原因有兩個:

等待一副圖檔的産生需要幾個小時的使用者體驗不佳,要知道使用者是沒有耐心等待的

它沒有提供手機app,導緻使用者覆寫率不夠高。

分享這個故事的想告訴大家的是如何把ai的技術轉化成相關的産品,實作資料,技術和場景的關聯,才是真正的價值,也是真正的挑戰。下面會給大家示範如何在阿裡雲上快速搭建這款價值千萬美金的深度學習應用。

接下來,要梳理一下機器學習的工作流程,它分為資料準備,訓練程式開發,訓練任務執行和線上預測服務四個部分,在每個階段都有相應的工作。

快速在阿裡雲上建構機器學習應用

針對于這個流程,容器服務團隊提供了雲上機器學習解決方案。這個方案以容器服務為核心,貫穿了前面提到的機器學習生命周期,并且無縫的整合了阿裡雲的計算,存儲,負載均衡等服務。它的好處在于利用了容器技術,但是并不需要使用者深入了解容器技術。

快速在阿裡雲上建構機器學習應用

1. 準備資料

通過osscmd和圖形使用者界面上傳資料,當資料非常巨大時,可以考慮利用oss提供的解決方案。

快速在阿裡雲上建構機器學習應用

2. 通過圖形使用者界面一鍵式的定制雲端實驗開發環境,并且支援tensorboard檢視訓練趨勢。這裡我們的目的是調試訓練代碼邏輯。

快速在阿裡雲上建構機器學習應用

3. 建構雲端訓練,完成模型的導出

使用git導入應用代碼, 如果在需要安裝python依賴庫,可以在應用的根目錄下放置requirements.txt, 這樣就可以在應用初始化的時候安裝這些依賴包.對于分布式存儲,這裡有一個約定:在執行環境的/input檔案夾對應于標明oss資料卷的根目錄,/output對應訓練程式要輸出到oss資料卷。目前雲端訓練支援單機和多機兩種模式,如果是多機模式,需要分别指定參數和任務伺服器的數量。機器學習解決方案會在排程時刻,将生成的參數傳遞給任務伺服器,。如果訓練過程中需要利用tensorboard檢視訓練狀況也是支援的。

快速在阿裡雲上建構機器學習應用

4. 利用導出的模型,執行線上預測

建立預測服務,這裡預測服務具體支援兩種: tensorflow serving和自定義服務。tensorflow serving支援加載tensorflow導出的标準模型,自定義服務可以支援使用者自己開發的預測應用。對這兩種服務,都可以從資料卷中加載模型或者checkpoint,并且自動綁定負載均衡服務,同時還可以指定預測執行個體的個數,保證應用的高可用

快速在阿裡雲上建構機器學習應用

這次分享利用阿裡雲容器服務機器學習解決方案搭建了一個和prisma功能類似的深度學習應用,并且實踐了從模型訓練,導出以及預測的全生命周期工作流程,這會是個逐漸疊代不斷優化的方案.我們後面會不斷疊代優化這一方案,希望幫助資料科學家們專注于機器學習價值本身,進而提供最大的價值。

簡化:一鍵整合機器學習應用和阿裡雲gpu,nas,oss,slb,sls等服務; 快速建構從模型學習到釋出工作流程

優化:提供針對特定場景性能優化的tensorflow和caffe鏡像;利用持續傳遞的最佳實踐優化整體流程

定制化:可使用使用者自定義的鏡像,滿足高階使用者自定義需求,平衡靈活性與自動化

最後放出彩蛋,展示一下視訊風格轉換的效果:

<a href="http://aliyuncontainerservice.oss-cn-hangzhou.aliyuncs.com/toolings/dl-solution/shenzhenyunqi/4%e9%a3%8e%e6%a0%bc%e8%a7%86%e9%a2%91.mp4">視訊風格轉換</a>

<a href="http://geek.csdn.net/news/detail/138042">深度學習實踐:使用tensorflow實作快速風格遷移</a>

<a href="https://github.com/floydhub/fast-style-transfer">https://github.com/floydhub/fast-style-transfer</a>

<a href="http://www.leiphone.com/news/201608/9xatvlsnxkr2jblj.html">中國版 prisma 來了,我們今天再聊聊深度學習</a>

繼續閱讀