乐趣区

关于ml:通过自动关闭Amazon-SageMaker-Studio中的闲置资源来节省成本

Amazon SageMaker Studio 提 供了一个基于 Web 的对立可视化界面,您能够在其中执行所有机器学习 (ML) 开发步骤,使数据迷信团队的工作效率进步 10 倍 。该 Studio 还能够为您提供构建、训练和部署模型所需每个步骤的齐全拜访权限、管制及可见性。Studio 笔记本是合作式笔记本,因为不须要当时设置计算实例和文件存储,因而能够疾速启动。Amazon SageMaker 是一项齐全托管式服务,它提供的性能能够将基础设施治理的沉重工作抽象化,并针对您对大规模 ML 流动的敏捷性和可扩展性需要提供各种不同性能和按用量付费的 定价模型

  • Amazon SageMaker Studio
    https://aws.amazon.com/sagema…
  • Amazon SageMaker
    https://aws.amazon.com/sagema…
  • 定价模型
    https://aws.amazon.com/sagema…

在本文中,咱们将演示如何执行以下操作:

1. 应用能够手动和主动装置的主动敞开 Jupyter 扩大程序检测和阻止 Studio 中产生老本的闲暇资源

2. 启用事件告诉以跟踪 Studio 域中尚未装置主动敞开扩大程序的用户配置文件

3. 应用已装置的主动敞开扩大程序主动敞开可能导致高于预期老本的实例以治理 Amazon SageMaker Data Wrangler 老本

  • Amazon SageMaker Data Wrangler
    https://aws.amazon.com/sagema…

📢 想要理解更多亚马逊云科技最新技术公布和实际翻新,敬请关注在上海、北京、深圳三地举办的 2021 亚马逊云科技中国峰会!点击图片报名吧~

Studio 组件

在 Studio 中,运行的笔记本与 JupyterServer UI 离开进行容器化,以便拆散计算基础设施的规模。Studio 笔记本在由以下内容定义的环境中运行:

  1. 实例类型–底层硬件配置,其决定定价费率。这包含处理器的数量和类型(vCPU 和 GPU),以及内存的数量和类型。
  2. Amazon SageMaker 映像–托管笔记本内核的兼容容器映像 (由 Amazon SageMaker 提供或自定义)。该图像定义了它提供的内核规格,例如内置的 Python 3(数据迷信) 内核。
  3. Amazon SageMaker 内核网关应用程序–在特定实例类型上运行的容器映像实例。多个应用程序能够共享正在运行的实例。
  4. 运行内核会话 - 检查和运行笔记本中所含代码的过程。在同一应用程序中关上具备雷同规格和实例类型的多个关上笔记本(内核)。

Studio UI 作为 JupyterServer 类型的独自利用程序运行,而不是 KernelGateway,它容许您从 Studio UI 中将关上的笔记本切换到不同的内核或实例类型。无关笔记本内核运行与 KernelGateway 应用程序、用户和 Studio 域如何相干的更多信息,请参阅 应用 Amazon SageMaker Studio 笔记本

  • 应用 Amazon SageMaker Studio 笔记本
    https://docs.aws.amazon.com/s…

Studio 计费

应用 Studio 不收取额定费用。运行 Studio 笔记本、交互式 Shell、控制台和终端所产生的老本取决于 Studio 实例类型的应用状况。无关计费以及定价示例的信息,请参阅Amazon SageMaker 定价

  • Amazon SageMaker 定价
    https://aws.amazon.com/sagema…

在 Studio 中运行 Studio 笔记本、交互式 Shell 或映像终端时,必须抉择内核和实例类型。这些资源是依据从 UI 中抉择的类型应用 Studio 实例启动的。如果此类型的实例之前已启动且可用,则资源将在该实例上运行。对于基于 CPU 的映像,默认实例类型为 ml.t3.medium。对于基于 GPU 的映像,默认实例类型为 ml.g4dn.xlarge。产生的老本取决于实例类型,您须要为每个实例独自计费。计费从创立实例时开始,并在实例上的所有应用程序敞开或实例敞开时完结。

