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