在 Amazon SageMaker Studio 实验室 PlatoBlockchain 数据智能中将笔记本作为批处理作业运行。 垂直搜索。 人工智能。

在 Amazon SageMaker Studio 实验室中将笔记本作为批处理作业运行

近日, 亚马逊SageMaker Studio 推出了一种将笔记本作为批处理作业运行的简单方法,可以按定期计划运行。 Amazon SageMaker Studio 实验室 还支持此功能,使您能够在您的 AWS 账户中运行您在 SageMaker Studio Lab 中开发的笔记本。 这使您能够使用更大的数据集和更强大的实例快速扩展机器学习 (ML) 实验,而无需学习任何新内容或更改一行代码。

在本文中,我们将引导您完成将 Studio Lab 环境连接到 AWS 账户的一次性先决条件。 之后,我们将引导您完成从 Studio Lab 将笔记本作为批处理作业运行的步骤。

解决方案概述

Studio Lab 合并了与 Studio 相同的扩展,它基于 Jupyter 开源扩展,用于 预定的笔记本. 此扩展具有额外的特定于 AWS 的参数,例如计算类型。 在 Studio Lab 中,预定的笔记本首先被复制到 亚马逊简单存储服务 (Amazon S3) 存储桶在您的 AWS 账户中,然后在预定的时间使用选定的计算类型运行。 作业完成后,输出将写入 S3 存储桶,AWS 计算将完全停止,从而避免产生持续成本。

先决条件

要使用 Studio Lab notebook 作业,您需要对要连接的 AWS 账户具有管理访问权限(或获得具有此访问权限的人员的帮助)。 在本文的其余部分,我们假设您是 AWS 管理员,如果不是这样,请让您的管理员或账户所有者与您一起查看这些步骤。

创建 SageMaker 执行角色

我们需要确保AWS账户有一个 AWS身份和访问管理 (IAM) SageMaker 执行角色。 此角色由账户中的 SageMaker 资源使用,并提供从 SageMaker 到 AWS 账户中其他资源的访问权限。 在我们的例子中,我们的笔记本作业使用这些权限运行。 如果之前已在此账户中使用过 SageMaker,则角色可能已经存在,但它可能不具备所需的所有权限。 所以让我们继续做一个新的。

无论有多少 SageMaker Studio 实验室环境将访问此 AWS 账户,以下步骤只需执行一次。

  1. 在IAM控制台上,选择 角色 在导航窗格中。
  2. 创建角色.
  3. 针对 可信实体类型, 选择 AWS服务.
  4. 针对 其他 AWS 服务的用例,选择 SageMaker.
  5. 选择 SageMaker——执行.
  6. 下一页.
  7. 查看权限,然后选择 下一页.在 Amazon SageMaker Studio 实验室 PlatoBlockchain 数据智能中将笔记本作为批处理作业运行。 垂直搜索。 人工智能。
  8. 针对 角色名称,请输入名称(对于该帖子,我们使用 sagemaker-execution-role-notebook-jobs).
  9. 创建角色.
  10. 记下角色 ARN。

角色 ARN 的格式为 arn:aws:iam::[account-number]:role/service-role/[role-name] 并且在 Studio Lab 设置中是必需的。

创建一个IAM用户

对于访问 AWS 的 Studio Lab 环境,我们需要在 AWS 中创建一个 IAM 用户并授予它必要的权限。 然后,我们需要为该用户创建一组访问密钥,并将它们提供给 Studio Lab 环境。

应对将访问此 AWS 账户的每个 SageMaker Studio 实验室环境重复此步骤。

请注意,管理员和 AWS 账户所有者应确保尽最大可能遵循架构完善的安全实践。 例如,应始终缩小用户权限范围,并应定期轮换访问密钥,以最大限度地减少凭证泄露的影响。

在这篇博客中,我们展示了如何使用 AmazonSageMakerFullAccess 托管政策。 此策略提供对 Amazon SageMaker 的广泛访问,可能超出所需的范围。 详情关于 AmazonSageMakerFullAccess 可以被找寻到 点击此处.

尽管 Studio Lab 采用企业安全措施,但应注意,Studio Lab 用户凭证不构成您的 AWS 账户的一部分,因此不受您的 AWS 密码或 MFA 策略等限制。

