什么是 Azure 机器学习?
Azure 机器学习是一种用于加速和管理机器学习 (ML) 项目生命周期的云服务。 ML 专业人员、数据科学家和工程师可以在他们的日常工作流程中使用它,以训练和部署模型以及管理机器学习运营 (MLOps)。
可在机器学习中创建模型,也可使用从开源平台构建的模型,例如 Pytorch、TensorFlow 或 scikit-learn。 MLOps 工具有助于监视、重新训练和重新部署模型。
提示
试用版订阅! 如果你没有 Azure 订阅,请在开始之前创建一个帐户。
机器学习适用于要在其组织内实现 MLOps(以便在安全且可审核的生产环境中将 ML 模型投入生产)的个人和团队。
数据科学家和 ML 工程师可使用工具来加快和自动执行其日常工作流。 应用程序开发人员可使用工具将模型集成到应用程序或服务。 平台开发人员可使用由持久 Azure 资源管理器 API 提供支持的一组可靠工具来构建高级 ML 工具。
在 Azure 云中工作的企业可以为基础结构使用熟悉的安全性和基于角色的访问控制。 可以设置项目以拒绝对受保护数据的访问并选择操作。
ML 项目通常需要具有各种技能组的团队来构建和维护。 机器学习提供有助于实现以下功能的工具:
通过共享的笔记本、计算资源、无服务器计算、数据和环境来与团队协作
针对公平性和可解释性、跟踪和可审核性来开发模型,以满足世系和审核合规性要求
快速且轻松地大规模部署 ML 模型,并使用 MLOps 高效管理和治理它们
使用内置治理、安全性和合规性在任意位置运行机器学习工作负荷
ML 团队中的任何人都可以使用其首选工具完成工作。 无论是运行快速试验、超参数优化、生成管道还是管理推理,都可以使用熟悉的接口,其中包括:
在机器学习开发周期的其余部分优化模型并与他人协作时,可以在机器学习工作室 UI 上共享和查找项目的资产、资源和指标。
机器学习工作室提供多种创作体验(具体取决于项目类型和过去的 ML 体验的级别),无需安装任何内容。
Notebooks:在直接集成到工作室的托管 Jupyter Notebook 服务器中编写和运行自己的代码。
可视化运行指标:使用可视化效果来分析和优化试验。
Azure 机器学习设计器:使用设计器可在不编写任何代码的情况下训练和部署 ML 模型。 拖放数据集和组件以创建 ML 管道。
自动化机器学习 UI:了解如何通过易于使用的界面创建自动化 ML 试验。
机器学习与 Azure 云平台集成,以提高 ML 项目的安全性。
安全集成包括:
- 带有网络安全组的 Azure 虚拟网络。
- Azure Key Vault,可用于保存安全机密,例如存储帐户的访问信息。
- Azure 容器注册表位于虚拟网络后面。
有关详细信息,请参阅教程:设置安全工作区。
与 Azure 服务进行的其他集成支持端到端的 ML 项目。 它们包括:
- Azure Synapse Analytics,用于通过 Spark 处理和流式传输数据。
- 存储和数据库选项,如 Azure SQL 数据库和 Azure Blob 存储。
- Azure 应用服务,可用于部署和管理 ML 支持的应用。
- Microsoft Purview,可用于发现整个组织中的数据资产并对这些资产进行编录。
重要
Azure 机器学习不会在你部署的区域之外存储或处理数据。
通常,模型开发过程属于具有目标的项目的一部分。 项目往往不止涉及一个人。 在试验数据、算法和模型时,开发具有迭代性。
尽管项目生命周期可能因项目而异,但通常如下图所示:
工作区可整理项目,让朝着共同目标而努力的许多用户都能够协作。 工作区中的用户轻轻松松即可在工作室用户界面中共享其实验运行结果, 或将已进行版本控制的资产用于环境和存储引用等作业。
有关详细信息,请参阅管理 Azure 机器学习工作区。
当项目准备好进行操作化时,用户的工作可以在 ML 管道中自动执行,并按计划或 HTTPS 请求触发。
可将模型部署到托管推理解决方案,以进行实时和批部署,并忽略部署模型通常所需的基础结构管理。
在 Azure 机器学习中,可以在云中运行训练脚本或从头开始构建模型。 客户通常会自带他们在开源框架中构建和训练的模型,以便他们在云中让这些模型实现操作化。
数据科学家可以在 Azure 机器学习中使用他们在常见 Python 框架中创建的模型,例如:
- PyTorch
- TensorFlow
- scikit-learn
- XGBoost
- LightGBM
也支持其他语言和框架:
- R
- .NET
有关详细信息,请参阅与 Azure 机器学习的开源集成。
在经典 ML 重复且耗时的处理过程中,数据科学家使用以前的经验和直觉来选择合适的数据特征化和算法进行训练。 自动化 ML (AutoML) 可加快此过程。 你可通过机器学习工作室 UI 或 Python SDK 使用它。
有关详细信息,请参阅什么是自动化机器学习?。
超参数优化或超参数优化可能是一项枯燥的任务。 机器学习可为任意参数化命令自动执行此任务,而基本无需对作业定义进行任何修改。 结果会在工作室中直观呈现。
有关详细信息,请参阅优化超参数。
通过多节点分布式训练,深度学习的训练效率(有时甚至是经典机器学习训练作业的效率)可以得到显著提高。 Azure 机器学习计算集群和无服务器计算提供了最新的 GPU 选项。
通过 Azure 机器学习 Kubernetes、Azure 机器学习计算群集和无服务器计算获得支持:
- PyTorch
- TensorFlow
- MPI
MPI 分发可用于 Horovod 或自定义多节点逻辑。 Apache Spark 通过可利用 Azure Synapse Analytics Spark 群集的无服务器 Spark 计算和附加的 Synapse Spark 池获得支持。
有关详细信息,请参阅使用 Azure 机器学习进行分布式训练。
缩放 ML 项目可能需要缩放易并行模型训练。 此模式在预测需求等场景中很常见,在这些场景中,模型可能需要针对许多存储进行训练。
若要将某个模型投入生产,请部署该模型。 Azure 机器学习托管终结点会抽象化批处理或实时(在线)模型评分(推理)所需的基础结构。
批评分(或批推理)涉及通过数据引用进行调用的终结点 。 批处理终结点以异步方式运行作业,以并行处理计算群集上的数据,并存储数据以供进一步分析。
实时评分或在线推理涉及调用具有一个或多个模型部署的终结点并通过 HTTP 准实时接收响应。 流量可分散到多种部署中,允许通过初始转移一定数量的流量并在建立对新模型的信心后增加流量来测试新模型版本。
有关详细信息,请参阅:
用于 ML 模型的 DevOps(通常称为 MLOps)是开发生产模型的过程。 如果不可重现,模型从训练到部署的生命周期必须可审核。
详细了解 Azure 机器学习中的 MLOps。
机器学习在构建时考虑到了模型生命周期。 可以针对具体的提交和环境来审核模型的生命周期。
启用 MLOps 的一些主要功能包括:
git
集成。- MLflow 集成。
- 机器学习管道计划。
- 用于自定义触发器的 Azure 事件网格集成。
- 易于与 GitHub Actions 或 Azure DevOps 等 CI/CD 工具配合使用。
机器学习还包括用于监视和审核的功能:
- 作业项目,例如代码快照、日志和其他输出。
- 作业和资产(例如容器、数据和计算资源)之间的世系。
如果使用 Apache Airflow,则通过将 airflow-provider-azure-machinelearning 包作为提供程序,可以从 Apache AirFlow 将工作流提交到 Azure 机器学习。
开始使用 Azure 机器学习: