使用 Azure Databricks 實作 Spark 模型的可調整批次評分
此參考架構示範如何使用 Azure Databricks 建置可調整的解決方案,以依排程為 Apache Spark 分類模型評分。 Azure Databricks 是針對 Azure 最佳化的 Apache Spark 分析平台。
Azure Databricks 提供三個環境來開發需要大量資料的應用程式:Databricks SQL、Databricks Data Science & Engineering,以及 Databricks Machine Learning。 Databricks Machine Learning 是整合的端對端機器學習環境,包含用於實驗追蹤、模型訓練、功能開發與管理,以及功能與模型服務的受控服務。 您可以使用此參考架構做為可一般化至其他案例的範本。
Apache® 和 Apache Spark® 是 Apache Software Foundation 在美國和/或其他國家/地區的註冊商標或商標。 使用這些標記不會隱含 Apache Software Foundation 的背書。
架構
下載此架構的 Visio 檔案。
工作流程
此架構會根據一組循序執行的筆記本,定義完全包含在 Azure Databricks 內的數據流。 它由下列元件組成:
資料檔案。 參考實作會使用包含在五個靜態資料檔中的模擬資料集。
擷取。 資料擷取筆記本會將輸入資料檔下載到 Databricks 資料集的集合中。 在真實案例中,來自 IoT 裝置的資料會串流至 Databricks 可存取的儲存體,例如 Azure SQL 或 Azure Blob 儲存體。 Databricks 支援多個資料來源。
最近數據擷取的增強功能包括來自各種資料庫和 SaaS 應用程式的即時資料復寫,這些功能如 Lake House Federation。
定型管線。 此筆記本會執行功能工程筆記本,以從內嵌的資料建立分析資料集。 然後,管線會執行模型建置筆記本,以使用 Apache Spark MLlib 來定型機器學習模型, 可調整的機器學習連結庫。
Databricks 中的增強 ML 功能包括實驗追蹤和模型定型,進一步優化此管線。
評分管線。 此筆記本會執行功能工程筆記本,從內嵌的資料建立評分資料集,並執行評分筆記本。 評分筆記本會使用定型的 Spark MLlib 模型來產生評分資料集中觀察的預測。 預測會儲存在結果存放區中,這是 Databricks 資料存放區上的新資料集。
評分管線可以使用 ai_query
函式進行批次推斷,透過布建來有效率地處理大型數據集,以進行延展性和效能優化。
排程規劃人員。 排程的 Databricks 作業 會使用 Spark 模型處理批次評分。 作業會執行評分管線筆記本,透過筆記本參數傳遞變數引數,以指定建構評分資料集的詳細資料,以及儲存結果資料集的位置。
解決方案詳細資料
此案例會建構為管線流程。 每個筆記本都經過最佳化,可在每個作業的批次設定中執行:擷取、特徵工程、模型建置和模型評分。 特徵工程筆記本的設計目的是為任何定型、校正、測試或評分作業產生一般資料集。 在此案例中,我們會針對這些作業使用時態表分割策略,因此會使用筆記本參數來設定日期範圍篩選條件。
潛在使用案例
資產重工業中的企業,想要將與非預期機械故障相關聯的成本和停機時間降到最低。 使用從其機器收集的 IoT 資料,他們就可以建立預測性維護模型。 此模型可讓企業在元件失敗之前,主動維護元件,並加以修復。 藉由將機械元件使用最大化,企業可以控制成本並降低停機時間。
預測性維護模型會從機器收集資料,並保留元件失敗的歷史範例。 然後,該模型可以用來監視元件的目前狀態,並預測指定的元件是否會很快失敗。
此參考架構是針對元件機器中存在新資料所觸發的工作負載所設計。 處理程序涉及下列步驟:
將資料從外部資料存放區擷取到 Azure Databricks 資料存放區。
藉由將資料轉換成定型資料集來定型機器學習模型,然後建置 Spark MLlib 模型。 MLlib 是由最常見的機器學習演算法和公用程式所組成,這些演算法和公用程式已最佳化來利用 Spark 資料可調整性功能。
將資料轉換成評分資料集,套用定型模型來預測 (分類) 元件失敗機率。 使用 Spark MLLib 模型為資料評分。
將結果儲存在 Databricks 資料存放區以供後續處理時取用。
選擇
此架構可以使用 馬賽克 AI 模型服務,使用 Azure Databricks 的無伺服器計算來部署批次和即時推斷的模型。 它提供動態調整資源的介面,以提升處理大型數據集的效能和成本效益。
使用 Azure Databricks 使用 Microsoft Fabric,開發更複雜的排程管線。
建議
Databricks 已設定,因此您可以載入和部署已定型的模型,以使用新資料來進行預測。 Databricks 也提供其他好處:
- 使用 Microsoft Entra 認證的單一登入支援。
- 執行生產管線作業的作業排程器。
- 具有共同作業、儀表板、REST API 的完整互動式筆記本。
- 可調整為任何大小的無限制叢集。
- 進階安全性、角色型存取控制和稽核記錄。
若要與 Azure Databricks 服務互動,請在網頁瀏覽器或命令列介面 (CLI) 中使用 Databricks 工作區介面。
此架構會使用筆記本依序執行工作。 每個筆記本都會將中繼資料成品 (定型、測試、評分或結果資料集) 儲存至與輸入資料相同的資料存放區。 目標是讓您在特定的使用案例中視需要輕鬆地使用該資料。 實際上,您會將資料來源連線到 Azure Databricks 執行個體,讓筆記本直接讀取和寫入儲存體。
視需要透過 Databricks 使用者介面、資料存放區或 Databricks CLI 監視作業的執行。 使用 Databricks 提供的事件記錄和其他 計量來監視叢集。
考量
這些考量能實作 Azure Well-Architected Framework 的支柱,其為一組指導原則,可以用來改善工作負載的品質。 如需更多資訊,請參閱 Microsoft Azure 結構完善的架構。
可靠性
可靠性可確保您的應用程式可以符合您對客戶的承諾。 如需詳細資訊,請參閱 可靠性的設計檢閱檢查清單。
在此架構中,為了簡單起見,數據會直接儲存在 Databricks 記憶體內。 不過,在生產環境中,您應該將資料儲存在雲端資料記憶體上,例如 Azure Blob 記憶體。 Databricks 也支援 Azure Data Lake Store、Microsoft Fabric、Azure Cosmos DB、Apache Kafka和 Apache Hadoop。
成本優化
成本優化是考慮如何減少不必要的費用,並提升營運效率。 如需詳細資訊,請參閱 成本優化的設計檢閱檢查清單。
Azure Databricks 是具有關聯成本的進階 Spark 供應項目。 此外,還有標準和進階版 Databricks 定價層。
在此案例中,標準定價層就已足夠。 不過,如果您的特定應用程式需要自動調整叢集以處理較大的工作負載或互動式 Databricks 儀表板,進階層可能會進一步增加成本。
效能效率
效能效率是工作負載以有效率的方式符合其需求的能力。 如需詳細資訊,請參閱 效能效率的設計檢閱檢查清單。
Azure Databricks 叢集預設會啟用自動調整功能,以便在執行階段期間讓 Databricks 動態重新配置背景工作角色,以將作業特性納入考量。 管線的某些部分可能比其他部分更需要計算。 Databricks 會在您工作的這些階段新增額外的背景工作 (並在不再需要時將其移除)。 自動調整規模可讓您更輕鬆地達到高叢集使用率,因為您不需要佈建叢集以配合工作負載。
參與者
本文由 Microsoft 維護。 原始投稿人如下。
主要作者:
- 弗雷迪·阿亞拉 |雲端解決方案架構師
- John Ehrlinger | 資深應用科學家
若要查看非公開的 LinkedIn 設定檔,請登入 LinkedIn。
下一步
- 使用 Azure Databricks 實作機器學習解決方案
- 將模型部署到批次端點
- 教學課程:建立生產機器學習管線