使用 Amazon SageMaker Canvas 进行生成式 AI 驱动的数据准备和无代码机器学
利用 Amazon SageMaker Canvas 执行无代码 ML 和生成性 AI 数据准备
主要收获
Amazon SageMaker Canvas 支持处理大型数据集可达 PB 级,使得数据准备与机器学习模型创建过程更加高效简化。企业无需具备深厚的数据工程专业知识,即可快速准备数据,运行自动机器学习AutoML实验。通过自然语言界面和少量点击,可以轻松地从数据导入到模型训练,适合实际商业应用。Amazon SageMaker Canvas 现在让企业能充分利用其数据,支持 PB 级别的数据集。从今天开始,用户可以互动地准备大型数据集,创建端到端的数据流,并在 PB 级数据上启动自动化的机器学习AutoML实验,这是一个相较于之前 5 GB 限制的重大飞跃。通过 50 多个连接器和直观的 Chat for data prep 介面,SageMaker Canvas 提供了一种可扩展的低代码/无代码 (LCNC) 机器学习解决方案,能够应对真实世界中的企业用例。
很多组织在提取有意义的洞察和价值方面面临挑战,随著数据量的不断增长,他们需要拥有数据工程专业知识和时间来开发适当的脚本和管道以清理和转换数据。随后,还需要用域专业知识实验多个模型和超参数,并管理复杂的集群来处理和训练他们的 ML 模型。
从今天开始,您可以通过几次点击和聊天准备 PB 级数据并探索多个 ML 模型。在本文中,我们将展示如何使用 SageMaker Canvas 和 Amazon EMR Serverless 完成所有这些步骤,而无需编写代码。