敞开实例即进行产生费用。如果您敞开在实例上运行的笔记本但没有敞开实例,则仍将产生费用。当您在同一实例类型上关上多个笔记本时,即便它们应用的是不同内核,笔记本也会在同一实例上运行。您只需按一个实例运行的工夫计费。在关上实例并敞开各个资源(包含笔记本、终端、内核、应用程序和实例)之后,您能够在笔记本中 更改实例类型。您还能够同时敞开其中一个类别中的所有资源。敞开笔记本时,笔记本中所有未保留的信息都将失落。笔记本不会被删除。

  • 更改实例类型
    https://docs.aws.amazon.com/s…

您能够从 Studio File(文件)菜单或 Running Terminal and Kernels(运行终端和内核)窗格敞开关上的笔记本。Running Terminal and Kernels(运行终端和内核)窗格由四个局部组成。每个局部都列出了该类型的所有资源。您能够独自敞开每个资源,也能够同时敞开一个局部中的所有资源。抉择敞开某个局部中的所有资源时,会产生以下状况:

  1. 运行实例 / 运行应用程序–敞开所有实例、应用程序、笔记本、内核会话、Data Wrangler 会话、控制台或 Shell 以及映像终端。零碎终端没有敞开。抉择此选项可进行所有计费。
  2. 内核会话 - 敞开所有内核、笔记本、控制台或 Shell。
  3. 终端会话 - 敞开所有映像终端和零碎终端。

要敞开资源,请在左侧边栏中抉择 Running Terminals and Kernels(运行终端和内核)图标。要敞开特定资源,请抉择与资源雷同行上的电源图标。

对于正在运行的实例,确认对话框列出了将敞开的所有资源。对于正在运行的应用程序,将显示确认对话框。抉择 Shut Down All(全副敞开)以持续。内核会话或终端会话不显示确认对话框。要敞开一个局部中的所有资源,请抉择区域标签右侧的 X 图标。此时将显示确认对话框。抉择 Shut Down All(全副敞开)以持续。

应用 JupyterLab 扩大程序主动敞开闲暇的内核

您能够应用 Studio 主动敞开扩大程序自动检测和敞开闲置资源,而不是依赖用户来自行敞开不再应用的资源,从而节省成本。JupyterLab 扩大程序 是简略的附加组件,可扩大笔记本环境的基本功能。当 Studio 内运行的内核、应用程序和实例在规定的工夫内闲暇时,该扩大程序会主动敞开这些内核、利用和实例。您能够通过 UI 直观地配置闲暇工夫阈值(以分钟为单位)。在内核闲暇足够长时间后,扩大程序会主动敞开它们。无关如何下载和装置扩大程序的阐明,请参阅GitHub 存储库

  • JupyterLab 扩大程序
    https://jupyterlab.readthedoc…
  • GitHub 存储库
    https://github.com/aws-sample…

如果您正在为用户应用 Amazon Identity and Access Management(IAM) 验证,则能够在启动 JupyterServer 期间主动装置扩大程序;如果您应用的是单点登录 (SSO) 身份验证,则能够手动装置扩大程序。

  • Amazon Identity and Access Management
    http://aws.amazon.com/iam

装置扩大后,它会在 Studio 界面的左侧边栏中作为图标显示。您能够应用此扩大程序提供的用户界面配置闲暇工夫限度。GitHub 存储库中提供了装置阐明。

闲暇工夫限度参数用于设置一个工夫,在此工夫之后,没有流动笔记本会话的闲暇资源将敞开。默认状况下,闲暇工夫限度设置为 120 分钟。

限度和故障排除

主动敞开扩大程序具备以下限度:

  1. 扩大程序不监控凋谢终端上的流动。例如,如果您的内核在您配置的工夫内处于闲暇状态,但终端未处于闲暇状态,则扩大程序会敞开终端和内核。
  2. 如果在 Amazon SageMaker Studio 管制台上删除 JupyterServer 并从新创立它,则必须重新安装扩大程序并配置闲暇工夫限度。如果您应用主动装置办法,则不是限度。

您能够在 /aws/sagemaker/studio 日志组下查看 Amazon CloudWatch 中的扩大日志,而后通过 <Studio_domain>/<user_profile>/JupyterServer/default 日志流来查看扩大日志。

  • Amazon CloudWatch
    http://aws.amazon.com/cloudwatch

Studio 主动敞开扩大程序查看器

下图阐明了如何启用电子邮件告诉以跟踪位于 Studio 下的多个用户配置文件中运行的闲暇资源。

