Azure Synapse Analytics中的 Apache Spark 使机器学习能够利用大数据,从大量结构化、非结构化和快速移动的数据中获取有价值的见解。
本部分提供机器学习工作流的概述和教程,其中包括探索性数据分析、特征工程、模型训练、模型评分和部署。
Synapse 运行时
Synapse 运行时是针对数据科学和机器学习进行优化的策展环境。 默认情况下,Synapse Runtime 提供一系列常用的开源库,并在 Azure Machine Learning SDK 中生成。 Synapse 运行时还包括许多外部库,例如 PyTorch、Scikit-Learn、XGBoost 等。
通过查看已发布的 Azure Synapse Analytics runtime,详细了解可用的库和相关版本。
探索性数据分析
在 Azure Synapse Analytics 中使用 Apache Spark 时,有多种内置选项可帮助你可视化数据,包括 Synapse 笔记本图表选项、访问热门开源库(如 Seaborn 和 Matplotlib),以及与 Synapse SQL 和 Power BI集成。
若要详细了解数据可视化和数据分析选项,请阅读有关如何使用 Azure Synapse Notebooks 进行数据可视化的文章。
特征工程
默认情况下,Synapse 运行时包含一组常用于特征工程的库。 对于大型数据集,可使用 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 Synapse Analytics中的每个 Apache Spark 池都附带了一组预加载和常用的机器学习库。 默认附带的一些相关的机器学习库包括:
Scikit-learn 是用于经典 ML 算法的最受欢迎的单节点机器学习库之一。 Scikit-learn 支持大多数监督式和非监督式学习算法,也可用于数据挖掘和数据分析。
XGBoost 是一个常用的机器学习库,其中包含用于训练决策树和随机林的优化算法。
PyTorch &TensorFlow 是功能强大的深度学习库Python。 在 Azure Synapse Analytics 中的 Apache Spark 池中,可以通过将池上的执行程序数设置为零来使用这些库来生成单台计算机模型。 尽管 Apache Spark 在此配置下不起作用,但这是创建单机模型的一种简单且经济高效的方法。
跟踪模型开发
MLFlow 是一个开放源代码库,用于管理机器学习试验的生命周期。 MLflow 跟踪是 MLflow 的一个组件,用于记录和跟踪训练运行指标和模型项目。 若要详细了解如何通过 Azure Synapse Analytics 和 Azure Machine Learning 使用 MLFlow 跟踪,请访问此教程:MLFlow 的使用方法。
模型评分
模型评分或推理是将模型用于进行预测的阶段。 对于使用 SparkML 或 MLLib 进行的模型评分,可以使用原生 Spark 方法直接在 Spark 数据帧上进行推理。 对于其他开放源代码库和模型类型,也可创建一个 Spark UDF 来横向扩展针对大型数据集的推理。 对于较小的数据集,也可使用库提供的原生模型推理方法。
注册和提供模型
通过注册模型可以让你在工作区中存储、版本和跟踪有关模型的元数据。 训练完模型后,可以将模型注册到 Azure Machine Learning 模型注册表。 注册后,还可以使用 ONNX 模型来扩充存储在专用 SQL 池中的数据。
后续步骤
若要在 Azure Synapse Analytics 中开始使用机器学习,请务必查看以下教程: