Azure Databricks 上的 Spark 模型批次評分

Microsoft Entra ID
Azure Databricks
Azure Data Factory
Azure Blob 儲存體

此參考架構示範如何使用 Azure Databricks,建置可調整的解決方案,以依排程為 Apache Spark 分類模型評分。 Azure Databricks 是針對 Azure 優化的 Apache Spark 分析平臺。 Azure Databricks 提供三個環境來開發需要大量數據的應用程式:Databricks SQL、Databricks 資料科學 和 Engineering,以及 Databricks 機器學習。 Databricks 機器學習 是整合的端對端機器學習環境,包含實驗追蹤、模型定型、特徵開發和管理,以及功能與模型服務的受控服務。 您可以使用此參考架構作為可一般化至其他案例的範本。 GitHub提供此架構的參考實作。

Apache 和 Apache® Spark® 是 美國 和/或其他國家/地區的 Apache Software Foundation 註冊商標或商標。 Apache Software Foundation 不會隱含使用這些標記。

架構

此圖顯示 Azure Databricks 上 Apache Spark 分類模型的批次評分。

下載此架構的 Visio 檔案

工作流程

架構會根據一組循序執行的筆記本,定義完全包含在 Azure Databricks 內的數據流。 它由下列元件組成:

數據檔。 參考實作會使用包含在五個靜態數據檔中的模擬數據集。

擷取。 數據擷取筆記本會將輸入數據檔下載到 Databricks 數據集的集合中。 在真實案例中,來自IoT裝置的數據會串流至 Databricks 可存取的記憶體,例如 Azure SQL 或 Azure Blob 記憶體。 Databricks 支援多個 數據源

定型管線。 此筆記本會執行功能工程筆記本,以從內嵌的數據建立分析數據集。 然後,它會執行模型建置筆記本,以使用 Apache Spark MLlib 可調整的機器學習連結庫來定型機器學習模型。

評分管線。 此筆記本會執行功能工程筆記本,從內嵌的數據建立評分數據集,並執行評分筆記本。 評分筆記本會使用定 型的Spark MLlib 模型來產生評分數據集中觀察的預測。 預測會儲存在結果存放區中,這是 Databricks 數據存放區上的新數據集。

排程規劃人員。 排程的 Databricks 作業 會使用 Spark 模型處理批次評分。 作業會執行評分管線筆記本,透過筆記本參數傳遞變數自變數,以指定建構評分數據集的詳細數據,以及儲存結果數據集的位置。

解決方案詳細資料

此案例會建構為管線流程。 每個筆記本都經過優化,可在每個作業的批次設定中執行:擷取、特徵工程、模型建置和模型評分。 功能工程筆記本的設計目的是為任何定型、校正、測試或評分作業產生一般數據集。 在此案例中,我們會針對這些作業使用時態性分割策略,因此會使用筆記本參數來設定日期範圍篩選。

因為案例會建立批次管線,所以我們提供一組選擇性的檢查筆記本來探索管線筆記本的輸出。 您可以在 GitHub 存放庫筆記本資料夾中找到這些筆記本

  • 1a_raw-data_exploring.ipynb
  • 2a_feature_exploration.ipynb
  • 2b_model_testing.ipynb
  • 3b_model_scoring_evaluation.ipynb

潛在的使用案例

資產重工業中的企業想要將與非預期機械故障相關聯的成本和停機時間降到最低。 使用從其機器收集的IoT數據,他們可以建立預測性維護模型。 此模型可讓企業在元件失敗之前主動維護元件並加以修復。 藉由將機械元件使用最大化,它們可以控制成本並降低停機時間。

預測性維護模型會從機器收集數據,並保留元件失敗的歷史範例。 然後,模型可以用來監視元件的目前狀態,並預測指定的元件是否會很快失敗。 如需常見的使用案例和模型化方法,請參閱 預測性維護解決方案的 Azure AI 指南。

