編輯

共用方式為


使用 Azure Databricks 的資料科學與機器學習

Azure Databricks
Azure Data Lake 儲存體
Azure Kubernetes Service (AKS)
Azure Machine Learning

解決方案構想

本文說明解決方案概念。 您的雲端架構師可以使用本指南,協助視覺化此架構的一般實作的主要元件。 以本文為起點,設計符合您工作負載具體要求的完善解決方案。

此架構示範如何使用 Azure Databricks、Delta Lake 和 MLflow 來改善作業,以進行數據科學和機器學習。 您可以藉由開發、定型和部署機器學習模型來改善整體效率和客戶體驗。

架構

顯示 Azure Databricks 如何與數據記憶體服務搭配運作的架構圖表,以精簡和分析數據,並將其提供給其他服務。

此圖表包含三個灰色矩形:一個標示為 Process、一個標示為 Serve,另一個標示為 Store。 [行程] 和 [服務] 矩形位於圖表上半部的旁邊。 [服務] 矩形包含一個白色方塊,其中包含適用於 機器學習 和 Azure Kubernetes Service 的圖示。 另一個白色方塊跨越進程和服務矩形。 其中包含 Azure Databricks 和 MLflow 的圖示。 箭頭會從該方塊指向 [服務] 矩形中的白色方塊。 [處理] 矩形下方是 [存放區] 矩形。 其中包含一個白色方塊,其中包含Data Lake Storage、Delta Lake和三個標示為 Bronze、Silver 和 Gold 的資料庫數據表圖示。 三行會連接 Process 和 Store 矩形,每個線條的每個結尾都有箭號。

下載此架構的 Visio 檔案

解決方案會儲存、處理及提供資料:

資料流程

儲存

Data Lake Storage 會以 Delta Lake 格式儲存數據。 Delta Lake 會形成數據湖的策劃層。 獎章架構會將數據組織成三個層級:

  • 銅牌數據表會保存原始數據。
  • 銀表包含已清除、篩選的數據。
  • 黃金數據表會儲存已準備好進行分析和報告的匯總數據。

處理

  • 來自各種語言、架構和連結庫的程式代碼會準備、精簡和清理原始數據 (1)。 編碼可能性包括 Python、R、SQL、Spark、Pandas 和 Koalas。

  • Azure Databricks 會執行數據科學工作負載。 此平臺也會建置和定型機器學習模型(2)。 Azure Databricks 使用預安裝的優化連結庫。 範例包括 scikit-learn、TensorFlow、PyTorch 和 XGBoost。

  • MLflow 追蹤會擷取機器學習實驗、模型執行和結果 (3)。 當最佳模型可供生產環境使用時,Azure Databricks 會將該模型部署至 MLflow 模型存放庫。 此集中式登錄會儲存生產模型的相關信息。 登錄也會讓模型可供其他元件使用:

    • Spark 和 Python 管線可以內嵌模型。 這些管線會處理批次工作負載或串流 ETL 進程。
    • REST API 可針對許多用途提供模型的存取權。 範例包括行動和 Web 應用程式中的測試與互動式評分。

服務

Azure Databricks 可以將模型部署到其他服務,例如 機器學習 和 AKS (4)。

