这是一篇与 Games24x7 的 Hussain Jagirdar 共同撰写的客座博文。
游戏24x7 是印度最有价值的多游戏平台之一,通过各种技能游戏为超过 100 亿游戏玩家提供娱乐。 他们以“游戏科学”为核心理念,通过整合游戏人工智能、游戏数据科学和游戏用户研究的正交研究方向,实现了围绕游戏动态、游戏平台和玩家的端到端信息学愿景。 AI 和数据科学团队深入研究大量多维数据,并在 AWS 上运行各种用例,例如玩家旅程优化、游戏动作检测、超个性化、客户 360 度等。
Games24x7 采用自动化、数据驱动、人工智能驱动的框架,通过平台上的交互来评估每个玩家的行为,并标记有异常行为的用户。 他们建立了一个深度学习模型 ScarceGAN,该模型专注于从带有小标签和弱标签的多维纵向遥测数据中识别极其稀有或稀缺的样本。 该作品发表于 CIKM'21 提供美容纤体, 开放源码 用于任何纵向遥测数据的稀有类识别。 生产和采用该模型的需求对于在其平台上创建负责任的游戏背后的支柱至关重要,在该平台上,标记的用户可以通过不同的节制和控制之旅。
在这篇文章中,我们分享了 Games24x7 如何使用改进其负责任的游戏平台的培训管道 亚马逊SageMaker.
客户挑战
Games24x7 的 DS/AI 团队使用了 AWS 提供的多种服务,包括 SageMaker 笔记本、 AWS步骤功能, AWS Lambda及 亚马逊电子病历,用于为各种用例构建管道。 为了处理数据分布的漂移,并因此重新训练他们的 ScarceGAN 模型,他们发现现有系统需要更好的 MLOps 解决方案。
在之前通过 Step Functions 的管道中,单个单体代码库运行数据预处理、再训练和评估。 这成为故障排除、添加或删除步骤,甚至是对整体基础架构进行一些小改动的瓶颈。 这个 step-function 实例化了一个实例集群,以从 S3 中提取和处理数据,而预处理、训练和评估的进一步步骤将在单个大型 EC2 实例上运行。 在管道任何一步失败的情况下,整个工作流都需要从头开始重新启动,这会导致重复运行并增加成本。 所有训练和评估指标都是从 Amazon Simple Storage Service (Amazon S3) 手动检查的。 没有机制来传递和存储在模型上完成的多个实验的元数据。 由于分散的模型监控,彻底调查和挑选最佳模型需要数据科学团队花费数小时。 所有这些努力的累积导致了团队生产力的降低和管理费用的增加。 此外,对于一个快速成长的团队,在整个团队中分享这些知识非常具有挑战性。
由于 MLOps 概念非常广泛,实施所有步骤需要时间,因此我们决定在第一阶段解决以下核心问题:
- 一个安全、受控和模板化的环境,用于使用行业最佳实践重新训练我们的内部深度学习模型
- 一个参数化的训练环境,用于为每个再训练作业发送一组不同的参数并审核最后一次运行
- 能够直观地跟踪训练指标和评估指标,并具有元数据来跟踪和比较实验
- 能够单独扩展每个步骤并在步骤失败的情况下重用之前的步骤
- 用于注册模型、存储功能和调用推理管道的单一专用环境
- 一个现代工具集,可以通过结合针对不同步骤使用不同实例的灵活性,最大限度地减少计算要求、降低成本并推动可持续的 ML 开发和操作
- 创建可用于各种数据科学团队的最先进 MLOps 管道基准模板
Games24x7 开始评估其他解决方案,包括 Amazon SageMaker Studio 管道. 通过 Step Functions 的现有解决方案存在局限性。 Studio 管道可以灵活地在任何时间点添加或删除步骤。 此外,可以通过 DAG 可视化整体架构及其每个步骤之间的数据依赖关系。 在我们采用不同的 Amazon SageMaker 功能(例如 Amazon SageMaker Studio、Pipelines、Processing、Training、模型注册以及实验和试验)之后,重新训练步骤的评估和微调变得非常有效。 AWS 解决方案架构团队展示了深入的研究,并在该解决方案的设计和实施中发挥了重要作用。
解决方案概述
下图说明了解决方案体系结构。
该解决方案使用 SageMaker 工作室 运行再训练实验的环境。 Studio 笔记本中提供了调用管道脚本的代码,我们可以在调用管道时更改超参数和输入/输出。 这与我们之前的方法截然不同,在之前的方法中,我们将所有参数硬编码在脚本中,并且所有过程都密不可分。 这需要将整体代码模块化为不同的步骤。
下图说明了我们最初的整体流程。
模块化
为了单独扩展、跟踪和运行每个步骤,需要对单体代码进行模块化。 删除了每个步骤之间的参数、数据和代码依赖性,并为跨步骤的共享组件创建了共享模块。 模块化的图示如下所示:-
对于每个模块,测试都是使用 SageMaker SDK 在本地完成的 脚本模式 用于培训、处理和评估 需要微小的改变 在与 SageMaker 一起运行的代码中。 这 本地模式测试 用于深度学习的脚本可以在 SageMaker 笔记本上完成(如果已经使用)或使用 使用 SageMaker 管道的本地模式 如果直接从 Pipelines 开始。 这有助于验证我们的自定义脚本是否会在 SageMaker 实例上运行。
然后使用 SageMaker 训练/处理 SDK 对每个模块进行隔离测试 脚本模式 并针对每个步骤使用 SageMaker 实例手动按顺序运行它们,如下面的训练步骤:
Amazon S3 用于获取要处理的源数据,然后将中间数据、数据帧和 NumPy 结果存储回 Amazon S3 以供下一步使用。 在预处理、训练、评估等各个模块之间的集成测试完成后, SageMaker 管道 SDK 它与我们已经在上述步骤中使用的 SageMaker Python SDK 集成,允许我们通过将每个步骤的输入参数、数据、元数据和输出作为输入传递到后续步骤,以编程方式链接所有这些模块。
我们可以重新使用以前的 Sagemaker Python SDK 代码将模块单独运行到基于 Sagemaker Pipeline SDK 的运行中。 流水线的各个步骤之间的关系由步骤之间的数据依赖关系决定。
流水线的最终步骤如下:
- 数据预处理
- 再培训
- 评价
- 模型注册
在以下部分中,我们将更详细地讨论使用 SageMaker Pipeline SDK 运行时的每个步骤。
数据预处理
此步骤转换原始输入数据并预处理和拆分为训练集、验证集和测试集。 对于此处理步骤,我们实例化了一个 SageMaker 处理作业 TensorFlow 框架处理器,它获取我们的脚本,从 Amazon S3 复制数据,然后拉取由 SageMaker 提供和维护的 Docker 映像。 这个 Docker 容器允许我们在 requirements.txt 文件中传递我们的库依赖项,同时包含所有 TensorFlow 库,并传递脚本的 source_dir 路径。 训练和验证数据进入训练步骤,测试数据被转发到评估步骤。 使用此容器的最佳部分是它允许我们将各种输入和输出作为不同的 S3 位置传递,然后可以将其作为步骤依赖项传递到 SageMaker 管道中的后续步骤。
再培训
我们通过 SageMaker管道 TrainingStep API 并通过 TensorFlow Framework 估计器(也称为脚本模式)使用已经可用的深度学习容器图像 SageMaker 培训. 脚本模式允许我们对训练代码进行最少的更改,SageMaker 预构建的 Docker 容器处理 Python、框架版本等。 处理输出来自 Data_Preprocessing
步骤被转发为该步骤的TrainingInput。
所有超参数都通过 JSON 文件传递给估算器。 对于我们训练中的每个时期,我们已经通过脚本中的 stdOut 发送了我们的训练指标。 因为我们想跟踪正在进行的训练作业的指标并将它们与之前的训练作业进行比较,所以我们只需要通过正则表达式定义指标定义来解析这个 StdOut,以从每个时期的 StdOut 中获取指标。
了解 SageMaker Pipelines 自动 与 SageMaker Experiments API 集成,它默认为每次运行创建一个实验、试验和试验组件。 这使我们能够比较多次运行中的准确度和精确度等训练指标,如下所示。
对于每个训练作业运行,我们根据自定义业务定义为 Amazon S3 生成四种不同的模型。
评价
此步骤从 Amazon S3 加载经过训练的模型并根据我们的自定义指标进行评估。 此 ProcessingStep 将模型和测试数据作为其输入,并将模型性能报告转储到 Amazon S3 上。
我们正在使用自定义指标,因此为了将这些自定义指标注册到模型注册表中,我们需要将存储在 Amazon S3 中的评估指标的模式转换为 CSV 格式 SageMaker 模型质量 JSON 输出。 然后我们可以将此评估 JSON 指标的位置注册到模型注册表。
以下屏幕截图显示了我们如何将 CSV 转换为 Sagemaker 模型质量 JSON 格式的示例。
模型注册
如前所述,我们在单个训练步骤中创建多个模型,因此我们必须使用 SageMaker Pipelines Lambda 集成将所有四个模型注册到模型注册表中。 对于单个模型注册,我们可以使用 模型步骤 用于在注册表中创建 SageMaker 模型的 API。 对于每个模型,Lambda 函数从 Amazon S3 检索模型工件和评估指标,并为特定 ARN 创建模型包,以便所有四个模型都可以注册到一个模型注册表中。 SageMaker Python API 还允许我们发送我们想要传递的自定义元数据以选择最佳模型。 这被证明是生产力的一个重要里程碑,因为现在可以从一个窗口比较和审核所有模型。 我们提供了元数据来唯一区分模型。 这也有助于在基于模型指标的同行评审和管理评审的帮助下批准单一模型。
上面的代码块显示了我们如何通过模型包输入将元数据与模型指标一起添加到模型注册表中的示例。
下面的屏幕截图显示了我们可以轻松地比较注册后不同模型版本的指标。
管道调用
管道可以通过调用 事件桥 、Sagemaker Studio 或 软件开发套件(SDK) 本身。 调用根据步骤之间的数据依赖关系运行作业。
结论
在本文中,我们展示了 Games24x7 如何通过 SageMaker 管道转换他们的 MLOps 资产。 通过参数化环境直观地跟踪训练指标和评估指标,使用正确的处理平台和中央模型注册表单独扩展步骤的能力被证明是标准化和推进到可审计、可重用、高效和可解释的工作流程的一个重要里程碑. 该项目是跨不同数据科学团队的蓝图,通过允许成员使用最佳实践进行操作、管理和协作,提高了整体生产力。
如果您有类似的用例并想开始,那么我们建议您使用 SageMaker 脚本模式 和 SageMaker 端到端示例 使用 Sagemaker Studio。 这些示例包含本博客中介绍的技术细节。
现代数据策略为您提供管理、访问、分析和处理数据的综合计划。 AWS 为所有工作负载、所有类型的数据和所有期望的业务成果的整个端到端数据旅程提供最完整的服务集。 反过来,这使 AWS 成为从您的数据中释放价值并将其转化为洞察力的最佳场所。
作者简介
侯赛因贾吉尔达 是 Games24x7 的应用研究高级科学家。 他目前参与可解释人工智能和深度学习领域的研究工作。 他最近的工作涉及深度生成建模、时间序列建模以及机器学习和人工智能的相关子领域。 他还对 MLOps 和标准化项目充满热情,这些项目需要可扩展性、可靠性和敏感性等约束。
苏米尔·库马尔 是 AWS 的解决方案架构师,在技术行业拥有超过 13 年的经验。 在 AWS,他与 AWS 的主要客户密切合作,设计和实施基于云的解决方案来解决复杂的业务问题。 他对数据分析和机器学习充满热情,并且在帮助组织使用 AWS 云释放其数据的全部潜力方面拥有良好的记录。
- SEO 支持的内容和 PR 分发。 今天得到放大。
- 柏拉图区块链。 Web3 元宇宙智能。 知识放大。 访问这里。
- 与 Adryenn Ashley 一起铸造未来。 访问这里。
- Sumber: https://aws.amazon.com/blogs/machine-learning/how-games24x7-transformed-their-retraining-mlops-pipelines-with-amazon-sagemaker/
- :是
- 1
- 10
- 100
- 11
- 7
- a
- 对,能力--
- 关于
- 以上
- ACCESS
- 积累
- ACM
- 横过
- 法案
- 操作
- 添加
- 额外
- 另外
- 地址
- 采用
- 采用
- 后
- AI
- 所有类型
- 允许
- 允许
- 已经
- Amazon
- 亚马逊SageMaker
- 亚马逊SageMaker Studio
- 分析
- 分析
- 和
- API
- 应用的
- 架构
- 保健
- 国家 / 地区
- 围绕
- AS
- 评定
- 办公室文员:
- At
- 审计
- 可审核的
- 审计
- 自动化
- 自动
- 可使用
- AWS
- 背部
- 骨干
- 基于
- BE
- 因为
- 开始
- 背后
- 作为
- 如下。
- 基准
- 最佳
- 最佳实践
- 更好
- 之间
- 阻止
- 博客
- 建筑物
- 建
- 商业
- by
- CAN
- 案件
- 例
- 中央
- 链
- 挑战
- 更改
- 更改
- 程
- 密切
- 云端技术
- 簇
- 码
- 代码库
- 合作
- 比较
- 相比
- 完成
- 复杂
- 元件
- 组件
- 全面
- 计算
- 概念
- 巩固
- 约束
- 容器
- 集装箱
- 控制
- 受控
- 兑换
- 转换
- 核心
- 价格
- 成本
- 可以
- 覆盖
- 创建信息图
- 创建
- 创建
- 创造
- 目前
- 习俗
- 顾客
- 合作伙伴
- data
- 数据分析
- 数据科学
- 数据策略
- 数据驱动
- 分散
- 决定
- 专用
- 深
- 深潜
- 深入学习
- 默认
- 定义
- 需求
- 证明
- 依赖
- 设计
- 期望
- 细节
- 详情
- 检测
- 决心
- 研发支持
- 不同
- 直接
- 发现
- 讨论
- 区分
- 分配
- 码头工人
- 向下
- 驾驶
- 动力学
- 每
- 此前
- 容易
- 高效
- 工作的影响。
- 或
- 员工
- 启用
- 使
- 端至端
- 整个
- 环境
- 时代
- 评估
- 评估
- 甚至
- 所有的
- 例子
- 例子
- 执行
- 现有
- 现有系统
- 体验
- 实验
- 广泛
- 提取
- 非常
- 失败
- 特征
- 文件
- 最后
- (名字)
- 已标记
- 标志
- 高度灵活
- 重点
- 以下
- 如下
- 针对
- 格式
- 骨架
- 止
- ,
- 功能
- 功能
- 功能
- 进一步
- 游戏
- 游戏玩家
- Games
- 赌博
- 游戏平台
- 生成
- 生成的
- 得到
- 给
- Go
- GOES
- 大
- 客人
- 处理
- 手柄
- 硬
- 有
- 有
- 帮助
- 帮助
- 帮助
- 帮助
- HOURS
- 创新中心
- HTML
- HTTPS
- 鉴定
- 图片
- 图片
- 实施
- 履行
- 实施
- 进口
- 改善
- in
- 包括
- 包含
- 结合
- 增加
- 个人
- 个别地
- 行业中的应用:
- 基础设施
- 输入
- 洞察
- 例
- 仪器的
- 集成
- 积分
- 互动
- 有趣
- 调查
- 参与
- 隔离
- 问题
- IT
- 迭代
- 它的
- 本身
- 工作
- 工作机会
- 旅程
- JPG
- JSON
- 键
- 知识
- 已知
- 标签
- 大
- 学习
- 库
- 自学资料库
- 喜欢
- 限制
- 链接
- 负载
- 当地
- 圖書分館的位置
- 地点
- 机
- 机器学习
- 主要
- 制作
- 制作
- 管理
- 颠覆性技术
- 手动
- 机制
- 成员
- 提到
- 元数据
- 方法
- 公
- 指标
- 里程碑
- 百万
- 最小
- 未成年人
- ML
- 多播
- 时尚
- 模型
- 模型
- 适度
- 现代
- 模块
- 模块
- 监控
- 单片
- 更多
- 最先进的
- 多
- 姓名
- 需求
- 下页
- 笔记本
- 麻木
- of
- on
- 一
- 正在进行
- 打开
- 操作
- 运营
- 优化
- 秩序
- 组织
- 原版的
- 其他名称
- 产量
- 最划算
- 包
- 参数
- 最重要的
- 部分
- 通过
- 通过
- 通行证
- 通过
- 多情
- 径
- 性能
- philosophy
- 管道
- 地方
- 计划
- 平台
- 平台
- 柏拉图
- 柏拉图数据智能
- 柏拉图数据
- 播放
- 播放机
- 球员
- 过多
- 点
- 帖子
- 潜力
- 供电
- 做法
- 平台精度
- 以前
- 问题
- 过程
- 过程
- 处理
- 生产率
- 项目
- 项目
- 证明
- 成熟
- 提供
- 提供
- 出版
- 拉
- 蟒蛇
- 质量
- 罕见
- 原
- 最近
- 建议
- 记录
- 正则表达式
- 寄存器
- 在相关机构注册的
- 注册
- 注册处
- 有关
- 关系
- 可靠性
- 去除
- 删除
- 重复
- 业务报告
- 必须
- 岗位要求
- 研究
- 提供品牌战略规划
- 负责任的博彩
- 重新启动
- 成果
- 回报
- 可重复使用
- 重用
- 评论
- 角色
- 运行
- 运行
- sagemaker
- SageMaker管道
- 可扩展性
- 鳞片
- 缩放
- 稀缺
- 情景
- 科学
- 科学家
- 截图
- 脚本
- SDK
- 部分
- 安全
- 发送
- 前辈
- 灵敏度
- 序列
- 服务
- 特色服务
- 集
- 套数
- Share
- 共用的,
- 显示
- 如图
- 作品
- 类似
- 简易
- 单
- 技能
- 小
- So
- 方案,
- 解决方案
- 解决
- 一些
- 来源
- 具体的
- 拆分
- 阶段
- 标准化
- 开始
- 开始
- 国家的最先进的
- 统计
- 步
- 步骤
- 存储
- 商店
- 存储
- 策略
- 工作室
- 这样
- 可持续发展
- 系统
- 需要
- 团队
- 队
- 文案
- 专业技术
- 模板
- tensorflow
- test
- 测试
- 这
- 区域
- 其
- 他们
- 因此
- 博曼
- 通过
- 次
- 至
- 跟踪时
- 培训
- 熟练
- 产品培训
- 转化
- 试用
- 试验
- 转
- 类型
- 理解
- 独特地
- 开锁
- us
- 使用
- 用例
- 用户
- 用户
- 验证
- 有价值
- 折扣值
- 各种
- 各个
- 愿景
- 通缉
- 这
- 而
- 全
- 将
- 中
- 工作
- 合作
- 将
- 包裹
- 年
- 完全
- 您一站式解决方案
- 和风网