亚马逊SageMaker 是一项完全托管的机器学习 (ML) 服务。 借助 SageMaker,数据科学家和开发人员可以快速轻松地构建和训练 ML 模型,然后将它们直接部署到生产就绪的托管环境中。 Sagemaker 提供了一个集成的 Jupyter 创作笔记本实例,可以轻松访问您的数据源以进行探索和分析,因此您无需管理服务器。 它还提供了通用的 ML 算法,这些算法经过优化,可以针对分布式环境中的超大数据高效运行。
SageMaker 要求 ML 模型的训练数据存在于 Amazon Simple Storage Service (Amazon S3)、Amazon Elastic File System (Amazon EFS) 或 Amazon FSx for Lustre(有关更多信息,请参阅访问培训数据). 为了使用存储在三种受支持的存储服务之外的数据来训练模型,首先需要将数据引入其中一种服务(通常是 Amazon S3)。 这需要构建数据管道(使用诸如 亚马逊SageMaker数据牧马人) 将数据移动到 Amazon S3。 然而,这种方法可能会在管理此数据存储介质的生命周期、制定访问控制、数据审计等方面带来数据管理挑战,所有这些都是为了在训练工作期间暂存训练数据。 在这种情况下,可能需要让 SageMaker 访问附加到临时训练实例的临时存储介质中的数据,而无需在 Amazon S3 中进行数据的中间存储。
这篇文章展示了一种使用 雪花 作为数据源,并将数据直接从 Snowflake 下载到 SageMaker 培训作业实例中。
解决方案概述
我们使用 加州住房数据集 作为本文的训练数据集,并训练 ML 模型来预测每个地区的房价中值。 我们将此数据作为新表添加到 Snowflake。 我们创建了一个自定义训练容器,将数据直接从 Snowflake 表下载到训练实例中,而不是先将数据下载到 S3 存储桶中。 数据下载到训练实例后,自定义训练脚本执行数据准备任务,然后使用 XGBoost 估计器. 这篇文章的所有代码都可以在 GitHub回购.
下图表示使用 Snowflake 作为数据源来使用 SageMaker 训练 ML 模型的建议解决方案的高级架构。
工作流程步骤如下:
- 设置一个 SageMaker notebook 和一个 AWS身份和访问管理 (IAM) 具有适当权限的角色以允许 SageMaker 访问 Amazon Elastic Container注册 (Amazon ECR)、Secrets Manager 和您的 AWS 账户中的其他服务。
- 将您的 Snowflake 账户凭证存储在 AWS Secrets Manager 中。
- 在您的 Snowflake 帐户中提取表中的数据。
- 为 ML 模型训练创建自定义容器映像并将其推送到 Amazon ECR。
- 启动 SageMaker 训练作业以训练 ML 模型。 训练实例从 Secrets Manager 检索 Snowflake 凭证,然后使用这些凭证直接从 Snowflake 下载数据集。 这是消除首先将数据下载到 S3 存储桶中的需要的步骤。
- 经过训练的 ML 模型存储在 S3 存储桶中。
先决条件
要实施本文中提供的解决方案,您应该有一个 AWS账户,以 雪花账户 以及对 SageMaker 的熟悉程度。
设置 SageMaker Notebook 和 IAM 角色
我们使用 AWS CloudFormation 创建一个名为 aws-aiml-blogpost-sagemaker-snowflake-example
和一个名为 SageMakerSnowFlakeExample
。 选 启动堆栈 对于要将资源部署到的区域。
在 Secrets Manager 中存储 Snowflake 凭证
将您的 Snowflake 凭证作为秘密存储在 Secrets Manager 中。 有关如何创建机密的说明,请参阅 Create an AWS Secrets Manager secret
.
- 命名秘密
snowflake_credentials
. 这是必需的,因为代码中snowflake-load-dataset.ipynb
希望这个秘密被称为那个。 - 创建密钥作为具有两个键的键值对:
- 用户名 – 您的 Snowflake 用户名。
- 密码 – 与您的 Snowflake 用户名关联的密码。
在您的 Snowflake 帐户中提取表中的数据
要摄取数据,请完成以下步骤:
- 在SageMaker控制台上,选择 笔记本电脑 在导航窗格中。
- 选择笔记本 aws-aiml-blogpost-sagemaker-snowflake-example 并选择 打开JupyterLab.
-
snowflake-load-dataset.ipynb
在 JupyterLab 中打开它。 这个笔记本将摄取 加州住房数据集 到雪花表。 - 在笔记本中,编辑以下单元格的内容以将占位符值替换为与您的雪花帐户匹配的值:
- 在“运行”菜单上,选择 运行所有单元格 运行此笔记本中的代码。 这会将数据集本地下载到笔记本中,然后将其摄取到 Snowflake 表中。
notebook 中的以下代码片段将数据集提取到 Snowflake 中。 见 snowflake-load-dataset.ipynb
完整代码的笔记本。
- 在所有单元格运行无误后关闭笔记本。 您的数据现在可在 Snowflake 中使用。 以下屏幕截图显示了
california_housing
在 Snowflake 中创建的表。
运行 sagemaker-snowflake-example.ipynb
笔记本
此笔记本创建一个带有 Snowflake 连接的自定义训练容器,将数据从 Snowflake 提取到训练实例的临时存储中,而不将其暂存在 Amazon S3 中,并对数据执行分布式数据并行 (DDP) XGBoost 模型训练。 在如此小的数据集上进行模型训练不需要 DDP 训练; 它包含在此处是为了说明最近发布的另一个 SageMaker 功能。
创建用于训练的自定义容器
我们现在为 ML 模型训练作业创建一个自定义容器。 请注意,创建 Docker 容器需要根访问权限。 此 SageMaker 笔记本已部署并启用了根访问权限。 如果您的企业组织策略不允许根访问云资源,您可能希望使用以下 Docker 文件和 shell 脚本在其他地方(例如,您的笔记本电脑)构建 Docker 容器,然后将其推送到 Amazon ECR。 我们使用基于 SageMaker XGBoost 容器镜像的容器 246618743249.dkr.ecr.us-west-2.amazonaws.com/sagemaker-xgboost:1.5-1
添加以下内容:
- 用于 Python 的雪花连接器 将数据从 Snowflake 表下载到训练实例。
- 连接到 Secrets Manager 以检索 Snowflake 凭证的 Python 脚本。
使用 Snowflake 连接器和 Python 脚本可确保使用此容器映像进行 ML 模型训练的用户不必编写此代码作为其训练脚本的一部分,并且可以使用他们已经可用的此功能。
以下是训练容器的 Dockerfile:
构建容器映像并将其推送到 Amazon ECR。 此图像用于训练 ML 模型。
使用 SageMaker 训练作业训练 ML 模型
成功创建容器镜像并将其推送到 Amazon ECR 后,我们就可以开始使用它进行模型训练了。
- 我们创建了一组 Python 脚本来使用 用于 Python 的雪花连接器, 准备数据然后使用
XGBoost Regressor
训练 ML 模型。 这是将数据直接下载到训练实例的步骤,避免了必须使用 Amazon S3 作为训练数据的中间存储。 - 我们通过让训练代码下载数据的随机子集来促进分布式数据并行训练,这样每个训练实例都从 Snowflake 下载等量的数据。 例如,如果有两个训练节点,那么每个节点都会下载 Snowflake 表中 50% 的行的随机样本。见以下代码:
- 然后我们将训练脚本提供给 SageMaker SDK
Estimator
连同源目录,以便在使用Estimator.fit
方法:有关更多信息,请参阅 准备 Scikit-Learn 训练脚本.
- 模型训练完成后,训练好的模型可以作为
model.tar.gz
该区域的默认 SageMaker 存储桶中的文件:
您现在可以部署经过训练的模型来推断新数据! 有关说明,请参阅 创建您的端点并部署您的模型。
清理
为避免产生未来费用,请删除资源。 您可以通过删除用于创建 IAM 角色和 SageMaker 笔记本的 CloudFormation 模板来执行此操作。
您将必须从 Snowflake 控制台手动删除 Snowflake 资源。
结论
在本文中,我们展示了如何将 Snowflake 表中存储的数据下载到 SageMaker 训练作业实例,并使用自定义训练容器训练 XGBoost 模型。 这种方法使我们能够将 Snowflake 作为数据源直接与 SageMaker notebook 集成,而无需将数据暂存在 Amazon S3 中。
我们鼓励您通过探索 亚马逊SageMaker Python SDK 并使用本文中提供的示例实现和与您的业务相关的数据集构建解决方案。 如果您有任何问题或建议,请发表评论。
关于作者
阿米特·阿罗拉(Amit Arora) 是 Amazon Web Services 的 AI 和 ML 专家架构师,帮助企业客户使用基于云的机器学习服务来快速扩展他们的创新。 他还是华盛顿特区乔治敦大学 MS 数据科学和分析项目的兼职讲师
迪维亚·穆拉里达兰 是 Amazon Web Services 的解决方案架构师。 她热衷于帮助企业客户用技术解决业务问题。 她拥有罗切斯特理工学院的计算机科学硕士学位。 在办公室之外,她花时间做饭、唱歌和种植植物。
谢尔盖·埃尔莫林 是 AWS 的首席 AIML 解决方案架构师。 此前,他是英特尔深度学习、分析和大数据技术的软件解决方案架构师。 作为一名热衷于机器学习和人工智能的硅谷资深人士,Sergey 从 GPU 出现之前就开始对神经网络感兴趣,当时他在惠普公司使用神经网络来预测石英晶体和铯原子钟的老化行为。 Sergey 拥有斯坦福大学的电子工程硕士学位和计算机科学证书,以及加州州立大学萨克拉门托分校的物理和机械工程学士学位。 工作之余,Sergey 喜欢酿酒、滑雪、骑自行车、航海和潜水。 谢尔盖还是一名志愿飞行员 天使飞行.
- SEO 支持的内容和 PR 分发。 今天得到放大。
- 柏拉图区块链。 Web3 元宇宙智能。 知识放大。 访问这里。
- Sumber: https://aws.amazon.com/blogs/machine-learning/use-snowflake-as-a-data-source-to-train-ml-models-with-amazon-sagemaker/
- :是
- $UP
- 1
- 10
- 7
- 8
- a
- 关于
- ACCESS
- 无障碍
- 账号管理
- 增加
- 后
- 驳
- 老化
- AI
- 艾美
- 算法
- 所有类型
- 允许
- 已经
- Amazon
- 亚马逊FSx
- 亚马逊SageMaker
- 亚马逊网络服务
- 量
- 分析
- 分析
- 和
- 另一个
- 的途径
- 适当
- 架构
- 保健
- 人造的
- 人工智能
- AS
- 相关
- At
- 审计
- 创作
- 可使用
- AWS
- AWS CloudFormation
- 基地
- 基于
- BE
- 因为
- 大
- 大数据运用
- 建立
- 建筑物
- 建
- 商业
- by
- 加州
- 被称为
- CAN
- 细胞
- 证书
- 挑战
- 收费
- 清洁
- 钟
- 云端技术
- 码
- 柱
- 列
- 评论
- 相当常见
- 完成
- 一台
- 计算机科学
- 分享链接
- 地都
- 安慰
- 容器
- 包含
- Contents
- 控制
- 创建信息图
- 创建
- 创建
- 创造
- 资历
- 习俗
- 合作伙伴
- data
- 数据管理
- 资料准备
- 数据科学
- 数据存储
- 日期时间
- 一年中的
- DDP
- 决定
- 深
- 深入学习
- 默认
- 学位
- 部署
- 部署
- 开发
- 直接
- 分布
- 区
- 码头工人
- 别
- 下载
- 下载
- 每
- 容易
- 有效
- 或
- 消除
- 别处
- 启用
- 鼓励
- 端点
- 工程师
- 确保
- 企业
- 环境
- 错误
- 例子
- 执行
- 存在
- 预计
- 勘探
- 探索
- 提取物
- 非常
- 促进
- 公平
- 熟悉
- 专栏
- 数字
- 文件
- 最后
- 姓氏:
- 适合
- 以下
- 如下
- 针对
- 止
- ,
- 充分
- 功能
- 未来
- 得到
- 越来越
- GitHub上
- 去
- 成长
- 有
- 有
- 帮助
- 相关信息
- 高水平
- 持有
- 托管
- 为了
- 别墅
- 住房
- 创新中心
- How To
- 但是
- HTML
- HTTPS
- 身分
- 图片
- 实施
- 履行
- 进口
- in
- 包括
- 包括
- 指数
- 信息
- 创新
- 安装
- 例
- 研究所
- 说明
- 整合
- 集成
- 英特尔
- 房源搜索
- 有兴趣
- IT
- 工作
- 键
- 笔记本电脑
- 大
- 名:
- 学习用品
- 学习
- 离开
- 生命周期
- ln
- 当地
- 机
- 机器学习
- 管理
- 管理
- 颠覆性技术
- 经理
- 管理的
- 手动
- 匹配
- 机械
- 媒体
- 中等
- 菜单
- 方法
- ML
- 模型
- 模型
- 更多
- 移动
- MS
- 姓名
- 旅游导航
- 需求
- 需要
- 网络
- 神经网络
- 全新
- 下页
- 节点
- 节点
- 笔记本
- 数
- 对象
- of
- 办公
- on
- 一
- 打开
- 优化
- 秩序
- 组织
- 其他名称
- 学校以外
- 包
- 大熊猫
- 面包
- 并行
- 部分
- 情
- 多情
- 密码
- 施行
- 权限
- 物理
- 飞行员
- 管道
- 占位符
- Plants
- 柏拉图
- 柏拉图数据智能
- 柏拉图数据
- 政策
- 人口稠密
- 帖子
- 预测
- Prepare
- 当下
- 先前
- 校长
- 问题
- 曲目
- 建议
- 提供
- 提供
- 提供
- 目的
- 推
- 蟒蛇
- 有疑问吗?
- 很快
- 随机
- 急速
- 宁
- 阅读
- 最近
- 记录
- 减少
- 地区
- 发布
- 相应
- 更换
- 代表
- 必须
- 需要
- 资源
- 回报
- 角色
- 根
- 行
- 运行
- 萨克拉门托
- sagemaker
- 帆船
- 保存
- 鳞片
- 科学
- 科学家
- scikit学习
- 脚本
- SDK
- 秘密
- 服务器
- 服务
- 特色服务
- 集
- 形状
- 壳
- 应该
- 作品
- 显著
- 硅
- 硅谷
- 简易
- 自
- 情况
- 小
- So
- 软件
- 方案,
- 解决方案
- 解决
- 来源
- 来源
- 太空
- 专家
- 分期
- 开始
- 州/领地
- 个人陈述
- 步
- 步骤
- 存储
- 存储
- 子网
- 顺利
- 这样
- SUPPORT
- 支持
- 系统
- 表
- 任务
- 技术
- 专业技术
- 模板
- 条款
- 这
- 其
- 他们
- 博曼
- 三
- 通过
- 次
- 至
- 工具
- 合计
- 培训
- 熟练
- 产品培训
- 火车
- 一般
- 大学
- 更新
- us
- 使用
- 用户
- 用户
- 谷
- 折扣值
- 价值观
- 老将
- 志愿者
- 华盛顿
- 方法..
- 卷筒纸
- Web服务
- 这
- WHO
- 将
- 中
- 也完全不需要
- 工作
- 写
- XGBoost
- 完全
- 您一站式解决方案
- 和风网