直接从 Amazon SageMaker Pipelines 中启动 Amazon SageMaker Autopilot 实验,以轻松实现 MLOps 工作流程 PlatoBlockchain 数据智能的自动化。 垂直搜索。 人工智能。

直接从 Amazon SageMaker Pipelines 中启动 Amazon SageMaker Autopilot 实验以轻松自动化 MLOps 工作流程

亚马逊SageMaker自动驾驶仪,一种基于表格数据自动构建、训练和调整最佳 ML 模型的低代码机器学习 (ML) 服务,现已与 Amazon SageMaker管道,第一个专门为 ML 构建的持续集成和持续交付 (CI/CD) 服务。 这使得使用 Autopilot 构建 ML 模型并将模型集成到后续 CI/CD 步骤中的端到端流程自动化。

到目前为止,要在 Pipelines 中启动 Autopilot 实验,您必须通过使用 Pipelines 编写自定义集成代码来构建模型构建工作流程 LAMBDA or 处理中 脚步。 有关详细信息,请参阅 使用 Amazon SageMaker Pipelines 将 Amazon SageMaker Autopilot ML 模型从实验转移到生产.

通过支持将 Autopilot 作为 Pipelines 中的本机步骤,您现在可以添加一个自动训练步骤(自动机器学习步骤) 在 Pipelines 中调用 Autopilot 实验 集成训练模式. 例如,如果您正在使用 Pipelines 为欺诈检测用例构建训练和评估 ML 工作流,您现在可以使用 AutoML 步骤启动 Autopilot 实验,该步骤会自动运行多个试验以在给定输入数据集上找到最佳模型. 使用创建最佳模型后 模型步骤,其性能可以使用测试数据进行评估 变换步骤 的网络 处理步骤 对于 Pipelines 中的自定义评估脚本。 最终,可以使用以下方法将模型注册到 SageMaker 模型注册表中 模型步骤 结合 条件步骤.

在本文中,我们展示了如何创建端到端 ML 工作流程,以使用 Pipelines 中新启动的 AutoML 步骤来训练和评估 SageMaker 生成的 ML 模型,并将其注册到 SageMaker 模型注册表。 具有最佳性能的 ML 模型可以部署到 SageMaker 端点。

数据集概述

我们使用公开可用的 UCI 成人 1994 年人口普查收入数据集 预测一个人的年收入是否超过 50,000 美元。这是一个二元分类问题;收入目标变量的选项是 50K。

该数据集包含用于训练和验证的 32,561 行以及用于测试的 16,281 行,每行 15 列。 这包括有关个人和 class 作为指示收入等级的目标列。

栏名 课程描述
年龄 持续
工人阶级 私人、Self-emp-not-inc、Self-emp-inc、Federal-gov、Local-gov、State-gov、Without-pay、Never-worked
风车 持续
教育 学士、一些大学、11 年级、HS-grad、Prof-school、Assoc-acdm、Assoc-voc、9 年级、7-8 年级、12 年级、硕士、1-4 年级、10 年级、博士学位、5-6 年级、学前班
教育编号 持续
婚姻状况 已婚公民配偶、离婚、未婚、分居、丧偶、已婚配偶缺席、已婚 AF 配偶
占用 技术支持、工艺维修、其他服务、销售、执行管理、专业教授、处理程序清洁工、机器操作检查、行政文员、农业捕鱼、运输移动、私人住宅服务、保护服务,武装部队
关系 妻子、独生子女、丈夫、非家庭成员、其他亲属、未婚
种族 白人、亚太岛民、美洲印第安人爱斯基摩人、其他、黑人
性别 男女混校
资本收益 持续
资本损失 持续
每周小时 持续
祖国 美国、柬埔寨、英国、波多黎各、加拿大、德国、美国边远地区(关岛-美属维尔京群岛等)、印度、日本、希腊、南方、中国、古巴、伊朗、洪都拉斯、菲律宾、意大利、波兰、牙买加、越南、墨西哥、葡萄牙、爱尔兰、法国、多米尼加共和国、老挝、厄瓜多尔、台湾、海地、哥伦比亚、匈牙利、危地马拉、尼加拉瓜、苏格兰、泰国、南斯拉夫、萨尔瓦多、特立尼达和多巴哥、秘鲁、香港、荷兰-荷兰
收入阶层,要么 50K

解决方案概述

我们使用 Pipelines 来编排不同的 流水线步骤 需要训练自动驾驶仪模型。 我们创建并运行 自动驾驶实验 作为本教程中所述的 AutoML 步骤的一部分。

