训练机器学习模型

在 Azure Synapse Analytics 中使用 Apache Spark 进行大数据机器学习,可从大量结构化、非结构化和快速变化的数据中获得有价值的洞察。 在 Azure Synapse Analytics 中使用 Azure Spark 训练machine learning模型时,有几个选项:Apache Spark MLlib、Azure Machine Learning 和其他各种开源库。

Apache SparkML 和 MLlib

在 Azure Synapse Analytics 中,Apache Spark 是 Microsoft 在云中的一种实现。 它提供一个统一的开源并行数据处理框架,支持使用内存中处理来大幅提升大数据分析性能。 Spark 处理引擎是专为速度、易用性和复杂分析打造的产品。 Spark 的内存中分布式计算功能使其成为machine learning和图形计算中使用的迭代算法的最佳选择。

有两个可缩放的machine learning库将算法建模功能引入此分布式环境:MLlib 和 SparkML。 MLlib 包含构建在 RDD 基础之上的原始 API。 SparkML 是一个较新的包,它提供基于数据帧构建的更高级别的 API,用于构造 ML pipelines。 SparkML 尚不支持 MLlib 的所有功能,但将 MLlib 替换为 Spark 的标准machine learning库。

注意事项

可以遵循此 tutorial 详细了解如何创建 SparkML 模型。

Azure Synapse Analytics 中的每个 Apache Spark 池都附带了一组预加载且常用的machine learning库。 这些库提供了可重用的代码,你可能想要在程序或项目中包含这些代码。 默认情况下包含的一些相关machine learning库包括:

  • Scikit-learn是经典 ML 算法最受欢迎的单节点machine learning库之一。 Scikit-learn 支持大多数监督式和非监督式学习算法,也可用于数据挖掘和数据分析。

  • XGBoost是一个常用的machine learning库,其中包含用于训练决策树和随机林的优化算法。

  • PyTorchTensorFlow 是功能强大的 Python 深度学习库。 在 Azure Synapse Analytics 中的 Apache Spark 池中,可以通过将池上的执行程序数设置为零来使用这些库来生成单机模型。 尽管 Apache Spark 在此配置下不起作用,但这是创建单机模型的一种简单且经济高效的方法。

可以通过查看已发布的 Azure Synapse Analytics 运行时了解有关可用库和相关版本的详细信息。

MMLSpark

适用于 Apache Spark 的 Microsoft Machine Learning 库MMLSpark。 此库旨在使数据科学家在 Spark 上更高效、提高试验率,以及利用大型数据集上的前沿machine learning技术(包括深度学习)。

MMLSpark 在构建可缩放的 ML 模型(如索引字符串、将数据强制转换为machine learning算法的预期布局和组合特征向量)时,在 SparkML 的低级别 API 的基础上提供层。 MMLSpark 库简化了可在 PySpark 中生成模型的这些任务以及其他常见任务。

Foundry 工具

Foundry Tools提供machine learning功能来解决一般问题,例如分析文本以获取情绪或分析图像以识别对象或人脸。 无需特殊machine learning或数据科学知识即可使用这些服务。 认知服务在machine learning解决方案中提供部分或全部组件:数据、算法和定型模型。 这些服务旨在要求对数据有一般知识,而无需machine learning或数据科学经验。 可以在 Azure Synapse Analytics 中自动利用这些预先训练的 Foundry 工具。

后续步骤

本文概述了在 Azure Synapse Analytics 中训练 Apache Spark 池中的machine learning模型的各种选项。 若要详细了解模型训练,请参阅以下教程: