Azure Synapse Analytics 中的機器學習功能
Azure Synapse Analytics 提供各種機器學習功能。 本文概述如何在 Azure Synapse 的內容中套用機器學習。
此概觀涵蓋從資料科學程序觀點,探討 Synapse 中與機器學習服務相關的不同功能。
您可能已熟悉一般資料科學程序的外觀。 這是一個大部分機器學習服務專案都遵循的知名程序。
大致來說,此程序包含下列步驟:
- 了解商務 (未在本文中討論)
- 資料獲取與理解
- 建立模型
- 模型部署和評分
本文從資料科學程式觀點,說明不同分析引擎中的 Azure Synapse 機器學習功能。 針對資料科學程序中的每個步驟,會摘要說明可協助的 Azure Synapse 功能。
資料獲取與理解
大部分的機器學習專案都牽涉到妥善建立的步驟,而其中一個步驟是存取和了解資料。
資料來源和管線
由於 Azure Data Factory (這是 Azure Synapse 的原生整合部分),有一組強大的工具可供資料內嵌和資料協調流程管線使用。 這可讓您輕鬆地建置資料管線以存取資料,並將資料轉換為可用於機器學習的格式。 深入了解 Synapse 中的資料管線。
資料準備和探索/視覺效果
機器學習程序的重要部分是透過探索和視覺效果來了解資料。
根據儲存資料的位置而定,Synapse 會提供一組不同的工具來探索並準備用於分析和機器學習。 開始使用資料探索最快速的方式之一,就是使用 Apache Spark 或直接透過 Data Lake 中的資料使用無伺服器 SQL 集區。
適用於 Azure Synapse 的 Apache Spark 提供了大規模轉換、準備及探索資料的功能。 這些 Spark 集區提供 PySpark/Python、Scala 和 .NET 等工具,以進行大規模的資料處理。 使用強大的視覺效果程式庫,可以增強資料探索體驗,以協助您更深入了解資料。 深入了解如何使用 Spark 在 Synapse 中瀏覽及視覺化資料。
無伺服器 SQL 集區提供一種方法,可透過 Data Lake 直接使用 TSQL 來探索資料。 無伺服器 SQL 集區也會在 Synapse Studio 中提供一些內建的視覺效果。 深入了解如何使用無伺服器 SQL 集區來瀏覽資料。
建立模型
在 Azure Synapse 中,您可以使用 PySpark/Python、Scala 或 .NET 之類的工具,在 Apache Spark 集區上執行訓練機器學習模型。
使用 MLlib 將 Spark 集區上的模型定型
您可以使用各種演算法和程式庫的協助將機器學習模型定型。 Spark MLlib 提供可調整的機器學習演算法,協助解決最傳統的機器學習問題。 如需如何在 Synapse 中使用 MLlib 來定型模型的教學課程,請參閱使用 Apache Spark MLlib 和 Azure Synapse Analytics 來建置機器學習應用程式。
除了 MLlib 之外,也可以使用 Scikit Learn 等熱門程式庫來開發模型。 如需如何在 Synapse Spark 集區上安裝程式庫的詳細資訊,請參閱在 Azure Synapse Analytics 中管理 Apache Spark 的程式庫。
使用 Azure Machine Learning 自動化 ML 來訓練模型
另一種不需要事先熟悉機器學習即可訓練機器學習模型的方法是使用自動化 ML。 自動化 ML 是一項功能,可自動訓練一組機器學習模型,並可讓使用者根據特定計量來選取最佳模型。 由於與 Azure Synapse Notebooks 中的 Azure Machine Learning 緊密整合,使用者可以輕鬆地利用 Synapse 中的自動化 ML 與傳遞 Microsoft Entra 驗證。 這表示您只需要指向您的 Azure Machine Learning 工作區,而不需要輸入任何認證。 使用自動化機器學習在 Python 中定型模型教學課程會說明如何使用 Synapse Spark 集區上的 Azure Machine Learning 自動化 ML 來定型模型。
警告
- 自 2023 年 9 月 29 日起,Azure Synapse Analytics 將中止對 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 Storage Gen2 (ADLSg2) 帳戶。 您可以從該帳戶透過 Azure Machine Learning (AzureML) 順暢地存取 AutoML 體驗。 如需有關此因應措施的進一步資訊,請參閱這裡 (英文)。
模型部署和評分
已在 Azure Synapse 或外部 Azure Synapse 中定型的模型,可以輕鬆地用於批次評分。 目前在 Synapse 中,有兩種方式可執行批次評分。
您可以使用 Synapse SQL 集區中的 TSQL PREDICT 函式,在您的資料所在的位置執行預測。 這項強大且可調整的功能可讓您直接擴充資料,而無須將任何資料移出資料倉儲。 Synapse Studio 中引進了新的引導式機器學習模型體驗,您可以在其中從 Synapse SQL 集區中的 Azure Machine Learning 模型登錄部署 ONNX 模型,以使用 PREDICT 進行批次評分。
Azure Synapse 中批次評分機器學習模型的另一個選項是利用 Azure Synapse 的 Apache Spark 集區。 視用來定型模型的程式庫而定,您可以使用程式碼體驗來執行批次評分。
SynapseML
SynapseML (之前稱為 MMLSpark) 是開放原始碼程式庫,並簡化可大規模調整的機器學習 (ML) 管道。 SynapseML 是工具的生態系統,可以數個新方向展開 Apache Spark 架構。 SynapseML 整合數個現有的機器學習架構和新 Microsoft 演算法為單一、可調整的 API,此 API 可跨 Python、R、Scala、.NET 和 JAVA 使用。 若要深入了解,請參閱 SynapseML 的主要功能。