为了尽可能缩小权限范围,我们专门为此访问创建了一个用户配置文件。

  1. 在IAM控制台上,选择 用户 在导航窗格中。
  2. 新增使用者.
  3. 针对 用户名, 输入姓名。最好使用与将使用此帐户的个人关联的姓名; 如果查看审核日志,这会有所帮助。
  4. 针对 选择AWS访问类型, 选择 访问密钥 - 编程访问.
  5. 下一页:权限.在 Amazon SageMaker Studio 实验室 PlatoBlockchain 数据智能中将笔记本作为批处理作业运行。 垂直搜索。 人工智能。
  6. 直接附加现有策略.
  7. 搜索并选择 AmazonSageMakerFullAccess.在 Amazon SageMaker Studio 实验室 PlatoBlockchain 数据智能中将笔记本作为批处理作业运行。 垂直搜索。 人工智能。
  8. 搜索并选择 AmazonEventBridgeFullAccess.在 Amazon SageMaker Studio 实验室 PlatoBlockchain 数据智能中将笔记本作为批处理作业运行。 垂直搜索。 人工智能。
  9. 下一页:标签.
  10. 下一篇:复习.
  11. 确认您的政策,然后选择 创建用户.在 Amazon SageMaker Studio 实验室 PlatoBlockchain 数据智能中将笔记本作为批处理作业运行。 垂直搜索。 人工智能。用户创建过程的最后一页应该显示用户的访问密钥。 将此选项卡保持打开状态,因为我们无法返回此处,而且我们需要这些详细信息。
  12. 在 Studio Lab 中打开一个新的浏览器选项卡。
  13. 点击 文件 菜单中选择 新启动器,然后选择 终端.在 Amazon SageMaker Studio 实验室 PlatoBlockchain 数据智能中将笔记本作为批处理作业运行。 垂直搜索。 人工智能。
  14. 在命令行中,输入以下代码:
    aws configure

  15. 输入以下代码:
    1. 从 IAM 控制台页面输入访问密钥 ID 和秘密访问密钥的值。
    2. 针对 Default region name,输入 us-west-2.
    3. 离开 Default output format as text.
      (studiolab) studio-lab-user@default:~$ aws configure 
      AWS Access Key ID []: 01234567890
      AWS Secret Access Key []: ABCDEFG1234567890ABCDEFG
      Default region name []: us-west-2
      Default output format [text]: 
      
      (studiolab) studio-lab-user@default:~$

恭喜,您的 Studio Lab 环境现在应该配置为可以访问 AWS 账户。 要测试连接,请发出以下命令:

aws sts get-caller-identity

此命令应返回有关您配置使用的 IAM 用户的详细信息。

创建笔记本作业

笔记本作业是使用 Studio Lab 中的 Jupyter 笔记本创建的。 如果您的笔记本在 Studio Lab 中运行,那么它可以作为笔记本作业运行(具有更多资源和对 AWS 服务的访问权限)。 但是,有几件事需要注意。

如果您已安装包来让笔记本正常工作,请添加命令以将这些包加载到笔记本顶部的单元格中。 通过在每行的开头使用 & 符号,代码将被发送到命令行运行。 在以下示例中,第一个单元格使用 pip 安装 PyTorch 库:

%%capture
%pip install torch
%pip install torchvision

在 Amazon SageMaker Studio 实验室 PlatoBlockchain 数据智能中将笔记本作为批处理作业运行。 垂直搜索。 人工智能。

我们的笔记本将生成经过训练的 PyTorch 模型。 使用我们的常规代码,我们将模型保存到 Studio Labs 的文件系统中。

当我们将其作为笔记本作业运行时,我们需要将模型保存在以后可以访问的地方。 最简单的方法是将模型保存在 Amazon S3 中。 我们创建了一个 S3 存储桶来保存我们的模型,并使用另一个命令行单元将对象复制到存储桶中。

在 Amazon SageMaker Studio 实验室 PlatoBlockchain 数据智能中将笔记本作为批处理作业运行。 垂直搜索。 人工智能。 在 Amazon SageMaker Studio 实验室 PlatoBlockchain 数据智能中将笔记本作为批处理作业运行。 垂直搜索。 人工智能。

我们使用 AWS命令行界面 (AWS CLI) 在这里复制对象。 我们还可以使用 适用于Python的AWS开发工具包(Boto3) 如果我们想要对文件名进行更复杂或自动化的控制。 现在,我们将确保每次运行笔记本时都更改文件名,以免模型被覆盖。

