本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 SageMaker AI 管理的温池
你可以通过 SageMaker Python SDK、 SageMaker Amazon A SageMaker I 控制台或底层 APIs使用人工智能管理的温池。管理员可以选择使用 sagemaker:KeepAlivePeriod 条件键来进一步限定某些用户或组的 KeepAlivePeriodInSeconds 上限。
使用 SageMaker AI Python 开发工具包
使用 SageMaker Python 软件开发工具包创建、更新或终止温池。
注意
此功能在 SageMaker AI Python SDK v2.110.0
创建暖池
要创建温池,请使用 SageMaker Python SDK 创建一个keep_alive_period_in_seconds值大于 0 的估计器并调用。fit()训练作业完成后,暖池将保留。有关训练脚本和估算器的更多信息,请参阅使用 Pyth SageMaker on SDK 训练模型
import sagemaker from sagemaker import get_execution_role from sagemaker.tensorflow import TensorFlow # Creates a SageMaker AI session and gets execution role session = sagemaker.Session() role = get_execution_role() # Creates an example estimator estimator = TensorFlow( ... entry_point='my-training-script.py', source_dir='code', role=role, model_dir='model_dir', framework_version='2.2', py_version='py37', job_name='my-training-job-1', instance_type='ml.g4dn.xlarge', instance_count=1, volume_size=250, hyperparameters={ "batch-size":512, "epochs":1, "learning-rate":1e-3, "beta_1":0.9, "beta_2":0.999, }, keep_alive_period_in_seconds=1800, ) # Starts a SageMaker training job and waits until completion estimator.fit('s3://my_bucket/my_training_data/')
接下来,创建第二个匹配的训练作业。在此示例中,我们创建了 my-training-job-2,它具有与 my-training-job-1 匹配的所有必要属性,但具有用于实验的其他超参数。第二个训练作业重用暖池,其启动速度比第一个训练作业快。以下代码示例使用 Tensorflow 估算器。暖池功能可以与 Amazon A SageMaker I 上运行的任何训练算法一起使用。有关需要匹配的属性的更多信息,请参阅匹配的训练作业。
# Creates an example estimator estimator = TensorFlow( ... entry_point='my-training-script.py', source_dir='code', role=role, model_dir='model_dir', framework_version='py37', py_version='pyxy', job_name='my-training-job-2', instance_type='ml.g4dn.xlarge', instance_count=1, volume_size=250, hyperparameters={ "batch-size":512, "epochs":2, "learning-rate":1e-3, "beta_1":0.9, "beta_2":0.999, }, keep_alive_period_in_seconds=1800, ) # Starts a SageMaker training job and waits until completion estimator.fit('s3://my_bucket/my_training_data/')
检查两个训练作业的暖池状态,以确认 my-training-job-1 的暖池为 Reused,my-training-job-2 的暖池为 InUse。
注意
训练作业名称有 date/time 后缀。示例训练作业名称 my-training-job-1 和 my-training-job-2 应替换为实际的训练作业名称。您可以使用 estimator.latest_training_job.job_name 命令来获取实际的训练作业名称。
session.describe_training_job('my-training-job-1') session.describe_training_job('my-training-job-2')
describe_training_job 的结果提供了有关给定训练作业的所有详细信息。找到 WarmPoolStatus 属性以检查有关训练作业的暖池的信息。您的输出应类似于以下示例:
# Warm pool status for training-job-1 ... 'WarmPoolStatus': {'Status': 'Reused', 'ResourceRetainedBillableTimeInSeconds': 1000, 'ReusedByName': my-training-job-2} ... # Warm pool status for training-job-2 ... 'WarmPoolStatus': {'Status': 'InUse'} ...
更新暖池
在训练作业完成且暖池状态为 Available 时,便能更新 KeepAlivePeriodInSeconds 值。
session.update_training_job(job_name, resource_config={"KeepAlivePeriodInSeconds":3600})
终止暖池
要手动终止暖池,请将 KeepAlivePeriodInSeconds
值设置为 0。
session.update_training_job(job_name, resource_config={"KeepAlivePeriodInSeconds":0})
当暖池超过指定的 KeepAlivePeriodInSeconds 值或有对集群的补丁更新时,暖池将自动终止。
使用亚马逊 A SageMaker I 控制台
通过此控制台,您可以创建暖池、释放暖池或查看特定训练作业的暖池状态和计费时间。您还可以查看哪个匹配的训练作业重用了暖池。
-
打开 Amazon SageMaker AI 控制台
,然后从导航窗格中选择训练作业。如果适用,每个训练作业的暖池状态都将显示在暖池状态列中,活动暖池的剩余时间将显示在剩余时间列中。 -
要从控制台创建使用暖池的训练作业,请选择创建训练作业。之后,请务必在配置训练作业资源时为保持活动期字段指定一个值。此值必须是介于 1 和 3600 之间的整数,它表示持续时间(以秒为单位)。
-
要从控制台释放暖池,请选择特定的训练作业,然后从操作下拉菜单中选择释放集群。
-
要查看有关暖池的更多信息,请选择训练作业名称。在作业详细信息页面中,向下滚动到暖池状态部分以查找暖池状态、暖池状态为
Available的剩余时间、暖池计费秒数以及已重用暖池的训练作业的名称(如果暖池状态为Reused)。
使用低级 SageMaker APIs
将 SageMaker AI 托管的温池与 SageMaker API 或 CLI 配合 Amazon 使用。
SageMaker 人工智能 API
使用 SageMaker AP SageMaker I 使用以下命令设置 AI 管理的温池:
Amazon CLI
使用 CL SageMaker I 使用以下命令设置 A Amazon I 管理的温池:
IAM 条件键
管理员可以选择使用sagemaker:KeepAlivePeriod条件键进一步限制某些用户或群组的KeepAlivePeriodInSeconds限制。 SageMaker AI 管理的温池的KeepAlivePeriodInSeconds值限制为 3600 秒(60 分钟),但管理员可以根据需要降低此限制。
有关更多信息,请参阅《服务授权参考》中的 SageMaker Amazon AI 条件密钥。