(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025004046
(43)【公開日】2025-01-14
(54)【発明の名称】クラスタに基づくトレーニング方法、装置、電子機器及び記憶媒体
(51)【国際特許分類】
G06N 20/00 20190101AFI20250106BHJP
【FI】
G06N20/00
【審査請求】有
【請求項の数】23
【出願形態】OL
【外国語出願】
【公開請求】
(21)【出願番号】P 2024166774
(22)【出願日】2024-09-25
(31)【優先権主張番号】202311767093.6
(32)【優先日】2023-12-20
(33)【優先権主張国・地域又は機関】CN
(71)【出願人】
【識別番号】514322098
【氏名又は名称】ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド
【氏名又は名称原語表記】Beijing Baidu Netcom Science Technology Co., Ltd.
【住所又は居所原語表記】2/F Baidu Campus, No.10, Shangdi 10th Street, Haidian District, Beijing 100085, China
(74)【代理人】
【識別番号】110000578
【氏名又は名称】名古屋国際弁理士法人
(72)【発明者】
【氏名】于佃海
(72)【発明者】
【氏名】田戈▲シャオ▼
(72)【発明者】
【氏名】▲コン▼▲偉▼宝
(72)【発明者】
【氏名】王海峰
(72)【発明者】
【氏名】徐永生
(72)【発明者】
【氏名】▲楊▼嘉彬
(57)【要約】 (修正有)
【課題】障害回復時間を短縮し、モデルトレーニング効率を向上させる、クラスタに基づくトレーニング方法、装置、電子機器及び記憶媒体を提供する。
【解決手段】方法は、トレーニングノードにハードウェア障害が存在することに応答して、複数のスタンバイノードからターゲットスタンバイノードを選択し、トレーニングノードにおけるモデルトレーニングタスクのターゲットトレーニングスナップショットを取得する。ターゲットトレーニングスナップショットは、モデルトレーニングタスクのトレーニング状態データを含む。方法は、トレーニングノードにおけるモデルトレーニング手順のコンテナイメージとトレーニング状態データとに基づいて、ターゲットスタンバイノードがトレーニングノードを代えてモデルトレーニングタスクを継続的に実行するように、ターゲットスタンバイノードを初期化する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
クラスタに基づくトレーニング方法であって、
前記クラスタは、モデルトレーニングタスクを実行するためのトレーニングノードと複数のスタンバイノードとを含み、
トレーニングノードにハードウェア障害が存在することに応答して、複数のスタンバイノードからターゲットスタンバイノードを選択し、前記トレーニングノードにおけるモデルトレーニングタスクのターゲットトレーニングスナップショットを取得するステップであって、前記ターゲットトレーニングスナップショットは、前記モデルトレーニングタスクのトレーニング状態データを含むステップと、
前記トレーニングノードにおけるモデルトレーニング手順のコンテナイメージと前記トレーニング状態データとに基づいて、前記ターゲットスタンバイノードが前記トレーニングノードを代えて前記モデルトレーニングタスクを継続的に実行するように、前記ターゲットスタンバイノードを初期化するステップと、を含む、
ことを特徴とするクラスタに基づくトレーニング方法。
【請求項2】
前記トレーニングノードにおけるモデルトレーニングタスクのターゲットトレーニングスナップショットを取得するステップは、
前記トレーニングノードにおける前記モデルトレーニングタスクの少なくとも1つのトレーニングスナップショットを取得するステップであって、前記トレーニングスナップショットは、ターゲット周期に基づいて前記トレーニングノードから取得されるステップと、
少なくとも1つのトレーニングスナップショットから、前記ターゲットトレーニングスナップショットを選択するステップと、を含む、
ことを特徴とする請求項1に記載のクラスタに基づくトレーニング方法。
【請求項3】
前記方法は、
前記モデルトレーニングタスクのトレーニングスナップショットの1回の予測保存オーバーヘッドを取得するステップと、
設定時間長と前記1回の予測保存オーバーヘッドとに基づいて、前記ターゲット周期を変数とする総保存オーバーヘッド関数を構築するステップと、
前記ターゲット周期を変数とする無効なトレーニングオーバーヘッド関数を構築するステップと、
前記総保存オーバーヘッド関数と前記無効なトレーニングオーバーヘッド関数とに基づいて、ターゲットオーバーヘッド関数を決定するステップと、
前記ターゲットオーバーヘッド関数に対してソルビング処理を行い、前記ターゲット周期を決定するステップと、をさらに含む、
ことを特徴とする請求項2に記載のクラスタに基づくトレーニング方法。
【請求項4】
前記クラスタはストレージノードを含み、前記トレーニングノードにおける前記モデルトレーニングタスクの少なくとも1つのトレーニングスナップショットを取得するステップは、
前記ターゲット周期に基づいて、前記トレーニングノードを制御して第1のプロセスに基づいて、前記トレーニングスナップショットを前記トレーニングノードのメモリに保存するステップと、
前記トレーニングノードを制御して第2のプロセスに基づいて、前記メモリから前記トレーニングスナップショットを読み取り、前記トレーニングスナップショットを前記トレーニングノードのソリッドステートディスクに保存するステップと、
前記トレーニングノードを制御して第3のプロセスに基づいて、前記ソリッドステートディスクから前記トレーニングスナップショットを読み取り、前記トレーニングスナップショットを前記ストレージノードに送信するステップと、を含む、
ことを特徴とする請求項2に記載のクラスタに基づくトレーニング方法。
【請求項5】
前記トレーニングスナップショットには取得時間が対応し、前記少なくとも1つのトレーニングスナップショットから、前記ターゲットトレーニングスナップショットを選択するステップは、
前記トレーニングノードの前記ハードウェア障害に対応する障害時間を取得するステップと、
対応する取得時間と前記障害時間との間隔が最も短いトレーニングスナップショットを前記ターゲットトレーニングスナップショットとして選択するステップと、を含む、
ことを特徴とする請求項2に記載のクラスタに基づくトレーニング方法。
【請求項6】
前記スタンバイノードはモデルトレーニングタスク以外の他のタスクを実行するために使用され、前記複数のスタンバイノードからターゲットスタンバイノードを選択するステップは、
前記スタンバイノードの優先度を取得するステップであって、前記優先度は、前記他のタスクの重要度を指示するステップと、
前記優先度に基づいて、前記複数のスタンバイノードから前記ターゲットスタンバイノードを選択するステップと、を含む、
ことを特徴とする請求項1に記載のクラスタに基づくトレーニング方法。
【請求項7】
前記ターゲットスタンバイノードを初期化するステップは、
前記ターゲットスタンバイノードに対して通信帯域幅検証及び/又はサイレントデータエラー検証を行うステップと、
通信帯域幅検証に合格し、及び/又はサイレントデータエラー検証に合格したことに応答して、前記ターゲットスタンバイノードを初期化するステップと、を含む、
ことを特徴とする請求項1に記載のクラスタに基づくトレーニング方法。
【請求項8】
前記方法は、
前記トレーニングノードにソフトウェア障害が存在することに応答して、前記トレーニングノードにおける異常プロセスを決定し、前記異常プロセスを再開するステップをさらに含む、
ことを特徴とする請求項1に記載のクラスタに基づくトレーニング方法。
【請求項9】
前記方法は、
前記トレーニングノードに対して障害監視を行うステップと、
前記トレーニングノードの障害コードが取得されたことに応答して、障害コードと障害タイプとの間のマッピング関係に基づいて、前記トレーニングノードの障害タイプを決定するステップと、をさらに含み、
前記障害タイプは、ハードウェア障害又はソフトウェア障害を含む、
ことを特徴とする請求項1に記載のクラスタに基づくトレーニング方法。
【請求項10】
前記方法は、
前記クラスタの予測可用性と単位時間当たりの障害ノードの予測数とを取得するステップと、
前記予測可用性と前記予測数とに基づいて、前記スタンバイノードの数を決定するステップと、をさらに含む、
ことを特徴とする請求項1に記載のクラスタに基づくトレーニング方法。
【請求項11】
クラスタに基づくトレーニング装置であって、
前記クラスタは、モデルトレーニングタスクを実行するためのトレーニングノードと複数のスタンバイノードとを含み、
トレーニングノードにハードウェア障害が存在することに応答して、複数のスタンバイノードからターゲットスタンバイノードを選択し、前記トレーニングノードにおけるモデルトレーニングタスクのターゲットトレーニングスナップショットを取得するための第1の応答モジュールであって、前記ターゲットトレーニングスナップショットは、前記モデルトレーニングタスクのトレーニング状態データを含む第1の応答モジュールと、
前記トレーニングノードにおけるモデルトレーニング手順のコンテナイメージと前記トレーニング状態データとに基づいて、前記ターゲットスタンバイノードが前記トレーニングノードを代えて前記モデルトレーニングタスクを継続的に実行するように、前記ターゲットスタンバイノードを初期化するための初期化モジュールと、を含む、
ことを特徴とするクラスタに基づくトレーニング装置。
【請求項12】
前記第1の応答モジュールは、
前記トレーニングノードにおける前記モデルトレーニングタスクの少なくとも1つのトレーニングスナップショットを取得し、前記トレーニングスナップショットは、ターゲット周期に基づいて前記トレーニングノードから取得されるものであり、
少なくとも1つのトレーニングスナップショットから、前記ターゲットトレーニングスナップショットを選択するために使用される、
ことを特徴とする請求項11に記載のクラスタに基づくトレーニング装置。
【請求項13】
前記装置は、
前記モデルトレーニングタスクのトレーニングスナップショットの1回の予測保存オーバーヘッドを取得するためのオーバーヘッド取得モジュールと、
設定時間長と前記1回の予測保存オーバーヘッドとに基づいて、前記ターゲット周期を変数とする総保存オーバーヘッド関数を構築するための第1の構築モジュールと、
前記ターゲット周期を変数とする無効なトレーニングオーバーヘッド関数を構築するための第2の構築モジュールと、
前記総保存オーバーヘッド関数と前記無効なトレーニングオーバーヘッド関数とに基づいて、ターゲットオーバーヘッド関数を決定するための関数決定モジュールと、
前記ターゲットオーバーヘッド関数に対してソルビング処理を行い、前記ターゲット周期を決定するためのソルビングモジュールと、をさらに含む、
ことを特徴とする請求項12に記載のクラスタに基づくトレーニング装置。
【請求項14】
前記クラスタはストレージノードを含み、前記第1の応答モジュールは、
前記ターゲット周期に基づいて、前記トレーニングノードを制御して第1のプロセスに基づいて、前記トレーニングスナップショットを前記トレーニングノードのメモリに保存し、
前記トレーニングノードを制御して第2のプロセスに基づいて、前記メモリから前記トレーニングスナップショットを読み取り、前記トレーニングスナップショットを前記トレーニングノードのソリッドステートディスクに保存し、
前記トレーニングノードを制御して第3のプロセスに基づいて、前記ソリッドステートディスクから前記トレーニングスナップショットを読み取り、前記トレーニングスナップショットを前記ストレージノードに送信するために使用される、
ことを特徴とする請求項12に記載のクラスタに基づくトレーニング装置。
【請求項15】
前記トレーニングスナップショットには取得時間が対応し、前記第1の応答モジュールは、
前記トレーニングノードの前記ハードウェア障害に対応する障害時間を取得し、
対応する取得時間と前記障害時間との間隔が最も短いトレーニングスナップショットを前記ターゲットトレーニングスナップショットとして選択するために使用される、
ことを特徴とする請求項12に記載のクラスタに基づくトレーニング装置。
【請求項16】
前記スタンバイノードはモデルトレーニングタスク以外の他のタスクを実行するために使用され、前記第1の応答モジュールは、
前記スタンバイノードの優先度を取得するステップであって、前記優先度は、前記他のタスクの重要度を指示し、
前記優先度に基づいて、前記複数のスタンバイノードから前記ターゲットスタンバイノードを選択するために使用される、
ことを特徴とする請求項11に記載のクラスタに基づくトレーニング装置。
【請求項17】
前記初期化モジュールは、
前記ターゲットスタンバイノードに対して通信帯域幅検証及び/又はサイレントデータエラー検証を行い、
通信帯域幅検証に合格し、及び/又はサイレントデータエラー検証に合格したことに応答して、前記ターゲットスタンバイノードを初期化するために使用される、
ことを特徴とする請求項11に記載のクラスタに基づくトレーニング装置。
【請求項18】
前記装置は、
前記トレーニングノードにソフトウェア障害が存在することに応答して、前記トレーニングノードにおける異常プロセスを決定し、前記異常プロセスを再開するための第2の応答モジュールをさらに含む、
ことを特徴とする請求項11に記載のクラスタに基づくトレーニング装置。
【請求項19】
前記装置は、
前記トレーニングノードに対して障害監視を行うための障害監視モジュールと、
前記トレーニングノードの障害コードが取得されたことに応答して、障害コードと障害タイプとの間のマッピング関係に基づいて、前記トレーニングノードの障害タイプを決定するためのタイプ決定モジュールであって、前記障害タイプは、ハードウェア障害又はソフトウェア障害を含むタイプ決定モジュールと、をさらに含む、
ことを特徴とする請求項11に記載のクラスタに基づくトレーニング装置。
【請求項20】
前記装置は、
前記クラスタの予測可用性と単位時間当たりの障害ノードの予測数とを取得するためのデータ取得モジュールと、
前記予測可用性と前記予測数とに基づいて、前記スタンバイノードの数を決定するための数決定モジュールと、をさらに含む、
ことを特徴とする請求項11に記載のクラスタに基づくトレーニング装置。
【請求項21】
電子機器であって、
少なくとも1つのプロセッサと、 前記少なくとも1つのプロセッサに通信可能に接続されるメモリと、を含み、
前記メモリには、前記少なくとも1つのプロセッサによって実行可能な命令が記憶され、前記命令は、前記少なくとも1つのプロセッサが請求項1~10のいずれかに記載の方法を実行するように、前記少なくとも1つのプロセッサによって実行される、
ことを特徴とする電子機器。
【請求項22】
コンピュータ命令が記憶されている非一時的なコンピュータ読み取り可能な記憶媒体であって
コンピュータ命令は、コンピュータに請求項1~10のいずれかに記載の方法を実行させる、
ことを特徴とする非一時的なコンピュータ読み取り可能な記憶媒体。
【請求項23】
コンピュータプログラムであって、
前記コンピュータプログラムがプロセッサによって実行される場合、請求項1~10のいずれかに記載の方法を実現する、
ことを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、データ処理技術分野に関し、具体的には、人工知能や深層学習などの分野であり、特に、クラスタに基づくトレーニング方法、装置、電子機器及び記憶媒体に関する。
【背景技術】
【0002】
人工知能(Artificial Intelligence、AI)の発展に伴い、モデルのトレーニングニーズも大きくなっている。
計算力の需要が高いトレーニングシーン、例えば、大規模モデルトレーニングシーンに対して、大規模モデルのトレーニング効率を高めるために、関連する研究者は、クラスタを使用して大規模モデルをトレーニングすることを提案する。しかし、クラスタを使用して大規模モデルをトレーニングする場合、クラスタは、高い計算力を提供し、ある程度モデルトレーニング効率を高めたが、しかし、クラスタ内の単一ノードに障害が発生すると、クラスタはトレーニング作業を停止し、モデルのトレーニング効率に影響を与えるため、クラスタを使用してモデルをトレーニングする時には、モデルのトレーニング効率をさらに高める必要がある。
【発明の概要】
【発明が解決しようとする課題】
【0003】
本開示はクラスタに基づくトレーニング方法、装置、機器及び記憶媒体を提供する。
【課題を解決するための手段】
【0004】
本開示の第1の態様によれば、クラスタに基づくトレーニング方法を提供し、前記クラスタは、モデルトレーニングタスクを実行するためのトレーニングノードと複数のスタンバイノードとを含み、
トレーニングノードにハードウェア障害が存在することに応答して、複数のスタンバイノードからターゲットスタンバイノードを選択し、前記トレーニングノードにおけるモデルトレーニングタスクのターゲットトレーニングスナップショットを取得するステップであって、前記ターゲットトレーニングスナップショットは、前記モデルトレーニングタスクのトレーニング状態データを含むステップと、
前記トレーニングノードにおけるモデルトレーニング手順のコンテナイメージと前記トレーニング状態データとに基づいて、前記ターゲットスタンバイノードが前記トレーニングノードを代えて前記モデルトレーニングタスクを継続的に実行するように、前記ターゲットスタンバイノードを初期化するステップと、を含む。
【0005】
本開示の第2の態様によれば、クラスタに基づくトレーニング装置を提供し、前記クラスタは、モデルトレーニングタスクを実行するためのトレーニングノードと複数のスタンバイノードとを含み、
トレーニングノードにハードウェア障害が存在することに応答して、複数のスタンバイノードからターゲットスタンバイノードを選択し、前記トレーニングノードにおけるモデルトレーニングタスクのターゲットトレーニングスナップショットを取得するための第1の応答モジュールであって、前記ターゲットトレーニングスナップショットは、前記モデルトレーニングタスクのトレーニング状態データを含む第1の応答モジュールと、
前記トレーニングノードにおけるモデルトレーニング手順のコンテナイメージと前記トレーニング状態データとに基づいて、前記ターゲットスタンバイノードが前記トレーニングノードを代えて前記モデルトレーニングタスクを継続的に実行するように、前記ターゲットスタンバイノードを初期化するための初期化モジュールと、を含む。
【0006】
本開示の第3の態様によれば、電子機器を提供し、
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサに通信可能に接続されるメモリと、を含み、
前記メモリには、前記少なくとも1つのプロセッサによって実行可能な命令が記憶され、前記命令は、前記少なくとも1つのプロセッサによって実行されて、前記少なくとも1つのプロセッサが第1の態様に記載のクラスタに基づくトレーニング方法を実行することができる。
【0007】
本開示の第4の態様によれば、コンピュータ命令が記憶されている非一時的なコンピュータ読み取り可能な記憶媒体を提供し、前記コンピュータ命令は、前記コンピュータに第1の態様に記載のクラスタに基づくトレーニング方法を実行させる。
【0008】
本開示の第5の態様によれば、コンピュータプログラムを提供し、前記コンピュータ命令がプロセッサによって実行される場合、第1の態様に記載のクラスタに基づくトレーニング方法のステップを実現する。
【0009】
本開示により提供されるクラスタに基づくトレーニング方法、装置及び電子機器は、以下の有益な効果があり:本開示はトレーニングノードにハードウェア障害が存在することに応答して、複数のスタンバイノードからターゲットスタンバイノードを選択し、トレーニングノードにおけるモデルトレーニングタスクのターゲットトレーニングスナップショットを取得し、ターゲットトレーニングスナップショットは、モデルトレーニングタスクのトレーニング状態データを含み、トレーニングノードにおけるモデルトレーニング手順のコンテナイメージとトレーニング状態データとに基づいて、ターゲットスタンバイノードがトレーニングノードを代えてモデルトレーニングタスクを継続的に実行するように、ターゲットスタンバイノードを初期化する。これによって、本開示はトレーニングノードにハードウェア障害が存在する場合、コンテナイメージとターゲットトレーニングスナップショットとに基づいてターゲットスタンバイノードを極速初期化して、ターゲットスタンバイノードが迅速にトレーニングノードを代えてモデルトレーニングタスクを継続的に実行して、障害回復時間を短縮し、モデルトレーニング効率を向上させることができる。
【0010】
本明細書に記載された内容は、本開示の実施例のキーまたは重要な特徴を識別することを意図するものではなく、本開示の範囲を制限するためにも使用されないことを理解されたい。本開示の他の特徴は、以下の明細書によって容易に理解される。
【図面の簡単な説明】
【0011】
図面は、本解決手段をよりよく理解するために使用され、本開示を限定するものではない。
【
図1】本開示の一実施例により提供されるクラスタに基づくトレーニング方法のフローチャートである。
【
図2】本開示の別の実施例により提供されるクラスタに基づくトレーニング方法のフローチャートである。
【
図3】本開示のまた別の実施例により提供されるクラスタに基づくトレーニング方法のフローチャートである。
【
図4】本開示の一実施例により提供されるクラスタに基づくトレーニング装置の概略構成図である。
【
図5】本開示の実施例のクラスタに基づくトレーニング方法を実現するための電子機器のブロック図である。
【発明を実施するための形態】
【0012】
以下、図面を組み合わせて本開示の例示的な実施例を説明する。ここでは、本開示の実施例の様々な詳細が理解を容易にするために含まれ、それらは単に例示的であると考えられるべきである。したがって、当業者は、本開示の範囲及び精神から逸脱することなく、本明細書に記載された実施例に対して様々な変更及び修正を加えることができることを認識すべきである。同様に、明確化および簡略化のために、以下の説明では、公知の機能および構造の説明を省略する。
【0013】
以下、図面を参照して本開示の実施例のクラスタに基づくトレーニング方法、装置及び電子機器を説明する。
なお、本実施例のクラスタに基づくトレーニング方法の実行主体はクラスタに基づくトレーニング装置であり、クラスタに基づくトレーニング装置は、ソフトウェア及び/又はハードウェアの方式で実現することができ、電子機器に配置することができる。
【0014】
図1は本開示の一実施例により提供されるクラスタに基づくトレーニング方法のフローチャートである。
【0015】
クラスタは、モデルトレーニングタスクを実行するためのトレーニングノードと複数のスタンバイノードとを含む。クラスタに含まれるトレーニングノードの数は、1つ又は複数であってもよく、クラスタにおけるトレーニングノードの数が複数である場合、複数のトレーニングノードによって1つのモデルをトレーニングすることができ、各トレーニングノードは、モデルの一部のトレーニングタスクを担う。
【0016】
トレーニングノードとスタンバイノードは圧測を経たノードを指すことができ、例えば、通信ユニット圧測、計算ユニット圧測、及びモデルのエンドツーエンド圧測を経たノードを指すことができる。ノードを圧測する周期は、ユーザが実際のニーズに応じて決定することができる。
【0017】
図1に示すように、当該クラスタに基づくトレーニング方法は以下のステップを含み、
ステップ101、トレーニングノードにハードウェア障害が存在することに応答して、複数のスタンバイノードからターゲットスタンバイノードを選択し、トレーニングノードにおけるモデルトレーニングタスクのターゲットトレーニングスナップショットを取得し、ターゲットトレーニングスナップショットは、モデルトレーニングタスクのトレーニング状態データを含む。
【0018】
選択的には、ハードウェア障害は、トレーニングノードにおけるハードウェアで出現された障害を指すことができる。限定ではなく例として、ハードウェアは、グラフィックスプロセッサ(graphics processing unit、GPU)、中央プロセッサ(central processing unit、CPU)及びネットワークカードなどを指すことができる。
【0019】
選択的には、複数のスタンバイノードからターゲットスタンバイノードを選択するステップは、複数のスタンバイノードからランダムに1つのスタンバイノードを、ターゲットスタンバイノードとして選択することができるステップを含む。
【0020】
ノードの利用率を高め、ノードリソースを十分に利用するために、スタンバイノードは一般的にアイドル状態にならない。すなわち、スタンバイノードは一般的に、モデルトレーニングタスク以外の他のタスクを実行する。
【0021】
選択的には、複数のスタンバイノードからターゲットスタンバイノードを選択するステップは、スタンバイノードの優先度を取得するステップであって、優先度は、他のタスクの重要度を指示するステップと、優先度に基づいて、複数のスタンバイノードからターゲットスタンバイノードを選択するステップと、を含む。
【0022】
優先度に基づいてターゲットスタンバイノードを選択し、一方は、スタンバイノードで実行中により重要な他のタスクが終了されることを回避することができ、一方は、クラスタの高可用性を確保し、ノード利用率を向上させることができる。
【0023】
優先度が高いほど、スタンバイノードが実行する他のタスクが重要であると仮定し、在優先度に基づいてターゲットスタンバイノードを選択する時、優先度が低いものから高い順にターゲットスタンバイノードを選択することができ、低い優先度のスタンバイノードが存在しないか、又は低い優先度のスタンバイノードが使用できない場合、高い優先度のスタンバイノードをターゲットスタンバイノードとして選択する。
【0024】
限定ではなく例として、複数のスタンバイノードに対応する優先度がそれぞれAとBであり、AがBより高いと仮定し、ターゲットスタンバイノードを選択する時、優先度がBであるスタンバイノードをターゲットスタンバイノードとして優先的に選択することができ、優先度がBであるスタンバイノードが存在しないか、又は優先度がBであるスタンバイノードが使用できない場合、優先度がAであるスタンバイノードをターゲットスタンバイノードとして選択する。その中、優先度がAであるスタンバイノードの数は、優先度がBであるスタンバイノードの数より多くてもよい。
【0025】
GPUハードウェアについて、GPUに障害が発生すると、その後の使用過程で再び障害が発生する確率が高く、クラスタ全体の障害頻度を下げ、トレーニング効率を高めるために、本開示は、従来障害が発生したGPUを1つの又は複数のノードに集中的に配置することができ、このようなノードを優先度の低いスタンバイノードとして、優先的にスケジューリングを行うことができることを提案する。
【0026】
選択的には、本開示は、ラスタの予測可用性と単位時間当たりの障害ノードの予測数とを取得するステップと、予測可用性と予測数とに基づいて、スタンバイノードの数を決定するステップと、をさらに含む。
【0027】
選択可能な実施方式では、予測可用性と予測数とに基づいてポアソンフィッティングして、スタンバイノードの数を取得することができる。
【0028】
限定ではなく例として、以下の式に基づいてスタンバイノードの数を決定することができ、
【0029】
【0030】
その中、αは予測可用性であり、μは予測数であり、xはソルビングしようとするスタンバイノードの数であり、上記式を解いてタンバイノードの数xを取得する。
【0031】
履歴データに基づいて単位時間当たりの障害ノードの予測数を統計して取得することができ、クラスタの予測障害頻度を換算して単位時間当たりの障害ノードの予測数を取得することもできる。
【0032】
予測可用性と予測数とに基づいてスタンバイノードの数を決定することによって、スタンバイノードが障害ノードをカバーすることができ、クラスタ高可用を実現することができる。
【0033】
選択的には、ターゲットトレーニングスナップショットは、モデルトレーニングタスクでトレーニングノードにハードウェア障害が出現された時のトレーニングスナップショットを指すことができ、モデルトレーニングタスクでトレーニングノードにハードウェア障害が出現する前のある時刻のトレーニングスナップショットを指すこともできる。
【0034】
ターゲットトレーニングスナップショットに含まれるモデルトレーニングタスクのトレーニング状態データは、トレーニングデータ状態、モデルパラメータ及びオプティマイザ状態などのデータを指すことができる。その中、トレーニングデータ状態は、トレーニングデータが既に使用されるか否かを指示するために使用され、トレーニングデータ状態に基づいて、ターゲットスタンバイノードが直接に使用されていないトレーニングデータに基づいてモデルをトレーニングすることができ、同じトレーニングデータに基づいてモデルを繰り返しトレーニングすることを回避することができ。
【0035】
ステップ102、トレーニングノードにおけるモデルトレーニング手順のコンテナイメージとトレーニング状態データとに基づいて、ターゲットスタンバイノードがトレーニングノードを代えてモデルトレーニングタスクを継続的に実行するように、ターゲットスタンバイノードを初期化する。
【0036】
モデルトレーニング手順のコンテナイメージは、事前に作成することができ、ターゲットスタンバイノードを決定した後、ターゲットスタンバイノードにコンテナイメージを配備することができ、モデルトレーニング手順の配備速度を向上させることができる。
【0037】
コンテナイメージを配備した後、トレーニング状態データに基づいてターゲットスタンバイノードに対してデータ配置を行うことができる。
【0038】
ターゲットスタンバイノードを初期化するプロセスは、ターゲットスタンバイノードのリソースをプリエンプトしてモデルトレーニングタスクを実行することと理解することができる。
【0039】
コンテナイメージとトレーニング状態データとに基づいてターゲットスタンバイノードを初期化することによって自動にハードウェア障害回復を行うことができ、ハードウェア障害回復時間を短縮し、ハードウェア障害回復効率を向上させることができる。
【0040】
本開示の実施例では、トレーニングノードにハードウェア障害が存在することに応答して、複数のスタンバイノードからターゲットスタンバイノードを選択し、トレーニングノードにおけるモデルトレーニングタスクのターゲットトレーニングスナップショットを取得し、ターゲットトレーニングスナップショットは、モデルトレーニングタスクのトレーニング状態データを含み、トレーニングノードにおけるモデルトレーニング手順のコンテナイメージとトレーニング状態データとに基づいて、ターゲットスタンバイノードがトレーニングノードを代えてモデルトレーニングタスクを継続的に実行するように、ターゲットスタンバイノードを初期化する。これによって、本開示は、トレーニングノードにハードウェア障害が存在する場合、コンテナイメージとターゲットトレーニングスナップショットとに基づいてターゲットスタンバイノードを極速初期化して、ターゲットスタンバイノードが迅速にトレーニングノードを代えてモデルトレーニングタスクを継続的に実行して、障害回復時間を短縮し、モデルトレーニング効率を向上させることができる。
【0041】
図2は本開示の別の実施例により提供されるクラスタに基づくトレーニング方法のフローチャートである。
【0042】
図2に示すように、当該クラスタに基づくトレーニング方法は以下のステップを含み、
ステップ201、トレーニングノードにハードウェア障害が存在することに応答して、複数のスタンバイノードからターゲットスタンバイノードを選択し、トレーニングノードにおけるモデルトレーニングタスクの少なくとも1つのトレーニングスナップショットを取得し、トレーニングスナップショットは、ターゲット周期に基づいてトレーニングノードから取得されるものであり、少なくとも1つのトレーニングスナップショットから、ターゲットトレーニングスナップショットを選択する。
【0043】
トレーニングノードがモデルトレーニングタスクを実行することを開始した後、ターゲット周期に基づいて、モデルトレーニングタスクのトレーニングスナップショットを定時に取得することによって、トレーニングノードハードウェア障害によるデータ損失及び無効なトレーニングの問題を回避することができる。
【0044】
クラスタはストレージノードをさらに含み、選択的には、トレーニングノードにおけるモデルトレーニングタスクの少なくとも1つのトレーニングスナップショットを取得するステップは、ターゲット周期に基づいて、トレーニングノードを制御して第1のプロセスに基づいて、トレーニングスナップショットをトレーニングノードのメモリに保存するステップと、トレーニングノードを制御して第2のプロセスに基づいて、メモリからトレーニングスナップショットを読み取り、トレーニングスナップショットをトレーニングノードのソリッドステートディスクに保存するステップと、トレーニングノードを制御して第3のプロセスに基づいて、ソリッドステートディスクからトレーニングスナップショットを読み取り、トレーニングスナップショットをストレージノードに送信するステップと、を含む。
【0045】
トレーニングノードが1つのプロセスだけを通じて順次にトレーニングスナップショットをメモリ、ソリッドステートディスク及びストレージノードに保存した場合、当該プロセスは、トレーニングスナップショットをストレージノードに記憶した後にのみ他の命令を実行することに戻ることができ、プログラムの全体実行効率が低い。
【0046】
複数のプロセスが非同期に取得するか、又はトレーニングスナップショットを記憶することで、プログラム実行中にブロックが発生することを回避することができ、プログラムの同時パフォーマンスをさらに向上させる。
【0047】
選択的には、ターゲット周期は、ユーザが経験に基づいて決定することができる。
【0048】
選択的には、以下の方式によってターゲット周期を決定することもでき、
モデルトレーニングタスクのトレーニングスナップショットの1回の予測保存オーバーヘッドを取得し、設定時間長と1回の予測保存オーバーヘッドとに基づいて、ターゲット周期を変数とする総保存オーバーヘッド関数を構築し、ターゲット周期を変数とする無効なトレーニングオーバーヘッド関数を構築し、総保存オーバーヘッド関数と無効なトレーニングオーバーヘッド関数とに基づいて、ターゲットオーバーヘッド関数を決定し、ターゲットオーバーヘッド関数に対してソルビング処理を行い、ターゲット周期を決定する。
【0049】
限定ではなく例として、1回の予測保存オーバーヘッドは、トレーニングノードを制御して3つのプロセスによってトレーニングスナップショットをストレージノードに保存する時に対応する保存オーバーヘッドを指すことができる、他の保存方式によってトレーニングスナップショットを保存するオーバーヘッドを指すこともできる。
【0050】
限定ではなく例として、設定時間長は、トレーニングノードがモデルトレーニングタスクを実行することを開始してからモデルトレーニングタスク中断までの平均時間長を指すことができ、ユーザが経験に基づいて決定された時間長であってもよい。
【0051】
限定ではなく例として、以下の式によってターゲット周期を決定することができ、
【0052】
【0053】
その中、H(t)はターゲットオーバーヘッド関数であり、
【0054】
【0055】
は総保存オーバーヘッド関数であり、Tは設定時間長であり、cは、1回の予測保存オーバーヘッドであり、tは変数であり、すなわちターゲット周期であり、tは0より大きく、
【0056】
【0057】
は、無効なトレーニングオーバーヘッド関数であり、無効なトレーニングは、ハードウェア障害が出現する前に最後にトレーニングスナップショットを取得した時刻とハードウェア障害が出現した時刻との間のトレーニングを指すことができる。なお、H2(t)の中、変数tの係数は、実際の状況に応じて決定することができる。
【0058】
H(t)の最小値をソルビングし、ターゲット周期を取得することができる。その中、上述総保存オーバーヘッドと無効なトレーニングオーバーヘッドは、時間オーバーヘッドを指すことができる。
【0059】
上記式によってソルビングして取得されたターゲット周期は、1つの良い周期であり、トレーニングスナップショットの総保存オーバーヘッドと無効なトレーニングオーバーヘッドをバランスすることができ、モデルトレーニングプロセス中のオーバーヘッドを最小化することができる。
【0060】
限定ではなく例として、さらに、以下の式によってターゲット周期を決定することができ、
【0061】
【0062】
その中、ffailureは、トレーニングノードがモデルトレーニングタスクを実行する期間の予測障害頻度である。
【0063】
選択的には、少なくとも1つのトレーニングスナップショットから、ターゲットトレーニングスナップショットを選択するステップは、対応するトレーニング効果に基づいて、少なくとも1つのトレーニングスナップショットからターゲットトレーニングスナップショットを選択するステップを含む。その中、トレーニングスナップショットに対応する損失値に基づいてトレーニング効果を決定することができる。
【0064】
対応するトレーニング効果が最も良いトレーニングスナップショットをターゲットトレーニングスナップショットとして選択することによって、ターゲットスタンバイノードがハードウェア障害が発生する前に最も良いモデルトレーニング結果を基礎にして、モデルトレーニングタスクを継続的に実行し、モデルトレーニング効率を向上させ、モデルトレーニングコストを下げることができる。
【0065】
トレーニングスナップショットには取得時間が対応し、選択的には、少なくとも1つのトレーニングスナップショットから、ターゲットトレーニングスナップショットを選択するステップは、トレーニングノードのハードウェア障害に対応する障害時間を取得するステップと、対応する取得時間と障害時間間隔が最も短いトレーニングスナップショットをターゲットトレーニングスナップショットとして選択するステップと、を含む。
【0066】
ハードウェア障害が発生する前に最後に取得したトレーニングスナップショットをターゲットトレーニングスナップショットとして選択することによって、ターゲットスタンバイノードが最新のモデルトレーニング結果を基礎とすることができ、モデルトレーニングタスクを継続的に実行して、モデルトレーニングが連続性を持ち、無効なトレーニングオーバーヘッドを低減することができる。
【0067】
ステップ202、ターゲットスタンバイノードに対して通信帯域幅検証及び/又はサイレントデータエラー検証を行う。
【0068】
選択的には、ターゲットスタンバイノードに対して通信帯域幅検証を行うことは、ターゲットスタンバイノードに対応する通信帯域幅が帯域幅閾値以上であるか否かを検証し、通信帯域幅が帯域幅閾値以上である場合、通信帯域幅検証に合格し、通信帯域幅が帯域幅閾値より小さい場合、通信帯域幅検証に合格していないことを指す。その中、通信帯域幅は集合通信帯域幅を指すことができる。
【0069】
選択的には、ターゲットスタンバイノードに対してサイレントデータエラー検証を行うことは、ターゲットスタンバイノードがサイレントデータエラーが存在するか否かを検証し、サイレントデータエラーが存在しない場合、サイレントデータエラー検証に合格し、サイレントデータエラーが存在する場合、サイレントデータエラー検証に合格していないことを指す。
【0070】
限定ではなく例として、トレーニングノードが複数回の特定演算を行い、複数の演算結果を比較することができ、複数の演算結果が同じである場合、トレーニングノードにサイレントデータエラーが存在しなく、複数の演算結果に少なくとも2つの異なる演算結果が存在する場合、トレーニングノードにサイレントデータエラーが存在する。
【0071】
ターゲットスタンバイノードに対して通信帯域幅検証及び/又はサイレントデータエラー検証を行うことによって、ターゲットスタンバイノードのパフォーマンスに対してリスク監視を行うことができ、パフォーマンスが悪いノード又は障害があるノードを導入することを回避し、ターゲットスタンバイノードの後続の障害発生の確率を低減することができる。
【0072】
ステップ203、通信帯域幅検証に合格し、及び/又はサイレントデータエラー検証に合格したことに応答して、トレーニングノードにおけるモデルトレーニング手順のコンテナイメージとトレーニング状態データとに基づいて、ターゲットスタンバイノードを初期化する。
【0073】
ステップ203の関連内容は、ステップ102の関連説明を参照することができ、ここでは詳細に説明しない。
【0074】
本開示の実施例では、トレーニングノードにハードウェア障害が存在することに応答して、複数のスタンバイノードからターゲットスタンバイノードを選択し、トレーニングノードにおけるモデルトレーニングタスクの少なくとも1つのトレーニングスナップショットを取得し、トレーニングスナップショットは、ターゲット周期に基づいてトレーニングノードから取得されるものであり、少なくとも1つのトレーニングスナップショットから、ターゲットトレーニングスナップショットを選択し、ターゲットスタンバイノードに対して通信帯域幅検証及び/又はサイレントデータエラー検証を行い、通信帯域幅検証に合格し、及び/又はサイレントデータエラー検証に合格したことに応答して、トレーニングノードにおけるモデルトレーニング手順のコンテナイメージとトレーニング状態データとに基づいて、ターゲットスタンバイノードを初期化する。これによって、本開示は、少なくとも1つのトレーニングスナップショットを取得することによって、トレーニングノードハードウェア障害によるデータ損失及び無効なトレーニング問題を回避することができ、また、ターゲットスタンバイノードに対して通信帯域幅検証及び/又はサイレントデータエラー検証を行うことによって、ターゲットスタンバイノードのパフォーマンスに対してリスク監視を行うことができ、パフォーマンスが悪いノード又は障害があるノードを導入することを回避する。
【0075】
図3は本開示のまた別の実施例により提供されるクラスタに基づくトレーニング方法のフローチャートである。
【0076】
図3に示すように、当該クラスタに基づくトレーニング方法は以下のステップを含み、
ステップ301、トレーニングノードに対して障害監視を行う。
【0077】
選択的には、トレーニングノードにおけるモデルトレーニング手順を監視することができ、すなわちモデルトレーニング手順が障害して終了したか否かを監視することができる。
【0078】
ステップ302、トレーニングノードの障害コードが取得されたことに応答して、障害コードと障害タイプとの間のマッピング関係に基づいて、トレーニングノードの障害タイプを決定し、障害タイプは、ハードウェア障害又はソフトウェア障害を含む。
【0079】
モデルトレーニング手順が障害して終了したことが監視された場合、対応する障害コードを取得し、マッピング関係障害コードに基づいて対応する障害タイプを捜して、トレーニングノードがハードウェア障害であるかソフトウェア障害であるかを決定する。
【0080】
本開示は、ハードとソフトの一体の障害の自己診断を実現し、ハードウェア障害であるかソフトウェア障害であるかに関わらず、それがモデルトレーニング手順での体現はいずれもプログラム障害終了であるため、障害コードに基づいて障害の迅速な感知を実現することができる。
【0081】
ステップ303、トレーニングノードにハードウェア障害が存在することに応答して、複数のスタンバイノードからターゲットスタンバイノードを選択し、トレーニングノードにおけるモデルトレーニングタスクのターゲットトレーニングスナップショットを取得する。
【0082】
一定の周期でハードウェアエラーログをスキャンする障害監視方式と比較し、障害コードに基づいてハードウェア障害監視を行う時効性が高い。
また、障害コードとハードウェア障害との間にもマッピング関係が存在するため、障害コードに基づいて障害が存在するハードウェアをポジショニングすることができる。
【0083】
ステップ304、トレーニングノードにソフトウェア障害が存在することに応答して、トレーニングノードにおける異常プロセスを決定し、異常プロセスを再開する。
【0084】
障害コードとソフトウェア障害との間にもマッピング関係が存在するため、障害コードに基づいて異常のプロセスを決定することができ、さらに、異常プロセスを再開することができる。
【0085】
本開示は、異なる障害タイプに応答して、対応する障害回復方式を選択し、障害回復時間を短縮し、クラスタのトレーニング安定性を確保することができる。
選択的には、障害タイプを障害レベルとしてマッピングし、各障害レベルは障害回復方式に対応することができる。限定ではなく例として、ソフトウェア障害に対応する障害レベルはMであってもよく、ハードウェア障害に対応する障害レベルはNであってもよく、ソフトウェア障害の障害の度合いはハードウェア障害の障害の度合いより低く、したがって、障害レベルMは障害レベルNより低くすることができる。その中、障害レベルMに対応する障害回復方式は、異常プロセスを再開し、障害レベルNに対応する障害回復方式は、ターゲットスタンバイノードを選択し、ターゲットスタンバイノードを初期化する。
【0086】
具体的には、障害コードに基づいて障害レベルを決定し、さらに、障害レベルに基づいて対応する障害回復方式を選択することができる。
【0087】
選択的には、ターゲットスタンバイノード初期化失敗又は異常プロセス再開失敗である場合、クラスタをスケジューリングすることができ、すなわち別のクラスタで現在のクラスタを代えて継続的にモデルをトレーニングする。
【0088】
本開示のクラスタに基づくトレーニング方法に基づいて、クラスタのモデルに対する有効トレーニング率を有効的に向上させ、有効トレーニング率は、所望のモデルトレーニング時間周期内に、モデルパラメータ更新に本当に貢献する時間占有率を指示するために使用することができる。選択的には、以下の式でクラスタの有効トレーニング率を予測することができ、
【0089】
【0090】
その中、ρは有効トレーニング率であり、αはクラスタの予測可用性であり、Ffailureはクラスタの予測障害頻度であり、Crecoveryは予測の1回の障害回復時間占有率であり、Crecoveryは、1回の障害回復時間とモデルトレーニングタスクの予測トレーニング時間の比として理解することができ、Fcheckpointはトレーニングスナップショットの予測保存頻度であり、cは1回の予測保存オーバーヘッドである。
【0091】
なお、トレーニングノードがモデルトレーニングタスクを実行完了した後、上記式の各パラメータの実際の値を取得し、クラスタの実際の有効トレーニング率を決定することができる。
【0092】
有効トレーニング率とトレーニング時間に基づいて、有効トレーニング時間を決定することができ、有効トレーニング時間と単位時間内のスループットデータ量に基づいて、クラスタがモデルトレーニングタスクを実行する時の総スループットデータ量を決定することができる。
【0093】
クラスタはトレーニングノードとスタンバイノードを含む以外、トレーニングサービスノード、例えば、ターゲットスタンバイノードを選択するためのスケジューリングノード及びトレーニングノードに対して障害監視を行うための監視ノードなどをさらに含み、トレーニングサービスノードについて、トレーニングサービスノード間の通信状態によって、トレーニングサービスノードに対して障害監視を行うことができる。
【0094】
本開示の実施例では、トレーニングノードに対して障害監視を行うステップと、トレーニングノードの障害コードが取得されたことに応答して、障害コードと障害タイプとの間のマッピング関係に基づいて、トレーニングノードの障害タイプを決定し、トレーニングノードにハードウェア障害が存在することに応答して、複数のスタンバイノードからターゲットスタンバイノードを選択し、トレーニングノードにおけるモデルトレーニングタスクのターゲットトレーニングスナップショットを取得し、トレーニングノードにソフトウェア障害が存在することに応答して、トレーニングノードにおける異常プロセスを決定し、異常プロセスを再開するステップとに基づいて、本開示は異なる障害タイプに応答して、対応する障害回復方式を選択し、障害回復時間を短縮することができる。
【0095】
図4は本開示の一実施例により提供されるクラスタに基づくトレーニング装置の概略構成図である。クラスタは、モデルトレーニングタスクを実行するためのトレーニングノードと複数のスタンバイノードとを含む。
【0096】
図4に示すように、当該クラスタに基づくトレーニング装置400は、第1の応答モジュール401と初期化モジュール402とを含み、
第1の応答モジュール401は、トレーニングノードにハードウェア障害が存在することに応答して、複数のスタンバイノードからターゲットスタンバイノードを選択し、トレーニングノードにおけるモデルトレーニングタスクのターゲットトレーニングスナップショットを取得するために使用され、ターゲットトレーニングスナップショットは、モデルトレーニングタスクのトレーニング状態データを含み、
初期化モジュール402は、トレーニングノードにおけるモデルトレーニング手順のコンテナイメージとトレーニング状態データとに基づいて、ターゲットスタンバイノードがトレーニングノードを代えてモデルトレーニングタスクを継続的に実行するように、ターゲットスタンバイノードを初期化するために使用される。
【0097】
選択的には、第1の応答モジュール401は、
トレーニングノードにおけるモデルトレーニングタスクの少なくとも1つのトレーニングスナップショットを取得し、トレーニングスナップショットは、ターゲット周期に基づいてトレーニングノードから取得され、
少なくとも1つのトレーニングスナップショットから、ターゲットトレーニングスナップショットを選択するために使用される。
【0098】
選択的には、当該装置は、オーバーヘッド取得モジュール、第1の構築モジュール、第2の構築モジュール、関数決定モジュール、及びソルビングモジュールをさらに含み、
オーバーヘッド取得モジュールは、モデルトレーニングタスクのトレーニングスナップショットの1回の予測保存オーバーヘッドを取得するために使用され、
第1の構築モジュールは、設定時間長と1回の予測保存オーバーヘッドとに基づいて、ターゲット周期を変数とする総保存オーバーヘッド関数を構築するために使用され、
第2の構築モジュールは、ターゲット周期を変数とする無効なトレーニングオーバーヘッド関数を構築するために使用され、
関数決定モジュールは、総保存オーバーヘッド関数と無効なトレーニングオーバーヘッド関数とに基づいて、ターゲットオーバーヘッド関数を決定するために使用され、
ソルビングモジュールは、ターゲットオーバーヘッド関数に対してソルビング処理を行い、ターゲット周期を決定するために使用される。
【0099】
選択的には、クラスタはストレージノードを含み、第1の応答モジュール401は、
ターゲット周期に基づいて、トレーニングノードを制御して第1のプロセスに基づいて、トレーニングスナップショットをトレーニングノードのメモリに保存し、
トレーニングノードを制御して第2のプロセスに基づいて、メモリからトレーニングスナップショットを読み取り、トレーニングスナップショットをトレーニングノードのソリッドステートディスクに保存し、
トレーニングノードを制御して第3のプロセスに基づいて、ソリッドステートディスクからトレーニングスナップショットを読み取り、トレーニングスナップショットをストレージノードに送信するために使用される。
【0100】
選択的には、トレーニングスナップショットには取得時間が対応し、第1の応答モジュール401は、
トレーニングノードのハードウェア障害に対応する障害時間を取得し、
対応する取得時間と障害時間間隔が最も短いトレーニングスナップショットをターゲットトレーニングスナップショットとして選択するために使用される。
【0101】
選択的には、スタンバイノードはモデルトレーニングタスク以外の他のタスクを実行するために使用され、第1の応答モジュール401は、
スタンバイノードの優先度を取得し、優先度は、他のタスクの重要度を指示し、
優先度に基づいて、複数のスタンバイノードからターゲットスタンバイノードを選択するために使用される。
【0102】
選択的には、初期化モジュール402は、
ターゲットスタンバイノードに対して通信帯域幅検証及び/又はサイレントデータエラー検証を行い、
通信帯域幅検証に合格し、及び/又はサイレントデータエラー検証に合格したことに応答して、ターゲットスタンバイノードを初期化するために使用される。
【0103】
選択的には、当該装置は、
トレーニングノードにソフトウェア障害が存在することに応答して、トレーニングノードにおける異常プロセスを決定し、異常プロセスを再開するための第2の応答モジュールをさらに含む。
【0104】
選択的には、当該装置は、障害監視モジュールとタイプ決定モジュールとをさらに含み、
障害監視モジュールは、トレーニングノードに対して障害監視を行うために使用され、
タイプ決定モジュールは、トレーニングノードの障害コードが取得されたことに応答して、障害コードと障害タイプとの間のマッピング関係に基づいて、トレーニングノードの障害タイプを決定するために使用され、障害タイプは、ハードウェア障害又はソフトウェア障害を含む。
【0105】
選択的には、当該装置は、データ取得モジュールと数決定モジュールをさらに含み、
データ取得モジュールは、クラスタの予測可用性と単位時間当たりの障害ノードの予測数とを取得するために使用され、
数決定モジュールは、予測可用性と予測数とに基づいて、スタンバイノードの数を決定するために使用される。
【0106】
なお、前述のクラスタに基づくトレーニング方法に対する説明も本実施例のクラスタに基づくトレーニング装置に適用され、ここでは詳細に説明しない。
本開示の実施例に基づいて、本開示は、電子機器、読み取り可能な記憶媒体、及びコンピュータプログラムをさらに提供する。
【0107】
本開示の実施例によれば、コンピュータプログラムが提供される。当該コンピュータプログラムにおける命令が実行された場合に、上記クラスタに基づくトレーニング方法が実行される。
【0108】
図5は、本開示の実施例を実行するための例示的な電子機器500の概略ブロック図である。電子機器は、ラップトップコンピュータ、デスクトップコンピュータ、ワークステーション、パーソナルデジタルアシスタント、サーバ、ブレードサーバ、メインフレームコンピュータ、及び他の適切なコンピュータなどの様々な形式のデジタルコンピュータを表すことを目的とする。電子機器は、パーソナルデジタル処理、携帯電話、スマートフォン、ウェアラブルデバイス、及び他の同様のコンピューティングデバイスなどの様々な形式のモバイルデバイスを表すこともできる。本明細書で示されるコンポーネント、それらの接続と関係、及びそれらの機能は、単なる例であり、本明細書の説明及び/又は要求される本開示の実現を制限することを意図したものではない。
【0109】
図5に示すように、電子機器500は、ROM(Read-Only Memory,読み取り専用メモリ)502に記憶されたコンピュータプログラムまたは記憶ユニット508からRAM(Random Access Memory,ランダムアクセス/メモリ)503にロードされたコンピュータプログラムに従って、様々な適切な動作および処理を実行する計算ユニット501を含む。RAM503には、電子機器500の動作に必要な各種プログラムやデータも記憶されてもよい。計算ユニット501、ROM502、およびRAM503は、バス1104を介して互いに接続されている。パスには、I/O(Input/Output、入力/出力)インターフェース505も接続されている。
【0110】
電子機器500の複数のコンポーネントはI/Oインターフェース505に接続され、キーボード、マウスなどの入力ユニット506、各タイプのディスプレイ、スピーカなどの出力ユニット507、磁気ディスク、光ディスクなどの記憶ユニット508、およびネットワークカード、モデム、無線通信トランシーバなどの通信ユニット509を含む。通信ユニット509は、電子機器500が、インターネットなどのコンピュータネットワーク及び/又は各種の電信ネットワークを介して他のデバイスと情報/データを交換することを可能にする。
【0111】
計算ユニット501は、処理および計算能力を有する様々な汎用及び/又は専用の処理コンポーネントであってもよい。計算ユニット501のいくつかの例は、CPU(Central Processing Unit,中央処理ユニット)、GPU(Graphic Processing Units、グラフィック処理ユニット)(GPU)、各種の専用のAI(Artificial Intelligence、人工知能)計算チップ、各種のマシン運転学習モデルアルゴリズムの計算ユニット、DSP(Digital Signal Processor、デジタル信号プロセッサ)、およびいずれかの適切なプロセッサ、コントローラ、マイクロコントローラなどを含むが、これらに限定されない。計算ユニット501は、上記クラスタに基づくトレーニング方法を実行する。例えば、在いくつかの実施例では、上記クラスタに基づくトレーニング方法を、記憶ユニット508などの機械読み取り可能な媒体に有形的に含まれるコンピュータソフトウェアプログラムとして実現することができる。いくつかの実施例では、コンピュータプログラムの一部または全部はROM 502および/または通信ユニット509を介して電子機器500にロードおよび/またはインストールされてもよい。コンピュータプログラムがRAM 503にロードされ、計算ユニット501によって実行される場合、上記に記載されたクラスタに基づくトレーニング方法の1つまたは複数のステップが実行されてもよい。代替的に、他の実施例では、計算ユニット501は上記クラスタに基づくトレーニング方法を実行するように、他のいずれかの適切な方式(例えば、ファームウェアを介して)によって配置されてもよい。
【0112】
本明細書で記載されたシステムと技術の様々な実施方式は、デジタル電子回路システム、集積回路システム、FPGA(Field Programmable Gate Array,フィールドプログラマブルゲートアレイ)、ASIC(Application-Specific Integrated Circuit,特定用途向け集積回路)、ASSP(Application Specific Standard Product,特定用途向け標準製品)、SOC(System On Chip,システムオンチップ)、CPLD(Complex Programmable Logic Device,コンプレックス・プログラマブル・ロジック・デバイス)、コンピュータハードウェア、ファームウェア、ソフトウェア、及び/又はそれらの組み合わせで実現することができる。これらの様々な実施方式は、1つ又は複数のコンピュータプログラムで実施されることを含むことができ、当該1つ又は複数のコンピュータプログラムは、少なくとも1つのプログラマブルプロセッサを含むプログラム可能なシステムで実行及び/又は解釈されることができ、当該プログラマブルプロセッサは、特定用途向け又は汎用プログラマブルプロセッサであってもよく、ストレージシステム、少なくとも1つの入力装置、及び少なくとも1つの出力装置からデータ及び命令を受信し、データ及び命令を当該ストレージシステム、当該少なくとも1つの入力装置、及び当該少なくとも1つの出力装置に伝送することができる。
【0113】
本開示の方法を実施するためのプログラムコードは、1つ又は複数のプログラミング言語の任意の組み合わせで書くことができる。これらのプログラムコードは、プロセッサ又はコントローラによって実行された際に、フローチャート及び/又はブロック図に規定された機能/動作が実施されるように、汎用コンピュータ、専用コンピュータ、又は他のプログラマブルデータ処理装置のプロセッサ又はコントローラに提供されてもよい。プログラムコードは、完全に機械上で実行され、部分的に機械上で実行され、スタンドアロンソフトウェアパッケージとして、部分的に機械上で実行され、かつ部分的にリモート機械上で実行され、又は完全にリモート機械又はサーバ上で実行されてもよい。
【0114】
本開示のコンテキストでは、機械読み取り可能な媒体は、命令実行システム、装置、またはデバイスによって使用されるために、又は命令実行システム、装置、またはデバイスと組み合わせて使用するためのプログラムを含むか、又は記憶することができる有形の媒体であってもよい。機械読み取り可能な媒体は、機械読み取り可能な信号媒体または機械読み取り可能な記憶媒体であってもよい。機械読み取り可能な媒体は、電子的、磁気的、光学的、電磁気的、赤外線的、又は半導体システム、装置又はデバイス、または上記内容のいずれかの適切な組み合わせを含むことができるが、これらに限定されない。機械読み取り可能な記憶媒体のより具体的な例は、1つ又は複数のラインに基づく電気接続、ポータブルコンピュータディスク、ハードディスク、RAM、ROM、EPROM(Electrically Programmable Read-Only-Memory,消去可能プログラマブルリードオンリーメモリ)又はフラッシュメモリ、光ファイバ、CD-ROM(Compact Disc Read-Only Memory,ポータブルコンパクトディスクリードオンリーメモリ)光学記憶装置、磁気記憶装置、または上記内容のいずれかの適切な組み合わせを含む。
【0115】
ユーザとのインタラクションを提供するために、ここで説明されているシステム及び技術をコンピュータ上で実施することができ、当該コンピュータは、ユーザに情報を表示するためのディスプレイ装置(例えば、CRT(Cathode-Ray Tube,陰極線管)又はLCD(Liquid Crystal Display,液晶ディスプレイ)モニタ)、及びキーボードとポインティングデバイス(例えば、マウス又はトラックボール)とを有し、ユーザは、当該キーボード及び当該ポインティングデバイスによって入力をコンピュータに提供することができる。他の種類の装置も、ユーザとのインタラクションを提供することができ、例えば、ユーザに提供されるフィードバックは、任意の形式のセンシングフィードバック(例えば、視覚フィードバック、聴覚フィードバック、又は触覚フィードバック)であってもよく、任意の形式(音響入力と、音声入力または、触覚入力とを含む)でユーザからの入力を受信することができる。
【0116】
ここで説明されるシステム及び技術は、バックエンドコンポーネントを含むコンピューティングシステム(例えば、データサーバとする)、又はミドルウェアコンポーネントを含むコンピューティングシステム(例えば、アプリケーションサーバ)、又はフロントエンドコンポーネントを含むコンピューティングシステム(例えば、グラフィカルユーザインターフェース又はウェブブラウザを有するユーザコンピュータ、ユーザは、当該グラフィカルユーザインターフェース又は当該ウェブブラウザによってここで説明されるシステム及び技術の実施方式とインタラクションできる)、又はこのようなバックエンドコンポーネントと、ミドルウェアコンポーネントと、フロントエンドコンポーネントの任意の組み合わせを含むコンピューティングシステムで実行することができる。任意の形式又は媒体のデジタルデータ通信(例えば、通信ネットワーク)によってシステムのコンポーネントを相互に接続することができる。通信ネットワークの例は、LAN(Local Area Network,ローカルエリアネットワーク)、WAN(Wide Area Network、ワイドエリアネットワーク)、インターネット、ブロックチェーンネットワークを含む。
【0117】
コンピュータシステムは、クライアントとサーバを含むことができる。クライアントとサーバは、一般に、互いに離れており、通常に通信ネットワークを介してインタラクションする。対応するコンピュータ上で実行され、かつ互いにクライアント-サーバ関係を有するコンピュータプログラムによってクライアントとサーバとの関係が生成される。サーバはクラウドサーバであってもよく、クラウドコンピューティングサーバまたはクラウドホストとも呼ばれ、クラウドコンピューティングサービスシステムにおける1つのホスト製品であって、従来の物理ホストとVPSサービス(Virtual Private Server,又はVPSと略称する)に存在する管理の難しさ、業務拡張性の弱いという欠陥を解決した。サーバは分散システムのサーバであってもよく、またはブロックチェーンと組み合わせたサーバであってもよい。
【0118】
なお、人工知能は、コンピュータに人間のある思考過程と知能行為(学習、推理、思考、計画など)をシミュレートさせることを研究する学科であり、ハードウェアレベルの技術とソフトウェアレベルの技術との両方がある。人工知能のハードウェア技術は、一般にセンサ、専用人工知能チップ、クラウド計算、分散記憶、ビッグデータ処理などの技術を含む。人工知能のソフトウェア技術は、主にコンピュータビジョン技術、音声認識技術、自然言語処理技術及び機械学習/深層学習、ビッグデータ処理技術、知識グラフ技術などのいくつかの主要な方向を含む。
【0119】
なお、上記に示される様々な形式のフローを使用して、ステップを並べ替え、追加、又は削除することができることを理解されたい。例えば、本開示に記載されている各ステップは、並列に実行されてもよいし、順次実行されてもよいし、異なる順序で実行されてもよいが、本開示で開示されている技術案が所望の結果を実現することができれば、本明細書では限定されない。
【0120】
上記具体的な実施方式は、本開示の保護範囲を制限するものではない。当業者は、設計要件と他の要因に応じて、様々な修正、組み合わせ、サブコンビネーション、及び代替を行うことができると理解すべきである。任意の本開示の精神と原則内で行われる修正、同等の置換、及び改善などは、いずれも本開示の保護範囲内に含まれるべきである。
【外国語明細書】