為甚麼ML production很重要?2021年ML新趨勢

新系列簡介

倢愷 Oscar
9 min readFeb 12, 2021

在前不久我發布了一篇針對如何最佳化你的DL model performance的文章,其中大量參考Full Stack Deep Learning bootcamp的資料,而也有說這會是一個系列。

那為甚麼會想要開成一個系列?其實已經是累積一段時間的想法了,剛好最近比較有時間就盡量能寫多少算多少,先來分享一下為甚麼在這個階段我覺得ML Production很重要。

AI浪潮過了嗎?

在2021年2月5日孫民老師在我們實驗室的meeting分享了一個約50分鐘的talk,其中一開始就提到了這個問題?

而為了要解釋這個問題他介紹了Gartner的Hype Cycle

Gartner Hype Cycle

Gartner Hype Cycle methodology gives you a view of how a technology or application will evolve over time, providing a sound source of insight to manage its deployment within the context of your specific business goals. link

Hype Cycle指的是在每個科技或是應用發展時,建立一個時間觀念,了解這個科技的發展情況,裡面最主要分成4個stage

第一階段:Innocation Trigger,只要這個科技有它的價值(效果突破、大眾有興趣、成本下降),那在最早期技術不斷突破的時候,這個科技就會飛速吸引到大眾的目光。

第二階段:Peak of Inflated Expectations,在飛速成長後,我們會達到過高期望的一個峰值,而隨之而來的就是泡沫化。

第三階段:Trough of Disillusionment,泡沫化後的低谷,在這個階段科技面對前所未有的挑戰,必須要想辦法活過這個死亡谷,但是同時活過的就會是那些真正受的了考驗的公司,也就是那些真正能把科技用出其價值的公司,而接下來這個科技就會進入比較穩定的成長,大眾對這個科技也有一個客觀、理性的認識。

第四階段:Plateau of Productivity,市場已經實際接受了這個新科技,經過數輪的迭代,所有的方法論、工具都已經成熟。

上面只是概括的介紹,詳細還是需要大家自行上網對Hype Cycle做研究。

老師:「大家覺得目前CV在Hype Cycle的哪個階段?依照投資人的角度」

這裡其實我以為的是在D

但是老師公布正確答案是在B

每一年Gartner都會公布他們認為今年的Hype Cycle是如何,而在2020年他們特地做了一個AI的Hype Cycle link

這裡可以看到像是CV、ChatBots都在B附近的位置,這顯現的是在投資者的眼裡,如果是5年前大家講自己有一家CV的公司會很興奮,但是現在投資者知道這不代表甚麼,甚至更多人會質疑你的Business Model、你的Product、你的Revenue Model是甚麼?

補充:事實上在2020的State of AI report,裡面就花了不少篇幅談了自動駕駛的產業整合,包含Waymo’s in-house Honeycomb、Aurora acquired Blackmore、以及多家光達廠商進行SPAC(類似reverse merger)。

而大家熟悉的CV在B,那其實並不是壞事,的確在過去大家能夠靠著自己的學術publication拿到不錯的funding,但是現在已經過了那段時期了,但也正因為已經過了那段時期,大家更重視AI真正能成就的事情,尋找真正AI的價值。

從Hype Cycle裡面也可以看出來,其實並沒有所謂的AI’s Winter is coming,AI在過去的確有過度炒作的問題,但是度過了波谷,迎接的是AI緩慢但穩定的向上發展,而要支持這個發展,需要的就是更明確如何落地AI的應用、技術,找到AI在業界的可能性。

但是也因為AI/ML已經在Hype Cycle最後的緩慢成長期,所以任何一個ML的技術都必須要經過市場的考驗,只有真的能夠落地的那些,才是能夠在Hype Cycle裡面存活下來的技術、公司。

而在越來越重視落地AI的各大公司下,作為ML engineer跟data scientist的職能也慢慢往production level移轉,純粹的研究職位慢慢變少,更多的是在敏捷的產品團隊裡面把ML進行商品化。

目標差異:研究員的Curse of Knowledge

在stanford的新課程cs329 Machine Learning Systems Design裡面,第一堂課他們就著重談了目標差異這件事。以下我簡介他們的內容。

Research vs Production

  • Researcher的目標:Model Performance越高越好
  • Production的目標:不同stakeholder會有不同的目標

