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

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

解決方案構想

本文是解決方案概念。 如果您想要使用詳細資訊來擴充內容,例如潛在的使用案例、替代服務、實作考慮或定價指引,請提供 GitHub 意見反應 讓我們知道。

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

架構

Architecture diagram showing how Azure Databricks works with data storage services to refine and analyze data and make it available for other services.

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

下載此架構的 Visio 檔案

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

資料流程

商店

Data Lake 儲存體會以 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 儲存體 是可調整且安全的 Data Lake,適用于高效能分析工作負載。 此服務會管理數 PB 的資訊,同時維持數百 GB 的輸送量。 資料可以具有下列特性:

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

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

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

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

案例詳細資料

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

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

本文概述一致且可靠的機器學習架構解決方案。 Azure Databricks 會形成架構的核心。 儲存層 Delta Lake 和機器學習平臺 MLflow 也會扮演重要角色。 這些元件與其他服務緊密整合,例如 Azure Data Lake 儲存體、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。 航空公司也會使用機器學習來開發預測模型。 藉由識別公司資料中的模式,模型可改善日常作業。