Azure 机器学习的工作原理

已完成

使用 Azure 机器学习需要 Azure 帐户和 Azure 订阅。 订阅具有标准和免费定价层,并提供用于访问服务的终结点和订阅密钥。

你可以通过 Python 软件开发工具包 (SDK)、REST API 和命令行接口 (CLI) 扩展访问云或本地计算机上的 Azure 机器学习。 如果你喜欢低代码或无代码选项,则 Azure 机器学习工作室可用于快速训练和部署机器学习模型。

Azure 机器学习管理工作区内 ML 生命周期所需的所有资源。 工作区可以由多人共享,并包括笔记本、训练群集和管道可用的计算资源等内容。 工作区也是数据存储的逻辑容器,和模型与模型生命周期内任何其他内容的存储库。

Azure Machine Learning lifecycle.

如何创建机器学习模型

可以使用 SDK 创建模型,从 ML 框架导入,或在没有代码时使用 Azure 机器学习工作室。 连接到工作区时,可以选择具有预加载包的各种开发环境,其中包含用于常见框架(如 TensorFlow 和 PyTorch)的策展环境。 然后,可以选择计算目标,以便在本地或虚拟机上运行训练脚本以创建模型。 Azure 机器学习中的计算目标可以自动纵向扩展和管理工作,以高效使用 GPU 和 CPU 资源。

可通过 SDK、Azure Monitor 和 Azure 机器学习工作室本地记录和监视运行状态,或者通过安装包来运行 MLFlow 和 TensorBoard。 然后,可以在 Azure 工作室或工作区内查看训练运行的可视化效果,以向下钻取结果和指标。

在下面的示例中,我们可以看到如何自定义 Azure 机器学习工作室的可视化效果以添加图表、比较数据并应用筛选器来更好地分析结果和指标。

Screenshot of visualizing a model in Azure Machine Learning studio.

试验

若要在 Azure 机器学习中训练模型,请运行一个试验,即运行可生成被跟踪的指标和输出的训练脚本。 你可以使用不同的超参数、数据、代码或设置多次运行相同的试验。 工作区保留所有训练运行的历史记录,包括日志、指标、输出和环境中的脚本快照。 在协作项目中,试验日志是查看和跟踪进度的一种好方法。 它们可展示模型的发布者或更改者、做出更改的原因,以及在生产环境中部署或使用模型的时间。

管道

管道是完整的机器学习任务的工作流,可以包括数据准备、训练、测试和部署。 管道有许多用途。 可创建管道来实时训练模型,进行预测,或者仅用于清理数据。 由于管道中的每个步骤都是独立的,因此多个人员可以同时在同一管道内处理不同的步骤。 Azure 机器学习管道只需重新运行输入已更改的步骤即可节省时间,如果你只是调整超参数或其他步骤,则会大幅缩短运行时间。 Azure 数据工厂和 Azure Pipelines 都为 Azure 机器学习提供现成的管道,因此你可以专注于机器学习而不是基础结构。

数据资源

可以从数据存储、公共 URL 和 Azure 开放数据集创建数据资产。 通过创建数据资产,你可以参考数据源位置,因此训练集和管道中的数据将在不更改原始数据的情况下进行存储。 然后,可以对数据资产进行注册、版本控制和跟踪,以便允许快速跨团队、角色和试验重用和共享。 可重现试验的版本也是可能的,从而能够更好地分析数据的可行性和模型性能。

Azure 机器学习可通过增量刷新定期检查新存储的数据,从而在新数据添加到数据存储时自动更新数据资产。 T

标记

数据标记是创建、管理和监视标记任务的集中位置。 所有数据标记项目均可通过 Azure 机器学习工作室或工作区仪表板进行管理,团队成员可在其中查看进度并协助协作标记项目。 可在此处进行人工参与的标记,使团队成员能够手动添加标签来训练 ML 标签模型。 提交足够的标签后,将使用分类模型来预测标记。 然后,团队成员可以接受或拒绝 ML 标记的数据实例,以帮助训练标签模型的准确性。 最终,模型将能够在不提供帮助的情况下为你的数据进行标记。

以下显示了 Azure 机器学习工作室中正在进行的标记任务的示例。

Screenshot of Azure Machine Learning studio data labeling.

部署机器学习模型

Azure 机器学习在 Docker 容器中打包和运行模型进行部署。 这些容器独立于运行脚本,因此你可以快速交换或更新模型与改进的模型,同时使脚本保持未修改。

还可以将模型下载到 Open Neural Network Exchange (ONNX) 格式中,该格式在潜在的部署平台和设备(如 iOS、Android 和 Linux)中具有广泛的灵活性。

Azure 机器学习提供预打包的容器映像,其包括稳定的环境、预加载 Python 包和设置。 这些容器图像可帮助你通过最少的设置部署到常见的机器学习框架(如 TensorFlow 和 PyTorch)。