Lab:輕輕鬆鬆體驗 MLOps(with GitLab)
前言 感謝 iThome 再次邀請,由於自己從 2023 年末有較多機會接觸 MLOps 的議題,同時也注意到 GitLab 默默地有在開發 MLOps 相關功能,因此就決定這次在 iThome Cloud Summit 2024 要分享 MLOps 的內容。 其實我本來的如意算盤是想著,等到 7 月 Cloud Summit 舉辦時,GitLab 差不多也已經正式推出新功能 Model Registry,這樣時間剛好,我就能用新功能來規劃一個簡單的 Lab。 但誰知道原廠遲遲未能正式釋出 Model Registry,在 6 月底最新 Release 的 17.1 版,Model Registry 依然處於 beta 狀態,因此最後只能放棄原本的計畫了。 Lab 內容規劃 本次的 Lab 內容一如往常,前半場會是簡短的演講,先向學員分享一些基礎知識,讓學員後續在操作 Lab 時,能更理解我想要傳達的內容。 演講的簡報已經上傳,有興趣的朋友可以前往觀看。 簡單解說一下,整個 Lab 的設計思路: 採用 GitLab 原廠的 Example Code 與流程為基底,但稍微調整內容順序,組合出我希望能讓學員體驗的內容。 Lab 預計要讓學員體驗以下內容: 訓練 Model 需要 Data,所以在訓練之前,你應該會有別的 Data Pipeline 吧?因此會讓學員在 GitLab 上建立一個很簡單的 Data Pipeline,然後將 Data 存放在 Job Artifacts 中。 建立一個 ML Project,並且從 Data Pipeline 取得清理乾淨的 Data,接著訓練 Model,最後查看儲存在 Model experiments 的成果。 建立第二個 ML Project,但在訓練 Model 之前,要先 build container image,為後續訓練 Model 建立一個可用的環境。 有了環境之後,接著訓練 Model,一樣可以在 Model experiments 查看成果。 設定排程 Pipeline 定期評估 Model。 如果時間足夠,可以讓學員試著手動下載訓練好的 Model,然後手動上傳到 Model registry 功能。 透過上面的內容規劃,希望學員能注意到 MLOps 流程中需要關心幾件事: 訓練 Model 是需要有 Data 的,那是否應該要關心一下 Data Pipeline 的規劃,以及準備好的 Data 該如何讓下游的資料科學家可以方便的取用。 訓練 Model 也是需要有一個「環境」,這個環境當然也可以做成 Container,那一樣會有環境的相依性、版本、管理及維護的議題。 開發(訓練) Model 與開發軟體,是很不一樣的流程,你不能直接拿軟體開發流程的經驗,硬是套用到 Model 訓練的世界。對於迭代及交付頻率的要求不同,需要管理的產出物、Report 也不同。單就功能面來舉例,最少你也需要準備一個可以方便記錄 Experiments 的功能,而且這些功能如果不夠簡單方便好用,資料科學家可是不會想用的。 Lab 操作步驟 如果你這次沒來現場參加 Lab,又或者你是有來現場,但沒能做完 Lab 的學員,那我已經將操作步驟改編成可以在 gitlab....