cs329s/課程01/了解機器學習產品-1

最近花了一些時間在看機器學習系統相關的內容,就發現了cs329s還有其研討會的線上資料。除了課程內容是最近蠻感興趣的議題之外,投影片本身也放了很多巧思在裡面,看得出教學團隊的用心。

課程介紹

史丹佛有許多機器學習相關的課程,而在2021年,有一堂從1月開始的課:CS329S:機器學習系統設計。目前只有投影片跟課程筆記有對外開放,所以你所看到的摘要就是從投影片跟課程筆記當中整理,加上一些個人的經驗跟陳述。所有的教材請見官方網站

課程總覽

什麼是機器學習系統設計?
定義介面, 演算法, 資料, 系統架構, 和硬體給機器學習系統以達到某些需求的過程。而這些需求包含:可靠的, 可擴展的, 可維護的, 適應性強的。

(圖片來源)

研究型 vs 產品型 機器學習系統

從這個表格可以看到,產業用機器學習以及研究型機器學習在乎的事情其實不太相同。舉例來說,從架設系統的目標、對於系統的要求、資料變動程度、對於模型與資料的公平性與可解釋性的要求也不同。

(圖片翻譯自課程教材)

在開發機器學習系統的過程當中,會牽涉到許多的利益關係者(stackholders)。每一個人都有自己的目標。舉凡ML工程師、銷售、產品經理、架構師和管理者,所看到的面相以及自身出發點可能都不同。下圖就是一個很好的例子。(*老師挑的圖也太可愛了吧!)

(圖片來源

而在產業當中也正是因為這些利益關係者的緣故,因此在開發的過程當中,可以感受到彼此的角力。反而對於使用者來說,真的體驗到的是這些不同角色溝通(吵架?)之後的結果。

對於系統要求的部分,基本上研究型的機器學習開發,會花大部分的時間在模型與算法的調整跟優化。實務上的機器學習,如果把一個模型訓練以及上線後的產品循環一起看,在模型訓練上的花費其實佔了很少的一部分,在上線之後,會使用到的資源及花費,包含模型部署、模型監測、模型擴展、預測資料紀錄等等。

在資料處理上,研究型的環境處理的資料屬於靜態,或者較少變動的。而產品型的模型則是持續會遇到不同類型的使用者資料,在模型上線後也需要持續的關注,是否有預測偏差、偏差了多少、是否需要重新訓練等等的問題。

這也是為什麼並不是每一個paper的模型在實務上都可以馬上使用的緣故。有非常多的細節在這當中會需要被調整跟溝通。

未來的模型英雄榜會是什麼樣子

在實作機器學習模型的時候,大家常常會說要去看leaderboard(英雄榜)。這一堂課程的課程討論題目是:(1)現在的英雄榜多專注在單一任務,應該也要出一個英雄榜給多任務的嗎?(2)機器學習模型越來越大。會如何影響這些模型在產品階段的可用性?

(圖片來源)

雖然這兩個問題並沒有最好的解答,不過這堂課的老師也提出了一個版本讓大家參考。是不是應該要更全面性的去評估一個模型與其系統,整個的模型表現、系統延遲、每一筆預測的花費、可解釋性、模型健壯性等等的評估都把它考量進去。

還有這個系統是不是容易被其他人拿去使用,需不需要針對不同的資料及以及場景修改這個系統。還有就是如果資料改變的時候,可以怎麼樣最快調整。

結語

這堂課我先摘要了第一部分,感謝大家容忍我破舊的中文翻譯,中間很多字都必須想很久,如果有什麼建議再提出來一起討論。第一堂課的第二部分就下篇文章再跟大家分享了。有興趣的話還是可以直接去看這堂課的原本資料,第一手資料最優 😀

歡迎訂閱粉絲頁TG頻道

下次見:)