使用 Amazon SageMaker Data Wrangler 和 Amazon SageMaker Autopilot 进行统一的数据准备、模型训练和部署 - 第 2 部分 PlatoBlockchain 数据智能。 垂直搜索。 哎。

使用 Amazon SageMaker Data Wrangler 和 Amazon SageMaker Autopilot 进行统一的数据准备、模型训练和部署 – 第 2 部分

根据数据的质量和复杂性,数据科学家将 45-80% 的时间花在数据准备任务上。 这意味着数据准备和清理会占用真正的数据科学工作的宝贵时间。 在使用准备好的数据训练机器学习 (ML) 模型并准备好部署后,数据科学家必须经常重写用于为 ML 推理准备数据的数据转换。 这可能会延长部署有用模型所需的时间,该模型可以从原始形状和形式推断和评分数据。

在本系列的第 1 部分中,我们演示了 Data Wrangler 如何启用 统一数据准备和模型训练 有经验 亚马逊SageMaker自动驾驶仪 只需点击几下。 在本系列的第二部分也是最后一部分中,我们将重点关注包含和重用的功能 亚马逊SageMaker数据牧马人 转换,例如缺失值输入器、序数或单热编码器等,以及用于 ML 推理的 Autopilot 模型。 此功能支持在推理时通过重用 Data Wrangler 特征转换对原始数据进行自动预处理,从而进一步减少将经过训练的模型部署到生产环境所需的时间。

解决方案概述

Data Wrangler 将为 ML 聚合和准备数据的时间从几周缩短到几分钟,Autopilot 会根据您的数据自动构建、训练和调整最佳 ML 模型。 使用 Autopilot,您仍然可以保持对数据和模型的完全控制和可见性。 这两项服务都是专门为提高机器学习从业者的工作效率和加快实现价值而设计的。

下图说明了我们的解决方案体系结构。

先决条件

因为这篇文章是两部分系列中的第二篇,请确保您已成功阅读并实施 部分1 继续之前。

导出和训练模型

在第 1 部分中,在为 ML 准备数据之后,我们讨论了如何使用 Data Wrangler 中的集成体验来分析数据集并在 Autopilot 中轻松构建高质量的 ML 模型。

这一次,我们再次使用 Autopilot 集成来针对相同的训练数据集训练模型,但我们不是执行批量推理,而是针对一个 亚马逊SageMaker 为我们自动创建的推理端点。

除了自动端点部署提供的便利之外,我们还演示了如何将所有 Data Wrangler 功能转换部署为 SageMaker 串行推理管道。 这可以在推理时通过重用 Data Wrangler 特征转换来自动预处理原始数据。

请注意,此功能目前仅支持不使用连接、分组、连接和时间序列转换的 Data Wrangler 流。

我们可以使用新的 Data Wrangler 与 Autopilot 的集成,直接从 Data Wrangler 数据流 UI 训练模型。

  1. 选择旁边的加号 刻度值 节点,然后选择 火车模型.
  2. 针对 亚马逊 S3 位置,指定 亚马逊简单存储服务 (Amazon S3) SageMaker 导出数据的位置。
    如果默认提供根存储桶路径,Data Wrangler 会在其下创建一个唯一的导出子目录——除非您愿意,否则您无需修改​​此默认根路径。Autopilot 使用此位置自动训练模型,节省您无需定义 Data Wrangler 流的输出位置,然后定义 Autopilot 训练数据的输入位置。 这带来了更加无缝的体验。
  3. 出口和培训 将转换后的数据导出到 Amazon S3。
    使用 Amazon SageMaker Data Wrangler 和 Amazon SageMaker Autopilot 进行统一的数据准备、模型训练和部署 - 第 2 部分 PlatoBlockchain 数据智能。 垂直搜索。 哎。
    导出成功后,您将被重定向到 创建 Autopilot 实验 页,与 输入数据 S3 位置已为您填写(它是从上一页的结果中填充的)。
  4. 针对 实验名称, 输入名称(或保留默认名称)。
  5. 针对 目标,选择 成果 作为您要预测的列。
  6. 下一篇:训练方法.
    使用 Amazon SageMaker Data Wrangler 和 Amazon SageMaker Autopilot 进行统一的数据准备、模型训练和部署 - 第 2 部分 PlatoBlockchain 数据智能。 垂直搜索。 哎。

如帖子中所述 借助由 AutoGluon 提供支持的新集成训练模式,Amazon SageMaker Autopilot 的速度提高了八倍,您可以让 Autopilot 根据数据集大小自动选择训练模式,或者手动选择训练模式以进行集成或超参数优化 (HPO)。

每个选项的详细信息如下:

  • 汽车 – Autopilot 根据您的数据集大小自动选择集成或 HPO 模式。 如果您的数据集大于 100 MB,Autopilot 会选择 HPO; 否则它选择集成。
  • 合奏 – 自动驾驶仪使用 自动胶 集成技术来训练几个基本模型,并使用模型堆叠将它们的预测组合成一个最佳预测模型。
  • 超参数优化 – Autopilot 通过使用贝叶斯优化技术调整超参数并在数据集上运行训练作业来找到模型的最佳版本。 HPO 选择与您的数据集最相关的算法,并选择最佳范围的超参数来调整模型。对于我们的示例,我们保留默认选择 汽车.
  1. Next: 部署和高级设置 继续。
    使用 Amazon SageMaker Data Wrangler 和 Amazon SageMaker Autopilot 进行统一的数据准备、模型训练和部署 - 第 2 部分 PlatoBlockchain 数据智能。 垂直搜索。 哎。
  2. 点击 部署和高级设置 页面,选择一个部署选项。
    更详细地了解部署选项很重要; 我们选择的内容将影响我们之前在 Data Wrangler 中所做的转换是否将包含在推理管道中:
    • 使用 Data Wrangler 的转换自动部署最佳模型 – 使用此部署选项,当您在 Data Wrangler 中准备数据并通过调用 Autopilot 训练模型时,训练后的模型将与所有 Data Wrangler 功能转换一起部署为 SageMaker 串行推理管道. 这可以在推理时通过重用 Data Wrangler 特征转换来自动预处理原始数据。 请注意,推理端点希望您的数据格式与导入 Data Wrangler 流时的格式相同。
    • 自动部署最佳模型,无需从 Data Wrangler 进行转换 – 此选项部署不使用 Data Wrangler 转换的实时端点。 在这种情况下,您需要在推理之前将 Data Wrangler 流中定义的转换应用于您的数据。
    • 不要自动部署最佳模型 – 当您根本不想创建推理端点时,您应该使用此选项。 如果您想生成一个供以后使用的最佳模型(例如本地运行的批量推理),它会很有用。 (这是我们在本系列的第 1 部分中选择的部署选项。)请注意,当您选择此选项时,创建的模型(通过 SageMaker SDK 从 Autopilot 的最佳候选者)包括作为 SageMaker 串行推理管道的 Data Wrangler 功能转换。

    对于这篇文章,我们使用 使用 Data Wrangler 的转换自动部署最佳模型 选项。

  3. 针对 部署选项, 选择 使用 Data Wrangler 的转换自动部署最佳模型.
  4. 将其他设置保留为默认值。
  5. 下一个:查看和创建 继续。
    点击 查看并创建 页面,我们会看到为我们的 Autopilot 实验选择的设置摘要。
  6. 创建实验 开始模型创建过程。
    使用 Amazon SageMaker Data Wrangler 和 Amazon SageMaker Autopilot 进行统一的数据准备、模型训练和部署 - 第 2 部分 PlatoBlockchain 数据智能。 垂直搜索。 哎。

您将被重定向到 Autopilot 作业描述页面。 模型显示在 型号 选项卡,因为它们是生成的。 要确认该过程已完成,请转到 工作档案 选项卡并查找 Completed 的价值 Status 领域。

您可以随时从以下位置返回此 Autopilot 职位描述页面 亚马逊SageMaker Studio:

  1. 实验和试验SageMaker资源 下拉式菜单。
  2. 选择您创建的 Autopilot 作业的名称。
  3. 选择(右键单击)实验并选择 描述 AutoML 作业.

查看培训和部署

Autopilot 完成实验后,我们可以从 Autopilot 职位描述页面查看训练结果并探索最佳模型。

选择(右键单击)标记为的模型 最佳模型,并选择 在模型详细信息中打开.

使用 Amazon SageMaker Data Wrangler 和 Amazon SageMaker Autopilot 进行统一的数据准备、模型训练和部署 - 第 2 部分 PlatoBlockchain 数据智能。 垂直搜索。 哎。

性能 选项卡显示几个模型测量测试,包括混淆矩阵、精度/召回曲线下面积 (AUCPR) 和接收器操作特征曲线下面积 (ROC)。 这些说明了模型的整体验证性能,但它们并没有告诉我们模型是否能很好地泛化。 我们仍然需要对看不见的测试数据进行评估,以了解模型做出预测的准确度(对于这个例子,我们预测一个人是否会患有糖尿病)。

针对实时端点执行推理

创建一个新的 SageMaker 笔记本以执行实时推理以评估模型性能。 在笔记本中输入以下代码以运行实时推理以进行验证:

import boto3

### Define required boto3 clients

sm_client = boto3.client(service_name="sagemaker")
runtime_sm_client = boto3.client(service_name="sagemaker-runtime")

### Define endpoint name

endpoint_name = ""

### Define input data

payload_str = '5,166.0,72.0,19.0,175.0,25.8,0.587,51'
payload = payload_str.encode()
response = runtime_sm_client.invoke_endpoint(
    EndpointName=endpoint_name,
    ContentType="text/csv",
    Body=payload,
)

response["Body"].read()

设置代码以在笔记本中运行后,您需要配置两个变量:

  • endpoint_name
  • payload_str

配置端点名称

endpoint_name 表示部署为我们自动创建的实时推理端点的名称。 在我们设置它之前,我们需要找到它的名字。

  1. 端点SageMaker资源 下拉式菜单。
  2. 找到端点的名称,该端点的名称与您创建的 Autopilot 作业的名称相同,并附加了一个随机字符串。
  3. 选择(右键单击)实验,然后选择 描述端点.
    使用 Amazon SageMaker Data Wrangler 和 Amazon SageMaker Autopilot 进行统一的数据准备、模型训练和部署 - 第 2 部分 PlatoBlockchain 数据智能。 垂直搜索。 哎。
    端点详细信息 页面出现。
  4. 突出显示完整的端点名称,然后按 按Ctrl + C 将其复制到剪贴板。
    使用 Amazon SageMaker Data Wrangler 和 Amazon SageMaker Autopilot 进行统一的数据准备、模型训练和部署 - 第 2 部分 PlatoBlockchain 数据智能。 垂直搜索。 哎。
  5. 输入这个值(确保它被引用) endpoint_name 在推理笔记本中。
    使用 Amazon SageMaker Data Wrangler 和 Amazon SageMaker Autopilot 进行统一的数据准备、模型训练和部署 - 第 2 部分 PlatoBlockchain 数据智能。 垂直搜索。 哎。

配置payload_str

笔记本带有一个默认的有效负载字符串 payload_str 您可以使用它来测试端点,但可以随意尝试不同的值,例如来自测试数据集的值。

要从测试数据集中提取值,请按照中的说明进行操作 部分1 将测试数据集导出到 Amazon S3。 然后在 Amazon S3 控制台上,您可以下载它并选择行以使用来自 Amazon S3 的文件。

测试数据集中的每一行都有九列,最后一列是 outcome 价值。 对于此笔记本代码,请确保您仅使用单个数据行(而不是 CSV 标题) payload_str. 还要确保你只发送一个 payload_str 有八列,您已在其中删除了结果值。

例如,如果您的测试数据集文件类似于以下代码,并且我们想要对第一行执行实时推理:

Pregnancies,Glucose,BloodPressure,SkinThickness,Insulin,BMI,DiabetesPedigreeFunction,Age,Outcome 
10,115,0,0,0,35.3,0.134,29,0 
10,168,74,0,0,38.0,0.537,34,1 
1,103,30,38,83,43.3,0.183,33,0

我们设置 payload_str10,115,0,0,0,35.3,0.134,29. 请注意我们如何省略 outcome 价值 0 最后。

如果您的数据集的目标值不是第一个或最后一个值,只需删除逗号结构完整的值即可。 例如,假设我们正在预测 bar,我们的数据集看起来像以下代码:

foo,bar,foobar
85,17,20

在这种情况下,我们设置 payload_str85,,20.

当笔记本以正确配置运行时 payload_strendpoint_name 值,您会以以下格式返回 CSV 响应 outcome (0 或 1), confidence (0 1)。

打扫干净

为确保您在完成本教程后不会产生与教程相关的费用,请务必关闭 Data Wrangler 应用程序 (https://docs.aws.amazon.com/sagemaker/latest/dg/data-wrangler-shut-down.html),以及用于执行推理任务的所有笔记本实例。 应删除通过 Auto Pilot 部署创建的推理端点,以防止产生额外费用。

结论

在这篇文章中,我们演示了如何使用 Data Wrangler 和 Autopilot 集成您的数据处理、特色工程和模型构建。 在本系列的第 1 部分的基础上,我们重点介绍了如何直接从 Data Wrangler 用户界面使用 Autopilot 轻松训练、调整和部署模型到实时推理端点。 除了自动端点部署提供的便利之外,我们还演示了如何将所有 Data Wrangler 功能转换部署为 SageMaker 串行推理管道,提供原始数据的自动预处理,并在以下位置重用 Data Wrangler 功能转换推理的时间。

像 Data Wrangler 和 Autopilot 这样的低代码和 AutoML 解决方案无需具备深厚的编码知识来构建强大的 ML 模型。 开始使用数据管理员 今天来体验使用 Autopilot 构建 ML 模型是多么容易。


关于作者

使用 Amazon SageMaker Data Wrangler 和 Amazon SageMaker Autopilot 进行统一的数据准备、模型训练和部署 - 第 2 部分 PlatoBlockchain 数据智能。 垂直搜索。 哎。杰里米·科恩 是 AWS 的解决方案架构师,他帮助客户构建基于云的尖端解决方案。 在业余时间,他喜欢在海滩上短途散步,和家人一起探索海湾地区,修理房子周围的东西,破坏房子周围的东西,以及烧烤。

使用 Amazon SageMaker Data Wrangler 和 Amazon SageMaker Autopilot 进行统一的数据准备、模型训练和部署 - 第 2 部分 PlatoBlockchain 数据智能。 垂直搜索。 哎。普拉迪普·雷迪 是 SageMaker Low/No Code ML 团队的高级产品经理,该团队包括 SageMaker Autopilot、SageMaker Automatic Model Tuner。 工作之余,Pradeep 喜欢阅读、跑步和使用 raspberry pi 等手掌大小的计算机和其他家庭自动化技术进行探索。

使用 Amazon SageMaker Data Wrangler 和 Amazon SageMaker Autopilot 进行统一的数据准备、模型训练和部署 - 第 2 部分 PlatoBlockchain 数据智能。 垂直搜索。 哎。何约翰博士 是 Amazon AI 的高级软件开发工程师,专注于机器学习和分布式计算。 他拥有 CMU 的博士学位。

时间戳记:

更多来自 AWS机器学习