现在我们已准备好创建笔记本作业。

  1. 选择(右键单击)笔记本名称,然后选择 创建笔记本作业.在 Amazon SageMaker Studio 实验室 PlatoBlockchain 数据智能中将笔记本作为批处理作业运行。 垂直搜索。 人工智能。
    如果缺少此菜单选项,您可能需要刷新 Studio Lab 环境。 为此,从启动器打开终端并运行以下代码:
    conda deactivate && conda env remove —name studiolab

  2. 接下来,通过选择重新启动 JupyterLab 实例 Amazon SageMaker Studio 实验室 从顶部菜单中,然后选择 重启 JupyterLab.或者,转到项目页面,关闭并重新启动运行时。
  3. 点击 建立工作 页面,用于 计算类型, 选择适合您工作的计算类型。

    有关不同类型的计算容量(包括成本)的更多信息,请参阅 Amazon SageMaker定价 (选择 按需定价 然后导航到 产品培训 标签。 您可能还需要检查 AWS 账户中计算类型的配额可用性。 有关服务配额的详细信息,请参阅: AWS 服务配额.对于此示例,我们选择了一个 ml.p3.2xlarge 实例,它提供 8 个 vCPU、61 GB 内存和一个 Tesla V100 GPU。在 Amazon SageMaker Studio 实验室 PlatoBlockchain 数据智能中将笔记本作为批处理作业运行。 垂直搜索。 人工智能。

    如果此页面上没有警告,您应该可以开始了。 如果有警告,请检查以确保在中指定了正确的角色 ARN 其他选项. 该角色应与我们之前创建的 SageMaker 执行角色的 ARN 相匹配。ARN 的格式为 arn:aws:iam::[account-number]:role/service-role/[role-name].

    里面还有其他选项 其他选项; 例如,您可以选择可能已经具有所需配置的特定映像和内核,而无需安装额外的库。

  4. 如果要按计划运行此笔记本,请选择 按计划运行 并指定您希望作业运行的频率。在 Amazon SageMaker Studio 实验室 PlatoBlockchain 数据智能中将笔记本作为批处理作业运行。 垂直搜索。 人工智能。我们希望这个笔记本运行一次,所以我们选择 现在跑步.
  5. 创建.
    在 Amazon SageMaker Studio 实验室 PlatoBlockchain 数据智能中将笔记本作为批处理作业运行。 垂直搜索。 人工智能。

笔记本作业列表

笔记本工作 页面列出当前运行的所有作业和过去运行的作业。 您可以从启动器中找到此列表(选择, 文件, 新启动器),然后选择 笔记本工作 ,在 其他名称 部分。

在 Amazon SageMaker Studio 实验室 PlatoBlockchain 数据智能中将笔记本作为批处理作业运行。 垂直搜索。 人工智能。

笔记本作业完成后,您将看到状态更改为 Completed (使用 刷新 如果需要,可以选择)。 然后您可以选择下载图标来访问输出文件。

在 Amazon SageMaker Studio 实验室 PlatoBlockchain 数据智能中将笔记本作为批处理作业运行。 垂直搜索。 人工智能。

下载文件后,您可以查看笔记本以及代码输出和输出日志。 在我们的例子中,因为我们添加了代码来为训练单元的运行计时,所以我们可以看到训练作业花费了多长时间——16 分 21 秒,这比在 Studio Lab 中运行代码(1 小时)要快得多, 38 分 55 秒)。 事实上,整个笔记本电脑的运行时间为 1,231 秒(刚好超过 20 分钟),成本不到 1.30 美元 (USD)。

在 Amazon SageMaker Studio 实验室 PlatoBlockchain 数据智能中将笔记本作为批处理作业运行。 垂直搜索。 人工智能。

W 现在可以增加 epoch 的数量并调整超参数以提高模型的损失值,并提交另一个 notebook 作业。

结论

在这篇博文中,我们展示了如何使用 Studio Lab notebook 作业来扩展我们在 Studio Lab 中开发的代码,并使用 AWS 账户中的更多资源运行它。

通过将 AWS 凭证添加到我们的 Studio Lab 环境,我们不仅可以访问笔记本作业,还可以直接从我们的 Studio Lab 笔记本中的 AWS 账户访问其他资源。 查看适用于 Python 的 AWS 开发工具包。

Studio Lab 的这种额外功能提升了您可以实现的项目的种类和规模的限制。 让我们知道您使用此新功能构建了什么!


关于作者

在 Amazon SageMaker Studio 实验室 PlatoBlockchain 数据智能中将笔记本作为批处理作业运行。 垂直搜索。 人工智能。迈克·钱伯斯 是 AWS 的 AI 和 ML 开发倡导者。 在过去的 7 年里,他一直在帮助构建者学习云计算、安全性和 ML。 Mike 来自英国,是一位热情的茶饮者和乐高积木搭建者。

在 Amazon SageMaker Studio 实验室 PlatoBlockchain 数据智能中将笔记本作为批处理作业运行。 垂直搜索。 人工智能。 米歇尔·蒙克洛娃 是 AWS SageMaker 团队的首席产品经理。 她是土生土长的纽约人和硅谷资深人士。 她热衷于提高我们生活质量的创新。

时间戳记:

更多来自 AWS机器学习