如何快速在阿裏雲上構建自己的機器學習應用
摘要:在2017雲棲大會深圳峰會開源專場上,阿裏雲容器服務技術專家車漾做了題為《在阿裏雲上構建機器學習應用》的精彩演講,車漾首先從2016年深度學習最火的兩個應用AlphaGo與Prisma談起,從宏觀層麵分享了機器學習以及深度學習所做的事情,並就Prisma的發展故事談起,為大家介紹了應該學會以工程思想思考和解決問題,並著重介紹了阿裏雲基於容器服務的機器學習解決方案架構設計以及如何借助阿裏雲快速搭建自己的機器學習應用,精彩不容錯過。以下內容根據嘉賓演講視頻以及PPT整理而成。
在2016年有兩個深度學習應用使得深度學習這個概念走入了平常百姓家,大家開始意識到深度學習技術好像和我們的生活開始產生聯係了。第一件事情就是AlphaGo戰勝了圍棋世界的高手李世石,它向我們證明了一件事情:計算機不但具有強大的運算能力,它甚至開始學會學習了,更可怕的是計算機的學習能力是一種縱向深入的學習能力,也就是隨著計算機看到的數據越來越多,隨著時間的不斷往前發展,計算機有可能成為某個領域的專家,在圍棋中是這樣,在其他的領域,比如醫學等領域也都會有同樣的影響。可以說,AlphaGo是第一個使我們真正意識到機器學習具有一種自我演進能力的應用。



這個厲害的深度學習算法實際上並不是Prisma這個公司的創始人發明的,而是在2015年,也就是Prisma大火的前一年,三個德國的數據科學家發明了這個算法並且利用這個算法創辦了自己的創業公司叫做DeepArt,它所能做的事情就是提供一個網站讓用戶將自己的圖片上傳上去並選擇一個風格,經過3到5個小時的計算產生處一個有自己圖片內容的大師風格的作品。這個網站上線之後效果還算不錯,有一些人願意花100多歐元去得到這樣一幅作品,但是並沒有大火。














當程序開發結束之後,開始進行訓練。這時就需要指定訓練輸入的數據集,以及預處理的模型,這裏的框架有多種選擇,還可以指定預定義的框架,這裏麵還可以選擇是不是支持GPU,然後還有指定數據需要寫入到哪個數據件裏麵以及數據來源是什麼,還需要指定總共訓練的次數以及需要保存的地點是在什麼位置,都是需要一些規約來定義這些事情的。
整個方案的最大特點就是速度會非常快,就是可以快速地在這套解決方案上搭建出來自己的機器學習小應用。這裏麵做的事情首先會從GitHub上將應用下載下來,然後這裏麵的規約就會自動安裝自定義的Python依賴,之後就開始調用GPU資源並啟動,開始構建網絡,之後真正開始進行訓練。當將Checkpoint指定到一個更好的位置的時候就會將雲的產生數據存放到分布式存儲上。當擁有這些數據之後就可以進行預測,預測的具體內容包括把之前計算過的東西保存下來,之後根據保存的數據和模型提供一個Read API,這裏麵並沒有TensorFlow Serving這個標準框架而是自己實現了使用Python寫的框架,並使用Checkpoint方式加載應用。並且如果需要使用負載均衡可以提供更多的實例的數量,並指定加載數據的模型數據卷以及阿裏雲的彈性的SLB負載均衡服務,就會很快地將服務提進來。當將服務提進來之後還是通過路由列表,通過阿裏雲提供的負載均衡訪問端點進行訪問。它所能提供的東西就是在這裏上傳一個圖片,然後根據所指定的不同的風格進行轉換就可以得到不同的風格圖片,基本上就實現了與Prisma相似的功能。也就是說在現有的開源技術上,就可以在阿裏雲上構建自己的一個小應用,並且可以提供一站式運維的體驗。甚至在阿裏雲上不僅可以轉換圖片的風格,現在還可以轉化視頻的風格。
總結

第二個好處就是優化,與容器服務團隊進行合作的還有一個比較有名的就是阿裏雲的高性能計算團隊,像對於阿裏媽媽這些的優化都是他們團隊做的,他們會提供一些特定場景性能優化的TensorFlow和Caffe的一些鏡像,針對一些特定的場景進行性能優化,而不是百分百的優化。另外一件事情就是這套方案在持續集成和持續交付這件事情上是比較有經驗的。其實可以將機器學習看做兩部分,第一部分可以看做實驗科學,需要不斷地去嚐試,找出最佳的組合來做推演;第二部分其實是交付的科學,如何將模型交付到機器上,如何進行A/B Test,而這件事情又是容器服務團隊非常擅長的事情,既可以幫助優化性能,又能夠幫助優化流程。
第三件事情就是定製化,阿裏雲希望能夠通過為用戶提供更大的靈活性,比如增加自己定義的鏡像以及operator等來滿足高級用戶的需求,並平衡靈活性和自動化之間的關係。
最後更新:2017-05-17 18:31:45