このページでは、トレーニング ジョブのライフサイクルの中におけるトレーニング クラスタの状態と、AI Platform Training がトレーニング エラーを処理する方法について説明します。この情報を使用して、それに応じてトレーニング コードを適応させることができます。
トレーニング ジョブのライフサイクル
このセクションでは、AI Platform Training がトレーニング ジョブのライフサイクルの中でワーカー VM を処理する方法について説明します。
ワーカーを並行に起動する
トレーニング ジョブが開始されると、AI Platform Training は可能な限り多くのワーカーを短い期間内にスケジュール設定します。その結果、ワーカーは順番に起動するのではなく、並行して起動します。起動のレイテンシを短縮するため、AI Platform Training は、各ワーカーでコードが利用可能になるすぐにその実行を開始します。すべてのワーカーが利用可能になると、AI Platform Training は、ジョブの状態を RUNNING
に設定します。
ほとんどの場合、機械学習フレームワークが、並列に起動するワーカーを自動的に処理します。トレーニング コードで分散戦略を使用している場合、並列に起動するワーカーを処理するために手動による調整が必要となることがあります。詳しくは、TensorFlow と PyTorch における分散戦略をご覧ください。
トレーニング ジョブ中にワーカーを再起動する
トレーニング ジョブ中、AI Platform Training は、同じホスト名のマスター、ワーカー、パラメータ サーバーを再起動できます。その理由としては、以下のことが考えられます。
- VM のメンテナンス: ワーカーを実行している VM が VM メンテナンスの対象になる場合、AI Platform Training は別の VM でワーカーを再起動します。詳細については、VM メンテナンスのためのライブ マイグレーションをご覧ください。
ゼロ以外での終了: ワーカーがゼロ以外の終了コードで終了すると、AI Platform Training は、そのワーカーを同じ VM 内ですぐに再起動します。
- ワーカーが一般的なエラーで停止すると、それは恒久的なエラーとして扱われ、AI Platform Training によってジョブ全体がシャットダウンされます。AI Platform Training がジョブ全体をシャットダウンする前にコンテナが再起動した場合、これらのコンテナは Cloud Logging にログを残すことがあります。
- 非恒久的なエラー(一般的なエラーに記載がないエラー)でワーカーが停止すると、AI Platform Training は、再起動したワーカーが動作を継続できるようにします。これにより、ワーカーごとに最大 5 回再起動できるようになります。5 回再起動した後、ワーカーが再び停止すると、AI Platform Training はジョブ全体を最大 3 回再試行した後、ジョブ全体を異常終了とします。
トレーニング コード内でワーカーの再起動を処理するには、トレーニング中にチェックポイントを定期的に保存し、ワーカーの再起動時にチェックポイントから復元できるようにします。トレーニングに 4 時間以上かかると予想される場合は、少なくとも 4 時間に 1 回、チェックポイントを保存することをおすすめします。TensorFlow と PyTorch でトレーニング チェックポイントを使用する方法を確認してください。
ジョブの正常終了
トレーニング ジョブが正常に完了すると、プライマリ レプリカが終了コード 0 で終了します。その時点で、AI Platform Training は実行中の他のワーカーをすべてシャットダウンします。
AI Platform Training によるトレーニング ジョブ エラーの処理方法
このセクションでは、AI Platform Training が一般的なトレーニング ジョブ エラーと内部エラーを処理する方法について説明します。
ジョブが終了すると約 1 分後に、AI Platform Training は、終了コードに基づいて、トレーニング ジョブ オブジェクトにエラーコードを設定します。
一般的なエラーを処理する
次のいずれかが発生すると、AI Platform Training はすべてのワーカーをシャットダウンします。
エラーの種類 | エラー メッセージ / ログ | 注 |
ユーザーコードの例外 | The replica REPLICA_NAME exited with a non-zero status of EXIT_CODE. Termination reason: REASON. | ジョブで一時的な終了コードが発生した場合、AI Platform Training は、ジョブを 3 回まで再試行します。AI Platform Training にジョブを再試行するよう求める一時的なエラーコードには、次のようなものがあります。
|
メモリ不足 | The replica REPLICA_NAME ran out of memory and exited with a non-zero status of EXIT_CODE. |
GKE は AI Platform Training ノード上でメモリを予約します。最小マシンタイプ(n1-standard-4 など)の場合、AI Platform Training システム エージェントは合計でメモリの 40% まで使用できます。大規模な VM の場合、オーバーヘッドは比較的小さくなります。n1-standard マシンタイプに割り当て可能なメモリを比較します。 |
リージョンでの容量不足(Compute Engine の在庫切れ) | Resources are insufficient in region: REGION_NAME. 別のリージョンを試すか、別のアクセラレータを使用してください。 | 在庫切れは、選択した CPU または GPU の容量がリージョンでの Compute Engine の処理能力の上限に達した場合に発生します。これは、プロジェクトの割り当てとは関係ありません。この場合、AI Platform Training は、ジョブを 3 回まで再試行します。 |
内部エラーを処理する
AI Platform Training で内部エラーが発生した場合は、ジョブの再起動を 2 回試みます(合計 3 回試行)。その再起動にも失敗すると、AI Platform Training は、「Internal error occurred for the current attempt
」というメッセージで内部エラーを返します。