解决方案概述
在这篇文章中,我们将使用一个包含 33 GB CSV 文件的示例数据集,该数据集包含 Expedia 2022 年 4 月 16 日至 10 月 5 日的航班购买交易。我们将利用这些特征预测票价,依据因素包括航班日期、距离、座位类型等。
在接下来的部分,我们将展示如何在 SageMaker Canvas 中导入和准备数据,选择性地导出数据、创建模型并运行推断。
前提条件
您可以按照以下步骤来操作:
设置 SageMaker Canvas。下载 Kaggle 上的数据集,并将其上传到 Amazon S3 存储桶中。在 AWS 控制台中为您的 SageMaker 用户资料和/或 SageMaker 域启用 Amazon EMR Serverless 的大数据处理如下面截图所示。阅读更多关于启用大数据处理的详细步骤 这里。在 SageMaker Canvas 中导入数据
我们将通过 Amazon SageMaker Data Wrangler 在 SageMaker Canvas 中导入数据。请按照以下步骤操作:
在 SageMaker Canvas 中,选择导航面板中的 Data Wrangler。在 Data flows 标签下,从 Import and prepare 下拉菜单中选择 Tabular。输入文件的 S3 URI,然后选择 Go,接著选择 Next。为数据集命名,在 Sampling method 中选择 Random,然后选择 Import。使用 SageMaker Data Wrangler 导入数据,使您能够在扩展数据准备流程至整个数据集之前,与数据的样本进行交互,这样可以提高效率。在 SageMaker Data Wrangler 完成导入后,您可以开始转换数据集。
在您导入数据集之后,可以首先查看 数据质量洞察报告,了解 SageMaker Canvas 对于提高数据质量的建议,从而提升模型的性能。
在流程中,为该节点选择选项菜单三个点,然后选择 Get data insights。为您的分析命名,选择 Regression 作为 Problem type,选择 baseFare 作为 Target column,选择 Sampled dataset 作为 Data Size,然后选择 Create。评估数据质量并分析报告的结果通常是第一步,因为这可以指导接下来的数据准备步骤。在报告中,您将找到数据集统计信息、高优先级警告例如目标泄漏、偏斜性、异常情况和特征摘要。
使用 SageMaker Canvas 准备数据
现在您应该了解数据集的特征和潜在问题,接下来可以使用 SageMaker Canvas 中的 Chat for data prep 功能来简化数据准备,该功能使用自然语言提示来执行。这种基于生成性人工智能的能力减少了数据准备过程中所需的时间、精力和专业知识。
选择顶部标签中的 flow 文件,以返回您的流程画布。选择节点的选项菜单,然后选择 Chat for data prep。在我们的第一次例子中,将 searchDate 和 flightDate 转换为日期时间格式可能有助于我们执行日期计算,并提取年、月、日以及 searchDate 和 flightDate 之间的天数差。这些特征可以帮助找出影响 baseFare 的时间模式。
提供一个提示,例如“将 searchDate 和 flightDate 转换为日期时间格式”,查看生成的代码并选择 Add to steps。除了通过聊天界面进行数据准备之外,您还可以使用 SageMaker Data Wrangler 界面中的 LCNC 转换来变换数据。例如,我们将使用一位独热编码技术将类别数据转换为数字格式。
添加转换 Encode categorical。选择 Onehot encode 作为转换类型,并添加以下列:startingAirport、destinationAirport、fareBasisCode、segmentsArrivalAirportCode、segmentsDepartureAirportCode、segmentsAirlineName、segmentsAirlineCode、segmentsEquipmentDescription 和 segmentsCabinCode。您可以使用 SageMaker Canvas 中的高级搜索和过滤选项来选择字符串数据类型的列,以简化这个过程。
有关使用 SageMaker Data Wrangler 的其他示例,请参阅 SageMaker Canvas 博客。在本篇中,我们通过这两个步骤简化了工作,但我们鼓励您同时使用聊天和转换来添加自己的数据准备步骤。在我们的测试中,我们成功地通过聊天运行了所有数据准备步骤,使用了以下的一些提示作为示例:
“添加另一个步骤以提取相关特征,如年、月、日和星期几,以增强我们数据集的时间特征。”“让 Canvas 将 travelDuration、segmentsDurationInSeconds 和 segmentsDistance 列从字符串转换为数字。”“通过对 totalTravelDistance 列进行插值,使用均值填补缺失值,并将 segmentsEquipmentDescription 列的缺失值替换为 Unknown。”“将布林列 isBasicEconomy、isRefundable 和 isNonStop 转换为整数格式0 和 1。”“使用 scikitlearn 的标准化缩放器对 totalFare、seatsRemaining 和 totalTravelDistance 数值特征进行缩放。”当这些步骤完成后,您可以进入处理完整数据集和创建模型的下一步。
(可选) 使用 EMR Serverless 任务向 Amazon S3 导出数据
您可以通过运行数据流来处理整个 33 GB 数据集,使用 EMR Serverless 完成数据准备任务,无需担心基础设施具体问题。
在流程图的最后一个节点中,选择 Export 和 Export data to Amazon S3。提供数据集名称和输出位置。除非您想要更改任何 Amazon EMR 或 SageMaker 处理配置,建议保持选中 Auto job configuration如果您的数据超过 5 GB,则数据处理将在 EMR Serverless 中运行,否则将在 SageMaker Canvas 工作区内运行。在 EMR Serverless 下,提供任务名称,然后选择 Export。加速器软件免费您可以在 SageMaker Canvas 的 Data Wrangler 页面上的 Jobs 标签中查看作业状态。
您还可以通过在 Amazon EMR Studio 控制台中选择导航面板中的 Serverless 下的 Applications 来查看作业状态。
创建模型
在您的流程结束时,您还可以创建模型。
从节点选项中选择 Create model,SageMaker Canvas 将创建一个数据集,然后导航您创建模型。提供数据集和模型名称,选择 Predictive analysis 作为 Problem type,选择 baseFare 作为目标列,然后选择 Export and create model。模型创建过程将需要几分钟完成。
在导航面板中选择 My Models。选择您刚刚导出的模型并导航到版本 1。在 Model type 下选择 Configure model。选择 Numeric model type,然后选择 Save。在下拉菜单中选择 Quick Build 开始构建过程。当构建完成后,在 Analyze 页面上,您可以查看以下标签:
Overview 根据模型类型提供模型性能的总体概述。Scoring 提供可用于深入了解模型性能的可视化,超越整体准确性指标。Advanced metrics 包含模型的高级指标分数和其他信息,能够深入了解模型性能。此外,您还可以查看各列的影响信息。运行推断
在此部分,我们将逐步讲解如何对生成的数据集进行批量预测。
在 Analyze 页面上,选择 Predict。要生成对测试数据集的预测,选择 Manual。选择您创建的测试数据集,然后选择 Generate predictions。当预测准备就绪时,选择底部弹出消息中的 View,或者在选项菜单三个点中导航至 Status 列,选择 Preview。您现在可以查看预测结果。
您已经利用 SageMaker Canvas 的生成性 AI 数据准备功能准备了大型数据集,使用 AutoML 技术训练了一个模型,并进行了批量预测。所有这些都仅使用少量点击且通过自然语言界面完成。
清理
为了避免未来产生会话费用,请登出 SageMaker Canvas。要登出,请在 SageMaker Canvas 应用的导航面板中选择 Log out。
登出 SageMaker Canvas 时,您的模型和数据集不会受到影响,但 SageMaker Canvas 会取消任何 Quick