这篇文章由来自 Vericast 的 Jyoti Sharma 和 Sharmo Sarkar 共同撰写。
对于任何机器学习 (ML) 问题,数据科学家都从处理数据开始。 这包括收集、探索和理解数据的业务和技术方面,以及对模型构建过程可能需要的任何操作的评估。 这种数据准备的一个方面是特征工程。
特征工程 指的是识别、选择和操纵相关变量以将原始数据转换为更有用和可用的形式以与用于训练模型和对其执行推理的 ML 算法一起使用的过程。 此过程的目标是提高算法和生成的预测模型的性能。 特征工程过程需要几个阶段,包括特征创建、数据转换、特征提取和特征选择。
对于需要生成具有不同数据集的许多 ML 模型的客户来说,为通用特征工程构建平台是一项常见任务。 这种平台包括创建以编程方式驱动的流程,以生成最终的特征工程数据,为模型训练做好准备,几乎不需要人工干预。 然而,泛化特征工程具有挑战性。 每个业务问题都不同,每个数据集都不同,数据量因客户端而异,数据质量和特定列的基数(在结构化数据的情况下)可能在特征工程的复杂性中发挥重要作用过程。 此外,客户数据的动态特性也会导致以最佳方式完成特征工程所需的处理时间和资源的巨大差异。
亚马逊客户 实播 是一家营销解决方案公司,通过数据驱动决策来提高客户的营销投资回报率。 Vericast 内部基于云的机器学习平台围绕 CRISP-ML(Q) 流程构建,使用各种 AWS 服务,包括 亚马逊SageMaker, Amazon SageMaker处理, AWS Lambda及 AWS步骤功能,以生成针对特定客户数据量身定制的最佳模型。 该平台旨在捕获构建各种 ML 工作流的步骤的可重复性,并将它们捆绑到平台内的标准可通用工作流模块中。
在本文中,我们分享了 Vericast 如何使用 SageMaker Processing 优化特征工程。
解决方案概述
Vericast 的机器学习平台有助于根据现有工作流程更快地部署新业务模型,或为新客户更快地激活现有模型。 例如,预测直邮倾向的模型与预测 Vericast 客户的折扣优惠券敏感性的模型大不相同。 它们解决不同的业务问题,因此在营销活动设计中具有不同的使用场景。 但从 ML 的角度来看,两者都可以解释为二元分类模型,因此可以从 ML 工作流的角度共享许多共同的步骤,包括模型调整和训练、评估、可解释性、部署和推理。
因为这些模型是二元分类问题(在 ML 术语中),我们将公司的客户分为两类(二元):那些会对活动做出积极反应的人和那些不会的人。 此外,这些示例被认为是不平衡的分类,因为用于训练模型的数据不会包含相同数量的客户,这些客户会做出积极回应,也不会做出积极回应。
此类模型的实际创建遵循下图所示的通用模式。
除特征工程步骤外,此过程的大部分对于任何二元分类都是相同的。 这可能是该过程中最复杂但有时被忽视的步骤。 ML 模型在很大程度上取决于用于创建它的特征。
Vericast 的云原生机器学习平台旨在为各种 ML 工作流概括和自动化特征工程步骤,并通过使用以下特征在成本与时间指标上优化它们的性能:
- 平台的特征工程库 – 这包括一组不断发展的转换,这些转换已经过测试,可以根据特定的客户概念(例如,客户人口统计、产品详细信息、交易详细信息等)产生高质量的可概括特征。
- 智能资源优化器 – 该平台使用 AWS 的按需基础设施功能,根据步骤的预期复杂性和需要处理的数据量,为特定的特征工程作业启动最佳类型的处理资源。
- 特征工程作业的动态缩放 – 为此使用了各种 AWS 服务的组合,但最著名的是 SageMaker Processing。 这可确保该平台以经济高效的方式及时生成高质量的功能。
这篇文章主要围绕此列表中的第三点,展示如何实现 SageMaker 处理作业的动态扩展,从而为大数据量实现更具管理性、性能和成本效益的数据处理框架。
SageMaker Processing 支持在 SageMaker 上运行数据预处理或后处理、特征工程、数据验证和模型评估步骤的工作负载。 它还提供了一个托管环境,并消除了设置和维护运行工作负载所需的基础设施所需的无差别繁重工作的复杂性。 此外,SageMaker Processing 提供了一个 API 接口,用于运行、监控和评估工作负载。
运行 SageMaker 处理作业完全在托管的 SageMaker 集群中进行,各个作业在运行时放置在实例容器中。 托管集群、实例和容器向 亚马逊CloudWatch,包括 GPU、CPU、内存、GPU 内存、磁盘指标和事件日志的使用情况。
这些功能通过协助开发通用预处理工作流和抽象维护运行它们的生成环境的困难,为 Vericast 数据工程师和科学家提供了好处。 然而,考虑到数据的动态特性及其可以输入此类通用解决方案的各种特性,可能会出现技术问题。 系统必须对集群的大小和组成集群的实例进行有根据的初步猜测。 这种猜测需要评估数据的标准并推断出 CPU、内存和磁盘要求。 这种猜测可能是完全合适的并且足以胜任这项工作,但在其他情况下可能并非如此。 对于给定的数据集和预处理作业,CPU 可能容量不足,从而导致处理性能最大化和完成时间过长。 更糟糕的是,内存可能成为一个问题,导致性能不佳或内存不足事件导致整个作业失败。
考虑到这些技术障碍,Vericast 着手创建解决方案。 它们需要在本质上保持通用性,并适应预处理工作流程的大局,在所涉及的步骤中要灵活。 同样重要的是,要解决在性能受到损害的情况下扩展环境的潜在需求,以及从此类事件或工作因任何原因提前完成时从容恢复的需求。
Vericast 为解决此问题而构建的解决方案使用多个 AWS 服务协同工作以实现其业务目标。 它旨在根据使用监控作业的 Lambda 函数观察到的性能指标重新启动和扩展 SageMaker Processing 集群。 为了在发生扩展事件时不丢失工作或从意外停止的作业中恢复,基于检查点的服务已到位,该服务使用 Amazon DynamoDB 并将部分处理的数据存储在 亚马逊简单存储服务 (Amazon S3) 存储桶作为步骤完成。 最终结果是一个自动缩放、健壮且动态监控的解决方案。
下图显示了系统工作原理的高级概述。
在以下部分中,我们将更详细地讨论解决方案组件。
初始化解决方案
系统假定一个单独的进程启动解决方案。 相反,此设计不是为单独工作而设计的,因为它不会产生任何工件或输出,而是作为使用 SageMaker 处理作业的系统之一的边车实现。 在 Vericast 的案例中,解决方案是通过从更大系统的另一个模块中启动的 Step Functions 步骤调用来启动的。
启动解决方案并触发首次运行后,将从 DynamoDB 表中读取基本标准配置。 此配置用于为 SageMaker 处理作业设置参数,并具有基础设施需求的初始假设。 SageMaker 处理作业现已启动。
监控元数据和输出
当作业启动时,Lambda 函数将作业处理元数据(当前作业配置和其他日志信息)写入 DynamoDB 日志表。 此元数据和日志信息维护作业的历史记录、其初始和正在进行的配置以及其他重要数据。
在某些时候,随着作业中步骤的完成,检查点数据会添加到 DynamoDB 日志表中。 处理后的输出数据将移至 Amazon S3,以便在需要时快速恢复。
此 Lambda 函数还设置了一个 亚马逊EventBridge 监视正在运行的作业的状态的规则。 具体来说,这条规则是watching the job,观察job状态是否变为 stopping
或者是在 stopped
状态。 如果发生故障或计划的自动缩放事件发生,此 EventBridge 规则在重新启动作业方面起着重要作用。
监控 CloudWatch 指标
Lambda 函数还根据处理作业的指标数学表达式设置 CloudWatch 警报,监控所有实例的 CPU 利用率、内存利用率和磁盘利用率指标。 这种类型的警报(指标)使用 CloudWatch 警报阈值。 警报根据多个时间段内相对于阈值的指标或表达式的值生成事件。
在 Vericast 的用例中,阈值表达式旨在将驱动程序和执行程序实例视为独立的,并为每个单独监控指标。 通过将它们分开,Vericast 知道是哪个引起了警报。 这对于决定如何相应地扩展很重要:
- 如果执行器指标超过阈值,则最好水平扩展
- 如果驱动指标超过阈值,水平扩展可能无济于事,所以我们必须垂直扩展
告警指标表达式
Vericast 可以在其扩展和失败评估中访问以下指标:
- CPU利用率 – 每个单独 CPU 核心的利用率总和
- 内存利用率 – 实例上容器使用的内存百分比
- 磁盘利用率 – 实例上容器使用的磁盘空间百分比
- GPU利用率 – 实例上容器使用的 GPU 单元的百分比
- GPU内存利用率 – 实例上容器使用的 GPU 内存百分比
在撰写本文时,Vericast 仅考虑 CPUUtilization
, MemoryUtilization
及 DiskUtilization
. 未来,他们打算考虑 GPUUtilization
和 GPUMemoryUtilization
以及。
以下代码是基于 Vericast 自动缩放的指标数学表达式的 CloudWatch 警报示例:
此表达式说明 CloudWatch 警报正在考虑 DriverMemoryUtilization (memoryDriver)
, CPUUtilization (cpuDriver)
, DiskUtilization (diskDriver)
, ExecutorMemoryUtilization (memoryExec)
, CPUUtilization (cpuExec)
及 DiskUtilization (diskExec)
作为监控指标。 上述表达式中的数字 80 代表阈值。
在这里, IF((cpuDriver) > 80, 1, 0
意味着如果驱动程序 CPU 利用率超过 80%,则将 1 指定为阈值,否则为 0。 IF(AVG(METRICS("memoryExec")) > 80, 1, 0
意味着所有带有字符串的指标 memoryExec
其中考虑并计算平均值。 如果平均内存利用率超过 80,则将 1 指定为阈值,否则指定为 0。
逻辑运算符 OR
在表达式中用于统一表达式中的所有利用率——如果任何利用率达到其阈值,则触发警报。
有关使用基于指标数学表达式的 CloudWatch 指标警报的更多信息,请参阅 基于指标数学表达式创建 CloudWatch 警报.
CloudWatch 警报限制
CloudWatch 将每个警报的指标数量限制为 10。如果您需要考虑比这更多的指标,这可能会导致限制。
为了克服这个限制,Vericast 根据整体集群大小设置了警报。 每三个实例创建一个警报(对于三个实例,将有一个警报,因为这将添加多达九个指标)。 假设要单独考虑驱动程序实例,则为驱动程序实例创建另一个单独的警报。 因此,创建的警报总数大致相当于执行器节点数的三分之一和驱动程序实例的另外一个。 在每种情况下,每个警报的指标数都在 10 个指标限制以下。
处于警报状态时会发生什么
如果达到预定阈值,则警报进入 alarm
状态,它使用 亚马逊简单通知服务 (Amazon SNS) 发送通知。 在这种情况下,它会向所有订阅者发送电子邮件通知,并在消息中提供有关警报的详细信息。
Amazon SNS 还用作 Lambda 函数的触发器,该函数停止当前正在运行的 SageMaker 处理作业,因为我们知道该作业可能会失败。 该功能还将日志记录到与事件相关的日志表中。
在作业开始时设置的 EventBridge 规则会注意到作业已经进入 stopping
几秒钟后状态。 然后,此规则重新运行第一个 Lambda 函数以重新启动作业。
动态缩放过程
运行两次或更多次后的第一个 Lambda 函数将知道之前的作业已经开始,现在已经停止。 该函数将通过类似的过程从日志 DynamoDB 表中的原始作业获取基本配置,还将从内部表中检索更新的配置。 此更新的配置是基于扩展类型设置的资源增量配置。 如前所述,缩放类型根据警报元数据确定。
使用原始配置加上资源增量,因为新配置和新的 SageMaker 处理作业是使用增加的资源启动的。
此过程一直持续到作业成功完成,并可能导致根据需要多次重新启动,每次都添加更多资源。
Vericast的结果
这种定制的自动缩放解决方案有助于使 Vericast 的机器学习平台更加健壮和容错。 该平台现在可以在最少的人工干预下优雅地处理不同数据量的工作负载。
在实施此解决方案之前,估算管道中所有基于 Spark 的模块的资源需求是新客户入职流程的最大瓶颈之一。 如果客户端数据量增加,工作流将失败,或者如果生产中的数据量减少,成本将不合理。
有了这个新模块,由于资源限制导致的工作流失败减少了近 80%。 少数剩余的失败主要是由于 AWS 账户限制和超出自动扩展过程。 Vericast 使用此解决方案的最大收获是他们可以轻松地加入新客户和工作流程。 Vericast 预计该过程将至少加快 60-70%,但仍需收集最终数字的数据。
虽然这被 Vericast 视为成功,但它也需要付出代价。 基于此模块的性质和整体动态缩放的概念,与工作流中每个模块具有自定义调整集群的工作流相比,工作流往往需要大约 30% 的时间(平均情况)。 Vericast 继续在此领域进行优化,希望通过为每个客户端模块合并基于启发式的资源初始化来改进解决方案。
Vericast 机器学习平台高级经理 Sharmo Sarkar 说:“随着我们继续扩大对 AWS 和 SageMaker 的使用,我想花点时间强调我们的 AWS 客户服务团队、敬业的 AWS 解决方案架构师、以及与我们合作的 AWS 专业服务。 他们对 AWS 和 SageMaker 的深刻理解使我们能够设计出满足我们所有需求的解决方案,并为我们提供所需的灵活性和可扩展性。 我们非常感谢有这样一支才华横溢、知识渊博的支持团队站在我们这边。”
结论
在本文中,我们分享了 SageMaker 和 SageMaker Processing 如何使 Vericast 能够为大数据量构建一个托管、高性能且经济高效的数据处理框架。 通过将 SageMaker Processing 的强大功能和灵活性与其他 AWS 服务相结合,他们可以轻松监控通用特征工程流程。 他们可以自动检测由于缺乏计算、内存和其他因素而产生的潜在问题,并根据需要自动实施垂直和水平扩展。
SageMaker 及其工具也可以帮助您的团队实现其 ML 目标。 要了解有关 SageMaker Processing 的更多信息以及它如何协助您的数据处理工作负载,请参阅 处理数据. 如果您刚刚开始使用 ML 并正在寻找示例和指导, 亚马逊SageMaker JumpStart 可以让你开始。 JumpStart 是一个 ML 中心,您可以从中访问带有预训练基础模型的内置算法,以帮助您执行文章摘要和图像生成等任务,以及解决常见用例的预构建解决方案。
最后,如果这篇文章能帮助您或启发您解决问题,我们很乐意听到! 请分享您的意见和反馈。
作者简介
安东尼麦克卢尔 是 AWS SaaS Factory 团队的高级合作伙伴解决方案架构师。 Anthony 还对机器学习和人工智能有着浓厚的兴趣,他与 AWS ML/AI 技术领域社区合作,帮助客户将他们的机器学习解决方案变为现实。
乔蒂·夏尔马(Jyoti Sharma) 是 Vericast 机器学习平台团队的一名数据科学工程师。 她热衷于数据科学的各个方面,专注于设计和实施高度可扩展的分布式机器学习平台。
沙莫萨卡 是 Vericast 的高级经理。 他在 Vericast 领导云机器学习平台和营销平台 ML 研发团队。 他在大数据分析、分布式计算和自然语言处理方面拥有丰富的经验。 工作之余,他喜欢骑摩托车、徒步旅行和在山路上骑自行车。
- SEO 支持的内容和 PR 分发。 今天得到放大。
- 柏拉图爱流。 Web3 数据智能。 知识放大。 访问这里。
- 与 Adryenn Ashley 一起铸造未来。 访问这里。
- 使用 PREIPO® 买卖 PRE-IPO 公司的股票。 访问这里。
- Sumber: https://aws.amazon.com/blogs/machine-learning/how-vericast-optimized-feature-engineering-using-amazon-sagemaker-processing/
- :具有
- :是
- :不是
- :在哪里
- $UP
- 1
- 10
- 100
- 15%
- 7
- a
- 关于
- ACCESS
- 因此
- 账号管理
- 活化
- 行为
- 加
- 添加
- 添加
- 额外
- 充分
- 后
- 驳
- 艾滋病
- 目标
- 报警
- 算法
- 算法
- 所有类型
- 单
- 沿
- 已经
- 还
- Amazon
- 亚马逊SageMaker
- 量
- an
- 分析
- 和
- 另一个
- Anthony
- 任何
- API
- 适当
- 架构
- 保健
- 国家 / 地区
- 围绕
- 刊文
- 人造的
- 人工智能
- AS
- 方面
- 方面
- 分配
- 协助
- At
- 汽车
- 自动化
- 自动
- AWS
- AWS专业服务
- 基地
- 基于
- BE
- 因为
- 成为
- 很
- 作为
- 好处
- 最佳
- 超越
- 大
- 大数据运用
- 最大
- 促进
- 都
- 瞻
- 建立
- 建筑物
- 建
- 内建的
- 商业
- 但是
- by
- 计算
- 呼叫
- 营销活动
- CAN
- 可以得到
- 捕获
- 案件
- 例
- 原因
- 造成
- 一定
- 挑战
- 更改
- 程
- 类
- 分类
- 客户
- 客户入职
- 客户
- 云端技术
- 簇
- 码
- 柱
- 组合
- 结合
- 购买的订单均
- 注释
- 相当常见
- 社体的一部分
- 公司
- 完成
- 完成对
- 复杂
- 复杂
- 组件
- 妥协
- 计算
- 计算
- 概念
- 概念
- 配置
- 考虑
- 考虑
- 考虑
- 考虑
- 约束
- 包含
- 集装箱
- 继续
- 继续
- 价格
- 经济有效
- 可以
- 优惠券
- 创建信息图
- 创建
- 创建
- 标准
- USB和Thunderbolt Cross
- 电流
- 目前
- 习俗
- 顾客
- 合作伙伴
- data
- 数据分析
- 资料准备
- 数据处理
- 数据科学
- 数据科学家
- 数据驱动
- 数据集
- 决定
- 决定
- 专用
- 深
- Delta
- 人口统计
- 依赖的
- 部署
- 描述
- 设计
- 设计
- 设计
- 细节
- 详情
- 决心
- 研发支持
- 不同
- 不同的
- 困难
- 直接
- 已优惠
- 讨论
- 分布
- 分布式计算
- 驱动
- 司机
- 两
- 动态
- 动态
- 每
- 此前
- 缓解
- 容易
- 或
- 邮箱地址
- 启用
- 使
- 工程师
- 工程师
- 工程师
- 确保
- 整个
- 环境
- 环境中
- 等于
- 评估
- 评估
- 评估
- 活动
- 事件
- 例子
- 例子
- 除
- 现有
- 扩大
- 预期
- 预计
- 体验
- 探索
- 表达式
- 广泛
- 丰富的经验
- 因素
- 工厂
- 失败
- 失败
- 专栏
- 特征
- 美联储
- 反馈
- 少数
- 部分
- 最后
- 敲定
- (名字)
- 适合
- 高度灵活
- 柔软
- 重点
- 以下
- 如下
- 针对
- 形式
- 基金会
- 骨架
- 止
- 充分
- 功能
- 功能
- 此外
- 未来
- 搜集
- 其他咨询
- 产生
- 产生
- 代
- 得到
- 越来越
- 特定
- Go
- 目标
- 理想中
- GOES
- 非常好
- GPU
- 感谢
- 指导
- 民政事务总署
- 处理
- 发生
- 有
- 有
- he
- 听
- 重
- 举重
- 帮助
- 帮助
- 高水平
- 高品质
- 近期亮点
- 高度
- 历史
- 横
- 水平
- 创新中心
- How To
- 但是
- HTML
- HTTP
- HTTPS
- 中心
- 人
- 跨栏
- i
- 确定
- if
- 说明
- 图片
- 实施
- 履行
- 实施
- 重要
- 改善
- in
- 其他
- 包括
- 包含
- 结合
- 增加
- 增加
- 难以置信
- 个人
- 个别地
- 信息
- 基础设施
- 初始
- 同修
- 例
- 仪器的
- 房源搜索
- 打算
- 兴趣
- 接口
- 内部
- 介入
- 成
- 参与
- 问题
- 问题
- IT
- 它的
- 工作
- 工作机会
- JPG
- 只是
- 类
- 知道
- 缺乏
- 语言
- 大
- 在很大程度上
- 大
- 后来
- 信息
- 学习用品
- 学习
- 最少
- 自学资料库
- 翻新
- 局限性
- 限制
- 范围
- 清单
- 小
- 日志
- 记录
- 合乎逻辑的
- 不再
- 寻找
- 失去
- 爱
- 机
- 机器学习
- 保持
- 维护
- 维护
- 使
- 制作
- 制作
- 管理
- 经理
- 操纵
- 方式
- 许多
- 营销
- 数学
- 可能..
- 满足
- 内存
- 的话
- 元数据
- 公
- 指标
- 可能
- 介意
- 最小
- ML
- 模型
- 模型
- 模块
- 模块
- 时刻
- 显示器
- 监控
- 监控
- 显示器
- 更多
- 最先进的
- 大多
- 山
- 多
- 必须
- 自然
- 自然语言处理
- 自然
- 需求
- 打印车票
- 需要
- 需要
- 全新
- 节点
- 特别是
- 注意..
- 通知
- 通知
- 现在
- 数
- 目标
- 观察
- of
- 经常
- on
- 点播
- 板载
- 前期洽谈
- 一
- 正在进行
- 仅由
- 操作者
- 最佳
- 优化
- 优化
- or
- 原版的
- 其他名称
- 我们的
- 输出
- 成果
- 产量
- 学校以外
- 超过
- 最划算
- 克服
- 简介
- 参数
- 部分
- 特别
- 合伙人
- 通过
- 多情
- 模式
- 百分比
- 演出
- 性能
- 也许
- 期
- 透视
- 图片
- 管道
- 地方
- 计划
- 平台
- 平台
- 柏拉图
- 柏拉图数据智能
- 柏拉图数据
- 播放
- 扮演
- 请
- 加
- 点
- 点
- 贫困
- 可能
- 帖子
- 潜力
- 功率
- 预测
- 以前
- 大概
- 市场问题
- 问题
- 过程
- 处理
- 处理
- 生产
- 产品
- 生产
- 所以专业
- 提供
- 提供
- 提供
- 放
- 质量
- 快速
- 更快
- 研发
- 宁
- 原
- 达到
- 阅读
- 准备
- 现实
- 原因
- 记录
- 恢复
- 恢复
- 减少
- 指
- 有关
- 相应
- 留
- 其余
- 报告
- 必须
- 岗位要求
- 资源
- 资源
- 回应
- 导致
- 导致
- 健壮
- 角色
- περίπου
- 第
- 运行
- 运行
- SaaS的
- sagemaker
- 同
- 说
- 可扩展性
- 可扩展性
- 鳞片
- 缩放
- 缩放解决方案
- 情景
- 科学
- 科学家
- 科学家
- 秒
- 部分
- 选
- 选择
- 提交
- 发送
- 前辈
- 灵敏度
- 分开
- 分离
- 服务
- 特色服务
- 集
- 套数
- 几个
- Share
- 共用的,
- 夏尔马
- 她
- 如图
- 作品
- 侧
- 显著
- 类似
- 简易
- 尺寸
- So
- 方案,
- 解决方案
- 解决
- 太空
- 具体的
- 特别是
- 速度
- 纺
- 实习
- 标准
- 看台
- 开始
- 开始
- 启动
- 州/领地
- Status
- 步
- 步骤
- 仍
- 停止
- 停车
- 车站
- 存储
- 商店
- 串
- 强烈
- 结构化
- 用户
- 成功
- 顺利
- 这样
- SUPPORT
- 系统
- 产品
- 表
- 量身定制
- 采取
- 需要
- 天才
- 任务
- 任务
- 团队
- 队
- 文案
- 条款
- 比
- 这
- 未来
- 其
- 他们
- 然后
- 那里。
- 因此
- 博曼
- 他们
- 第三
- Free Introduction
- 那些
- 三
- 门槛
- 通过
- 次
- 时
- 至
- 一起
- 工具
- 合计
- 培训
- 产品培训
- 交易
- 交易明细
- 改造
- 转型
- 转换
- 触发
- 引发
- 二
- 类型
- 普遍
- 下
- 理解
- 单位
- 直到
- 更新
- us
- 可用
- 用法
- 使用
- 用例
- 用过的
- 运用
- 验证
- 折扣值
- 各个
- 垂直
- 体积
- 卷
- vs
- 通缉
- 是
- 观看
- 方法..
- we
- 井
- ,尤其是
- 这
- WHO
- 全
- 全
- 将
- 赢
- 中
- 工作
- 工作流程
- 加工
- 合作
- 更坏
- 将
- 写作
- 但
- 产量
- 完全
- 您一站式解决方案
- 和风网