Azure Synapse Analytics 中的机器学习功能
Azure Synapse Analytics 提供了各种机器学习功能。 本文概述了如何在 Azure Synapse 的上下文中应用机器学习。
本概述从数据科学流程的角度介绍了 Synapse 中与机器学习相关的各种功能。
你可能很熟悉典型的数据科学流程。 这是一个众所周知的流程,大多数机器学习项目都遵循该流程。
概括而言,该流程包含以下步骤:
- 业务理解(本文不讨论)
- 数据获取和理解
- 建模
- 模型部署和评分
本文从数据科学流程角度介绍了各种分析引擎中的 Azure Synapse 机器学习功能。 针对数据科学流程中的每个步骤,汇总了有用的 Azure Synapse 功能。
数据获取和理解
大多数机器学习项目都涉及完善的步骤,其中一个步骤是访问和了解数据。
数据源和管道
归功于 Azure 数据工厂(Azure Synapse 的一个原生集成部分),有一组功能强大的工具可用于数据引入和数据业务流程管道。 这使你可以轻松地构建数据管道,以便访问数据并将其转换为可用于机器学习的格式。 详细了解 Synapse 中的数据管道。
数据准备和浏览/可视化
机器学习过程中的一个重要部分是通过浏览和可视化来了解数据。
根据数据的存储位置,Synapse 提供了一组不同的工具来浏览和准备用于分析和机器学习的数据。 若要开始使用数据浏览,最快速的方法之一是直接对数据湖中的数据使用 Apache Spark 或无服务器 SQL 池。
Apache Spark for Azure Synapse 提供了大规模转换、准备和浏览数据的功能。 这些 Spark 池提供了用于大规模数据处理的 PySpark/Python、Scala 和 .NET 等工具。 使用功能强大的可视化效果库,可以增强数据浏览体验,以便更好地了解数据。 详细了解如何使用 Spark 浏览和可视化 Synapse 中的数据。
无服务器 SQL 池提供了一种直接通过数据湖使用 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 等常用库来开发模型。 请参阅在 Azure Synapse Analytics 中管理 Apache Spark 的库,详细了解如何在 Synapse Spark 池中安装库。
使用 Azure 机器学习自动化 ML 来训练模型
训练机器学习模型的另一种方法是使用自动化 ML,这不需要花太多时间事先熟悉机器学习。 自动化 ML 是一项可自动训练一组机器学习模型的功能,允许用户根据特定指标选择最佳模型。 借助从 Azure Synapse Notebooks 与 Azure 机器学习进行的无缝集成,用户可以轻松地在 Synapse 中通过直通 Microsoft Entra 身份验证来利用自动化 ML。 这意味着你只需指向 Azure 机器学习工作区,无需输入任何凭据。 教程使用 Python 通过自动化机器学习训练模型介绍了如何在 Synapse Spark Pools 上使用 Azure 机器学习自动化 ML 训练模型。
警告
- 从 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 Storage Gen2 (ADLSg2) 帐户中。 可以从那里通过 Azure 机器学习 (AzureML) 无缝访问 AutoML 体验。 此处提供有关该解决方法的更多信息。
模型部署和评分
可以轻松使用已在 Azure Synapse 中或 Azure Synapse 外部训练的模型进行批量评分。 在 Synapse 中,目前有两种方法可用于运行批量评分。
可以使用 Synapse SQL 池中的 TSQL PREDICT 函数直接在数据所在的位置运行你的预测。 此强大的可缩放功能允许你在不将任何数据移出数据仓库的情况下扩充数据。 Synapse Studio 中引入了一个新的引导式机器学习模型体验。在其中,你可以从 Synapse SQL 池中的 Azure 机器学习模型注册表部署 ONNX 模型,以便使用 PREDICT 进行批量评分。
Azure Synapse 中用于对机器学习模型进行批量评分的另一个选项是利用 Azure Synapse 的 Apache Spark 池。 根据用来训练模型的库,你可以使用代码体验来运行批量评分。
SynapseML
SynapseML(以前称为 MMLSpark)是一个开源库,能简化可大规模缩放的机器学习 (ML) 管道的创建。 这是一个工具生态系统,用于在多个新方向上扩展 Apache Spark 框架。 SynapseML 将多个现有机器学习框架和新 Microsoft 算法统一为一个可缩放的 API,该 API 可用于 Python、R、Scala、.NET 和 Java。 若要了解详细信息,请参阅 SynapseML 的主要功能。