这个端到端的 Autopilot 训练过程需要以下步骤:

  • 使用 AutoMLStep.
  • 使用创建 SageMaker 模型 ModelStep. 此步骤获取最佳模型的元数据和 Autopilot 在上一步中呈现的工件。
  • 使用以下方法在测试数据集上评估经过训练的 Autopilot 模型 TransformStep.
  • 比较先前运行的输出 TransformStep 使用实际目标标签 ProcessingStep.
  • 将 ML 模型注册到 SageMaker模型注册表 运用 ModelStep,如果先前获得的评估指标超过了预定义的阈值 ConditionStep.
  • 将 ML 模型部署为 SageMaker 端点以进行测试。

建筑

下面的架构图说明了将所有步骤打包到可重现、自动化和可扩展的 SageMaker Autopilot 训练管道中所需的不同管道步骤。 从 S3 存储桶中读取数据文件,并按顺序调用管道步骤。

演练

这篇文章提供了流水线步骤的详细解释。 我们审查代码并讨论每个步骤的组成部分。 要部署解决方案,请参阅 示例笔记本,它提供了使用 Pipelines 实现 Autopilot MLOps 工作流的分步说明。

先决条件

完成以下先决条件:

当数据集准备好使用时,我们需要设置 Pipelines 以建立可重复的过程,以使用 Autopilot 自动构建和训练 ML 模型。 我们使用 SageMaker 开发工具包 以编程方式定义、运行和跟踪端到端 ML 训练管道。

流水线步骤

在以下部分中,我们将介绍 SageMaker 管道中的不同步骤,包括 AutoML 训练、模型创建、批量推理、评估和最佳模型的条件注册。 下图说明了整个管道流程。

直接从 Amazon SageMaker Pipelines 中启动 Amazon SageMaker Autopilot 实验,以轻松实现 MLOps 工作流程 PlatoBlockchain 数据智能的自动化。 垂直搜索。 人工智能。

AutoML 训练步骤

An 自动机器学习对象 用于定义 Autopilot 训练作业运行,可以使用 AutoMLStep 类,如下代码所示。 需要指定集成训练模式,但可以根据需要调整其他参数。 例如,不是让 AutoML 作业自动推断 ML 问题类型客观指标,这些可以通过指定 problem_typejob_objective 传递给 AutoML 对象的参数。

automl = AutoML(
    role=execution_role,
    target_attribute_name=target_attribute_name,
    sagemaker_session=pipeline_session,
    total_job_runtime_in_seconds=max_automl_runtime,
    mode="ENSEMBLING",
)
train_args = automl.fit(
    inputs=[
        AutoMLInput(
            inputs=s3_train_val,
            target_attribute_name=target_attribute_name,
            channel_type="training",
        )
    ]
)
step_auto_ml_training = AutoMLStep(
    name="AutoMLTrainingStep",
    step_args=train_args,
)

模型创建步骤

AutoML 步骤负责生成各种 ML 候选模型,将它们组合起来,并获得最佳 ML 模型。 模型工件和元数据自动存储,可以通过调用 get_best_auto_ml_model() AutoML 训练步骤的方法。 然后,这些可用于创建 SageMaker 模型,作为模型步骤的一部分:

best_auto_ml_model = step_auto_ml_training.get_best_auto_ml_model(
    execution_role, sagemaker_session=pipeline_session
)
step_args_create_model = best_auto_ml_model.create(instance_type=instance_type)
step_create_model = ModelStep(name="ModelCreationStep", step_args=step_args_create_model)

批量转换和评估步骤

我们使用 变压器对象 批量推理 在测试数据集上,然后可以将其用于评估目的。 使用 Scikit-learn 度量函数将输出预测与实际或地面真实标签进行比较。 我们评估我们的结果基于 F1分数. 性能指标保存到 JSON 文件中,在后续步骤中注册模型时会引用该文件。

条件注册步骤

在此步骤中,如果新的 Autopilot 模型超过预定义的评估指标阈值,我们会将其注册到 SageMaker 模型注册表。

创建并运行管道

定义步骤后,我们将它们组合到 SageMaker 管道中:

pipeline = Pipeline(
    name="AutoMLTrainingPipeline",
    parameters=[
        instance_count,
        instance_type,
        max_automl_runtime,
        model_approval_status,
        model_package_group_name,
        model_registration_metric_threshold,
        s3_bucket,
        target_attribute_name,
    ],
    steps=[
        step_auto_ml_training,
        step_create_model,
        step_batch_transform,
        step_evaluation,
        step_conditional_registration,
    ],
    sagemaker_session=pipeline_session,
)