无论您如何在 Studio 域中装置主动敞开扩大程序,管理员都可能心愿跟踪没有装置主动敞开扩大程序的任何用户并加以揭示。为了帮忙跟踪合规性并优化老本,您能够依照 GitHub 存储库 中的阐明设置主动敞开扩大程序查看器并启用事件告诉。

  • GitHub 存储库
    https://github.com/aws-sample…

依据架构图,CloudWatch Events 规定 会定期触发 (例如,每小时或每晚)。要创立规定,咱们抉择固定打算并指定工作运行的频率。对于咱们的指标,咱们抉择一个Amazon Lambda 函数,该函数定期检查 Studio 域下的所有用户配置文件是否都装置了主动敞开扩大程序。此函数将收集未能满足此要求的用户配置文件名称。

  • CloudWatch Events 规定
    https://docs.aws.amazon.com/A…
  • Amazon Lambda
    http://aws.amazon.com/lambda

而后,用户配置文件将被发送到 Amazon Simple Notification Service(Amazon SNS) 主题,Studio 管理员和其余利益相关者能够订阅该主题,以便获取告诉(例如通过电子邮件或 Slack)。以下屏幕截图显示了一封电子邮件揭示告诉,其中位于 Amazon SageMaker 域 d -bo6udbiz4vmi 中的用户配置文件 user- w 和 user- y 没有装置主动敞开扩大程序。

  • Amazon Simple Notification Service
    http://aws.amazon.com/sns

主动敞开 Data Wrangler 资源

为了进一步演示主动敞开扩大程序的工作原理,让咱们从 Studio 中的 Data Wrangler 的角度来加以分析。Data Wrangler 是 Amazon SageMaker 的一项新性能,它使数据科学家和工程师可能应用可视化界面更快地为 ML 应用程序筹备数据。

当您从 Studio 启动 Data Wrangler 时,它会自行启动一个 ml.m5.4xlarge 实例并应用该实例启动内核。当您不应用 Data Wrangler 时,请务必敞开其运行的实例免得产生额定费用。

Data Wrangler 每 60 秒主动保留一次数据流。为防止失落工作,请在敞开 Data Wrangler 之前手动保留数据流。为此,请抉择 File(文件),而后抉择 Save Data Wrangler Flow(保留 Data Wrangler 流)。

要敞开 Studio 中的 Data Wrangler 实例,请抉择 Running Instance and Kernels(正在运行的实例和内核)图标。在 Running Apps(运行应用程序)下,找到 amazon-sagemaker-data-wrangler-1.0 应用程序。抉择此应用程序旁边的电源图标。

手动执行这些步骤可能会很麻烦,而且很容易遗记。借助主动敞开扩大程序,您能够确保为 Data Wrangler 提供能源的闲暇资源不被随便敞开,以防止产生额定的 Amazon SageMaker 老本。

论断

在这篇博文中,咱们演示了 如何通过应用主动敞开 Jupyter 扩大程序敞开 Studio 中运行的闲暇资源,从而升高 Amazon SageMaker 老本。咱们还展现了如何设置主动敞开扩大程序查看器以及如何启用事件告诉来跟踪 Studio 中尚未装置扩大程序的用户配置文件。最初,咱们展现了该扩大程序如何通过敞开为 Data Wrangler 提供能源的闲置资源来升高 Data Wrangler 的老本。

无关优化资源应用和老本的更多信息,请参阅Amazon SageMaker 中的资源调整规模并防止不必要的老本

  • Amazon SageMaker 中的资源调整规模并防止不必要的老本
    https://aws.amazon.com/blogs/…

本篇作者


Arunprasath Shankar
亚马逊云科技专家解决方案架构师
致力于帮忙寰球客户在云中无效、高效地扩大人工智能解决方案。在业余时间,Arun 喜爱看科幻电影和听古典音乐。


Andras Garzo
亚马逊云科技解决方案架构师
致力于帮忙客户迁徙到 Amazon SageMaker、采纳最佳实际并节省成本。


Pavan Kumar Sunder 
亚马逊云科技高级研发工程师
他提供技术领导,并通过在亚马逊云科技上展现可能的技术来帮忙客户放慢翻新。他为咱们的客户围绕人工智能(AI)/ML、IoT 和机器人技术构建了多个原型。


Alex Thewsey
亚马逊云科技专家解决方案架构师
Alex 通过人工智能(AI) 和 ML 帮忙东南亚的客户设计和施行解决方案。他还喜爱卡丁车,从事开源我的项目,并致力跟上新的 ML 钻研趋势。

退出移动版