不知道大家是否有這樣的經驗,買了一本標榜手把手教學的書,隨書附贈的 GitHub 頁面上有與每個章節搭配的 Jupyter Notebook,有些甚至還有 Colab (Yeah! 免費的 GPU),一切感覺是那麼的美好,好像掌握所有知識的關鍵就在幾個 shift+Enter
之間,然後,就沒有然後了?
雖然很認真學習了各種最新的演算法、背後的數學原理,甚至從零開始實作並達到很棒的模型表現,覺得自己好像真的開始懂點人工智慧,更精確一點,機器學習了,但當開始工作時才發現,原來老闆收到 Jupyter Notebook 是會生氣的阿哈哈哈。
而就在我懷疑人生的時候,我接觸到了 Full Stack Deep Learning 這個概念,才知道自己太天真了,從 Google 發表於 NeurIPS 的著名論文 Hidden technical debt in Machine learning systems 中的那張著名的圖可以看到 (我知道我說了兩次著名,因為這張圖至少有超過五種不同配色的版本),ML code 在實務上的機器學習系統中所佔的部分遠小於支持它運作所需的基礎架構:
也就是說,就算準確度達到 100% 的模型,只要它還孤零零躺在 Jupyter Notebook 裡,就像斷了腿的千里馬,無異於死掉了,而陪伴我們學習成長的 Jupyter Notebook 正是它的棺材。
因此這次鐵人賽希望能挑戰 MLOps 這個主題,幫助模型起死回生,而我腦子裏想的只有一件事,替模型把這條腿接上!
MLOps 的主題很大,有各式各樣的技術,也有各式各樣的產品可供我們使用,但它們的核心概念卻大同小異,就像各種武功都需要有紮實的內功一樣,我希望這 30 天能將各種花俏的招數放下,從根本開始學習。
因此決定以 Coursera 課程 Machine Learning Engineering for Production (MLOps) Specialization 提到的機器學習產品生命週期為主軸,分為四大主題並搭配兩個實作,架構如下:
過程中會逐步說明每一部分的概念,並在最後實際建立一個小規模的產品放到雲端平台上。
希望大家會喜歡,那我們明天見!