本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
您可以透過 SageMaker Python SDK、Amazon SageMaker AI 主控台或透過低階 APIs 使用 SageMaker AI 受管暖集區。 Amazon SageMaker 管理員可以選擇性地使用 sagemaker:KeepAlivePeriod
條件索引鍵,進一步限制特定使用者或群組的 KeepAlivePeriodInSeconds
範圍。
使用 SageMaker AI Python SDK
使用 SageMaker Python SDK 建立、更新或終止暖集區。
注意
此功能可在 SageMaker AI Python SDK 2.110.0 版
建立暖集區
若要建立暖集區,請使用 SageMaker Python SDK 建立 keep_alive_period_in_seconds
值大於 0 的估算器,然後呼叫 fit()
。訓練工作完成時,會保留一個暖集區。如需有關訓練指令碼和估算器的更多資訊,請參閱使用 SageMaker Python 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 SageMaker AI 上執行的任何訓練演算法搭配使用。如需哪些屬性必須符合的更多資訊,請參閱符合的訓練任務。
# 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
。
注意
訓練任務名稱有日期/時間尾碼。範例訓練任務名稱 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
值或叢集有修補程式更新時,就會自動終止。
使用 Amazon SageMaker AI 主控台
透過主控台,您可以建立暖集區、釋放暖集區,或檢查特定訓練工作的暖集區狀態和應計費時間。您還可以查看哪些相符的訓練任務重複使用了暖集區。
-
開啟 Amazon SageMaker AI 主控台
,然後從導覽窗格中選擇訓練任務。如果適用,每個訓練工作的暖集區狀態會顯示在 暖集區狀態 欄內,而使用中暖集區的剩餘時間則會顯示在 剩餘時間 欄內。 -
若要從主控台建立使用暖集區的訓練工作,請選擇 建立訓練任務。接著,在設定訓練工作資源時,請務必指定 保持作用期間 欄位的值。此值必須是介於 1 到 3600 之間的整數,表示持續時間,以秒為單位。
-
若要從主控台釋放暖集區,請選取特定的訓練工作,然後從 動作 下拉式功能表選擇 發佈叢集。
-
若要查看暖集區的更多資訊,請選擇一個訓練任務名稱。在工作詳細資料頁面中,向下捲動至 暖集區狀態 區段,尋找暖集區狀態、剩餘時間 (若暖集區狀態為
Available
)、暖集區計費秒數,以及重複使用暖集區的訓練工作名稱 (若暖集區狀態為Reused
)。
使用低階 SageMaker API
搭配 SageMaker API 或 CLI 使用 SageMaker AI AWS 受管暖集區。
SageMaker AI API
使用 SageMaker API 搭配下列命令來設定 SageMaker AI 受管暖集區:
AWS CLI
使用具有下列命令的 CLI 設定 SageMaker AI AWS 受管暖集區:
IAM 條件索引鍵
管理員可以選擇性地使用 sagemaker:KeepAlivePeriod
條件索引鍵,進一步限制特定使用者或群組的 KeepAlivePeriodInSeconds
範圍。SageMaker AI 受管暖集區KeepAlivePeriodInSeconds
的值限制為 3600 秒 (60 分鐘),但管理員可以視需要降低此限制。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "EnforceKeepAlivePeriodLimit",
"Effect": "Allow",
"Action": [
"sagemaker:CreateTrainingJob"
],
"Resource": "*",
"Condition": {
"NumericLessThanIfExists": {
"sagemaker:KeepAlivePeriod": 1800
}
}
}
]
}
如需詳細資訊,請參閱 服務授權參考中的 Amazon SageMaker AI 的條件金鑰。