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笔记本在由以下内容定义的环境中运行:
- 实例类型–底层硬件配置,其决定定价费率。这包括处理器的数量和类型(vCPU和GPU),以及内存的数量和类型。
- Amazon SageMaker映像–托管笔记本内核的兼容容器映像(由Amazon SageMaker提供或自定义)。该图像定义了它提供的内核规格,例如内置的 Python 3(数据科学)内核。
- Amazon SageMaker内核网关应用程序–在特定实例类型上运行的容器映像实例。多个应用程序可以共享正在运行的实例。
- 运行内核会话-检查和运行笔记本中所含代码的过程。在同一应用程序中打开具有相同规格和实例类型的多个打开笔记本(内核)。
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。产生的成本取决于实例类型,您需要为每个实例单独计费。计费从创建实例时开始,并在实例上的所有应用程序关闭或实例关闭时结束。
关闭实例即停止产生费用。如果您关闭在实例上运行的笔记本但没有关闭实例,则仍将产生费用。当您在同一实例类型上打开多个笔记本时,即使它们使用的是不同内核,笔记本也会在同一实例上运行。您只需按一个实例运行的时间计费。在打开实例并关闭各个资源(包括笔记本、终端、内核、应用程序和实例)之后,您可以在笔记本中更改实例类型。您还可以同时关闭其中一个类别中的所有资源。关闭笔记本时,笔记本中所有未保存的信息都将丢失。笔记本不会被删除。
您可以从Studio File(文件)菜单或Running Terminal and Kernels(运行终端和内核)窗格关闭打开的笔记本。Running Terminal and Kernels(运行终端和内核)窗格由四个部分组成。每个部分都列出了该类型的所有资源。您可以单独关闭每个资源,也可以同时关闭一个部分中的所有资源。选择关闭某个部分中的所有资源时,会发生以下情况:
- 运行实例/运行应用程序–关闭所有实例、应用程序、笔记本、内核会话、Data Wrangler会话、控制台或Shell以及映像终端。系统终端没有关闭。选择此选项可停止所有计费。
- 内核会话-关闭所有内核、笔记本、控制台或Shell。
- 终端会话-关闭所有映像终端和系统终端。
要关闭资源,请在左侧边栏中选择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分钟。
限制和故障排除
自动关闭扩展程序具有以下限制:
- 扩展程序不监控开放终端上的活动。例如,如果您的内核在您配置的时间内处于空闲状态,但终端未处于空闲状态,则扩展程序会关闭终端和内核。
- 如果在Amazon SageMaker Studio控制台上删除JupyterServer并重新创建它,则必须重新安装扩展程序并配置空闲时间限制。如果您使用自动安装方法,则不是限制。
您可以在/aws/sagemaker/studio日志组下查看Amazon CloudWatch中的扩展日志,然后通过
- 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研究趋势。