パイプラインのステップの再試行ポリシー - Amazon SageMaker

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

パイプラインのステップの再試行ポリシー

再試行ポリシーは、エラーが発生した後に SageMaker パイプラインステップを自動的に再試行するのに役立ちます。パイプラインステップでは例外が発生する場合がありますが、例外はさまざまな理由で発生します。場合によっては、再試行によってこれらの問題を解決できることがあります。パイプラインステップの再試行ポリシーを使用すると、特定のパイプラインステップを再試行するかどうかを選択できます。

再試行ポリシーは、次のパイプラインステップのみをサポートします。

注記

チューニングと AutoML ステップの両方で実行されるジョブは、再試行ポリシーが設定されていても、内部的に再試行され、SageMaker.JOB_INTERNAL_ERROR 例外タイプは再試行されません。 SageMaker API を使用して独自の再試行戦略をプログラムできます。

再試行ポリシーでサポートされる例外タイプ

パイプラインステップの再試行ポリシーは、次の例外タイプをサポートします。

  • Step.SERVICE_FAULT: これらの例外は、ダウンストリームサービスを呼び出すときに内部サーバーエラーまたは一時的なエラーが発生した場合に発生します。 SageMaker Pipelines はこのタイプのエラーを自動的に再試行します。再試行ポリシーを使用すると、この例外タイプのデフォルトの再試行オペレーションをオーバーライドできます。

  • Step.THROTTLING: ダウンストリームサービスを呼び出すときにスロットリング例外が発生する可能性があります。 SageMaker Pipelines はこのタイプのエラーを自動的に再試行します。再試行ポリシーを使用すると、この例外タイプのデフォルトの再試行オペレーションをオーバーライドできます。

  • SageMaker.JOB_INTERNAL_ERROR: これらの例外は、 SageMaker ジョブが を返すときに発生しますInternalServerError。この場合、新しいジョブを始めると、一時的な問題が解決することがあります。

  • SageMaker.CAPACITY_ERROR: SageMaker ジョブで Amazon EC2 が発生しInsufficientCapacityErrors、 SageMaker ジョブが失敗する可能性があります。新しい SageMaker ジョブを開始して再試行すると、問題を回避できます。

  • SageMaker.RESOURCE_LIMIT: SageMaker ジョブの実行時にリソース制限クォータを超えることができます。しばらく待ってから SageMaker ジョブの実行を再試行し、リソースが解放されているかどうかを確認できます。

再試行ポリシーの JSON スキーマ

パイプラインの再試行ポリシーには、以下の JSON スキーマがあります。

"RetryPolicy": { "ExceptionType": [String] "IntervalSeconds": Integer "BackoffRate": Double "MaxAttempts": Integer "ExpireAfterMin": Integer }
  • ExceptionType: このフィールドには、以下の例外タイプが文字列配列形式で必要です。

    • Step.SERVICE_FAULT

    • Step.THROTTLING

    • SageMaker.JOB_INTERNAL_ERROR

    • SageMaker.CAPACITY_ERROR

    • SageMaker.RESOURCE_LIMIT

  • IntervalSeconds (オプション): 最初の再試行までの秒数 (デフォルトは 1)。IntervalSeconds の最大値は 43,200 秒 (12 時間) です。

  • BackoffRate (オプション): 各試行間で再試行間隔が増加する乗数 (デフォルトは 2.0)。

  • MaxAttempts (オプション): 再試行の最大回数を表す正の整数 (デフォルトは 5)。MaxAttempts で指定された回数を超えてエラーが再発する場合、再試行が停止され通常のエラー処理が再開されます。0 の値は、エラーが再試行されないことを指定します。MaxAttempts の最大値は 20 です。

  • ExpireAfterMin (オプション): 再試行の最大タイムスパンを表す正の整数。ステップの実行から数えて ExpireAfterMin 分後にエラーが再発した場合は、再試行が停止され、通常のエラー処理が再開されます。0 の値は、エラーが再試行されないことを指定します。ExpireAfterMin の最大値は 14,400 分 (10 日) です。

    注記

    MaxAttempts または ExpireAfterMin のいずれか 1 つを指定できますが、両方を指定することはできません。両方とも指定されていない場合は、MaxAttempts がデフォルトになります。1 つのポリシーに両方のプロパティがあると、再試行ポリシーによって検証エラーが生成されます。

再試行ポリシーを設定する

以下は、再試行ポリシーを使用したトレーニングステップの例です。

{ "Steps": [ { "Name": "MyTrainingStep", "Type": "Training", "RetryPolicies": [ { "ExceptionType": [ "SageMaker.JOB_INTERNAL_ERROR", "SageMaker.CAPACITY_ERROR" ], "IntervalSeconds": 1, "BackoffRate": 2, "MaxAttempts": 5 } ] } ] }

以下は、再試行ポリシーを使用して SDK for Python (Boto3) に TrainingStep を構築する方法の例です。

from sagemaker.workflow.retry import ( StepRetryPolicy, StepExceptionTypeEnum, SageMakerJobExceptionTypeEnum, SageMakerJobStepRetryPolicy ) step_train = TrainingStep( name="MyTrainingStep", xxx, retry_policies=[ // override the default StepRetryPolicy( exception_types=[ StepExceptionTypeEnum.SERVICE_FAULT, StepExceptionTypeEnum.THROTTLING ], expire_after_mins=5, interval_seconds=10, backoff_rate=2.0 ), // retry when resource limit quota gets exceeded SageMakerJobStepRetryPolicy( exception_types=[SageMakerJobExceptionTypeEnum.RESOURCE_LIMIT], expire_after_mins=120, interval_seconds=60, backoff_rate=2.0 ), // retry when job failed due to transient error or EC2 ICE. SageMakerJobStepRetryPolicy( failure_reason_types=[ SageMakerJobExceptionTypeEnum.INTERNAL_ERROR, SageMakerJobExceptionTypeEnum.CAPACITY_ERROR, ], max_attempts=10, interval_seconds=30, backoff_rate=2.0 ) ] )

特定のステップタイプの再試行動作の設定の詳細については、Amazon Python SDK ドキュメントの「Amazon SageMaker Model Building Pipelines - Retry Policy」を参照してください。 SageMaker