这些步骤按顺序运行。 管道运行 AutoML 作业的所有步骤,使用 Autopilot 和管道进行训练、模型评估和模型注册。

您可以通过导航到 Studio 控制台上的模型注册表并打开来查看新模型 AutoMLModelPackageGroup. 选择任何版本的训练作业以查看目标指标 模型质量 标签。

直接从 Amazon SageMaker Pipelines 中启动 Amazon SageMaker Autopilot 实验,以轻松实现 MLOps 工作流程 PlatoBlockchain 数据智能的自动化。 垂直搜索。 人工智能。

您可以在 可解释性 选项卡以了解模型的预测。

直接从 Amazon SageMaker Pipelines 中启动 Amazon SageMaker Autopilot 实验,以轻松实现 MLOps 工作流程 PlatoBlockchain 数据智能的自动化。 垂直搜索。 人工智能。

查看在中创建的所有模型的底层 Autopilot 实验 AutoMLStep,导航到 AutoML 页面并选择作业名称。

直接从 Amazon SageMaker Pipelines 中启动 Amazon SageMaker Autopilot 实验,以轻松实现 MLOps 工作流程 PlatoBlockchain 数据智能的自动化。 垂直搜索。 人工智能。

部署模型

在我们手动检查 ML 模型的性能后,我们可以将新创建​​的模型部署到 SageMaker 端点。 为此,我们可以运行笔记本中的单元,这些单元使用保存在 SageMaker 模型注册表中的模型配置来创建模型端点。

请注意,共享此脚本是为了演示目的,但建议遵循更强大的 CI/CD 管道进行 ML 推理的生产部署。 有关详细信息,请参阅 使用Amazon SageMaker Pipelines构建,自动化,管理和扩展ML工作流.

总结

这篇文章介绍了一种易于使用的 ML 管道方法,可使用 Autopilot、Pipelines 和 Studio 自动训练表格 ML 模型 (AutoML)。 AutoML 提高了 ML 从业者的效率,加快了从 ML 实验到生产的路径,而无需广泛的 ML 专业知识。 我们概述了 ML 模型创建、评估和注册所需的各个管道步骤。 开始尝试 示例笔记本 训练和部署您自己的自定义 AutoML 模型。

有关 Autopilot 和 Pipelines 的更多信息,请参阅 使用 Amazon SageMaker Autopilot 自动化模型开发Amazon SageMaker管道.

特别感谢所有为发布做出贡献的人: Shenghua Yue, John He, Ao Guo, Xinlu Tu, Tian Qin, Yanda Hu, Zhankuui Lu, and Dewen Qi.


作者简介

直接从 Amazon SageMaker Pipelines 中启动 Amazon SageMaker Autopilot 实验,以轻松实现 MLOps 工作流程 PlatoBlockchain 数据智能的自动化。 垂直搜索。 人工智能。贾尼莎·阿南德 是 SageMaker Low/No Code ML 团队的高级产品经理,该团队包括 SageMaker Autopilot。 她喜欢咖啡,保持活跃,并与家人共度时光。

直接从 Amazon SageMaker Pipelines 中启动 Amazon SageMaker Autopilot 实验,以轻松实现 MLOps 工作流程 PlatoBlockchain 数据智能的自动化。 垂直搜索。 人工智能。马塞洛·阿伯勒 是 AWS AI 的 ML 工程师。 他帮忙 亚马逊机器学习解决方案实验室 客户构建可扩展的 ML(-Ops) 系统和框架。 在业余时间,他喜欢在旧金山湾区远足和骑自行车。

直接从 Amazon SageMaker Pipelines 中启动 Amazon SageMaker Autopilot 实验,以轻松实现 MLOps 工作流程 PlatoBlockchain 数据智能的自动化。 垂直搜索。 人工智能。杰里米·科恩 是 AWS 的解决方案架构师,他帮助客户构建基于云的尖端解决方案。 在业余时间,他喜欢在海滩上短途散步,和家人一起探索海湾地区,修理房子周围的东西,破坏房子周围的东西,以及烧烤。

直接从 Amazon SageMaker Pipelines 中启动 Amazon SageMaker Autopilot 实验,以轻松实现 MLOps 工作流程 PlatoBlockchain 数据智能的自动化。 垂直搜索。 人工智能。盛华岳 是 Amazon SageMaker 的一名软件开发工程师。 她专注于为客户构建 ML 工具和产品。 工作之余,她喜欢户外活动、瑜伽和徒步旅行。

时间戳记:

更多来自 AWS机器学习