接下來是系列文最後一階段囉,一起衝向終點吧!
今天是 Ferris 日本動漫化系列哈哈哈
前面已經提過,MLOps 中的 Ops 來自於 DevOps,也就是 "Development" (開發) 和"Operations" (運營)。
而 "營運" 某樣東西就代表著把它產品化,其中包含了部署、監控和維護。
換句話說,MLOps 實際上就是一套工具和最佳實踐,以將機器學習應用近一步產品化。
ML 系統設計則是使用系統性的方法來進行 MLOps,它會從更整體的角度考慮 ML 系統,以確保所有部件與其利益相關者能夠共同合作,以滿足預先訂好的目標和需求。
下圖即為 ML 系統的各個部件 (正如在上次挑戰 [Day 01] 前言 — 是誰殺了模型? 提到的 ML code 在實務上的機器學習系統中所佔的部分遠小於支持它運作所需的基礎架構):
*圖片修改自 Designing Machine Learning Systems Figure 1-1.
今天選擇將主題定為 ML 系統設計而非 MLOps 是因為我認為這兩者雖然是相輔相成的關係,但在談論 MLOps 時,或許更應該優先考慮系統設計。
以下是我認為為什麼考慮系統設計比 MLOps 更為關鍵的幾個原因:
也就是說,儘管 MLOps 是將機器學習模型引入生產環境的關鍵步驟,但它依然在系統設計的框架內運作。
如果系統設計不正確,MLOps 便難以施行,更可能導致機器學習應用的不成功。
因此,優先考慮系統設計是確保機器學習項目成功的一個重要步驟。
在系統設計階段,我們也可以更針對機器學習產品的生命週期進行全面性的考量,確保問題定義清晰,資料管線設計正確,並建立一個堅實的基礎,以便有效地實施 MLOps:
*圖片修改自 Introduction to Machine Learning in Production
關於機器學習產品的生命週期可以參考之前的系列文 [Day 03] 機器學習產品生命週期 — 救救我啊我救我
而 Rust 作為一門安全、高效、可靠的語言,在 ML 系統設計和 MLOps 中具有許多優勢。
讓我們依照不同方面逐一說明:
總之,Rust 在 ML 系統設計和 MLOps 中的優勢體現在其性能、記憶體安全性、可靠性和可擴展性方面。
它可以用在整個機器學習產品生命週期中,從數據處理到模型訓練,甚至於部署和維護機器學習應用,確保系統的高效運行和可靠性。
在剩下的幾天,我會以先從 ML 系統設計的角度切入上述各個部件常見的挑戰,然後再探索可以引入 Rust 的地方,那我們就明天見吧~