探索 MLOps 結構

已完成

身為資料科學家,您想要定型最佳的機器學習模型。 若要實作模型,您想要將其部署至端點,並將其與應用程式進行整合。

經過一段時間,您可能會想要重新定型模型。 例如,當您有更多定型資料時,就可以重新定型模型。

一般而言,當您將機器學習模型定型之後,您會想要為企業級模型做好準備。 若要準備模型並加以運作,您會想要:

  • 將模型定型轉換為 強固可重現的 管線。
  • 開發 環境中測試程序代碼和模型。
  • 生產 環境中部署模型。
  • 自動化 端對端流程。

設定開發和生產環境

在 MLOps 中,與 DevOps 類似, 環境 是指資源的集合。 這些資源可用來部署應用程式,或使用機器學習專案來部署模型。

備註

在此課程模組中,我們會參考 DevOps 對環境的解譯。 請注意,Azure Machine Learning 也會使用環境一詞來描述執行指令碼所需的 Python 套件集合。 這兩種環境概念互不相關。

您所使用的環境數目取決於您的組織。 通常至少有兩個環境: 開發開發生產 環境或 生產環境。此外,您也可以在 中新增環境,例如預備環境或 生產前 環境(預先生產環境)。

典型的方法是:

  • 開發 環境中試驗模型定型。
  • 將最佳模型移至 預備 環境或 預先生產 環境,以部署及測試模型。
  • 最後,將模型發行至 生產 環境以部署模型,讓使用者可以使用模型。

組織 Azure Machine Learning 環境

當您實作 MLOps 並大規模使用機器學習模型時,最佳做法是在不同的階段使用不同的環境。

假設您的團隊使用開發、預生產和生產環境。 並非團隊中的每個人都應該獲得存取所有環境的權限。 數據科學家只能在開發環境中使用非生產數據工作,而機器學習工程師則在預生產和生產環境中使用生產數據部署模型。

擁有不同的環境可讓您更輕鬆地控制資源的存取權。 然後,每個環境均可與個別的 Azure Machine Learning 工作區建立關聯。

多個 Azure Machine Learning 工作區的圖表,以擁有多個環境。

在 Azure 中,您會使用角色型存取控制 (RBAC) 為同事提供適當層級的資源子集存取權。

或者,您只能使用一個 Azure Machine Learning 工作區。 當您使用一個工作區進行開發和生產時,您的 Azure 使用量較小,管理額外負荷較少。 不過,RBAC 同時適用於開發與生產環境,這可能表示您授與人員資源存取權太少或太多。

設計 MLOps 結構

將模型帶入生產環境,表示您需要調整解決方案,並與其他小組合作。 與其他數據科學家、數據工程師和基礎結構小組一起,您可以決定使用下列方法:

  • 將資料儲存在資料工程師所管理的 Azure Blob 儲存體中。
  • 基礎結構小組要建立所有必要的 Azure 資源,例如 Azure Machine Learning 工作區。
  • 資料科學家著重於其最佳用途:開發和定型模型 (內部迴圈)。
  • 機器學習工程師會將定型的模型進行部署 (外部迴圈)。

因此,您的 MLOps 結構包含下列組件:

顯示一般 MLOps 專案的結構圖表。

  1. 設定:為解決方案建立所有必要的 Azure 資源。
  2. 模型開發(內部迴圈):探索和處理數據以定型和評估模型。
  3. 持續整合:封裝並註冊模型。
  4. 模型部署 (外部迴圈):部署模型。
  5. 持續部署:測試模型並升階至生產環境。
  6. 監視:監視模型與端點效能。

當您與較大型的小組合作時,您不應該如同資料科學家般負責所有 MLOps 結構的組件。 不過,若要為 MLOps 準備模型,您應該考慮如何設計以便監控和重新訓練。