Gemini Enterprise Agent Platform サーバーレス トレーニング サービスについて

このページでは、トレーニング ジョブのライフサイクルの中におけるトレーニング クラスタの状態と、Agent Platform がトレーニング エラーを処理する方法について説明します。この情報を使用して、それに応じてトレーニング コードを適応させることができます。

トレーニング ジョブのライフサイクル

このセクションでは、Agent Platform がトレーニング ジョブのライフサイクルの中でワーカー VM を処理する方法について説明します。

新しいジョブをキューに入れる

CustomJob または HyperparameterTuningJob を作成すると、Agent Platform がジョブを実行するまで、そのジョブが JOB_STATE_QUEUED 状態 のまま残ることがあります。通常、この状態は短い時間で終わりますが、プロジェクトにジョブのカスタム トレーニングの割り当てが残っていない場合、Agent Platform は十分な割り当てになるまでジョブをキューに残します。Google Cloud

ワーカーを並行して起動する

トレーニング ジョブが開始されると、Agent Platform は可能な限り多くのワーカーを短い期間内にスケジュール設定します。その結果、ワーカーは順番に起動するのではなく、並行して起動します。起動のレイテンシを短縮するため、Agent Platform は各ワーカーでコードが利用可能になり次第、コードの実行を開始します。すべてのワーカーが利用可能になると、Agent Platform は、ジョブの状態を JOB_STATE_RUNNING に設定します。

ほとんどの場合、機械学習フレームワークが、並列に起動するワーカーを自動的に処理します。トレーニング コードで分散戦略を使用している場合、並列に起動するワーカーを処理するために手動による調整が必要となることがあります。詳しくは、TensorFlowPyTorch における分散戦略をご覧ください。

トレーニング ジョブ中にワーカーを再起動する

トレーニング ジョブの実行中に、Agent Platform が同じホスト名を持つワーカープールからワーカーを再起動する場合があります。その理由としては、以下のことが考えられます。

トレーニング コード内でワーカーの再起動を処理するには、トレーニング中にチェックポイントを定期的に保存し、ワーカーの再起動時にチェックポイントから復元できるようにします。トレーニングに 4 時間以上かかると予想される場合は、少なくとも 4 時間に 1 回、チェックポイントを保存することをおすすめします。TensorFlowPyTorch でトレーニング チェックポイントを使用する方法を確認してください。

ジョブの正常終了

トレーニング ジョブが正常に完了すると、プライマリ レプリカが終了コード 0 で終了します。その時点で、Agent Platform は実行中の他のワーカーをすべてシャットダウンします。

Agent Platform によるトレーニング ジョブ エラーの処理方法

このセクションでは、Agent Platform が一般的なトレーニング ジョブ エラーと内部エラーを処理する方法について説明します。

ジョブが終了してから約 1 分後に、Agent Platform は終了コードに基づいて、トレーニング ジョブ オブジェクトにエラーコードを設定します。

一般的なエラーを処理する

次のいずれかの問題が発生した場合、Agent Platform はすべてのワーカーをシャットダウンします。

エラーの種類 エラー メッセージ / ログ
ユーザーコードの例外 The replica REPLICA_NAME exited with a non-zero status of EXIT_CODE. Termination reason: REASON. ジョブで一時的な終了コードが発生した場合、 Agent Platform は、ジョブを 3 回まで再試行します。 Agent Platform にジョブを再試行するよう求める一時的なエラーコードには、次のようなものがあります。
  • SIGABRT
    • ExitCode 6
    • ExitCode 134(カスタム コンテナ)
  • SIGSEGV
    • ExitCode 11
    • ExitCode 139(カスタム コンテナ)
メモリ不足 The replica REPLICA_NAME ran out of memory and exited with a non-zero status of EXIT_CODE. GKE は Agent Platform ノード上でメモリを予約します。最小マシンタイプ(n1-standard-4 など)の場合、Agent Platform システム エージェントは合計メモリの 40% まで使用できます。大規模な VM の場合、オーバーヘッドは比較的小さくなります。n1-standard マシンタイプに割り当て可能なメモリを比較します。
リージョンでの容量不足(Compute Engine の在庫切れ) Resources are insufficient in region: REGION_NAME. 別のリージョンを試すか、別のアクセラレータを使用してください。 在庫切れは、選択した CPU または GPU の容量がリージョンでの Compute Engine の処理能力の上限に達した場合に発生します。これは、プロジェクトの割り当てとは関係ありません。 この場合、Agent Platform は、ジョブを 3 回まで再試行します。

A2 VM と A3 VM で実行されるジョブの場合、Dynamic Workload Scheduler を使用すると、 在庫切れエラーで失敗したときではなく、リクエストされた GPU リソースが利用可能になったタイミングで実行するジョブを スケジュールできます。詳細については、 リソースの可用性に基づいてトレーニング ジョブをスケジュールするをご覧ください。

内部エラーを処理する

Agent Platform で内部エラーが発生した場合は、ジョブの再起動を 2 回試みます(合計 3 回試行)。その再起動にも失敗すると、Agent Platform は「Internal error occurred for the current attempt」というメッセージで内部エラーを返します。