在 Day 06 引用與介紹 3 個 MLOps 相關定義,如果 MLOps 是一種工程文化與實踐,旨在 ML 系統開發與 ML 系統操作,實際遇到的挑戰與技術要求 持續交付基金會 CDF 有不少深刻的整理,摘述如下:
MLOps 的挑戰
-
CDF MLOps SIG 基於以下問題而關注 MLOps 發展:
- ML 使用持續交付 (CI/CD) 可能會提高部署速度,但是否會提高或確保品質?
- 是否正在部署提供道德、公平和無偏見的預測模型?
- ML 執行的操作是否可驗證?
- 能否嚴格維護和測試?
- 是否有明確的 Metadata 收集、實驗跟蹤、版本控制、ETL 操作等指南?
-
MLOps Roadmap 2021 撰寫了各種 MLOps 挑戰與技術要求指引,摘述幾個特色說明:
- MLOps 實踐不限何種程式語言、平台、模組。
- 在資料科學家可能不具有部署軟體服務的豐富經驗情況下,將訓練過的 ML 模型包裝為可部署的方法。
- 將 MLOps 應用於 PB 級及更高級別的超大規模問題的方法。
- 管理 MLOps 資產發布週期的治理流程,包括負責任的 AI 原則。
- 模型的內在保護。
-
MLOps Roadmap 2021 的小叮嚀:
- 必須認識到,雖然 Python 作為一種表達 ML 概念的語言很方便,但它是一種解釋性腳本語言,在生產環境中本質上是不安全的,因為任何可以注入 Python 環境的臨時 Python 源都可以不受約束地執行, 即使 shell 訪問被禁用。不應長期使用 Python 來構建任務關鍵型 ML 模型,而應採用更安全的設計選項。
-
在實踐 MLOps 過程中,以下四步驟可以供參考:
- 為了確保運行的實驗有信心建構出最佳模型,訓練資料、程式、模型需要追蹤程式、版本控制的一些技巧。
- 設定觸發器已重新運行訓練作業,通常是自動化的。
- 模型應該要經過嚴格的可控可逆的 CI/CD 流程進行適當的測試、評估和批准才能發布,此為資料科學家很大的缺口。
- 我們希望持續能理解模型的性能,這與確保品質與業務持續性很重要。
-
另外, Google Cloud 的 Architecture for MLOps using TFX, Kubeflow Pipelines, and Cloud Build 指引,在意的是如何實現 MLOPs ,將 MLOps 說明為:
- 如需在生產環境中結合機械學習系統,您需要安排 ML pipeline 中的步骤。此外,您需要將 pipeline 自動化,已持續訓練模型。如需實驗新想法與功能,您需要在 pipeline 採用 CI/CD 作法。
End to end 解決方案
MLOps 與 DevOps 不同之處,很大一部分在於紀錄的主體不同, MLOps 除了「持續整合」(CI)、「持續交付」(CD),也需要實現「持續訓練」(CT)。
- 上圖為 Google展示的 CI/CD 流程與持續機械學習 CT 的關係:
- 您的 Code 包含採用的"模型",訓練後的"超參數"。
- 您的資料是變動的資料。
- 透過部署觸發持續訓練 CT 流程。
- 最後部署在產品服務中。
- 基於用於生產的機械學習有龐大的自動化需求,簡要提出 Google 及 微軟的自動化解決架構如後。
端對端的 ML 流程 TensorFlow Extended (TFX)
Azure Machine Learning 的 Python 模型 MLOps
小結
- MLOps 架構主要關係用於生產的機械學習系統,如何在市場中維持營運,並有系統的因應情境變化帶來的資料與模型調整作業,對自動化需求高。
- 既然 MLOps 是精神也是實踐,倡議時就不侷限在任何程式語言與平台。
-
MLOps Roadmap 2021 撰寫了各種 MLOps 挑戰與技術要求指引,雖然本系列文有摘述,礙於篇幅與知識量,仍建議有興趣者閱讀。
參考