本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 SageMaker AI 受管暖集區
您可以透過 SageMaker SageMaker Python SDK、Amazon SageMaker AI 主控台或透過低階 API 使用 SageMaker AI 受管暖集區。 APIs 管理員可以選擇性地使用 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 分鐘),但管理員可以視需要降低此限制。
如需詳細資訊,請參閱《服務授權參考》中的 Amazon SageMaker AI 的條件金鑰。