今日 アマゾンセージメーカー の SageMaker トレーニング インスタンス フォールバックのサポートを発表しました。 Amazon SageMaker 自動モデルチューニング (AMT) ユーザーが別のコンピューティング リソース構成を指定できるようにします。
SageMaker の自動モデル チューニングは、 範囲 アルゴリズムに指定するハイパーパラメータ。 次に、最高のパフォーマンスを発揮するモデルが得られるハイパーパラメータ値を選択します。 メトリック あなたが選ぶこと。
以前は、ユーザーは単一インスタンス構成を指定するオプションしかありませんでした。 これにより、使用率が高いために指定されたインスタンス タイプが使用できない場合に問題が発生する可能性があります。 以前は、トレーニング ジョブが InsufficientCapacityError (ICE) で失敗していました。 多くの場合、AMT はスマートな再試行を使用してこれらの障害を回避しましたが、持続的な低容量に直面しても無力なままでした。
この新機能は、インスタンス構成のリストを優先順に指定できることを意味します。これにより、容量が不足した場合に AMT ジョブがリスト内の次のインスタンスに自動的にフォールバックします。
次のセクションでは、ICE を克服するための大まかな手順について説明します。
- ハイパーパラメータ調整ジョブ構成の定義
- トレーニング ジョブ パラメータの定義
- ハイパーパラメータ調整ジョブを作成する
- トレーニング ジョブの説明
ハイパーパラメータ調整ジョブ構成の定義
HyperParameterTuningJobConfig object は、検索戦略、トレーニング ジョブの評価に使用される目的のメトリック、検索するパラメーターの範囲、チューニング ジョブのリソース制限など、チューニング ジョブを記述します。 この側面は、本日の機能リリースでは変更されていません。 それにもかかわらず、完全な例を示すためにそれを調べます。
ResourceLimits
object は、このチューニング ジョブのトレーニング ジョブと並列トレーニング ジョブの最大数を指定します。 この例では、 ランダム検索 戦略を作成し、最大 10 個のジョブを指定します (MaxNumberOfTrainingJobs
) および 5 つの同時ジョブ (MaxParallelTrainingJobs
)一度に。
ParameterRanges
object は、この調整ジョブが検索するハイパーパラメーターの範囲を指定します。 検索するハイパーパラメータの名前と最小値と最大値を指定します。 この例では、Continuous および Integer パラメーター範囲の最小値と最大値、およびハイパーパラメーターの名前 (「eta」、「max_depth」) を定義します。
AmtTuningJobConfig={
"Strategy": "Random",
"ResourceLimits": {
"MaxNumberOfTrainingJobs": 10,
"MaxParallelTrainingJobs": 5
},
"HyperParameterTuningJobObjective": {
"MetricName": "validation:rmse",
"Type": "Minimize"
},
"ParameterRanges": {
"CategoricalParameterRanges": [],
"ContinuousParameterRanges": [
{
"MaxValue": "1",
"MinValue": "0",
"Name": "eta"
}
],
"IntegerParameterRanges": [
{
"MaxValue": "6",
"MinValue": "2",
"Name": "max_depth"
}
]
}
}
トレーニング ジョブ パラメータの定義
トレーニング ジョブ定義では、指定したアルゴリズムを使用してトレーニング ジョブを実行するために必要な入力を定義します。 トレーニングが完了すると、SageMaker は結果のモデルアーティファクトを Amazon Simple Storage Service(Amazon S3) 指定した場所。
以前は、インスタンス タイプ、数、およびボリューム サイズを ResourceConfig
パラメータ。 このパラメーターのインスタンスが使用できない場合、容量不足エラー (ICE) がスローされました。
これを回避するために、 HyperParameterTuningResourceConfig
の下のパラメータ TrainingJobDefinition
、フォールバックするインスタンスのリストを指定します。 これらのインスタンスの形式は、 ResourceConfig
. ジョブは、リストを上から下に走査して、使用可能なインスタンス構成を見つけます。 インスタンスが利用できない場合、容量不足エラー (ICE) の代わりに、リスト内の次のインスタンスが選択され、ICE を克服します。
TrainingJobDefinition={
"HyperParameterTuningResourceConfig": {
"InstanceConfigs": [
{
"InstanceType": "ml.m4.xlarge",
"InstanceCount": 1,
"VolumeSizeInGB": 5
},
{
"InstanceType": "ml.m5.4xlarge",
"InstanceCount": 1,
"VolumeSizeInGB": 5
}
]
},
"AlgorithmSpecification": {
"TrainingImage": "433757028032.dkr.ecr.us-west-2.amazonaws.com/xgboost:latest",
"TrainingInputMode": "File"
},
"InputDataConfig": [
{
"ChannelName": "train",
"CompressionType": "None",
"ContentType": "json",
"DataSource": {
"S3DataSource": {
"S3DataDistributionType": "FullyReplicated",
"S3DataType": "S3Prefix",
"S3Uri": "s3://<bucket>/test/"
}
},
"RecordWrapperType": "None"
}
],
"OutputDataConfig": {
"S3OutputPath": "s3://<bucket>/output/"
},
"RoleArn": "arn:aws:iam::340308762637:role/service-role/AmazonSageMaker-ExecutionRole-20201117T142856",
"StoppingCondition": {
"MaxRuntimeInSeconds": 259200
},
"StaticHyperParameters": {
"training_script_loc": "q2bn-sagemaker-test_6"
},
}
ハイパーパラメータ調整ジョブを実行する
このステップでは、上で定義したハイパーパラメータ調整リソース構成を使用して、ハイパーパラメータ調整ジョブを作成して実行します。
SageMaker クライアントを初期化し、チューニング構成、トレーニング ジョブ定義、およびジョブ名を指定してジョブを作成します。
import boto3
sm = boto3.client('sagemaker')
sm.create_hyper_parameter_tuning_job(
HyperParameterTuningJobName="my-job-name",
HyperParameterTuningJobConfig=AmtTuningJobConfig,
TrainingJobDefinition=TrainingJobDefinition)
トレーニング ジョブの説明
次の関数は、実験中に使用されたすべてのインスタンス タイプを一覧表示し、リソース割り当て中に SageMaker トレーニング インスタンスがリスト内の次のインスタンスに自動的にフォールバックしたかどうかを確認するために使用できます。
まとめ
この投稿では、AMT 実験が次の場合にフォールバックできるインスタンスのプールを定義する方法を示しました。 InsufficientCapacityError
. ハイパーパラメータ調整ジョブ構成を定義する方法と、トレーニング ジョブの最大数と最大並列ジョブを指定する方法を見てきました。 最後に、私たちは克服する方法を見ました InsufficientCapacityError
使用して、 HyperParameterTuningResourceConfig
パラメーター。トレーニング ジョブ定義で指定できます。
AMT の詳細については、次の Web サイトをご覧ください。 Amazon SageMaker 自動モデルチューニング.
著者について
ダグ・ムバヤ データと分析を専門とするシニア パートナー ソリューション アーキテクトです。 Doug は AWS パートナーと緊密に連携し、クラウドでのデータと分析ソリューションの統合を支援しています。
クルティ・ジャヤシマ ラオ は、Scale-PSAチームのパートナーソリューションアーキテクトです。 Kruthiは、パートナーの技術的検証を実施し、パートナーパスでの進歩を可能にします。