元件

  • Azure Databricks 是資料分析平台。 其完全受控的 Spark 叢集會執行數據科學工作負載。 Azure Databricks 也會使用預安裝的優化連結庫來建置和定型機器學習模型。 MLflow 與 Azure Databricks 整合提供一種方式來追蹤實驗、將模型儲存在存放庫中,以及讓模型可供其他服務使用。 Azure Databricks 提供延展性:

    • 單一節點計算叢集會處理小型數據集和單一模型執行。
    • 對於大型數據集,可以使用多節點計算叢集或圖形處理單位 (GPU) 叢集。 這些叢集會使用 HorovodRunner 和 Hyperopt 等連結庫和架構來進行平行模型執行。
  • Data Lake Storage 是一個可擴縮和安全的資料湖,適用於高效能分析工作負載。 此服務會管理數 PB 的資訊,同時維持數百 GB 的輸送量。 資料可以具有下列特性:

    • 結構化、半結構化或非結構化。
    • 來自多個異質來源,例如記錄、檔案和媒體。
    • 靜態、批次或串流。
  • Delta Lake 是使用開放式檔格式的儲存層。 此層會在雲端記憶體之上執行,例如 Data Lake Storage。 Delta Lake 已針對轉換和清理批次和串流數據進行優化。 此平台支援下列特性和功能:

    • 數據版本設定和復原。
    • 可靠性的不可部分完成性、一致性、隔離和持久性 (ACID) 交易。
    • 數據準備、模型定型和模型服務的一致標準。
    • 源數據一致快照集的時間移動。 數據科學家可以在快照集上定型模型,而不是建立個別複本。
  • MLflow 是機器學習生命週期的開放原始碼平臺。 MLflow 元件會在定型和執行期間監視機器學習模型。 預存資訊包括程式代碼、數據、組態資訊和結果。 MLflow 也會儲存模型,並將其載入生產環境。 因為 MLflow 使用開放式架構,因此各種服務、應用程式、架構和工具都可以取用模型。

  • 機器學習 是雲端式環境,可協助您建置、部署及管理預測性分析解決方案。 透過這些模型,您可以預測行為、結果和趨勢。

  • AKS 是高可用性、安全且完全受控的 Kubernetes 服務。 AKS 可讓您輕鬆地部署和管理容器化應用程式。

案例詳細資料

當貴組織辨識數據科學和機器學習的強大功能時,您可以提高效率、增強客戶體驗,以及預測變更。 若要在業務關鍵使用案例中達成這些目標,您需要一致且可靠的模式:

  • 追蹤實驗。
  • 重現結果。
  • 將機器學習模型部署至生產環境。

本文概述一致且可靠的機器學習架構解決方案。 Azure Databricks 會形成架構的核心。 儲存層 Delta Lake 和機器學習平臺 MLflow 也會扮演重要角色。 這些元件與其他服務緊密整合,例如 Azure Data Lake Storage、Azure 機器學習 和 Azure Kubernetes Service (AKS)。

這些服務一起為數據科學和機器學習提供解決方案,如下所示:

  • 簡單:開放式數據湖可簡化架構。 Data Lake 包含策展層 Delta Lake。 該層會以開放原始碼格式提供數據的存取權。

  • Open:解決方案支援開放原始碼程式代碼、開放標準和開放架構。 這種方法可將未來更新的需求降到最低。 Azure Databricks 和 機器學習 原生支援 MLflow 和 Delta Lake。 這些元件一起提供領先業界的 機器學習作業 (MLOps)或適用於機器學習的 DevOps。 廣泛的部署工具會與解決方案的標準化模型格式整合。

  • 共同作業:數據科學和 MLOps 小組會與此解決方案合作。 這些小組會使用 MLflow 追蹤來記錄和查詢實驗。 小組也會將模型部署到中央 MLflow 模型登錄。 然後,數據工程師會在數據擷取、擷取-轉換載入 (ETL) 程式和串流管線中使用已部署的模型。

潛在使用案例

AGL 為能源預測而建置的平台啟發了此解決方案。 該平臺為數千個平行模型提供快速且符合成本效益的訓練、部署和生命週期管理。

除了能源提供者,此解決方案還可以讓任何組織受益:

  • 使用數據科學。
  • 建置和定型機器學習模型。
  • 在生產環境中執行機器學習模型。

範例包括下列中的組織:

  • 零售和電子商務。
  • 銀行和金融。
  • 醫療保健和生命科學。
  • 汽車工業和製造。

下一步

  • AGL 能源 為數千個平行模型建置標準化平臺。 此平臺為模型提供快速且符合成本效益的訓練、部署和生命週期管理。
  • 開放式電網歐洲(OGE) 使用人工智慧模型來監視天然氣管道。 OGE 會使用 Azure Databricks 和 MLflow 來開發模型。
  • 斯堪的納維亞航空公司(SAS) 在共同研究階段使用 Azure Databricks。 航空公司也會使用 機器學習 來開發預測模型。 藉由識別公司數據中的模式,模型可改善日常作業。