機器學習和 Apache Spark

Azure Synapse Analytics 中的 Apache Spark 能以巨量資料實現機器學習服務,有能力從大量的結構化、非結構化和快速移動的資料中,取得寶貴的深度見解分析。

本節包含機器學習工作流程的概觀和教學課程,包括探勘數據分析、特徵工程、模型定型、模型評分和部署。

Synapse 執行階段

Synapse Runtime 是針對數據科學和機器學習優化的策劃環境。 Synapse Runtime 預設會在 Azure 機器學習 SDK 中提供一系列熱門的開放原始碼連結庫和組建。 Synapse Runtime 也包含許多外部連結庫,包括 PyTorch、Scikit-Learn、XGBoost 等等。

檢視已發佈 的 Azure Synapse Analytics 運行時間,以深入瞭解可用的連結庫和相關版本。

探索式資料分析

在 Azure Synapse Analytics 中使用 Apache Spark 時,有各種內建選項可協助您將數據可視化,包括 Synapse 筆記本圖表選項、存取 Seaborn 和 Matplotlib 等熱門開放原始碼連結庫,以及與 Synapse SQL 和 Power BI 整合。

檢視如何使用 Azure Synapse Notebook 將數據可視化的文章,以深入了解數據視覺效果和數據分析選項。

功能工程

根據預設,Synapse Runtime 包含一組通常用於特徵工程的連結庫。 針對大型數據集,您可以使用Spark SQL、MLlib和 Koalas 進行特徵工程。 對於較小的數據集,Numpy、Pandas 和 Scikit-learn 等第三方連結庫也提供這些案例的實用方法。

將模型定型

在 Azure Synapse Analytics 中使用 Azure Spark 定型機器學習模型時有數個選項:Apache Spark MLlib、Azure Machine Learning,以及各種其他開放原始碼程式庫。

檢視如何在 Azure Synapse Analytics 中定型模型的文章,以深入了解機器學習功能。

SparkML 與 MLlib

Spark 的記憶體內分散式計算功能,使其成為機器學習和圖表計算中所使用反覆演算法的絕佳選擇。 spark.ml 提供一組統一的高階 API,可協助使用者建立和調整機器學習管線。若要深入瞭解 spark.ml,您可以流覽 Apache Spark ML 程式設計指南

Azure 機器學習 自動化 ML (已淘汰)

Azure 機器學習 自動化 ML(自動化機器學習)可協助自動化開發機器學習模型的程式。 這可以讓資料科學家、分析師和開發人員建置規模龐大、有效率且富生產力的 ML 模型,同時維持模型的品質。 執行 Azure 機器學習 自動化 ML SDK 的元件會直接內建到 Synapse Runtime 中。

警告

  • 自 2023 年 9 月 29 日起,Azure Synapse 將會停止對 Spark 2.4 運行時間的官方支援。 在 2023 年 9 月 29 日之後,我們不會處理任何與 Spark 2.4 相關的支援票證。 Spark 2.4 的 Bug 或安全性修正不會有發行管線。 使用Spark 2.4後,支援截止日期會自行承擔風險。 由於潛在的安全性和功能考慮,我們強烈勸阻其繼續使用。
  • 作為 Apache Spark 2.4 淘汰程式的一部分,我們想要通知您 Azure Synapse Analytics 中的 AutoML 也將已被取代。 這包括低程式代碼介面和用來透過程式代碼建立 AutoML 試用版的 API。
  • 請注意,AutoML 功能是透過 Spark 2.4 運行時間獨佔提供的。
  • 對於想要繼續使用 AutoML 功能的客戶,建議您將資料儲存到 Azure Data Lake 儲存體 Gen2 (ADLSg2) 帳戶。 您可以從該處順暢地透過 Azure 機器學習 (AzureML) 存取 AutoML 體驗。 如需此因應措施的詳細資訊,請參閱 這裡

開放原始碼連結庫

Azure Synapse Analytics 中的每個 Apache Spark 集區都隨附一組預先載入且熱門的機器學習連結庫。 預設包含的一些相關機器學習連結庫包括:

  • Scikit-learn 是傳統 ML 演算法最熱門的單一節點機器學習連結庫之一。 Scikit-learn 支援大部分的受監督和非監督式學習演算法,也可用於數據採礦和數據分析。

  • XGBoost 是熱門的機器學習連結庫,其中包含定型判定樹和隨機樹系的優化演算法。

  • PyTorchTensorFlow 是功能強大的 Python 深度學習連結庫。 在 Azure Synapse Analytics 中的 Apache Spark 集區內,您可以將集區上的執行程式數目設定為零,使用這些連結庫來建置單一計算機模型。 雖然 Apache Spark 在此設定下無法運作,但建立單一計算機模型是簡單且符合成本效益的方式。

追蹤模型開發

MLFlow 是一個開放原始碼連結庫,可用來管理機器學習實驗的生命週期。 MLFlow 追蹤是 MLflow 的元件,可記錄和追蹤您的定型執行計量和模型成品。 若要深入瞭解如何透過 Azure Synapse Analytics 和 Azure 機器學習 使用 MLFlow 追蹤,請瀏覽本教學課程以瞭解如何使用 MLFlow

模型評分

模型評分或推斷是模型用來進行預測的階段。 針對使用SparkML或MLLib進行模型評分,您可以利用原生Spark方法直接在Spark數據框架上執行推斷。 對於其他開放原始碼連結庫和模型類型,您也可以建立 Spark UDF 來相應放大大型數據集的推斷。 針對較小的數據集,您也可以使用連結庫所提供的原生模型推斷方法。

註冊及服務模型

註冊模型可讓您儲存、版本和追蹤工作區中模型的相關元數據。 完成模型定型之後,您可以將模型註冊至 Azure 機器學習 模型登錄。 註冊之後,ONNX 模型也 可以用來擴充儲存在專用SQL集區中的數據

下一步

若要開始使用 Azure Synapse Analytics 中的機器學習服務,請務必查看下列教學課程: