翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
SageMaker AI マネージドウォームプールの使用
SageMaker AI マネージドウォームプールは、SageMaker Python SDK、Amazon SageMaker AI コンソール、または低レベル API を通じて使用できます。管理者はオプションで sagemaker:KeepAlivePeriod 条件キーを使用して、特定のユーザーまたはグループの KeepAlivePeriodInSeconds 制限をさらに制限できます。
SageMaker AI Python SDK を使用する
SageMaker Python SDK でウォームプールを作成、更新、または終了します。
注記
この機能は SageMaker AI Python SDK v2.110.0
ウォームプールを作成する
ウォームプールを作成するには、SageMaker Python SDK を使用して 0 より大きいkeep_alive_period_in_seconds値でトレーニングジョブを作成し、トレーニングを開始します。トレーニングジョブが完了すると、ウォームプールは保持されます。スクリプトでウォームプールが作成されない場合は、「ウォームプールの作成」の考えられる説明を参照してください。
SageMaker Python SDK を使用して、Compute設定で 0 より大きいkeep_alive_period_in_seconds値ModelTrainerを持つ を作成し、 を呼び出しますtrain()。SageMaker Python SDK を使用したトレーニングの詳細については、SageMaker Python SDK を使用したモデルのトレーニング
from sagemaker.train import ModelTrainer from sagemaker.train.configs import Compute, SourceCode from sagemaker.core.helper.session_helper import Session, get_execution_role from sagemaker.core import image_uris from sagemaker.train.configs import InputData # Creates a SageMaker AI session and gets execution role session = Session() role = get_execution_role() # Retrieve the TensorFlow training image training_image = image_uris.retrieve( framework="tensorflow", region=session.boto_region_name, version="2.2", py_version="py37", instance_type="ml.g4dn.xlarge", image_scope="training" ) # Creates an example ModelTrainer with warm pool enabled model_trainer = ModelTrainer( training_image=training_image, source_code=SourceCode(source_dir='code', entry_script='my-training-script.py'), role=role, compute=Compute( instance_type='ml.g4dn.xlarge', instance_count=1, volume_size_in_gb=250, keep_alive_period_in_seconds=1800, ), hyperparameters={ "batch-size": "512", "epochs": "1", "learning-rate": "1e-3", "beta_1": "0.9", "beta_2": "0.999", }, ) # Starts a SageMaker training job and waits until completion train_data = InputData(channel_name="training", data_source='s3://my_bucket/my_training_data/') model_trainer.train(input_data_config=[train_data])
次に、一致する 2 つ目のトレーニングジョブを作成します。この例では、my-training-job-1 と一致する必要な属性がすべて含まれ、実験用に別のハイパーパラメータを持つ my-training-job-2 を作成します。2 つ目のトレーニングジョブはウォームプールを再利用し、1 つ目のトレーニングジョブよりも早く起動します。次のコード例では Tensorflow 推定器を使用しています。ウォームプール機能は、Amazon SageMaker AI で実行されるどのトレーニングアルゴリズムでも使用できます。どの属性が一致する必要があるかについての詳細は、「トレーニングジョブのマッチング」を参照してください。
# Creates a second ModelTrainer that reuses the warm pool model_trainer_2 = ModelTrainer( training_image=training_image, source_code=SourceCode(source_dir='code', entry_script='my-training-script.py'), role=role, compute=Compute( instance_type='ml.g4dn.xlarge', instance_count=1, volume_size_in_gb=250, keep_alive_period_in_seconds=1800, ), hyperparameters={ "batch-size": "512", "epochs": "2", "learning-rate": "1e-3", "beta_1": "0.9", "beta_2": "0.999", }, ) # Starts a SageMaker training job and waits until completion train_data = InputData(channel_name="training", data_source='s3://my_bucket/my_training_data/') model_trainer_2.train(input_data_config=[train_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 分) に制限されていますが、管理者は必要に応じてこの制限を下げることができます。
詳細については、サービス認可リファレンスの「Condition keys for Amazon SageMaker AI」を参照してください。