想要快速的搭建高性能機器學習系統,企業應該怎麼幹?

 2017-05-11 12:43:00.0

雷鋒網(公衆號:雷鋒網)按:本文爲「範式大學系列課程」。

想要快速的搭建高性能機器學習系統,企業應該怎麼幹?

亞馬遜目前的運維水平成爲行業標準,但凡有公司要自己搭建 OpenStack,先要回答一個問題:OpenStack 比亞馬遜雲的優勢是什麼? 

對於機器學習來說,公司要自己搭建機器學習系統,也可以先問一個問題:需要多長時間和多少錢,才能達到行業領先的性能?

要知道,時間成本 + 喪失的競爭優勢是無價的。 

我們來算算這筆賬。 

1、時間

自建機器學習系統,大概有這麼幾步: 

  • 步驟 1:招聘機器學習團隊的 Leader,2 個月

  • 步驟 2:搭建機器學習團隊,2 個月 

  • 步驟 3:前期業務調研,2 個月 

  • 步驟 4:前期技術調研,2 個月 

  • 步驟 5:數據採集相關開發和數據積累,0.5 個月 

  • 步驟 6:數據分析處理,1 個月 

  • 步驟 7:模型調研,0.5 個月 

  • 步驟 8:線上系統開發,0.5 個月

  • 步驟 9:a/b測試和模型優化,0.5 個月

合計:11 個月 

這是相對較快的時間表,如果在哪個環節踩到坑,拖延的時間就沒法計算了。 

如果要減少時間,關鍵是什麼? 

專業化分工 + 專注核心環節。 

實際上,真正需要自己做的是數據採集、模型調研和模型優化,在專業化工具的幫助下,這些環節可以縮短到 1 個月。而其他 10 個月時間的工作,已經有專業化工具可以替代,溝通和實施時間可以縮短到 0.5 個月。 

這樣就從原來的 11 個月,變成了 1.5 個月。 

2、錢

機器學習系統的投入,一般是這樣的:

想要快速的搭建高性能機器學習系統,企業應該怎麼幹?

1000 萬行/天的數據規模,機器學習系統一年的支出是 944 萬。

如果要減少投入,關鍵是什麼? 

專業化分工 + 專注核心環節。

通過使用機器學習平臺,上面的投入會變成這樣。

想要快速的搭建高性能機器學習系統,企業應該怎麼幹?

10 臺線上機器和 20 臺線下機器 ,企業在購買時是按照峯值數據量配備的,但機器實際運轉的時間,往往只有 1/8,即每天運行 3 小時。剩下的 7/8 是浪費的。另外,開源機器學習框架對資源利用效率低,又是一大塊資源浪費。

所以原本需要 10 臺線上機器和 20 臺線下機器,通過機器學習平臺只需要 2 臺線上機器和 4 臺線下機器,節約了 240 萬。

在人員投入上,30 臺的機器需要配備 1 個帶頭人、3 個研發、1 個測試、1 個運維、1 個機器學習專家和 1 個業務專家,但如果採用機器學習平臺,在專業化工具的幫助下,企業只需要 0.5 個機器學習專家和 0.5 個業務專家。

通過使用機器學習平臺,企業的人力成本可以節約 588 萬。

另外,機器學習平臺的思路可以實現 1.5 個月上線,如果全部自己做則需要 11 個月甚至更久。如果錯過了搶佔市場的黃金期,損失就是巨大了。對於一個 1000 萬行數據規模的公司來說,我們假定 9.5 個月延遲的損失是 5000 萬。

所以我們得到了兩個數字:

  • 如果不考慮時間的機會成本,採用機器學習平臺的成本是自建系統成本的 12.3%。

  • 如果考慮時間的機會成本(5000 萬),採用機器學習平臺的成本是自建系統成本的 2%。

3、機器學習系統

機器學習系統的性能有 3 個要素: 

  • Max AUC:模型能達到最好的效果,好比山的高度

  • Actual AUC:實際上線模型的效果,好比爬到多高

  • Time:模型訓練和預測所需要的時間,好比多久爬到這個高度

如果自己搭建機器學習系統,首先遇到的瓶頸一般是數據處理能力。

對於大部分機器學習團隊來說,他們一般可以處理幾十萬規模的數據量,但如果數據規模超過 10 億,那麼即便是簡單的邏輯迴歸模型,也會變成一個非常困難的問題。 

爲了遷就不足的計算能力,一般會做的事情是減少特徵數量和樣本數量,這樣才能在業務需要的時間內把模型訓練出來。

但這樣會造成很不好的結果,Max AUC 因爲特徵和樣本數量減少而降低,Actual AUC 因爲 Max AUC 和計算能力不足而降低,Time 因爲計算能力不足而增加,最終整個系統的能力就會遇到瓶頸。 

如果要提升性能,關鍵是什麼? 

專業化分工 + 專注核心環節。

大規模機器學習的計算框架是一件非常難的事情,因爲它不僅需要處理億萬規模的數據,而且要符合機器學習的規則。能做大規模機器學習計算框架的人全國都屈指可數,基本集中在百度、阿里、騰訊以及少數的創業公司。 

所以對於公司來說,與其死啃大規模機器學習的計算框架,反而不如購買第三方的專業服務(這就好比你不會自己開發芯片)。而當計算能力充足的時候,公司就可以專注自己的核心環節,把特徵的維度做上去,把數據的規模做上去,把數據和業務的結合做的更清晰。 

這樣公司機器學習系統的性能,例如在業務需要的時間內獲得的 AUC 才能提升上去。

4、總結

總的來說,公司要做機器學習,應該採取專業化分工 + 專注核心環節的方式,具體如下: 

專業化分工完成和輔助完成的:前期業務調研、前期技術調研、數據處理、模型調研、模型優化、模型上線、大規模機器學習計算框架、線下機器、線上機器、運維、大部分的工程投入。 

公司專注完成的環節:業務問題定義、數據採集、特徵擴充、模型調研。 

這樣,只需要 1.5 個月的時間,大約 10%(2%) 的成本,不僅獲得了高性能的機器學習系統,而且能帶來實際業務效果的提升,讓機器學習能力真正轉變爲市場競爭力。

(完)


實戰特訓:遠場語音交互技術  

深入瞭解AI設備語音交互關鍵技術,更有價值1999元的開發板放送!

課程鏈接:http://www.leiphone.com/special/custom/mooc05.html


雷鋒網特約稿件,未經授權禁止轉載。詳情見轉載須知

想要快速的搭建高性能機器學習系統,企業應該怎麼幹?

文章來源:雷鋒網