不同stakeholder,以餐廳推薦系統舉例而言

  • ML engineer: 希望推薦系統能夠推薦每個用戶真正想去的餐廳。
  • Sales team: 希望能夠推薦「那些支付較多廣告費的餐廳」給用戶,以便跟各家餐廳推薦自己的廣告收費系統,讓公司的收入能夠更高。
  • Product team: Product Team假設在過去發現推薦的latency越高會導致越多用戶直接放棄使用這個app,所以希望model能夠inference越快越好。
  • Manager team: 希望總利潤最大化,甚至是淨利、毛利最大化,所以如果收入無法提升的話,那一個optimize好的model就不需要ML工程師繼續優化了,所以就可以考慮裁掉ML engineer。(參考

所以這裡看出來在一個product team裡面每個人的目標不同,而ML engineer或是ML researcher如果再保持著錯誤的目標,一來可能無法讓公司有更多的利潤,而無法說明自身價值,進而可能危及到自己的工作。

這裡讓我想到之前聽Mr. PM大大介紹的北極星指標時也學過類似的概念

借用自Mr. PM的網站,如有侵權請告知,馬上下架

當一個團隊每個角色內在目標不同的時候就很難推進一個產品,所以Mr. PM老師推廣了北極星指標,而其他也有很多人推廣OKR等工作法,這裡我不是要講怎樣的團隊工作模式比較好,而是搞清楚自己對產品的價值,以及不同人的目標。

很多現代的ML方法,為了追求0.1 0.2%的performance improvement,可能多花了3~5倍的運算時間、運算資源,這在Manager或是公司的目標中就是牴觸的。

節省10%的運算資源對公司成本就是一個可觀的改進,但是ML 系統準個1~2%大概率是不會被感覺出來的。

所以ML engineer的價值不只在把performance最大化,而要從整個產品的角度想問題。每個產品的成本結構、利潤結構如何、商業模式如何都是要考慮的問題。

ML engineer的職能要求慢慢轉換

Google cloud的ML engineer的JD給出了比傳統想像中更多的要求。

總共分成6部分

  1. ML Problem Framing
  2. ML Solution Architecture
  3. Data Preparation and Processing
  4. ML Model Development
  5. ML Pipeline Automation & Orchestration
  6. ML Solution Monitoring, Optimization, and Maintenance

具體細節可以由我上面的link進去看,但是大家可能會發現,目前學校的教育基本上只cover 3跟4,甚至很多學校是不cover 3的,但是現在Google已經帶頭開出了高要求,把整個ML production需要的技能全部列出來,加上美國各大學都慢慢開始規劃各種相關課程。

所以現在ML production的知識已經變成每個ML engineer的必備技能了,而不再像是過去只要會XGboost跟調參就可以工作的時代了。

接下來我的medium會把其中一個重心放在Machine Learning Production這塊,也就是如何把ML的algorithm放到產品裡面,主要會包含幾個以下部分

  1. AI + Human Center Design:這部分會以Human Center Design的角度來討論AI要怎麼加入到以前的設計流程,並且討論Human AI interaction的最新研究與論文,這塊主要會以人機互動、STS(Science, Technology and Society)以及AI概念科普為主,讓大家更深入了解到目前學界、業界怎麼討論AI的產品論,以及AI產品對我們未來生活的影響。
  2. Real world ML production:包含初期怎麼設定ML project目標、baseline怎麼找、一個ML的team組成、如何收集資料,到後期infrastructure 、 deployment 、 CICD等知識,這塊我會大量參考FSDL跟全世界目前討論相關知識最新的文章,主要會以重新整理別人知識並且自行說明出來,結合一些kaggle跟ML實務的經驗。
  3. ML cloud service簡介:我會重點放在介紹AWS的sagemaker服務,並且夾雜一些AWS跟GCP的其他服務,這部分是我目前在使用的工具,所以比較是使用經驗的分享。

上面這三塊,我比較熟的是1,而2有一些過去的經驗也是最近想要深入的部分,所以會大量寫作內容放在1跟2,不過相較於sklearn 、 ML theory 、 kaggle 、 DL research進展等主題,我ML production這塊還是比較不熟,所以有錯非常歡迎大家一起來討論學習

如果喜歡這篇文章可以幫我多拍手幾次XD,或是對於哪個類型文章有興趣都可以在留言區跟我講~ 後續會以中難度的ML/DS/AI知識為主,以及AI/HCI研究相關知識

--

--

倢愷 Oscar

我是倢愷,CTO at TeraThinker an AI Adaptive Learning System Company。AI/HCI研究者,超過100場的ML、DL演講、workshop經驗。主要學習如何將AI落地於業界。 有家教、演講合作,可以email跟我聯絡:axk51013@gmail.com