此參考架構是針對元件計算機中存在新數據所觸發的工作負載所設計。 處理牽涉到下列步驟:

  1. 將數據從外部數據存放區擷取到 Azure Databricks 資料存放區。

  2. 藉由將數據轉換成定型數據集來定型機器學習模型,然後建置 Spark MLlib 模型。 MLlib 是由最常見的機器學習演算法和公用程式所組成,這些演算法和公用程式已優化以利用 Spark 數據延展性功能。

  3. 將數據轉換成評分數據集,套用定型模型來預測(分類)元件失敗。 使用 Spark MLLib 模型為數據評分。

  4. 將結果儲存在 Databricks 資料存放區以供後續處理取用。

GitHub會提供筆記本,以執行這些工作。

建議

Databricks 已設定,因此您可以載入和部署已定型的模型,以使用新數據進行預測。 Databricks 也提供其他優點:

  • 使用 Microsoft Entra 認證的單一登錄支援。
  • 執行生產管線作業的作業排程器。
  • 具有共同作業、儀錶板、REST API 的完整互動式筆記本。
  • 可調整為任何大小的無限制叢集。
  • 進階安全性、角色型訪問控制和稽核記錄。

若要與 Azure Databricks 服務互動,請在網頁瀏覽器或命令行介面 (CLI) 中使用 Databricks 工作區介面。 從任何支援 Python 2.7.9 到 3.6 的平臺存取 Databricks CLI。

參考實作會使用 筆記本 依序執行工作。 每個筆記本都會將元數據成品(定型、測試、評分或結果數據集)儲存至與輸入數據相同的數據存放區。 目標是讓您在特定的使用案例中視需要輕鬆地使用它。 實際上,您會將數據源連線到 Azure Databricks 實例,讓筆記本直接讀取和寫入記憶體。

視需要透過 Databricks 使用者介面、資料存放區或 Databricks CLI 監視作業執行。 使用 Databricks 提供的事件記錄 檔和其他 計量 來監視叢集。

考量

這些考慮會實作 Azure Well-Architected Framework 的支柱,這是一組指導原則,可用來改善工作負載的品質。 如需詳細資訊,請參閱 Microsoft Azure Well-Architected Framework

效能

Azure Databricks 叢集預設會啟用自動調整功能,以便在運行時間期間,Databricks 會動態重新配置背景工作角色以考慮作業的特性。 管線的某些部分可能比其他部分更需要計算。 Databricks 會在您工作的這些階段新增額外的背景工作(並在不再需要時將其移除)。 自動調整可讓您更輕鬆地達到高 叢集使用率,因為您不需要布建叢集以符合工作負載。

使用 Azure Data Factory 搭配 Azure Databricks 開發更複雜的排程管線。

儲存體

在此參考實作中,數據會直接儲存在 Databricks 記憶體中,以求簡單。 不過,在生產設定中,您可以將資料儲存在雲端數據記憶體上,例如 Azure Blob 儲存體Databricks 也支援 Azure Data Lake StoreAzure Synapse AnalyticsAzure Cosmos DBApache KafkaApache Hadoop

成本最佳化

成本優化是考慮如何減少不必要的費用,並提升營運效率。 如需詳細資訊,請參閱 成本優化要素概觀。

一般而言,使用 Azure 定價計算機 來預估成本。 Microsoft Azure 架構良好架構中的成本一節會說明其他考慮。

Azure Databricks 是具有相關成本的進階 Spark 供應專案。 此外,還有標準和進階 Databricks 定價層

在此案例中,標準定價層就已足夠。 不過,如果您的特定應用程式需要自動調整叢集來處理較大的工作負載或互動式 Databricks 儀錶板,進一步提升進一步的成本。

解決方案筆記本可以在任何以Spark為基礎的平台上執行,只需最少的編輯即可移除 Databricks 特定的套件。 請參閱下列適用於各種 Azure 平台的類似解決方案:

部署此案例

若要部署此參考架構,請遵循 GitHub 存放庫中所述的步驟,在 Azure Databricks 上建立可調整的解決方案,以批次方式為 Spark 模型評分。

參與者

本文由 Microsoft 維護。 原始投稿人如下。

主體作者:

若要查看非公用LinkedIn配置檔,請登入LinkedIn。

下一步