View a markdown version of this page

Ray によるノードの自動復旧 - Amazon SageMaker AI

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

Ray によるノードの自動復旧

HyperPod はノードのハードウェアと GPU の障害を検出し、オペレータのアクションなしでそのノードを復旧します。これはインフラストラクチャレイヤーで実行されます。Ray は設定を必要とせず、トレーニングコードは変更されません。

セットアップ

HyperPod クラスターAutomaticで を NodeRecoveryに設定します。これは、Ray からではなく、クラスターを作成または更新するときに適用します。詳細については、SageMaker AI API リファレンスのNodeRecovery」を参照してください。

クラスターのノード復旧がオンになると、そのクラスターで実行されるすべての Ray ワークロードに適用されます。

Ray での仕組み

HyperPod は、障害のあるノードを再起動するか、置き換えることで復旧します。Ray はノードの退出と再参加を通常のワーカーの損失として扱います。ヘッドは失われたワーカーを検出し、影響を受けるタスクとアクターを再スケジュールします。復旧したノードがクラスターに再参加すると、トレーニングは続行されます。

Amazon EKS とオーケストレーションされたクラスターのノード復旧の詳細については、「Amazon EKS とオーケストレーションされた SageMaker HyperPod クラスターのクラスター回復機能」を参照してください。

Ray Train で再試行を設定する

ノード復旧はノードを復元しますが、トレーニング実行には再試行するように指示する必要があります。Ray Train は、ワーカーが で まで失敗すると実行を再試行max_failuresしますFailureConfig。デフォルトは 0 であるため、HyperPod がノードを復旧しても、単一ノードの障害により実行は終了します。

リベラルな再試行を行います。ハードウェア障害はクラスター規模でルーチンであり、再試行は最初からではなく最新のチェックポイントから再開されます。次の例では、意図的に高い値である 20 を使用しています。

from ray.train import FailureConfig, RunConfig, ScalingConfig from ray.train.torch import TorchTrainer trainer = TorchTrainer( train_loop_per_worker=train_func, scaling_config=ScalingConfig(num_workers=8, use_gpu=True), run_config=RunConfig( failure_config=FailureConfig(max_failures=20), ), ) trainer.fit()

を無期限に再試行max_failures=-1するように設定します。再試行は、実行チェックポイントの場合にのみ支払われるため、これをチェックポイントとペアリングします。詳細については、「階層型チェックポイント」を参照してください。