什么是 SynapseML?
SynapseML(以前称为 MMLSpark)是一个开源库,可简化可大规模缩放的机器学习 (ML) 管道的创建。 SynapseML 为各种不同的机器学习任务(例如文本分析、视觉、异常情况检测等)提供简单、可组合和分布式 API。 SynapseML 是基于 Apache Spark 分布式计算框架生成的,与 SparkML/MLLib 库共享相同的 API,使你可以将 SynapseML 模型无缝地嵌入现有 Apache Spark 工作流。
借助 SynapseML,可以生成可缩放的智能系统,用于解决异常情况检测、计算机视觉、深度学习、文本分析等领域的挑战。 SynapseML 可以在单节点、多节点和可弹性调整大小的计算机群集上训练和评估模型。 这样,无需浪费资源即可缩放工作。 SynapseML 可用于 Python、R、Scala、Java 和 .NET。 此外,无论数据位于何处,它的 API 都能对各种数据库、文件系统和云数据存储进行抽象化,以简化试验。
SynapseML 需要 Scala 2.12、Spark 3.0+ 和 Python 3.6+。
SynapseML 的主要功能
用于创建模型、训练模型和对模型评分的统一 API
SynapseML 提供了一个统一的 API,可简化开发容错分布式程序。 具体而言,SynapseML 在单个 API 下公开了许多不同的机器学习框架,该 API 是可扩展的、与数据和语言无关的,并且适用于批、流式处理和服务应用程序。
统一的 API 可标准化许多工具、框架和算法,并简化分布式机器学习体验。 借助它,开发人员能够快速撰写不同的机器学习框架,保持代码整洁,并启用需要多个框架的工作流。 例如,Web 监督式学习或搜索引擎创建等工作流需要多个服务和框架。 SynapseML 保护用户免受这种额外复杂性的影响。
使用预生成智能模型
SynapseML 中的许多工具不需要大型标记训练数据集。 相反,SynapseML 为预生成智能服务(如 Azure AI 服务)提供了简单的 API,以快速解决与业务和研究相关的大规模 AI 挑战。 借助 SynapseML,开发人员能够将超过 50 种最先进的 ML 服务直接嵌入其系统和数据库中。 这些现成的算法可以分析各种文档、实时转录同时有多个发言人的对话,并将文本翻译为 100 多种不同语言。 有关如何使用预生成 AI 快速解决任务的更多示例,请参阅 SynapseML“认知”示例。
为了使 SynapseML 与 Azure AI 服务的集成快速高效,SynapseML 为面向服务的工作流引入了许多优化。 具体而言,SynapseML 会自动分析常见的限制响应,以确保作业不会使后端服务不堪重负。 此外,它使用指数退避来处理不可靠的网络连接和失败的响应。 最后,Spark 的辅助角色计算机忙于处理 Spark 的新异步并行基元。 异步并行允许辅助角色计算机在等待服务器响应的同时发送请求,并且可以将吞吐量提高十倍。
与 ONNX 的广泛生态系统兼容性
借助 SynapseML,开发人员能够通过 Open Neural Network Exchange (ONNX) 框架使用来自许多不同 ML 生态系统的模型。 通过此集成,只需几行代码即可大规模执行各种经典和深度学习模型。 SynapseML 自动执行以下操作:将 ONNX 模型分发到工作器节点、批处理和缓冲输入数据以实现高吞吐量,以及计划硬件加速器上的工作。
将 ONNX 引入 Spark 不仅可以帮助开发人员缩放深度学习模型,还可以在各种 ML 生态系统中实现分布式推理。 具体而言,ONNXMLTools 将模型从 TensorFlow、scikit-learn、Core ML、LightGBM、XGBoost、H2O 和 PyTorch 转换为 ONNX,以便使用 SynapseML 进行加速和分布式推理。
生成负责任 AI 系统
生成模型后,研究人员和工程师必须在部署前了解其限制和行为。 SynapseML 通过引入新工具来帮助开发人员和研究人员生成负责任 AI 系统,这些新工具揭示了模型做出某些预测的原因,以及如何改进训练数据集以消除偏见。 SynapseML 通过使开发人员能够跨数百台计算机分配计算,极大地加快了理解用户的训练模型的过程。 更具体地说,SynapseML 包括 Shapley 累加性解释 (SHAP) 和本地可解释的 Model-Agnostic 解释 (LIME) 的分布式实现,用于解释对视觉、文本和表格模型的预测。 它还包括个体条件预期 (ICE) 和用于识别的偏差数据集的部分依赖分析等工具。
Azure Synapse Analytics 上的企业支持
SynapseML 在具有企业支持的 Azure Synapse Analytics 上正式发布。 可以使用 Azure AI 服务、LightGBM、ONNX 和其他选定的 SynapseML 功能生成大规模机器学习管道。 它甚至包括用于快速创建分布式机器学习系统(例如视觉搜索引擎、预测性维护管道、文档翻译等)原型的模板。
后续步骤
若要详细了解 SynapseML,请参阅 SynapseML:一个大规模并行的多语言简单机器学习库。