(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-01
(45)【発行日】2024-02-09
(54)【発明の名称】エンドツーエンドの自己適応に基づく分散型トレーニング方法、装置、及び機器
(51)【国際特許分類】
G06N 3/098 20230101AFI20240202BHJP
G06N 20/00 20190101ALI20240202BHJP
【FI】
G06N3/098
G06N20/00
(21)【出願番号】P 2022192338
(22)【出願日】2022-11-30
【審査請求日】2022-11-30
(31)【優先権主張番号】202111471601.7
(32)【優先日】2021-12-06
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】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)【発明者】
【氏名】ウー ティエン
【審査官】武田 広太郎
(56)【参考文献】
【文献】特開2020-068016(JP,A)
【文献】特表2020-522824(JP,A)
【文献】米国特許出願公開第2019/0188570(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/098
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
エンドツーエンドの自己適応に基づく分散型トレーニング方法であって、
トレーニング対象のモデルを分割して、分割結果を取得するステップと、
前記トレーニング対象のモデルに割り当てられたトレーニング用の計算資源を解析して、前記計算資源の属性を取得するステップであって、前記トレーニング対象のモデルに割り当てられたトレーニング用の計算資源が、前記トレーニング対象のモデルの計算資源のニーズ、他のトレーニング中のモデルが占有する計算資源及びアイドルの計算資源に基づいて決定され、前記計算資源の属性が、前記計算資源のトポロジ関係及びタスク処理能力のうちの少なくとも1つを表すステップと、
前記計算資源の属性を使用して、前記計算資源における各前記分割結果の分散ポリシーを決定するステップと、
前記分散ポリシーに基づいて、前記計算資源を使用して前記トレーニング対象のモデルに対して分散型トレーニングを行うステップと、を含む、
ことを特徴とするエンドツーエンドの自己適応に基づく分散型トレーニング方法。
【請求項2】
前記トレーニング対象のモデルを分割して、分割結果を取得するステップは、
前記トレーニング対象のモデルの演算子とテンソルを決定するステップと
、
分割ポリシーを使用して、前記トレーニング対象のモデル内の演算子とテンソルを分割して、前記分割結果を取得するステップと、を含む、
ことを特徴とする請求項1に記載のエンドツーエンドの自己適応に基づく分散型トレーニング方法。
【請求項3】
前記分割ポリシーを使用して、前記トレーニング対象のモデル内の演算子とテンソルを分割して、前記分割結果を取得するステップは、
前記分割ポリシーを使用して、前記トレーニング対象のモデル内の演算子とテンソルを分割して、N個のスライスを取得するステップであって、前記Nが正の整数であるステップと、
各前記スライスに対して、前記スライスの分散属性情報をロードするステップであって、前記分散属性情報が前記トレーニング対象のモデルにおける当該スライスのプロセストポロジ情報、当該スライスの分割マッピング情報、及び当該スライスのスライスサイズ情報のうちの少なくとも1つを含むステップと、
前記分散属性情報がロードされたスライスを前記分割結果とするステップと、を含み、
前記分散属性情報のカテゴリの決定方式は、
所定の方式で前記分散属性情報の複数の候補カテゴリを受信するステップと、
前記複数の候補カテゴリで決定されたターゲットカテゴリを、前記分散属性情報のカテゴリとするステップと、を含む、
ことを特徴とする請求項2に記載のエンドツーエンドの自己適応に基づく分散型トレーニング方法。
【請求項4】
各前記スライスの分散属性を使用して、各前記スライスの配置情報を決定するステップであって、前記配置情報が、前記スライスと前記計算資源との物理的マッピング関係を表すステップをさらに含む、
ことを特徴とする請求項3に記載のエンドツーエンドの自己適応に基づく分散型トレーニング方法。
【請求項5】
前記スライスが前記トレーニング対象のモデルの隣接ネットワーク層に位置し、かつ前記スライスの配置情報が異なる場合、
前記配置情報を使用して、各前記スライス間の論理演算関係を表す通信支援演算子を決定するステップを含み、
前記スライスが前記トレーニング対象のモデルの同一ネットワーク層に位置する場合、
各前記スライス間のネットワーク層の一致性関係を表す再構成変換演算子を決定するステップを含む、
ことを特徴とする請求項4に記載のエンドツーエンドの自己適応に基づく分散型トレーニング方法。
【請求項6】
前記分割ポリシーの決定方式は
、
クライアントから発信されたモデルトレーニング要求を解析して決定するステップ、
または
予めトレーニングされた分割ポリシーモデルを使用して決定するステップを含む、
ことを特徴とする請求項2に記載のエンドツーエンドの自己適応に基づく分散型トレーニング方法。
【請求項7】
前記トレーニング対象のモデルに割り当てられたトレーニング用の計算資源を解析して、前記計算資源の属性を取得するステップは、
前記計算資源のハードウェアトポロジ関係を決定し、前記ハードウェアトポロジ関係を前記計算資源の属性とするステップを含み、
前記計算資源のハードウェアトポロジ関係を決定するステップは、
前記計算資源内の最小コンポーネントを決定するステップであって、前記最小コンポーネントがプロセッサまたはメモリを含むステップと、
少なくとも1つの前記最小コンポーネントからなるマシン機器を決定するステップであって、各前記マシン機器内の最小コンポーネントが重複しないステップと、
少なくとも1つの前記マシン機器からなるクラスタを決定するステップであって、各クラスタ内のマシン機器が重複しないステップと、
前記最小コンポーネント、前記マシン機器及び前記クラスタを前記計算資源のハードウェアトポロジ関係とするステップと、を含み、
前記計算資源のハードウェアトポロジ関係を決定するステップは、
各前記最小コンポーネントの密接関係リストを決定するステップであって、前記密接関係リストがソース最小コンポーネントと目的最小コンポーネントとの間の接続関係、帯域幅情報及び遅延情報のうちの少なくとも1つを含むステップと、
前記密接関係リストを前記計算資源のハードウェアトポロジ関係とするステップと、をさらに含む、
ことを特徴とする請求項1に記載のエンドツーエンドの自己適応に基づく分散型トレーニング方法。
【請求項8】
前記トレーニング対象のモデルに割り当てられたトレーニング用の計算資源は
、クライアントから発信されたモデルトレーニング要求のコンテンツ、及びモデルトレーニング要求を発信するクライアントの数のうちの少なくとも1つに基づいて決定される、
ことを特徴とする請求項1に記載のエンドツーエンドの自己適応に基づく分散型トレーニング方法。
【請求項9】
前記トレーニング対象のモデルに割り当てられたトレーニング用の計算資源を解析して、前記計算資源の属性を取得するステップは、
前記計算資源の通信ルートを取得するステップと、
前記計算資源の通信ルートを使用して、各前記計算資源間の通信トポロジ関係を構築するステップと、
前記通信トポロジ関係を前記計算資源の属性とするステップと、を含み、
前記方法は、前記通信トポロジ関係に基づいて、ソース計算資源とターゲット計算資源との間の最短通信ルートを決定するステップをさらに含む、
ことを特徴とする請求項1に記載のエンドツーエンドの自己適応に基づく分散型トレーニング方法。
【請求項10】
前記計算資源の属性を使用して、前記計算資源における各前記分割結果の分散ポリシーを決定するステップは、
前記計算資源における各前記分割結果の候補分散ポリシーを取得するステップと、
各前記候補分散ポリシーの効率をそれぞれ統計するステップと、
各前記候補分散ポリシーの効率に基づいて、前記候補分散ポリシーからターゲット分散ポリシーを決定するステップと、を含み、
前記各前記候補分散ポリシーの効率に基づいて、前記候補分散ポリシーからターゲット分散ポリシーを決定するステップは、
所定のルールを使用して、各前記候補分散ポリシーをソートするステップと、
ソートの結果に基づいて、前記候補分散ポリシーからターゲット分散ポリシーを決定するステップと、を含む、
ことを特徴とする請求項1に記載のエンドツーエンドの自己適応に基づく分散型トレーニング方法。
【請求項11】
前記分散ポリシーに基づいて、前記計算資源を使用して前記トレーニング対象のモデルに対して分散型トレーニングを行うステップは、
前記計算資源の使用可能性を定期的に検出するステップと、
検出結果に前記計算資源が使用できない場合、救済措置を実行するステップであって、前記使用できない場合が、計算資源の故障または計算資源の数の削減を含むステップと、を含む、
ことを特徴とする請求項1に記載のエンドツーエンドの自己適応に基づく分散型トレーニング方法。
【請求項12】
前記使用できない場合が計算資源の故障である場合、前記救済措置を実行するステップは
、
クライアントから発信されたモデルトレーニング要求に含まれるトレーニングモードを取得するステップと、
前記トレーニングモードがフォールトトレラントトレーニングモードである場合、計算資源の故障回復を待機するステップと、
所定の時間内に前記計算資源が故障から回復していない場合、実行を終了すると決定するステップと、を含み、
前記使用できない場合が計算資源の故障である場合、前記救済措置を実行するステップは、
前記トレーニングモードが柔軟なトレーニングモードである場合、候補計算資源を決定するステップと、
前記候補計算資源においてトレーニングの再試行を行うステップと、をさらに含む、
ことを特徴とする請求項11に記載のエンドツーエンドの自己適応に基づく分散型トレーニング方法。
【請求項13】
前記候補計算資源においてトレーニングの再試行を行うステップは、
前記計算資源に故障が発生する時のトレーニング状態を取得するステップと、
前記トレーニング状態に基づいて、前記候補計算資源においてトレーニングの再試行を行うステップと、を含み、
または
前記候補計算資源においてトレーニングの再試行を行うステップは、
トレーニングの初期状態を取得するステップと、
前記初期状態に基づいて、前記候補計算資源においてトレーニングの再試行を行うステップと、を含む、
ことを特徴とする請求項12に記載のエンドツーエンドの自己適応に基づく分散型トレーニング方法。
【請求項14】
前記使用できない場合が計算資源の数の削減である場合、前記救済措置を実行するステップは、
削減された前記計算資源の第1の数を決定するステップと、
前記第1の数に基づいて、前記トレーニング対象のモデルを再分割して、再分割された第1の結果を取得するステップと、
再決定された削減後に残った前記計算資源の属性を使用して、削減された前記計算資源における各前記再分割された第1の結果の第1の分散ポリシーを決定するステップと、
前記第1の分散ポリシーに基づいて、削減された前記計算資源を使用して前記トレーニング対象のモデルに対して分散型トレーニングを行うステップと、を含む、
ことを特徴とする請求項11に記載のエンドツーエンドの自己適応に基づく分散型トレーニング方法。
【請求項15】
検出結果に使用可能な追加の計算資源がある場合、
使用可能な前記追加の計算資源の第2の数を決定するステップと、
前記第2の数に基づいて、前記トレーニング対象のモデルを再分割して、再分割された第2の結果を取得するステップと、
再決定された追加の前記計算資源の属性を使用して、拡張された前記計算資源における各前記再分割された第2の結果の第2の分散ポリシーを決定するステップと、
前記第2の分散ポリシーに基づいて、拡張された前記計算資源を使用して前記トレーニング対象のモデルに対して分散型トレーニングを行うステップと、を含み、
前記計算資源の数が変化する場合、
変化後の数に基づいて、前記トレーニング対象のモデルの学習率と1回のトレーニングで選択されたサンプル数を調整するステップをさらに含む、
ことを特徴とする請求項11に記載のエンドツーエンドの自己適応に基づく分散型トレーニング方法。
【請求項16】
前記分散型トレーニングは、脱中心化の非同期パイプライントレーニングを含み、
前記トレーニング対象のモデルは、クライアントから発信されたモデルトレーニング要求に基づいて得られる、
ことを特徴とする請求項1に記載のエンドツーエンドの自己適応に基づく分散型トレーニング方法。
【請求項17】
エンドツーエンドの自己適応に基づく分散型トレーニング装置であって、
トレーニング対象のモデルを分割して、分割結果を取得する分割モジュールと、
前記トレーニング対象のモデルに割り当てられたトレーニング用の計算資源を解析して、前記計算資源の属性を取得する計算資源の属性決定モジュールであって、前記トレーニング対象のモデルに割り当てられたトレーニング用の計算資源が、前記トレーニング対象のモデルの計算資源のニーズ、他のトレーニング中のモデルが占有する計算資源及びアイドルの計算資源に基づいて決定され、前記計算資源の属性が、前記計算資源のトポロジ関係及びタスク処理能力のうちの少なくとも1つを表す計算資源の属性決定モジュールと、
前記計算資源の属性を使用して、前記計算資源における各前記分割結果の分散ポリシーを決定する分散ポリシー決定モジュールと、
前記分散ポリシーに基づいて、前記計算資源を使用して前記トレーニング対象のモデルに対して分散型トレーニングを行う分散型トレーニングモジュールと、を含む、
ことを特徴とするエンドツーエンドの自己適応に基づく分散型トレーニング装置。
【請求項18】
前記分割モジュールが、
前記トレーニング対象のモデル内の演算子とテンソルを決定する演算子とテンソルの決定サブモジュールと
、
分割ポリシーを使用して、前記トレーニング対象のモデル内の演算子とテンソルを分割して、前記分割結果を取得する分割実行サブモジュールと、を含む、
ことを特徴とする請求項17に記載のエンドツーエンドの自己適応に基づく分散型トレーニング装置。
【請求項19】
前記分割実行サブモジュールが、
前記分割ポリシーを使用して、前記トレーニング対象のモデル内の演算子とテンソルを分割して、N個のスライスを取得する分割ポリシー実行ユニットであって、前記Nが正の整数である分割ポリシー実行ユニットと、
各前記スライスに対して、前記スライスの分散属性情報をロードする分散属性情報ロードユニットであって、前記分散属性情報が前記トレーニング対象のモデルにおける当該スライスのプロセストポロジ情報、当該スライスの分割マッピング情報、及び当該スライスのスライスサイズ情報のうちの少なくとも1つを含む分散属性情報ロードユニットと、を含み、
前記分散属性情報がロードされたスライスを前記分割結果とし、
前記分散属性情報ロードユニットが、
所定の方式で前記分散属性情報の複数の候補カテゴリを受信する候補カテゴリ受信サブユニットと、
前記複数の候補カテゴリで決定されたターゲットカテゴリを、前記分散属性情報のカテゴリとする選別サブユニットと、を含む、
ことを特徴とする請求項18に記載のエンドツーエンドの自己適応に基づく分散型トレーニング装置。
【請求項20】
各前記スライスの分散属性を使用して、各前記スライスの配置情報を決定する配置情報決定ユニットであって、前記配置情報が、前記スライスと前記計算資源との物理的マッピング関係を表す配置情報決定ユニットをさらに含む、
ことを特徴とする請求項19に記載のエンドツーエンドの自己適応に基づく分散型トレーニング装置。
【請求項21】
前記スライスが前記トレーニング対象のモデルの隣接ネットワーク層に位置し、かつ前記スライスの配置情報が異なる場合、
前記配置情報を使用して、各前記スライス間の論理演算関係を表す通信支援演算子を決定する通信支援演算子決定ユニットを含み、
前記スライスが前記トレーニング対象のモデルの同一ネットワーク層に位置する場合、
各前記スライス間のネットワーク層の一致性関係を表す再構成変換演算子を決定する再構成変換演算子決定ユニットを含む、
ことを特徴とする請求項20に記載のエンドツーエンドの自己適応に基づく分散型トレーニング装置。
【請求項22】
前記分割実行サブモジュールが
、
クライアントから発信されたモデルトレーニング要求を解析して決定する分割ポリシー決定ユニットを含み、
または
前記分割実行サブモジュールが、
予めトレーニングされた分割ポリシーモデルを使用して決定する分割ポリシー決定ユニットを含む、
ことを特徴とする請求項18に記載のエンドツーエンドの自己適応に基づく分散型トレーニング装置。
【請求項23】
前記計算資源の属性決定モジュールが、
前記計算資源のハードウェアトポロジ関係を決定し、前記ハードウェアトポロジ関係を前記計算資源の属性とし、
前記計算資源の属性決定モジュールが、さらに、
前記計算資源内の最小コンポーネントを決定する最小コンポーネント決定サブモジュールであって、前記最小コンポーネントがプロセッサまたはメモリを含む最小コンポーネント決定サブモジュールと、
少なくとも1つの前記最小コンポーネントからなるマシン機器を決定するマシン機器決定サブモジュールであって、各前記マシン機器内の最小コンポーネントが重複しないマシン機器決定サブモジュールと、
少なくとも1つの前記マシン機器からなるクラスタを決定するクラスタ決定サブモジュールであって、各クラスタ内のマシン機器が重複しないクラスタ決定サブモジュールと、を含み、
前記最小コンポーネント、前記マシン機器及び前記クラスタを前記計算資源のハードウェアトポロジ関係とし、
前記計算資源の属性決定モジュールが、さらに、
各前記最小コンポーネントの密接関係リストを決定し、前記密接関係リストがソース最小コンポーネントと目的最小コンポーネントとの間の接続関係、帯域幅情報及び遅延情報のうちの少なくとも1つを含み、
前記密接関係リストを前記計算資源のハードウェアトポロジ関係とする、
ことを特徴とする請求項17に記載のエンドツーエンドの自己適応に基づく分散型トレーニング装置。
【請求項24】
前記トレーニング対象のモデルに割り当てられたトレーニング用の計算資源は
、クライアントから発信されたモデルトレーニング要求のコンテンツ、及びモデルトレーニング要求を発信するクライアントの数のうちの少なくとも1つに基づいて決定される、
ことを特徴とする請求項17に記載のエンドツーエンドの自己適応に基づく分散型トレーニング装置。
【請求項25】
前記計算資源の属性決定モジュールが、
前記計算資源の通信ルートを取得する通信ルート取得サブモジュールと、
前記計算資源の通信ルートを使用して、各前記計算資源間の通信トポロジ関係を構築する通信トポロジ関係構築サブモジュールと、を含み、
前記通信トポロジ関係を前記計算資源の属性とし、
前記装置は、前記通信トポロジ関係に基づいて、ソース計算資源とターゲット計算資源との間の最短通信ルートを決定する最短通信ルート構築サブモジュールをさらに含む、
ことを特徴とする請求項17に記載のエンドツーエンドの自己適応に基づく分散型トレーニング装置。
【請求項26】
前記分散ポリシー決定モジュールが、
前記計算資源における各前記分割結果の候補分散ポリシーを決定する候補分散ポリシー取得サブモジュールと、
各前記候補分散ポリシーの効率をそれぞれ統計する効率統計サブモジュールと、
各前記候補分散ポリシーの効率に基づいて、前記候補分散ポリシーからターゲット分散ポリシーを決定するターゲット分散ポリシー決定サブモジュールと、を含み、
前記ターゲット分散ポリシー決定サブモジュールが、
所定のルールを使用して、各前記候補分散ポリシーをソートするソートユニットと、
ソートの結果に基づいて、前記候補分散ポリシーからターゲット分散ポリシーを決定する結果決定ユニットと、を含む、
ことを特徴とする請求項17に記載のエンドツーエンドの自己適応に基づく分散型トレーニング装置。
【請求項27】
前記分散型トレーニングモジュールが、
前記計算資源の使用可能性を定期的に検出する使用可能性検出サブモジュールと、
検出結果に前記計算資源が使用できない場合、救済措置を実行する救済措置実行サブモジュールであって、前記使用できない場合が、計算資源の故障または計算資源の数の削減を含む救済措置実行サブモジュールと、を含む、
ことを特徴とする請求項17に記載のエンドツーエンドの自己適応に基づく分散型トレーニング装置。
【請求項28】
前記使用できない場合が計算資源の故障である場合、前記救済措置実行サブモジュールが
、
クライアントから発信されたモデルトレーニング要求に含まれるトレーニングモードを取得するトレーニングモード取得ユニットと、
前記トレーニングモードがフォールトトレラントトレーニングモードである場合、計算資源の故障回復を待機する待機ユニットと、
所定の時間内に前記計算資源が故障から回復していない場合、実行を終了すると決定する結果決定ユニットと、を含み、
前記使用できない場合が計算資源の故障である場合、前記救済措置実行サブモジュールが、
前記トレーニングモードが柔軟なトレーニングモードである場合、候補計算資源を決定する候補計算資源決定ユニットと、
前記候補計算資源においてトレーニングの再試行を行う再試行ユニットと、をさらに含む、
ことを特徴とする請求項27に記載のエンドツーエンドの自己適応に基づく分散型トレーニング装置。
【請求項29】
前記再試行ユニットが、
前記計算資源に故障が発生する時のトレーニング状態を取得するトレーニング状態取得サブユニットと、
前記トレーニング状態に基づいて、前記候補計算資源においてトレーニングの再試行を行う再試行実行サブユニットと、を含み、
または
前記再試行ユニットが、
トレーニングの初期状態を取得する初期状態取得サブユニットと、
前記初期状態に基づいて、前記候補計算資源においてトレーニングの再試行を行う再試行実行サブユニットと、を含む、
ことを特徴とする請求項28に記載のエンドツーエンドの自己適応に基づく分散型トレーニング装置。
【請求項30】
前記使用できない場合が計算資源の数の削減である場合、前記救済措置実行サブモジュールが、
削減された前記計算資源の第1の数を決定する第1の数決定ユニットと、
前記第1の数に基づいて、前記トレーニング対象のモデルを再分割して、再分割された第1の結果を取得する第1の再分割ユニットと、
再決定された削減後に残った前記計算資源の属性を使用して、削減された前記計算資源における各前記再分割された第1の結果の第1の分散ポリシーを決定する第1の分散ポリシー決定ユニットと、
前記第1の分散ポリシーに基づいて、削減された前記計算資源を使用して前記トレーニング対象のモデルに対して分散型トレーニングを行う分散型トレーニング実行ユニットと、を含む、
ことを特徴とする請求項27に記載のエンドツーエンドの自己適応に基づく分散型トレーニング装置。
【請求項31】
検出結果に使用可能な追加の計算資源がある場合、
使用可能な前記追加の計算資源の第2の数を決定する第2の数決定ユニットと、
前記第2の数に基づいて、前記トレーニング対象のモデルを再分割して、再分割された第2の結果を取得する第2の再分割ユニットと、
再決定された追加の前記計算資源の属性を使用して、拡張された前記計算資源における各前記再分割された第2の結果の第2の分散ポリシーを決定する第2の分散ポリシー決定ユニットと、
前記第2の分散ポリシーに基づいて、拡張された前記計算資源を使用して前記トレーニング対象のモデルに対して分散型トレーニングを行う分散型トレーニング実行ユニットと、を含み、
前記計算資源の数が変化する場合、
変化後の数に基づいて、前記トレーニング対象のモデルの学習率と1回のトレーニングで選択されたサンプル数を調整する調整サブユニットをさらに含む、
ことを特徴とする請求項27に記載のエンドツーエンドの自己適応に基づく分散型トレーニング装置。
【請求項32】
前記分散型トレーニングは、脱中心化の非同期パイプライントレーニングを含み、
前記トレーニング対象のモデルが、クライアントから発信されたモデルトレーニング要求に基づいて得られる、
ことを特徴とする請求項17に記載のエンドツーエンドの自己適応に基づく分散型トレーニング方法。
【請求項33】
電子機器であって、
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサと通信可能に接続されるメモリと、を含み、
前記メモリには、前記少なくとも1つのプロセッサによって実行可能な命令が記憶されており、前記命令は、前記少なくとも1つのプロセッサが請求項1~16のいずれかに記載のエンドツーエンドの自己適応に基づく分散型トレーニング方法を実行できるように、前記少なくとも1つのプロセッサによって実行される、
ことを特徴とする電子機器。
【請求項34】
コンピュータ命令が記憶されている非一時的なコンピュータ読み取り可能な記憶媒体であって、
前記コンピュータ命令は、コンピュータに請求項1~16のいずれかに記載のエンドツーエンドの自己適応に基づく分散型トレーニング方法を実行させる、
ことを特徴とする非一時的なコンピュータ読み取り可能な記憶媒体。
【請求項35】
コンピュータプログラムであって、当該コンピュータプログラムはプロセッサによって実行される場合、請求項1~16のいずれかに記載のエンドツーエンドの自己適応に基づく分散型トレーニング方法のステップが実現される、
ことを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、人工知能技術の分野に関し、特に深層学習、クラウド計算などの分野に関し、特にエンドツーエンドの自己適応に基づく分散型トレーニング方法、装置、機器及び記憶媒体に関する。
【背景技術】
【0002】
近年、より良い効果を求めるために、コンピュータビジョン、自然言語処理、個性化推奨などの分野のモデルは、より大規模なモデルパラメータまたはより大規模なトレーニングデータを採用している。トレーニングフレームワークの使用者の立場から言えば、現在の伝統的な分散型トレーニング技術が使いやすさ、ロバスト性、及び資源利用率のいくつかの次元で直面している問題はまだ厳しい。例えば、自動化程度が低く、単一点故障率が高いなどの一般的な問題がある。
【発明の概要】
【発明が解決しようとする課題】
【0003】
本開示は、エンドツーエンドの自己適応に基づく分散型トレーニング方法、装置、機器及び記憶媒体を提供する。
【課題を解決するための手段】
【0004】
本開示の第1の態様によれば、エンドツーエンドの自己適応に基づく分散型トレーニング方法を提供し、前記方法は、
トレーニング対象のモデルを分割して、分割結果を取得するステップと、
トレーニング対象のモデルに割り当てられたトレーニング用の計算資源を解析して、計算資源の属性を取得するステップであって、トレーニング対象のモデルに割り当てられたトレーニング用の計算資源が、トレーニング対象のモデルの計算資源のニーズ、他のトレーニング中のモデルが占有する計算資源、およびアイドルの計算資源に基づいて決定され、計算資源の属性が、計算資源のトポロジ関係及びタスク処理能力のうちの少なくとも1つを表すステップと、
計算資源の属性を使用して、計算資源における各分割結果の分散ポリシーを決定するステップと、
分散ポリシーに基づいて、計算資源を使用してトレーニング対象のモデルに対して分散型トレーニングを行うステップと、を含む。
【0005】
本開示の別の態様によれば、エンドツーエンドの自己適応に基づく分散型トレーニング装置を提供し、当該装置は、
トレーニング対象のモデルを分割して、分割結果を取得する分割モジュールと、
トレーニング対象のモデルに割り当てられたトレーニング用の計算資源を解析して、計算資源の属性を取得するための計算資源の属性決定モジュールであって、トレーニング対象のモデルに割り当てられたトレーニング用の計算資源が、トレーニング対象のモデルの計算資源のニーズ、他のトレーニング中のモデルが占有する計算資源、およびアイドルの計算資源に基づいて決定され、計算資源の属性が、計算資源のトポロジ関係及びタスク処理能力のうちの少なくとも1つを表す計算資源の属性決定モジュールと、
計算資源の属性を使用して、計算資源における各分割結果の分散ポリシーを決定するための分散ポリシー決定モジュールと、
分散ポリシーに基づいて、計算資源を使用してトレーニング対象のモデルに対して分散型トレーニングを行うための分散型トレーニングモジュールと、を含む。
【0006】
本開示の別の態様によれば、電子機器を提供し、
少なくとも1つのプロセッサと、
当該少なくとも1つのプロセッサと通信可能に接続されるメモリと、を含み、
当該メモリには、当該少なくとも1つのプロセッサによって実行可能な命令が記憶されており、当該命令は、当該少なくとも1つのプロセッサが本開示の任意の実施例の方法を実行できるように、当該少なくとも1つのプロセッサによって実行される。
【0007】
本開示の別の態様によれば、コンピュータ命令が記憶されている非一時的なコンピュータ読み取り可能な記憶媒体を提供し、当該コンピュータ命令は、コンピュータに本開示の任意の実施例の方法を実行させる。
【0008】
本開示の別の態様によれば、コンピュータプログラムを提供し、当該コンピュータプログラムはプロセッサによって実行される場合、本開示の任意の実施例の方法が実現される。
【0009】
本開示の技術によれば、トレーニング対象のモデル及び計算資源を自動分析する。クライアントが他の操作を行う必要がなく、クライアントにとっては、モデルトレーニングのプロセスを簡素化することができる。
【0010】
なお、この部分に記載のコンテンツは、本開示の実施例の肝心または重要な特徴を特定することを意図しておらず、本開示の範囲を限定することも意図していないことを理解されたい。本開示の他の特徴は、以下の説明を通して容易に理解される。
【図面の簡単な説明】
【0011】
図面は、本技術案をよりよく理解するために使用され、本開示を限定するものではない。
【
図1】本開示に係るエンドツーエンドの自己適応に基づく分散型トレーニング方法のフローチャートの1である。
【
図2】本開示に係るトレーニング対象のモデルを分割するフローチャートである。
【
図3】本開示に係るモデルの分散型トレーニング方法の全体概略図である。
【
図4】本開示に係る計算資源の属性を決定するフローチャートの1である。
【
図5】本開示に係る分散属性情報のカテゴリの決定方式のフローチャートである。
【
図6】本開示に係る計算資源のハードウェアトポロジ関係を決定するフローチャートである。
【
図7】本開示に係る計算資源のハードウェアトポロジ関係の概略図である。
【
図8】本開示に係る計算資源の属性を決定するフローチャートの2である。
【
図9】本開示に係る分散ポリシーを決定するフローチャートである。
【
図10】本開示に係る分散型トレーニングのフローチャートの1である。
【
図11】本開示に係る分散型トレーニングのフローチャートの2である。
【
図12】本開示に係る分散型トレーニングのフローチャートの3である。
【
図13】本開示に係る救済措置の概略図の1である。
【
図14】本開示に係る分散型トレーニングのフローチャートの4である。
【
図15】本開示に係る救済措置の概略図の2である。
【
図16】本開示に係る分散型トレーニングのフローチャートの5である。
【
図17】本開示に係る計算資源の拡張された後の調整の概略図である。
【
図18】本開示に係るエンドツーエンドの自己適応に基づく分散型トレーニング方法のフローチャートの2である。
【
図19】本開示に係るエンドツーエンドの自己適応に基づく分散型トレーニング装置の概略図である。
【
図20】本開示の実施例のエンドツーエンドの自己適応に基づく分散型トレーニング方法を実現するための電子機器のブロック図である。
【発明を実施するための形態】
【0012】
以下、図面と併せて本開示の例示的な実施例を説明し、理解を容易にするためにその中には本開示の実施例の様々な詳細事項が含まれており、それらは単なる例示的なものと見なされるべきである。したがって、当業者は、本開示の範囲及び精神から逸脱することなく、ここで説明される実施例に対して様々な変更と修正を行うことができることを認識されたい。同様に、明確及び簡潔にするために、以下の説明では、周知の機能及び構造の説明を省略する。
【0013】
図1に示すように、本開示は、エンドツーエンドの自己適応に基づく分散型トレーニング方法に関し、当該方法は、以下のステップS101~S104を含む。
【0014】
S101では、トレーニング対象のモデルを分割して、分割結果を取得する。
【0015】
S102では、トレーニング対象のモデルに割り当てられたトレーニング用の計算資源を解析して、計算資源の属性を取得し、トレーニング対象のモデルに割り当てられたトレーニング用の計算資源が、トレーニング対象のモデルの計算資源のニーズ、他のトレーニング中のモデルが占有する計算資源、およびアイドルの計算資源に基づいて決定され、計算資源の属性が、計算資源のトポロジ関係及びタスク処理能力のうちの少なくとも1つを表す。
【0016】
S103では、計算資源の属性を使用して、計算資源における各分割結果の分散ポリシーを決定する。
【0017】
S104では、分散ポリシーに基づいて、計算資源を使用してトレーニング対象のモデルに対して分散型トレーニングを行う。
【0018】
本開示の上記の方法の実行主体は、モデルトレーニングを実行するためのクラウドサーバまたはモデルトレーニングプラットフォームなどであってもよく、例示的には、k8sベースの異種トレーニングプラットフォームであってもよい。
【0019】
上記の方法を実行するアクチュエータを実行主体にロードすることができる。モデルトレーニングプラットフォームを例として、モデルトレーニングプラットフォームの役割は、クライアントから発信されたモデルトレーニング要求を受信し、それに計算資源を割り当てることである。アクチュエータは、プラットフォームとのインタラクションを通じて、モデルトレーニング要求及び計算資源情報を取得して、モデルトレーニングプロセスを実行する。
【0020】
トレーニング対象のモデルは、視覚モデル、言語モデル、推奨モデル、及びクリック率推定モデルなどを含むことができる。トレーニング対象のモデルのパラメータレベルとトレーニングサンプルのレベルは億単位である。
【0021】
モデルの分散型トレーニングプロセスは、エンドツーエンドのプロセスであってもよい。例えば、トレーニング対象のモデルは、クライアントから発信されたモデルトレーニング要求をモデルトレーニングプラットフォームによって解析して取得されてもよい。当該トレーニング要求を解析することにより、解析結果に基づいてモデルのトレーニングプロセスをモデルから出力された結果が収束するまで行うことができる。
【0022】
関連技術では、モデルトレーニング中に異なるモデルの分割ポリシーを個別に開発する必要がある。また、トレーニング並列ポリシーについて、既存のモデルトレーニングプラットフォームの枠組みに基づいて互換性と組み合わせを行う必要があり、並列ポリシーの増加に伴い、開発難度は徐々に増大するに違いない。異なるハードウェアアーキテクチャにおけるハードウェア側の計算、ストレージ、帯域幅資源及び接続関係の違いを考慮すると、モデルトレーニングプラットフォームのフレームワーク開発者はハードウェアの特徴に合わせて並列ポリシーをカスタマイズして開発する必要がある。例えば、関連技術では、開発者がトレーニング対象のモデル及びモデルトレーニングプラットフォームのハードウェアに基づいて手動で適応的に開発する必要があるため、使いやすさ勝手が悪い。異なるトレーニング対象のモデルによって特徴が大きく異なるため、それに対応するトレーニングポリシー案も異なる。例えば、自然言語処理、コンピュータビジョンなどのモデルは、モデル記憶と効率的な通信問題を解決するために多次元ハイブリッド並列ポリシーを組み合わせて応用する必要がある。一方、推奨シナリオのモデルでは、スパースストレージを解決するためにモデルを並列化し、データの並列化を使用してスループット効率を向上させる必要がある。そのため、開発者へのハードルが高くなる。
【0023】
次に、関連技術のロバスト性が悪い。膨大な数の計算資源がシングルノードの故障が発生しやすく、さらにトレーニング全体が失敗する。モデルトレーニングタスクの提出、計算資源の割り当て、トレーニング対象のモデルのロード、トレーニングのスタートというプロセスをやり直すと、数十分かかることがよくあるため、トレーニングの進行が遅れるだけでなく、その間に大量の計算資源がアイドル状態になる。キロカロリーのクラスタ群を例にとると、30分も空いていれば、何万元ものトレーニングコストを増やすことになる。
【0024】
また、関連技術では、1つのトレーニングタスクに1種類の計算資源しか使用できない。しかしながら、ハードウェアの発展と継続的なモデルチェンジに伴い、計算資源の種類と型番がますます多くなり、アイドル状態である計算資源も大量に発生する。関連技術では、計算資源の特徴に基づいて適切な並列ポリシーをマッチングさせることが十分に考慮されていないため、関連技術は各種類のハードウェアの優位性を十分に発揮していない。
【0025】
これに対して、本開示の上記のプロセスでは、トレーニング対象のモデルを分割するために、自動化のモデル分割プロセスを構成することができる。例示的には、トレーニング対象のモデルのネットワーク層に基づいて、トレーニング対象のモデルを分割することができる。例えば、同一ネットワーク層のテンソルを分割し、同一ネットワーク層のN個のテンソルを2グループに分割することができ、各グループにN/2個のテンソルがある。あるいは、ネットワーク層単位で分割することができ、同一ネットワーク層に属するテンソルを1つのスライスに分割し、または同じ機能を有する複数のネットワーク層のテンソルを1つのスライスに分割する。トレーニング対象のモデルを分割するには、分散型演算子と分散型テンソルを結合解除することができ、これにより、さまざまな並列ポリシーを柔軟に表現して組み合わせることができ、分散型トレーニングアーキテクチャの拡張性と保守性を大幅に向上させることができる。
【0026】
また、ハードウェア解析メカニズムを使用してトレーニング対象のモデルに割り当てられた計算資源を解析して、計算資源の属性を取得することができる。ここで、計算資源の属性は、計算資源のトポロジ関係及びタスク処理能力のうちの少なくとも1つを表す。例えば、計算資源のトポロジ関係は、現在の計算資源と他の計算資源との接続関係、帯域幅などの情報であってもよい。タスク処理能力は、現在の計算資源のタスク処理速度やタスク処理数などを含むことができる。
【0027】
一方、計算資源の割り当ては、クライアントから発信されたモデルトレーニング要求の解析に基づいて得られることができる。例えば、トレーニング要求における要求された計算資源の数はaからbであり、ここで、aとbが正の整数である場合、計算資源のアイドル状況に基づいて、aからbのうちの値を対応して割り当てることができる。この値は、トレーニング要求に応答する計算資源の数とする。
【0028】
一方、トレーニング対象のモデルに割り当ててトレーニングする計算資源は、トレーニング対象のモデルの計算資源のニーズ、他のトレーニング中のモデルが占有する計算資源、及びアイドルの計算資源を同時に参照して決定することができる。例えば、クライアントから送信されたトレーニング対象のモデルのトレーニング要求を受信し、その中から必要な計算資源の最小計算力数と最大計算力数を解析する。解析された計算力ニーズに基づいて、当該トレーニング対象のモデルに割り当てるように接続が可能な限り少ない計算資源を見つける。
【0029】
具体的には、以下のいくつかの状況に基づいて割り当てることができる。
【0030】
現在のアイドルのハードウェア資源が現在のユーザのニーズを満たすことができず、現在のユーザがトレーニングタスクでより多くのハードウェア資源を占有していない場合、現在のユーザのトレーニングタスクをキューに入れる必要がある。
【0031】
現在のアイドルのハードウェア資源が現在のユーザのニーズを満たすことができないが、現在のユーザがトレーニングタスクでより多くのハードウェア資源を占有しており、余分なハードウェア資源が除去されても現在のユーザの他のトレーニングタスクの計算力ニーズを満たすことができる場合、ハードウェア資源の割り当ての削減がトリガーされる。
【0032】
現在のアイドルのハードウェア資源が現在のユーザのニーズを満たすことができるが、アイドルのハードウェア資源(例えばカード)が複数のマシンに分散されている場合、フラグメント整理が開始され、トレーニング中のフォールトトレラント機能がトリガーされ、トレーニング中のタスクをあるマシンから別のマシンに移動して引き続きトレーニングすることにより、現在のユーザがマシン全体を取得してタスクトレーニングを実行する。
【0033】
現在のアイドルのハードウェア資源が現在のユーザのニーズを満たすことができ、現在のユーザのニーズを超え、他のタスクがキューに入っていない場合、現在のユーザの最大計算力ニーズを満たした上で、現在のユーザにより多くのハードウェア資源を割り当てる。
【0034】
ここで、計算資源の粒度は、最小コンポーネント、最小コンポーネントからなるマシンコンポーネント、及びマシンコンポーネントからなるクラスタなどのさまざまな種類を含むことができる。例示的には、クラスタはクラスタ群に対応することができ、マシンコンポーネントは単一のマシンに対応することができ、最小コンポーネントは単一のマシン内のカードなどに対応することができる。トレーニング対象のモデルに割り当てられた計算資源を解析することにより、クラスタ群間、クラスタ群内部の単一のマシン間、単一のマシン内部の最小コンポーネント間の具体的な接続関係を実現することができる。接続関係により、異なる計算資源間の通状況を決定し、差異があり、通信効率が低い、または互換性がない計算資源間のマスキングを実現することができる。
【0035】
現在の実施形態では、トレーニング対象のモデルの分割及び計算資源の属性の決定(計算資源の割り当てを含む)という2つの部分は、並列に実行することができる。これによってモデルトレーニングの効率を向上させることができる。例えば、ユーザのモデルトレーニング要求を受信したことをトリガー条件として、モデルトレーニング要求を解析して、トレーニング対象のモデルを取得することにより、モデルの分割を実現することができる。一方、トリガー条件に基づいてトレーニングプラットフォームで使用可能な資源を全体的に分析し、トレーニング対象のモデルの計算資源のニーズ、他のトレーニング中のモデルが占有する計算資源、及びアイドルの計算資源に基づいて、モデルトレーニング要求に応答する計算資源の割り当て結果を決定することができる。
【0036】
計算資源の属性に基づいて、計算資源における各分割結果の分散ポリシーを決定することができる。例示的には、分割結果はN個のスライスを含む。N個のスライスを対応する数の計算資源に割り当てた後の最適な割り当て結果に基づいて、分散ポリシーを決定することができる。最適な割り当て結果は、トレーニング速度が最も速いこと、トレーニングデータ量が最も多いこと、及び各計算資源の使用率が最も高いことなどを含むことができる。具体的には、ユーザのトレーニングニーズに基づいて対応して設定することができる。
【0037】
分散ポリシーに基づいて、計算資源を使用してトレーニング対象のモデルに対して分散型トレーニングを行う。ここで、分散型トレーニングは、トレーニング効率を向上させるようにトレーニング対象のモデルに計算プロセスを並列に実行させることを含むことができる。
【0038】
本開示の上記のプロセスは、コンピュータビジョン、自然言語処理、推奨検索広告の分野の超大型モデルのトレーニングシナリオに応用することができる。
【0039】
コンピュータビジョンの分野を例として、上記のプロセスは千万または数億の顔の分類モデルのトレーニング、数十億のビジョンモデルのトレーニング、百億のピクチャとテキストなどのマルチモーダルモデルのトレーニングをサポートし、さらに顔検出、車両検出、ピクチャと文章の検索、ピクチャ生成などのダウンストリームタスクに応用することができる。
【0040】
自然言語処理を例として、上記のプロセスは百億の対話モデルのトレーニング、百億、千億、兆の言語モデルのトレーニングをサポートし、さらに対話システム応用し、意味的な関連性、インテリジェントな文章作成などのシナリオを検索することができる。
【0041】
推奨の分野を例として、上記のプロセスは兆クリック率モデルのトレーニングをサポートし、さらにビデオ推奨、ピクチャと文章の推奨などの情報ストリームシナリオ、検索ソート、広告ソートなどのシナリオに応用することができる。
【0042】
全体的に言えば、本開示のプロセスは、計算ビューを統一することにより、任意のモデルをサポートする任意の分割ポリシーを汎用化する。異種ハードウェア資源のマスキングによる差異を汎用化するために、資源ビューを統一することによって任意のクラスタ群の任意のハードウェアをサポートする。モデルと資源が変更されると、システム全体が自動的に統一された計算ビューと統一された資源ビューを再生成し、タスクが中断されない場合、後続のサブモジュールが自動的にトリガーされ、再分割し、資源マッピングし、新たに分布されたタスクを各機器に割り当て、プロセスを起動してタスク割り当てと実行を実行する。
【0043】
上記のプロセスにより、クライアントからアップロードされたトレーニング対象のモデル及び計算資源を自動的に分析する。クライアントが他の操作を行う必要がない。クライアントにとっては、モデルトレーニングのプロセスを簡素化することができる。
【0044】
図2に示すように、一実施形態では、ステップS101は以下のプロセスを含むことができる。
【0045】
S201では、トレーニング対象のモデル内の演算子とテンソルとを決定する。
【0046】
S202では、分割ポリシーを使用して、トレーニング対象のモデル内の演算子とテンソルとを分割して、分割結果を取得する。
【0047】
図3に示される「汎用自動分割ポリシー」に対応して、
図3のトレーニング対象のモデルは8つのネットワーク層を含む。トレーニング対象のモデルの最初のネットワーク層(
図3の最も左側)は、トレーニング対象のモデルの入力層とすることができ、最後のネットワーク層(
図3の最も右側)は、トレーニング対象のモデルの出力層とすることができる。中間の6つのネットワーク層は、トレーニング対象のモデルの隠れ層とすることができる。最初のネットワーク層を例として、当該ネットワーク層は4つのテンソルを含む。
図3の各ネットワーク層を接続するテンソル間の結線は演算子とすることができる。
【0048】
トレーニング対象のモデルを解析することにより、トレーニング対象のモデル内の演算子とテンソルとを決定することができる。分割ポリシーは、クライアントから発信されたモデルトレーニング要求に含まれることができる。クライアントから発信されたモデルトレーニング要求に分割ポリシーが含まれていない場合、予めトレーニングされた分割ポリシーモデルを使用して分割ポリシーを決定することができる。
【0049】
決定された分割ポリシーに基づいて、トレーニング対象のモデル内の演算子とテンソルとの分割を完成して、分割結果を取得することができる。分割結果は分散して実行できるため、分割結果は分散型演算子と分散型テンソルとも呼ばれることができる。
【0050】
上記のプロセスにより、分散型演算子と分散型テンソルを結合解除し、各種類の並列ポリシーを柔軟に表し組み合わせ、分散型トレーニングアーキテクチャの拡張性と保守性を大幅に向上させることができる。
【0051】
図4に示すように、一実施形態では、ステップS202は以下のステップS401~S403を含むことができる。
【0052】
S401では、分割ポリシーを使用して、トレーニング対象のモデル内の演算子とテンソルとを分割して、N個のスライスを取得し、Nが正の整数である。
【0053】
S402では、各スライスに対して、スライスの分散属性情報をロードし、分散属性情報は、トレーニング対象のモデルにおける当該スライスのプロセストポロジ情報、当該スライスの分割マッピング情報、および当該スライスのスライスサイズ情報のうちの少なくとも1つを含む。
【0054】
S403では、分散属性情報がロードされたスライスを分割結果とする。
【0055】
分割ポリシーを使用して、トレーニング対象のモデル内の演算子とテンソルを分割すると、対応してN個のスライスを取得することができる。
図3に示す分割の例と併せて、
図3の8つの破線枠はそれぞれ8つのスライスに対応する。最初のネットワーク層における4つのテンソルは、2つのスライスに平均的に分割され、各スライスに2つのテンソルが含まれる。最初の隠れ層から5番目の隠れ層にそれぞれ対応するネットワーク層は、1つのスライスに分割される。6番目の隠れ層とトレーニング対象のモデルの出力層は1つのスライスに分割される。
【0056】
スライスの分散属性情報はスライスの分割次元を表すことができる。最初のネットワーク層における4つのテンソルが2つのスライスに平均的に分割されることを例とする。2つのスライスの分散属性情報は同じであり、トレーニング対象のモデルにおける当該スライスのプロセストポロジ情報(process_mesh)は、当該スライスがトレーニング対象のモデルの入力層であり、入力側がトレーニングサンプルであり、出力側が最初の隠れ層であることを表すことができる。スライスの分割マッピング情報(dims_mapping)は、単一のネットワーク層が分割された数を表すことができ、例えば最初のネットワーク層が2つに分割される。例示的には、最初のネットワーク層における4つのテンソルが4つのスライスに分割された場合、スライスの分割マッピング情報は、単一のネットワーク層が4つに分割されることを表すことができる。スライスのスライスサイズ情報(shard_sizes)は、スライスに含まれるネットワーク層数を表すことができる。例示的には、
図3の最も右側のスライスサイズ情報が2であることを除いて、残りのスライスのサイズ情報は1であってもよい。また、スライスのスライスサイズ情報は、各スライスに含まれる演算子の数とテンソルの数を表すことができる。
【0057】
上記のプロセスにより、各スライスはいずれもそれぞれの分散属性を含むことができ、スライスにおけるテンソルの分散属性とこのテンソルを使用する演算子における対応する分散属性とは異なることがサポートされるため、記憶と計算プロセスの分離に有利である。
【0058】
図5に示すように、一実施形態では、分散属性情報のカテゴリの決定方式は以下のステップS501~S502を含むことができる。
【0059】
S501では、所定の方式を使用して分散属性情報の複数の候補カテゴリを受信する。
【0060】
S502では、複数の候補カテゴリで決定されたターゲットカテゴリを分散属性情報のカテゴリとする。
【0061】
所定の方式は、分散属性カテゴリの受信ポートを設定することでカテゴリ受信を行う方式であってもよい。分散属性情報のカテゴリのアップロード対象は、資格のあるユーザまたは認証された第三者機関であってもよい。手動またはマシン認識などの方式を使用して、受信された分散属性のカテゴリを選別し、選別に合格したカテゴリを候補カテゴリとすることができる。
【0062】
あるいは、所定の方式は、開発者が作成した分散属性情報のカテゴリであってもよい。具体的な所定の方式はここでは網羅しない。
【0063】
複数の候補カテゴリからターゲットカテゴリを決定する方式は、モデルのトレーニングニーズに基づいて決定してもよいし、ターゲットカテゴリの使用率に基づいて決定してもよく、使用率は履歴データに基づいて取得されてもよい。
【0064】
上記の方式により、分散属性情報のカテゴリ拡張メカニズムを開発することができ、これによって分散属性情報の粗粒度、細粒度のさまざまな分割をサポートすることができる。
【0065】
一実施形態では、各スライスの分散属性を使用して、各スライスの配置情報を決定するステップであって、配置情報は、スライスと計算資源との物理的マッピング関係を表すステップをさらに含むことができる。
【0066】
スライスの配置情報(device_placement)はスライスに必要な計算資源を表すことができる。例示的には、
図3の最初のネットワーク層における4つのテンソルが2つのスライスに平均的に分割される場合、2つのスライスの配置情報は同じであってもよく、これにより、2つのスライスの完成時間がほぼ一致することを確保することができる。これにより、2つのスライスに対応する計算資源は、計算力が同等、または通信リンクが短いなどの特徴を有することができ、これによりトレーニング効率を向上させることができる。
【0067】
また、分散属性に基づいてスライスにおける演算子の数またはテンソルの数が大きいと決定されると、計算力の強い計算資源を配置対象として選択することができる。
【0068】
上記のプロセスにより、トレーニングモデルの論理分割と物理的マッピングと間の結合解除を実現することができ、スライスの配置情報により、異種ハードウェアとの互換性が向上し、トレーニングプロセスの効率をより最適化することができる。
【0069】
一実施形態では、スライスがトレーニング対象のモデルの隣接ネットワーク層に位置し、スライスの配置情報が異なる場合、
配置情報を使用して、通信支援演算子を決定するステップであって、通信支援演算子は、各スライス間のアップダウンストリーム論理演算関係を表すステップを含むことができる。
【0070】
引き続き
図3を例にして、
図3の最初の隠れ層に対応するスライスと2番目の隠れ層に対応するスライスとの関係は、トレーニング対象のモデルの隣接ネットワーク層に対応することができる。隣接ネットワーク層の場合、アップストリームネットワーク層の出力データはダウンストリームネットワーク層の入力データとすることができる。最初の隠れ層に対応する計算資源は
図3のXPU0であり、2番目の隠れ層に対応する計算資源は
図3のGPU0である。
【0071】
明らかに、上記の2つのスライスがトレーニング対象のモデルの隣接ネットワーク層に位置し、2つのスライスの配置情報は互いに異なる。この場合、2つのスライス及び対応する計算資源を通知するように通信支援演算子を決定することができる。例示的には、計算の連続性を実現し、機器にまたがる分割の正確性を確保するために、通知された情報は、
図3のXPU0が対応する計算を完了して計算結果が得られた場合に、通信支援演算子を使用して計算結果をGPU0に伝送することを含むことができる。
【0072】
一実施形態では、前記スライスがトレーニング対象のモデルの同一ネットワーク層に位置する場合、
各スライス間のネットワーク層の一致性関係を表す再構成変換演算子を決定するステップを含むことができる。
【0073】
引き続き
図3を例にして、
図3の最初のネットワーク層における4つのテンソルは、2つのスライスに平均的に分割される。
図3に示す例では、2つのスライスのうちの第1のスライスに対応する計算資源は
図3のCPU0であり、2つのスライスのうちの第2のスライスに対応する計算資源は
図3のCPU1である。この場合、2つのスライス及び対応する計算資源を通知するように再構成変換演算子を決定することができる。例示的には、通知された情報は、
図3のCPU0、CPU1が対応する計算を完了して計算結果が得られた場合に、最初のネットワーク層の出力データに対応するように計算結果を統合することを含むことができる。
【0074】
なお、
図3に示す2つのスライスに対応する計算資源が同じである場合でも、依然として再構成変換演算子を使用して計算結果を統合することができる。
【0075】
上記のプロセスにより、計算の正確さを確保することができる。
【0076】
一実施形態では、分割ポリシーの決定方式は、
クライアントから発信されたモデルトレーニング要求を解析して決定することを含む。
【0077】
一実施形態では、分割ポリシーの決定方式は、
予めトレーニングされた分割ポリシーモデルを使用して決定することを含む。
【0078】
クライアントから発信されたモデルトレーニング要求に基づいて、トレーニング対象のモデルを論理計算ビューとして表し、この論理計算ビューに属性タグを付けることができる。属性タグは上記の分散属性情報に対応することができる。同時に、トレーニングプラットフォームによって割り当てられた計算資源に基づいて、資源ビューを構築する。論理計算ビューと資源ビューは、上記の
図3に示す例のようにすることができる。
【0079】
分割ポリシーモデルは、以下のいくつかの状況に基づいて分割ポリシーを決定することができる。
【0080】
例えば、論理計算ビューにはN種類の分割方式があり、ハードウェア資源マップにはM種類の分割方式があり、代価モデルによってN*Mの代価値を計算し、最小のものを最終的な分割ポリシーとして選択する。
【0081】
また例えば、まず、論理計算ビューのN種類の分割方式を選別し、選別ルールは、分割速度が最も速いこと、分割結果の数が対応する閾値範囲内であることなどであってもよい。選別された結果はN1と記載することができる。代価モデルによってN1*Mの代価値を計算し、最小のものを最終的な分割ポリシーとして選択する。
【0082】
また例えば、論理計算ビュー及びハードウェア資源マップを、対応する数学式に抽象化する。数学式を解くことにより、最終的な分割ポリシーを取得する。
【0083】
予めトレーニングされた分割ポリシーモデルは、コストモデル(cost-model)であってもよい。コストモデルは、検索アルゴリズムと代価モデルを含むことができる。検索アルゴリズムを使用して異なる結果を取得し、代価モデルを使用して異なる結果を評価する。上記のモデルは、分割ポリシーが利益の最大化を満たすという原則に従う。例示的には、利益の最大化は、当該分割ポリシーを使用して得られた分割結果が、計算時間が最も短いことを満たすことと、当該分割ポリシーを使用して得られた分割結果が、トレーニング精度が予め設定された閾値よりも高いことを満たすことと、を含むことができる。分割ポリシーモデルは、計算資源の数、およびトレーニング対象のモデルの構造に基づいて、トレーニング対象のモデルに対して分割操作を行うことができる。具体的な分割ポリシーは、トレーニングサンプルによって対応する効果を実現することができる。コストモデルのトレーニングプロセスについては、説明を省略する。
【0084】
一実施形態では、ステップS102は、
計算資源のハードウェアトポロジ関係を決定し、ハードウェアトポロジ関係を計算資源の属性とするステップを含むことができる。
【0085】
計算資源のハードウェアトポロジ関係の決定方式は、トレーニング対象のモデルに割り当てられた計算資源を解析することによって取得することができる。
【0086】
ここで、計算資源のハードウェアトポロジ関係は、計算資源の接続関係、帯域幅情報、及びタスク処理能力などを含むことができる。例示的には、現在の計算資源をソース計算資源とする場合、計算資源の接続関係は、ソース計算資源とターゲット計算資源との接続関係を含むことができる。
【0087】
例示的には、計算資源は、ソフトウェア資源、及びハードウェア資源などを含むことができる。具体的には、計算資源は、CPU、GPU、XPU、及びMemoryなどを含むことができる。
【0088】
計算資源の属性を確認することにより、(クラスタ群)計算資源処理能力とトポロジ接続関係を抽象的に表すことができ、これによってハードウェア間の差異をマスキングし、各種類の異種ハードウェアとクラスタ群環境をサポートし、開発難度をさらに低下させることができる。
【0089】
図6に示すように、一実施形態では、計算資源のハードウェアトポロジ関係を決定するステップは具体的に、以下のステップS601~S603を含むことができる。
【0090】
S601では、計算資源における最小コンポーネントを決定し、最小コンポーネントがプロセッサまたはメモリを含む。
【0091】
S602では、少なくとも1つの最小コンポーネントからなるマシン機器を決定し、各マシン機器内の最小コンポーネントが重複していない。
【0092】
S603では、少なくとも1つのマシン機器からなるクラスタを決定し、各クラスタ内のマシン機器が重複していない。
【0093】
S604では、最小コンポーネント、マシン機器及びクラスタを計算資源のハードウェアトポロジ関係とする。
【0094】
図7に示すように、それは計算資源のハードウェアトポロジ関係図である。
図7に示されるクラスタ(
図7のCluster)は複数のマシン機器(
図7のMachine)からなり、各Machineが複数の最小コンポーネント(
図7のComponent)を含む。Componentは、Machineを構成する最小ユニットであり、プロセッサ(
図7のProcessor)またはメモリ(
図7のMemory)であってもよい。プロセッサの計算力は、秒あたり実行された浮動小数点演算回数(
図7のflops)として表される。メモリの記憶能力は、
図7ではcapacityとして記載される。
【0095】
各Componentには、Componentの識別子(
図7のComponent id)、Componentのタイプ(
図7のComponent kind)などのそれの関連情報が記録されている。Componentのタイプはプロセッサまたはメモリに対応する。
【0096】
各Machineには、それに含まれるComponent(
図7のcomponents)が記録されている。また、当該Machineの識別子(
図7のmachine id)、当該Machineの物理アドレス(
図7のaddr)、及び当該Machineに含まれるインターフェース(
図7のport)が記録されることができる。
【0097】
Clusterには、それに含まれるMachine(
図7のmachines)、及びトポロジグラフ(
図7のTopology Graph)が記録されている。Topology Graphの各頂点はcomponentに対応し、頂点は密接関係リスト(
図7のAffinity)にも対応する。
【0098】
対応的に、一実施形態では、計算資源のハードウェアトポロジ関係を決定するステップは、
各最小コンポーネントの密接関係リストを決定するステップであって、密接関係リストが、ソース最小コンポーネントと目的最小コンポーネントとの接続関係、帯域幅情報及び遅延情報のうちの少なくとも1つを含むステップと、
密接関係リストを計算資源のハードウェアトポロジ関係とするステップと、をさらに含む。
【0099】
図7のソース最小コンポーネントはsource componentとして表すことができ、目的最小コンポーネントはtarget componentとして表すことができる。ソース最小コンポーネントと目的最小コンポーネントとの接続関係はlink kindとして表すことができ、帯域幅情報はbandwidthとして表すことができ、遅延情報はlatancyとして表すことができる。ここで、接続関係は、PCIE、IB、Shared Memory、及びNVLINKなどを含むことができる。
【0100】
上記のプロセスにより、機器間のトポロジ情報だけでなく、機器内のプロセッサ、グラフィックメモリ、帯域幅などの処理能力に関連する情報も含み、クラスタ群間、クラスタ群内部のハードウェア間、ハードウェア内部の具体的な接続方式及び差異のマスキングを実現し、各種類の異種ハードウェアとクラスタ群環境をサポートすることができる。
【0101】
一実施形態では、トレーニング対象のモデルに割り当ててトレーニングする計算資源は、クライアントから発信されたモデルトレーニング要求のコンテンツ、及びモデルトレーニング要求を発信するクライアントの数のうちの少なくとも1つに基づいて決定される。
【0102】
クライアントがモデルトレーニングプラットフォームでモデルトレーニング要求を発信する。トレーニング要求のタイプは、柔軟なトレーニングタスクと非柔軟なトレーニングタスクとを含む。本開示の実施形態が対象とするタイプは、主に柔軟なトレーニングタスクであり、柔軟なトレーニングタスクはさらにフォールトトレラントをサポートするモードと柔軟な拡張削減をサポートするモードに分けられ、指定された必要な計算資源の数(計算ノード)が固定の値(例えばnode_nums=2またはnode_nums=2:2)である場合、フォールトトレラントモードであると表すことができる。指定された必要な計算資源の数が特定の範囲(例えばnode_nums=2:4)である場合、柔軟な拡張削減モードであると表すことができる。
【0103】
計算資源の割り当てについては、クライアントから発信されたモデルトレーニング要求のコンテンツに基づいて決定することができる。一方、モデルトレーニング要求を発信するクライアントの数に基づいて決定することもできる。例示的には、モデルトレーニング要求を発信するクライアントの数が多いほど、計算資源のニーズ量が増加するため、計算資源がキューに入れられる可能性がある。むしろ、モデルトレーニング要求を発信するクライアントの数が少ないほど、計算資源のニーズ量が減少するため、計算資源がアイドルになる可能性がある。
【0104】
上記の2つの方面の状況に基づいて、トレーニングプラットフォームの計算資源を全体的に調節し、計算資源を十分に使用すると共に、各種類の計算資源の優位性を発揮し、クラスタ群資源の使用率をさらに向上させることができる。また、通常、夜間には大量のアイドル資源があり、上記の方法を使用することにより、計算資源の時分割多重化が可能になり、クライアントとトレーニングプラットフォームにより大きなメリットをもたらすことができる。
【0105】
図8に示すように、一実施形態では、トレーニング対象のモデルに割り当てられたトレーニング用の計算資源を解析して、計算資源の属性を取得するステップは以下のステップS801~S803をさらに含むことができる。
【0106】
S801では、計算資源の通信ルートを取得する。
【0107】
S802では、計算資源の通信ルートを使用して、各計算資源間の通信トポロジ関係を構築する。
【0108】
S803では、通信トポロジ関係を計算資源の属性とする。
【0109】
計算資源の通信ルートは、ソース通信資源とターゲット通信資源との通信接続状態、通信接続方式、及び通信速度を表すことができる。
【0110】
ここで、通信接続状態は、接続済み状態と未接続状態を含むことができる。通信接続状態が接続済み状態である場合、通信接続方式は、ソース通信資源とターゲット通信資源との具体的な通信方式に対応することができる。通信速度については、通信方式によって、対応する測算を行って、通信速度を取得することができる。
【0111】
計算資源の通信ルートを使用して、各計算資源間の通信トポロジ関係を構築することができる。例示的には、トポロジ関係は複数の通信部分領域を含むことができる。異なる通信部分領域で異なる並列モードを行うことができる。様々な並列モードは同時に存在することができる。
【0112】
一実施形態では、
通信トポロジ関係に基づいて、ソース計算資源とターゲット計算資源との間の最短通信ルートを決定するステップをさらに含むことができる。
【0113】
通信トポロジ関係を使用して、異なる計算資源間の通信時間を計算することができる。通信時間の比較に基づいて、ソース計算資源とターゲット計算資源との通信を行う必要がある場合、通信トポロジ関係を使用して、ソース計算資源とターゲット計算資源との間の最短通信ルートを決定することができる。
【0114】
図9に示すように、一実施形態では、ステップS103は以下のステップS901~S903を含むことができる。
【0115】
S901では、計算資源における各分割結果の候補分散ポリシーを取得する。
【0116】
S902では、各候補分散ポリシーの効率をそれぞれ統計する。
【0117】
S903では、各候補分散ポリシーの効率に基づいて、候補分散ポリシーからターゲット分散ポリシーを決定する。
【0118】
分割結果がN個のスライスを含むことを例として、網羅の方式を使用して、N個のスライスと計算資源を順次割り当てた後の時間推定、効率推定などをトラバースすることができる。すなわち、網羅結果は候補分散ポリシーに対応することができる。時間推定の結果、効率推定の結果などは、各候補分散ポリシーの代価とすることができる。代価は、各分割結果のトレーニング効率、またはトレーニング対象のモデルの全体的なトレーニング効率を表すことができる。
【0119】
例えば、トレーニング対象のモデルの全体的なトレーニング効率が最も高い場合に対応する分散ポリシーは、決定された最終的な分散ポリシーとされる。あるいは、各候補分散ポリシーの中で、単一の分割結果のトレーニング効率が最も高いかまたは閾値に達した数をトラバースし、その数の最も多い候補分散ポリシーを最終的な分散ポリシーとして決定することもできる。各分割結果の効率の最も高い分散ポリシーを、決定された最終的な分散ポリシーとする。
【0120】
上記のプロセスによれば、最適な分散ポリシーの決定を実現することができる。
【0121】
一実施形態では、ステップS903は、具体的に、
所定のルールを使用して、各前記候補分散ポリシーをソートするステップと、
ソートの結果に基づいて、前記候補分散ポリシーからターゲット分散ポリシーを決定するステップと、を含むことができる。
【0122】
予めトレーニングされた分散ポリシー決定モデルもコストモデル(cost-model)であってもよい。コストモデルは分散ポリシーが利益の最大化を満たすという原則に従う。例示的には、利益の最大化は、異なる所定のルールに対応することができ、例えば、トレーニングモデルの全体的なトレーニング効率が最も高いか、単一の分割結果のトレーニング効率が最も高いか、または閾値に達した数が最も多いことなどを含むことができる。具体的にはトレーニングサンプルによって、対応する効果を実現することができる。所定のルールが選択された後、所定のルールに基づいて各候補分散ポリシーをソートし、最終的にはソートの結果に基づいて、候補分散ポリシーからターゲット分散ポリシーを決定することができる。現在の実施形態では、コストモデルのトレーニングプロセスについては、説明を省略する。
【0123】
図10に示すように、一実施形態では、ステップS104は以下のステップS1001~S1002を含むことができる。
【0124】
S1001では、計算資源の使用可能性を定期的に検出する。
【0125】
S1002では、検出結果に計算資源が使用できない場合、救済措置を実行し、使用できない場合が計算資源の故障または計算資源の数の削減を含む。
【0126】
計算資源の使用可能性は、定期的にアクティブに検出されてもよいし、情報取得によってパッシブに検出されてもよい。
【0127】
計算資源の使用可能性の検出結果は、主に2クラスを含む。1つは、既存の計算資源が使用できない、すなわち、現在のトレーニング対象のモデルに割り当てられた計算資源が使用できないことである。もう1つは、現在のトレーニング対象のモデルに割り当てられた計算資源に加えて、アイドル状態である他の資源がある、すなわち、使用可能な追加の計算資源がある場合である。
【0128】
計算資源が使用できない場合に対して、2クラスに細分化することができる。1つは、計算資源の故障による使用不可である。もう1つは、モデルトレーニング要求を発信するクライアントの数の増加による計算資源の不足による計算資源の使用不可であり、最終的には計算資源の削減を引き起こす。
【0129】
検出結果に計算資源が使用できない場合、既存の計算資源の数が減少しているため、モデルトレーニングのプロセスが引き続き進むことができるように、救済措置を起動する必要がある。
【0130】
上記のプロセスにより、モデルトレーニングの正常な進行を最大限に満たすように、予期しない状況に対する対応措置を設定することができる。
【0131】
図11に示すように、一実施形態では、使用できない場合が計算資源の故障である場合、救済措置を実行するステップは、以下のステップS1101~S1103を含むことができる。
【0132】
S1101では、クライアントから発信されたモデルトレーニング要求に含まれるトレーニングモードを取得する。
【0133】
S1102では、トレーニングモードがフォールトトレラントトレーニングモードである場合、計算資源の故障回復を待機する。
【0134】
S1103では、所定の時間内に計算資源が故障から回復していない場合、実行終了を決定する。
【0135】
モデルトレーニング要求を解析することにより、モデルトレーニング要求に含まれるトレーニングモードを取得することができる。上記のように、トレーニングモードは、フォールトトレラントトレーニングモードと柔軟なトレーニングモードとを含むことができる。
【0136】
フォールトトレラントトレーニングモードに対して、計算資源に故障が発生した場合、救済措置は、トレーニング中に1つまたは複数の計算資源に故障が発生した場合、トレーニングタスク全体が終了せず、現在の計算資源も解放されず、待機して故障ノード(計算資源)が所定の時間内に回復すると、引き続きトレーニングし、そうでないとタイムアウトしたらタスクが終了する。
【0137】
ここで、引き続きトレーニングすることは、故障状態から引き続きトレーニングすることを含んでもよいし、初期状態から引き続きトレーニングすることを含んでもよい。
【0138】
上記のプロセスにより、故障が発生した場合に、タスクの送信、資源の割り当て、モデルのロード、及びトレーニングのスタートというプロセスを再経験する必要とせず、モデルトレーニング全体の効率を向上させることができる。
【0139】
図12に示すように、一実施形態では、使用できない場合が計算資源の故障である場合、救済措置を実行するステップは、以下のステップS1201~S1202をさらに含む。
【0140】
S1201では、トレーニングモードが柔軟なトレーニングモードである場合、候補計算資源を決定する。
【0141】
S1202では、候補計算資源でトレーニングの再試行を行う。
【0142】
柔軟なトレーニングモードは、計算資源の数が動的調整をサポートするトレーニングモードに対応することができる。すなわち、モデルトレーニング要求では、要求された計算資源の数が特定の範囲内であることが宣言され、さらにその数の範囲に基づいて計算資源の数を調整することができる。
【0143】
この場合、計算資源に故障が発生した場合、他の使用可能な計算資源を候補として選択することができる。モデルトレーニングデータの移行により、候補計算資源でトレーニングの再試行を行う。
【0144】
図13と併せて、
図13では、Logical Distributed Graphは分割結果に対応することができ(rank0~rank3はスライスに対応する)、Cluster Objectは計算資源に対応することができ、Physical Distributed Graphは分散ポリシーに対応することができる。ここで、計算資源がD0~D4を含む。
図13の左側に示す例は、計算資源D0~D3を使用してモデルトレーニングを行う中に、計算資源D2に故障が発生したことである。これに基づいて、
図13の右側に示す例は計算資源D4を候補計算資源として使用して、計算資源D2でトレーニングされていたデータを計算資源D4に移行して、計算資源D4で再試行を行う。
【0145】
一実施形態では、候補計算資源で再試行を行うことについて、以下のいくつかの場合を含むことができる。
【0146】
1つは、
計算資源に故障が発生した時のトレーニング状態を取得し、
トレーニング状態に基づいて、候補計算資源でトレーニングの再試行を行う。
【0147】
もう1つは、
トレーニングの初期状態を取得し、
初期状態に基づいて、候補計算資源でトレーニングの再試行を行う。
【0148】
第1の場合では、故障が発生した計算資源の故障が発生した時のトレーニング状態を取得し、故障が発生した時からトレーニングの再試行を行うことができる。故障が発生した時にトレーニングの再試行を行う利点は、トレーニングプロセス全体の時間を節約できることである。
【0149】
第2の場合では、候補計算資源でトレーニングを再開し、すなわち、初期状態からトレーニングを再開することができる。初期状態に基づいて、候補計算資源で再試行を行う利点は、トレーニングプロセス全体の正確さ及びトレーニングの保全性を確保できることである。
【0150】
図14に示すように、一実施形態では、使用できない場合が計算資源の数の削減である場合、救済措置を実行するステップは、以下のステップS1401~S1404を含む。
【0151】
S1401では、削減された計算資源の第1の数を決定する。
【0152】
S1402では、第1の数に基づいて、トレーニング対象のモデルを再分割して、再分割された第1の結果を取得する。
【0153】
S1403では、再決定された削減後に残った計算資源の属性を使用して、削減された計算資源における各再分割された第1の結果の第1の分散ポリシーを決定する。
【0154】
S1404では、第1の分散ポリシーに基づいて、削減された計算資源を使用してトレーニング対象のモデルに対して分散型トレーニングを行う。
【0155】
モデルトレーニング要求を発信するクライアントの数が増加し、または、モデルトレーニング要求において要求された計算資源の数が多い場合、計算資源が不足になる。計算資源が不足する場合、計算資源の削減を引き起こす。
【0156】
図15と併せて、
図15の左側に示すLogical Distributed Graphは分割結果に対応することができ(rank0~rank3はスライスに対応する)、Cluster Objectは計算資源に対応することができ、Physical Distributed Graphは分散ポリシーに対応することができる。ここで、元のトレーニングプロセス中に、計算資源がD0~D3を含む。
図15の右側に示すように、計算資源の削減が引き起こされた場合、計算資源D2とD3の状態は使用不可になる。これにより、削減された計算資源の第1の数は2になる。トレーニング対象のモデルに割り当てられたトレーニング用の計算資源が変化(減少)するため、前記トレーニング対象のモデルに割り当てられたトレーニング用の計算資源を再解析して、計算資源の属性を取得し、計算資源のトポロジ情報を取得する必要がある。
【0157】
第1の数に基づいて、トレーニング対象のモデルを再分割する。分割方式は上記のプロセスと同じであり、ここでは説明を省略する。
図15の右側に示すように再分割すると、分割結果は2つのスライスになることであり、rank0とrank1に対応する。残りの計算資源(D0とD1)の属性を使用して、削減された計算資源における2つのスライスの第1の分散ポリシーを決定する。すなわち、
図15の右側に示すように、第1の分散ポリシーに基づいて、新たなスライスrank0が計算資源D0に割り当てられ、新たなスライスrank1が計算資源D1に割り当てられる。
【0158】
後続のトレーニングプロセス中に、残りの計算資源(D0とD1)によってトレーニングプロセスを引き続き実行する。プロセス全体は手動介入が必要とされず、自動化の方式で実行する。
【0159】
図16に示すように、一実施形態では、検出結果に使用可能な追加の計算資源がある場合、以下のステップS1601~S1604を含む。
【0160】
S1601では、使用可能な追加の計算資源の第2の数を決定する。
【0161】
S1602では、第2の数に基づいて、トレーニング対象のモデルを再分割して、再分割された第2の結果を取得する。
【0162】
S1603では、再決定された追加の計算資源の属性を使用して、拡張された計算資源における各再分割された第2の結果の第2の分散ポリシーを決定する。
【0163】
S1604では、第2の分散ポリシーに基づいて、拡張された計算資源を使用してトレーニング対象のモデルに対して分散型トレーニングを行う。
【0164】
モデルトレーニング要求を発信するクライアントの数が減少した場合、または、モデルトレーニング要求において要求された計算資源の数が多くない場合、計算資源が供給過剰になる。計算資源が供給過剰になると、計算資源の拡張を引き起す、すなわち、モデルトレーニングタスクにより多くの計算資源を追加的に割り当てることができる。トレーニング対象のモデルに割り当てられたトレーニング用の計算資源が変化(増加)するため、前記トレーニング対象のモデルに割り当てられたトレーニング用の計算資源を再解析して、計算資源の属性を取得し、計算資源のトポロジ情報を取得する必要がある。
【0165】
図17に示すように、
図17は計算資源が拡張された後の調整概略図に対応することができる。
図17の左側に示すLogical Distributed Graphは分割結果に対応することができ(rank0~rank3はスライスに対応する)、Cluster Objectは計算資源に対応することができ、Physical Distributed Graphは分散ポリシーに対応することができる。ここで、元のトレーニングプロセス中に、計算資源はD0~D3を含む。
図17の右側に示すように、計算資源の拡張を引き起こす場合、追加の計算資源D4とD5の状態は使用可能になる。これにより、拡張された計算資源の第2の数は6になる。
【0166】
第2の数に基づいて、トレーニング対象のモデルを再分割する。分割方式は上記のプロセスと同じであり、ここでは説明を省略する。
図17の右側に示すように、再分割後に、分割結果は6つのスライスになることであり、rank0~rank5に対応する。拡張された計算資源(D0~D5)の属性を使用して、拡張された計算資源における5つのスライスの第2の分散ポリシーを決定する。すなわち
図17の右側に示すように、第2の分散ポリシーに基づいて、新たなスライスrank0は計算資源D0に割り当てられ、新たなスライスrank1は増加した計算資源D4に割り当てられ、新たなスライスrank2は計算資源D1に割り当てられ、新たなスライスrank3は計算資源D5に割り当てられ、新たなスライスrank4は増加した計算資源D5に割り当てられ、新たなスライスrank5は計算資源D3に割り当てられる。
【0167】
上記のプロセスにより、計算資源が拡張された場合、トレーニング対象のモデルを再分割することにより、計算資源を最大限に使用することができる。
【0168】
一実施形態では、計算資源の数が変化する場合、
変化後の数に基づいて、トレーニング対象のモデルの学習率と1回のトレーニングで選択されたサンプル数を調整するステップをさらに含む。
【0169】
柔軟な拡張削減を実行する場合、特定のメカニズムによって学習率と1回のトレーニングで選択されたサンプル数(batch_size)を調整することを確保する。ここで、学習率は、トレーニング対象のモデルのパラメータを更新するためのハイパーパラメータであってもよい。
【0170】
例えば、インターフェースを介して学習率とbatch_sizeの調整をトリガーするか、または計算資源の数が変化したことが検出された場合、この2つを自動的に調整することにより、トレーニングの収束性とトレーニング效果に与える影響を最小化し、または影響を与えないようにすることができる。
【0171】
一実施形態では、分散型トレーニングは、脱中心化の非同期パイプライントレーニングを含む。
【0172】
脱中心化の非同期パイプライン実行方式は、複数の計算資源の並行実行を可能にし、アップダウンストリーム論理関係を有するデータを自動的に関連付けることで、データの並列化、動的化を実現することができる。これにより、通信と計算の並行性を最大限に向上させ、トレーニング効率を向上させることができる。同時に、各サブタスクを結合解除することにより、1つのタスクが複数のクラスの機器で実行可能である。
【0173】
計算資源が変化した場合、分割ポリシーの変化を引き起こし、プロセスを再スタートさせ、脱中心化の非同期パイプライントレーニングを実行する必要がある。各プロセスは、サービスを受けるスレッド、メッセージキュー、およびメッセージを処理する複数のスレッドを含む。
【0174】
1つのメッセージは、送信プロセス番号、受信プロセス番号、及びタスク情報を含む。
【0175】
サービスを受けるスレッドは、メッセージを受け取り続け、メッセージキューに入れる。
【0176】
サービスを処理するスレッドは、メッセージキューからメッセージを読み取り続け、メッセージのタスク情報に従って実行する。
【0177】
実行が完了すると、メッセージに従って結果を次の機器に送信する。
【0178】
隣接する機器間では異なるサブタスクを同時に並行して処理する。
【0179】
フォールトトレラント、拡張または削減の場合、統合計算ビュー、統合資源ビューの再構築をトリガーして、再分割し、マッピングし、実行タスクを再構築し、トレーニングプロセスを実行するようにプロセスを開始する。
【0180】
一実施形態では、トレーニング対象のモデルはクライアントから発信されたモデルトレーニング要求に基づいて得られる。
【0181】
モデルトレーニングプラットフォーム全体は、エンドツーエンドトレーニングプラットフォームであってもよい。クライアントにとっては、トレーニング対象のモデルの関連情報と、必要な計算資源の数と、予想のトレーニング効果とだけを決定すればよい。トレーニングプロセス全体は、エンドツーエンドトレーニングプラットフォームによって自動的に実行されることができ、クライアントにとっては、他の操作が必要でなく、モデルトレーニング要求から基本情報を決定するだけである。これにより、ユーザに対する難易度要求を簡素化し、モデルの全自動化を実現することができる。
【0182】
図18に示すように、本開示は、エンドツーエンドの自己適応に基づく分散型トレーニング方法に関し、当該方法は以下のことを含むことができる。
【0183】
1、ユーザがトレーニングタスクを送信する:ユーザはトレーニングプラットフォームで分散型深層学習(トレーニング対象のモデル)トレーニングタスクを開始し、トレーニングタスクのタイプは柔軟なトレーニングタスクと非柔軟なトレーニングタスクを含み、柔軟なトレーニングタスクはまたフォールトトレラントをサポートするモードと柔軟な拡張削減をサポートするモードに分けられ、指定された計算ノード数が固定値(例えば、node_nums=2またはnode_nums=2:2)である場合、フォールトトレラントモードであることを表し、指定された計算ノード数が特定の範囲(例えば、node_nums=2:4)である場合、柔軟な拡張削減モードであることを表す。
【0184】
2、インテリジェントなスケジューリング:トレーニングプラットフォームのAIプラットフォームスケジューリングシステム(例えばk8sベースのpaddle-operator)は分散型深層学習トレーニングタスクのスケジューリングを担当し、トレーニングタスク全体を全体としてライフサイクル管理を行い、トレーニングタスクの拡張と削減操作を行うためのインターフェースを提供することができる。プラットフォームの観点からは、全体的な資源使用状況に基づいて自律的にトレーニングタスクをトリガーして計算資源の拡張と削減操作を行うことができ、あるいはフラグメント整理の考慮に基づいて、一部の計算資源を動的に移動操作することもできる。これらの操作は、現在のトレーニングタスクを中断することなく実行することができる。
【0185】
3、柔軟なトレーニングコントローラ:トレーニングコントローラはトレーニングタスクの配信開始を担当し、柔軟なタスクと非柔軟なタスクの2種類に分けられる。柔軟なトレーニングタスクの場合、タスクが開始されると、コントローラは自身及びその監視対象のサブプロセスを「発見サービス」(ETCD)に登録する共に、柔軟なトレーニングコントローラも「発見サービス」によって他のコントローラ及びそのサブプロセスの状態(ノードがダウンしているまたは使用できない、またはカードが故障していることなど)を感知する。柔軟なトレーニングコントローラが他のノードの変化(ノードまたはカードの故障終了または拡張削減)を感知すると、既存のノードが保持され、トレーニングプロセス(サブプロセスを含む)を回復する。
【0186】
柔軟なトレーニングタスクは、フォールトトレラントモードと柔軟モードという2種類のモードを含む。
【0187】
フォールトトレラントモードのタスクは、トレーニングプロセス中に1つまたは複数の計算資源が故障した(ノードが使用できないまたはGPUカードが故障している)後、トレーニングタスク全体が終了せず、現在の計算資源も解放されず、故障ノードがタイムアウト時間内に回復するのを待機してから、トレーニングを継続し(故障時刻からトレーニングを継続し)、そうでなければ、タイムアウトになるとタスクは失敗して終了する。
【0188】
柔軟な拡張削減モードのタスクは、トレーニングプロセス中に1つまたは複数のトレーニング計算資源が故障し(ノードが使用できないまたはGPUカードが故障している)、または手動/自動の拡張削減操作が発生した場合、トレーニングタスク全体が終了せず、現在の計算資源も解放されず、拡張または削減されたノード数でトレーニングを継続する(一時停止時刻からトレーニングを継続する)。
【0189】
同時に、柔軟な拡張削減を実行する時、特定のメカニズムによって学習率とbatch_sizeの調整(インターフェースを介して学習率とbatch_sizeの調整をトリガーするか、またはこの2つを自動的に調整する)を確保することにより、トレーニングの収束性と効果に与える影響を最小化し、または影響を与えない。
【0190】
4、分散型計算ビュー分析:モデルのトレーニングプロセスはデータストリームグラフの計算として説明することができる。各演算子とテンソルを並列化すれば、モデル全体におけるネットワーク層を並列化し、順次実行される計算図から分散型計算図に変換することができる。分散型テンソル、分散型演算子、再構成変換などの概念、及びより細かい粒度分散属性をを用いて、任意の分割ポリシーをサポートし、最終的にトレーニング対象のモデルの分割結果を得ることができる。また、機器非依存の分割ポリシーと機器依存の配置ポリシーの結合解除もサポートする。ここで、分散属性は、論理プロセストポロジ情報(process_mesh)、テンソルの次元ごとの分割マッピング情報(dims_mapping)、テンソルの次元ごとのスライスサイズ情報(shard_sizes)、及びスライス物理機器配置情報(device_placement)を含み、各分散型テンソルと分散型演算子はそれぞれの分散属性を含むことができ、1つのテンソルをサポートする分散属性は、このテンソルを使用する演算子の対応する分散属性と異なり、ストレージと計算の分離に有利である。
【0191】
5、クラスタ群ハードウェアトポロジ探知:トレーニングタスクに対応するクラスタ群ハードウェア資源の属性情報に基づいてクラスタ群資源ビュー、すなわち計算資源に対応する属性を生成する。すなわち、クラスタ群ハードウェア資源(マシン、スイッチなどを含む)を抽象的に表し、機器間のトポロジ情報だけでなく、機器内のプロセッサ、グラフィックメモリ、帯域幅などの処理能力に関する情報も含み、クラスタ群間、クラスタ群内部のハードウェア間、ハードウェア内部の具体的な接続方式及び差異のマスキングを実現し、各種類の異種ハードウェアとクラスタ群環境をサポートすることができる。
【0192】
6、分散型計算図とハードウェア通信トポロジマッピング:ステップ4の分散型計算ビューとステップ5のクラスタ群資源ビューに基づいて、分散型トレーニングタスクの配置ポリシーを決定し、配置ポリシーマッピングファイルが生成される。配置ポリシーは、計算資源における分割結果の分散ポリシーに対応することができる。
【0193】
トポロジマッピングが完了すると、スケジュールタスクとトレーニングタスクの実行が正式にスタートする。
【0194】
7、物理実行計画の作成:ステップ6の配置ポリシーマッピングファイルに基づいて、計算プロセス(分散型計算図)とハードウェア配置ポリシーが含まれる物理実行計画を生成する。また、物理実行計画はまた、柔軟な資源管理メカニズムと組み合わせることで、計算資源がアイドルまたはタイトである場合に柔軟な拡張削減を実現し、計算ノードの数を動的に調整し、必要に応じて再分割することができる。
【0195】
この設計では、論理的な分割と物理的なマッピングを結合解除し、異種ハードウェアとの互換性を向上させる。また、分散型演算子と分散型テンソルを結合解除して、異なる並列ポリシーによりよく拡張する。入出力テンソルの定義と演算子の定義とが一致しない場合、計算の正確性を確保するために、フレームワークは再構成変換演算子を自動的に挿入する。入出力テンソルの機器と演算子の機器とが一致しない場合、機器間の分割の正確性を確保するために、フレームワークは通信演算子を自動的に挿入する。ユーザが使用する時、完全自動モードを用いてフレームワークに分割を自動的に完了させるだけでなく、APIインターフェースを介して自分が望む分割ポリシーを定義することもできる。
【0196】
8、非同期パイプラインアクチュエータ:ステップ7の物理実行計画に基づいてトレーニング対象の深層学習モデルに対して分散型トレーニングを実行する。脱中心化の非同期パイプラインアクチュエータにより、通信と計算の同時性を最大限に向上させ、トレーニング効率を向上させることができる。同時に、各サブタスクを結合解除することにより、1つのタスクが複数のクラスの機器で実行されることができる。
【0197】
9、トポロジ感知通信:実行段階で自動的に物理実行計画に基づいて、異なる計算図の並列通信モードを自動的に構築し、異なる通信部分領域によって異なる並列モードを行う。複数種類の並列モードは同時に存在することができる。例えば、通信部分領域1はデータ並列を用いて、通信部分領域2はモデル並列を用いる。感知通信は、
図18の検出ノード(checkpoint)を使用して行うことができる。
【0198】
要するに、上記トレーニング対象のモデルのトレーニングプロセスはエンドツーエンドの自己適応プロセスである。計算資源によって表されるノードの変動は、2つのビューの構築(分散型計算ビューに対応するモデル分割、クラスタ群資源ビューに対応する計算資源の属性の決定)、具体的に実行すべきのタスクの構築(計算資源における分割結果の分散ポリシー)、プロセストレーニングの開始、トレーニングタスクの配信、計算ノードでのレーニングタスクの実行など、システム全体をトリガーする。
【0199】
図19に示すように、本開示は、エンドツーエンドの自己適応に基づく分散型トレーニング装置に関し、当該装置は、
トレーニング対象のモデルを分割して、分割結果を取得する分割モジュール1901と、
トレーニング対象のモデルに割り当てられたトレーニング用の計算資源を解析して、計算資源の属性を取得する計算資源の属性決定モジュール1902であって、トレーニング対象のモデルに割り当てられたトレーニング用の計算資源が、トレーニング対象のモデルの計算資源のニーズ、他のトレーニング中のモデルが占有する計算資源、およびアイドルの計算資源に基づいて決定され、計算資源の属性が、計算資源のトポロジ関係及びタスク処理能力のうちの少なくとも1つを表す計算資源の属性決定モジュール1902と、
計算資源の属性を使用して、計算資源における各分割結果の分散ポリシーを決定する分散ポリシー決定モジュール1903と、
分散ポリシーに基づいて、計算資源を使用してトレーニング対象のモデルに対して分散型トレーニングを行う分散型トレーニングモジュール1904と、を含むことができる。
【0200】
一実施形態では、分割モジュール1901は、具体的に、
トレーニング対象のモデル内の演算子とテンソルを決定する演算子とテンソルの決定サブモジュールと、
分割ポリシーを使用して、トレーニング対象のモデル内の演算子とテンソルを分割して、分割結果を取得する分割実行サブモジュールと、を含むことができる。
【0201】
一実施形態では、分割実行サブモジュールは、具体的に、
分割ポリシーを使用して、トレーニング対象のモデル内の演算子とテンソルを分割して、N個のスライスを取得する分割ポリシー実行ユニットであって、Nが正の整数である分割ポリシー実行ユニットと、
各スライスに対して、スライスの分散属性情報をロードする分散属性情報ロードユニットであって、分散属性情報が、トレーニング対象のモデルにおける当該スライスのプロセストポロジ情報、当該スライスの分割マッピング情報、及び当該スライスのスライスサイズ情報のうちの少なくとも1つを含む分散属性情報ロードユニットと、を含み、
分散属性情報がロードされたスライスを分割結果とする。
【0202】
一実施形態では、分散属性情報ロードユニットは、
所定の方式を使用して分散属性情報の複数の候補カテゴリを受信する候補カテゴリ受信サブユニットと、
複数の候補カテゴリで決定されたターゲットカテゴリを分散属性情報のカテゴリとする選別サブユニットと、を含むことができる。
【0203】
一実施形態では、各スライスの分散属性を使用して、各スライスの配置情報を決定する配置情報決定ユニットであって、配置情報は、スライスと計算資源との物理的マッピング関係を表す配置情報決定ユニットをさらに含む。
【0204】
一実施形態では、スライスがトレーニング対象のモデルの隣接ネットワーク層に位置し、かつスライスの配置情報が異なる場合、
配置情報を使用して、通信支援演算子を決定する通信支援演算子決定ユニットであって、通信支援演算子が各スライス間の論理演算関係を表す通信支援演算子決定ユニットを含む。
【0205】
一実施形態では、スライスがトレーニング対象のモデルの同一ネットワーク層に位置する場合、
各スライス間のネットワーク層の一致性関係を表す再構成変換演算子を決定する再構成変換演算子決定ユニットを含む。
【0206】
一実施形態では、分割実行サブモジュールは、
クライアントから発信されたモデルトレーニング要求を解析して決定する分割ポリシー決定ユニットを含むことができる。
【0207】
一実施形態では、分割実行サブモジュールは、
予めトレーニングされた分割ポリシーモデルを使用して決定する分割ポリシー決定ユニットを含むことができる。
【0208】
一実施形態では、計算資源の属性決定モジュール1902は、具体的に、
計算資源のハードウェアトポロジ関係を決定し、ハードウェアトポロジ関係を計算資源の属性とする。
【0209】
一実施形態では、計算資源の属性決定モジュール1902は、
計算資源における最小コンポーネントを決定する最小コンポーネント決定サブモジュールであって、最小コンポーネントがプロセッサまたはメモリを含む最小コンポーネント決定サブモジュールと、
少なくとも1つの最小コンポーネントからなるマシン機器を決定するマシン機器決定サブモジュールであって、各マシン機器内の最小コンポーネントが重複しないマシン機器決定サブモジュールと、
少なくとも1つのマシン機器からなるクラスタを決定するクラスタ決定サブモジュールであって、各クラスタ内のマシン機器が重複しないクラスタ決定サブモジュールと、を含み、
最小コンポーネント、マシン機器及びクラスタを計算資源のハードウェアトポロジ関係とする。
【0210】
一実施形態では、計算資源の属性決定モジュール1902は、具体的に、
各最小コンポーネントの密接関係リストを決定し、密接関係リストが、ソース最小コンポーネントと目的最小コンポーネントとの接続関係、帯域幅情報及び遅延情報のうちの少なくとも1つを含み、
密接関係リストを計算資源のハードウェアトポロジ関係とする。
【0211】
一実施形態では、トレーニング対象のモデルに割り当てられたトレーニング用の計算資源は、クライアントから発信されたモデルトレーニング要求のコンテンツ、及びモデルトレーニング要求を発信するクライアントの数のうちの少なくとも1つに基づいて決定されてもよい。
【0212】
一実施形態では、計算資源の属性決定モジュール1902は、
計算資源の通信ルートを取得する通信ルート取得サブモジュールと、
計算資源の通信ルートを使用して、各計算資源間の通信トポロジ関係を構築する通信トポロジ関係構築サブモジュールと、を含み、
通信トポロジ関係を計算資源の属性とする。
【0213】
一実施形態では、通信トポロジ関係に基づいて、ソース計算資源とターゲット計算資源との間の最短通信ルートを決定する最短通信ルート構築サブモジュールをさらに含む。
【0214】
一実施形態では、分散ポリシー決定モジュール1903は、
計算資源における各分割結果の候補分散ポリシーを取得する候補分散ポリシー取得サブモジュールと、
各候補分散ポリシーの効率をそれぞれ統計する効率統計サブモジュールと、
各候補分散ポリシーの効率に基づいて、候補分散ポリシーからターゲット分散ポリシーを決定するターゲット分散ポリシー決定サブモジュールと、を含むことができる。
【0215】
一実施形態では、ターゲット分散ポリシー決定サブモジュールは、
所定のルールを使用して、各候補分散ポリシーをソートするソートユニットと、
ソートの結果に基づいて、候補分散ポリシーからターゲット分散ポリシーを決定する結果決定ユニットと、を含むことができる。
【0216】
一実施形態では、分散型トレーニングモジュール1904は、
計算資源の使用可能性を定期的に検出する使用可能性検出サブモジュールと、
検出結果に計算資源が使用できない場合、救済措置を実行する救済措置実行サブモジュールであって、使用できない場合は計算資源の故障または計算資源の数の削減を含む救済措置実行サブモジュールと、を含むことができる。
【0217】
一実施形態では、使用できない場合が計算資源の故障である場合、救済措置実行サブモジュールは、
クライアントから発信されたモデルトレーニング要求に含まれるトレーニングモードを取得するトレーニングモード取得ユニットと、
トレーニングモードがフォールトトレラントトレーニングモードである場合、計算資源の故障回復を待機する待機ユニットと、
所定の時間内に計算資源が故障から回復していない場合、実行を終了すると決定する結果決定ユニットと、を含むことができる。
【0218】
一実施形態では、使用できない場合が計算資源の故障である場合、救済措置実行サブモジュールは、
トレーニングモードが柔軟なトレーニングモードである場合、候補計算資源を決定する候補計算資源決定ユニットと、
候補計算資源においてトレーニングの再試行を行う再試行ユニットと、をさらに含むことができる。
【0219】
一実施形態では、再試行ユニットは、
計算資源に故障が発生する時のトレーニング状態を取得するトレーニング状態取得サブユニットと、
トレーニング状態に基づいて、候補計算資源においてトレーニングの再試行を行う再試行実行サブユニットと、を含むことができる。
【0220】
一実施形態では、再試行ユニットは、
トレーニングの初期状態を取得する初期状態取得サブユニットと、
初期状態に基づいて、候補計算資源においてトレーニングの再試行を行う再試行実行サブユニットと、を含むことができる。
【0221】
一実施形態では、使用できない場合が計算資源の数の削減である場合、救済措置実行サブモジュールは、
削減された計算資源の第1の数を決定する第1の数決定ユニットと、
第1の数に基づいて、トレーニング対象のモデルを再分割して、再分割された第1の結果を取得する第1の再分割ユニットと、
再決定された削減後に残った計算資源の属性を使用して、削減された計算資源における各再分割された第1の結果の第1の分散ポリシーを決定する第1の分散ポリシー決定ユニットと、
第1の分散ポリシーに基づいて、削減された計算資源を使用してトレーニング対象のモデルに対して分散型トレーニングを行う分散型トレーニング実行ユニットと、を含むことができる。
【0222】
一実施形態では、検出結果に使用可能な追加の計算資源がある場合、
使用可能な追加の計算資源の第2の数を決定する第2の数決定ユニットと、
第2の数に基づいて、トレーニング対象のモデルを再分割して、再分割された第2の結果を取得する第2の再分割ユニットと、
再決定された追加の計算資源の属性を使用して、拡張された計算資源における各再分割された第2の結果の第2の分散ポリシーを決定する第2の分散ポリシー決定ユニットと、
第2の分散ポリシーに基づいて、拡張された計算資源を使用してトレーニング対象のモデルに対して分散型トレーニングを行う分散型トレーニング実行ユニットと、を含むことができる。
【0223】
一実施形態では、計算資源の数が変化する場合、
変化後の数に基づいて、トレーニング対象のモデルの学習率と1回のトレーニングで選択されたサンプル数を調整する調整サブユニットをさらに含む。
【0224】
一実施形態では、分散型トレーニングは、脱中心化の非同期パイプライントレーニングを含む。
【0225】
一実施形態では、トレーニング対象のモデルはクライアントから発信されたモデルトレーニング要求に基づいて得られる。
【0226】
なお、本開示の技術案では、関連するユーザ個人情報の取得、記憶、応用などは、いずれも関連法律法規の規定に合致し、かつ公序良俗に違反しない。
【0227】
本開示の実施例によれば、本開示は、電子機器、及び読み取り可能な記憶媒体をさらに提供する。
本開示の実施例によれば、本開示は、コンピュータプログラムさらに提供し、当該コンピュータプログラムはプロセッサによって実行される場合、本開示によって提供されるエンドツーエンドの自己適応に基づく分散型トレーニング方法が実現される。
【0228】
図20は、本開示の実施例を実行するための例示的な電子機器2000の概略ブロック図である。電子機器は、ラップトップコンピュータ、デスクトップコンピュータ、ワークステーション、パーソナルデジタルアシスタント、サーバ、ブレードサーバ、メインフレームコンピュータ、および他の適切なコンピュータなどの様々な形態のデジタルコンピュータを表すことを目的とする。電子機器は、パーソナルデジタル処理、携帯電話、スマートフォン、ウェアラブルデバイス、および他の同様のコンピューティングデバイスなどの様々な形態のモバイルデバイスを表すこともできる。本明細書で示される部品、それらの接続と関係、およびそれらの機能は、単なる例であり、本明細書の説明および/または求められる本開示の実現を制限することを意図したものではない。
【0229】
図20に示すように、電子機器2000は、読み取り専用メモリ(ROM)2020に記憶されているコンピュータプログラムまたは記憶ユニット2080からランダムアクセスメモリ(RAM)2030にロードされたコンピュータプログラムに従って様々な適切な動作および処理を実行できる計算ユニット2010を含む。RAM2030には、電子機器2000の動作に必要な各種のプログラムやデータも記憶されてもよい。計算ユニット2010、ROM2020、及びRAM2030は、バス2040を介して互いに接続されている。パス2040には、入力/出力(I/O)インターフェース2050も接続されている。
【0230】
電子機器2000の複数のコンポーネントはI/Oインターフェース2050に接続され、キーボード、マウスなどの入力ユニット2060、各タイプのディスプレイ、スピーカなどの出力ユニット2070、磁気ディスク、光ディスクなどの記憶ユニット2080、およびネットワークカード、モデム、無線通信トランシーバなどの通信ユニット2090を含む。通信ユニット2090は、電子機器2000が、インターネットなどのコンピュータネットワークおよび/または各種の電信ネットワークを介して他のデバイスと情報/データを交換することを可能にする。
【0231】
計算ユニット2010は、処理および計算能力を有する様々な汎用および/または専用の処理コンポーネントであってもよい。計算ユニット2010のいくつかの例は、中央処理ユニット(CPU)、グラフィック処理ユニット(GPU)、各種の専用の人工知能(AI)計算チップ、各種のマシン運転学習モデルアルゴリズムの計算ユニット、デジタル信号プロセッサ(DSP)、およびいずれかの適切なプロセッサ、コントローラ、マイクロコントローラなどを含むが、これらに限定されない。計算ユニット2010は、前文に記載の各方法及び処理、例えば、エンドツーエンドの自己適応に基づく分散型トレーニング方法を実行する。例えば、いくつかの実施例では、エンドツーエンドの自己適応に基づく分散型トレーニング方法を、記憶ユニット2080などのマシン読み取り可能な媒体に有形的に含まれるコンピュータソフトウェアプログラムとして実現することができる。いくつかの実施形態では、コンピュータプログラムの一部または全部は、ROM 2020および/または通信ユニット2090を介して電子機器2000にロードおよび/またはインストールすることができる。コンピュータプログラムがRAM 2030にロードされ、計算ユニット2010によって実行される場合、前文に記載のエンドツーエンドの自己適応に基づく分散型トレーニング方法の1つのまたは複数のステップが実行されてもよい。代替的に、他の実施例では、計算ユニット2010はエンドツーエンドの自己適応に基づく分散型トレーニング方法を実行するように、他のいずれかの適切な方式(例えば、ファームウェアを介して)によって構成されてもよい。
【0232】
本明細書で上記記載のシステムと技術の様々な実施形態は、デジタル電子回路システム、集積回路システム、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、特定用途向け標準製品(ASSP)、システムオンチップ(SOC)、コンプレックス・プログラマブル・ロジック・デバイス(CPLD)、コンピュータハードウェア、ファームウェア、ソフトウェア、および/またはそれらの組み合わせで実現することができる。これらの様々な実施形態は、1つ又は複数のコンピュータプログラムで実施されることを含むことができ、当該1つ又は複数のコンピュータプログラムは、少なくとも1つのプログラマブルプロセッサを含むプログラム可能なシステムで実行および/または解釈されることができ、当該プログラマブルプロセッサは、特定用途向け又は汎用プログラマブルプロセッサであってもよく、ストレージシステム、少なくとも1つの入力装置、および少なくとも1つの出力装置からデータおよび命令を受信し、データおよび命令を当該ストレージシステム、当該少なくとも1つの入力装置、および当該少なくとも1つの出力装置に伝送することができる。
【0233】
本開示の方法を実行するためのプログラムコードは、1つ又は複数のプログラミング言語の任意の組み合わせで書くことができる。これらのプログラムコードは、プロセッサ又はコントローラによって実行された際に、フローチャートおよび/またはブロック図に規定された機能/操作が実施されるように、汎用コンピュータ、専用コンピュータ、又は他のプログラマブルデータ処理装置のプロセッサ又はコントローラに提供されてもよい。プログラムコードは、完全に機械上で実行されるか、部分的に機械上で実行されるか、スタンドアロンソフトウェアパッケージとして、部分的に機械上で実行され、部分的にリモート機械上で実行され又は完全にリモート機械又はサーバ上で実行されてもよい。
【0234】
本開示のコンテクストでは、機械読み取り可能な媒体は、命令実行システム、装置、またはデバイスによって使用されるために、又は命令実行システム、装置、またはデバイスと組み合わせて使用するためのプログラムを含むか、又は記憶することができる有形の媒体であってもよい。機械読み取り可能な媒体は、機械読み取り可能な信号媒体または機械読み取り可能な記憶媒体であってもよい。機械読み取り可能な媒体は、電子的、磁気的、光学的、電磁気的、赤外線的、又は半導体システム、装置又はデバイス、または上記コンテンツの任意の適切な組み合わせを含むことができるが、これらに限定されない。機械読み取り可能な記憶媒体のより具体的な例は、1つ又は複数のラインに基づく電気的接続、ポータブルコンピュータディスク、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、消去可能プログラマブルリードオンリーメモリ(EPROM又はフラッシュメモリ)、光ファイバ、ポータブルコンパクトディスクリードオンリーメモリ(CD-ROM)、光学記憶装置、磁気記憶装置、または上記コンテンツの任意の適切な組み合わせを含む。
【0235】
ユーザとのインタラクションを提供するために、コンピュータ上でここで説明されるシステム及び技術を実施することができ、当該コンピュータは、ユーザに情報を表示するためのディスプレイ装置(例えば、CRT(陰極線管)又はLCD(液晶ディスプレイ)モニタ)と、キーボード及びポインティングデバイス(例えば、マウス又はトラックボール)とを有し、ユーザは、当該キーボード及び当該ポインティングデバイスによって入力をコンピュータに提供することができる。他の種類の装置も、ユーザとのインタラクションを提供することができ、例えば、ユーザに提供されるフィードバックは、任意の形式のセンシングフィードバック(例えば、ビジョンフィードバック、聴覚フィードバック、又は触覚フィードバック)であってもよく、任意の形式(音響入力と、音声入力、または、触覚入力とを含む)でユーザからの入力を受信することができる。
【0236】
ここで説明されるシステムおよび技術は、バックエンドコンポーネントを含む計算システム(例えば、データサーバとする)、又はミドルウェアコンポーネントを含む計算システム(例えば、アプリケーションサーバ)、又はフロントエンドコンポーネントを含む計算システム(例えば、グラフィカルユーザインターフェース又はウェブブラウザを有するユーザコンピュータ、ユーザは、当該グラフィカルユーザインターフェース又は当該ウェブブラウザによってここで説明されるシステムおよび技術の実施形態とインタラクションできる)、又はこのようなバックエンドコンポーネントと、ミドルウェアコンポーネントと、フロントエンドコンポーネントのいずれかの組み合わせを含む計算システムで実行することができる。任意の形態又は媒体のデジタルデータ通信(例えば、通信ネットワーク)によってシステムのコンポーネントを相互に接続することができる。通信ネットワークの例は、ローカルエリアネットワーク(LAN)と、ワイドエリアネットワーク(WAN)と、インターネットと、を含む。
【0237】
コンピュータシステムは、クライアントとサーバを含むことができる。クライアントとサーバは、一般に、互いに離れており、通常に通信ネットワークを介してインタラクションする。対応するコンピュータ上で実行され、互いにクライアント-サーバ関係を有するコンピュータプログラムによってクライアントとサーバとの関係が生成される。サーバはクラウドサーバであってもよく、分散システムのサーバであってもよく、ブロックチェーンを組み込んだサーバであってもよい。
【0238】
なお、上記に示される様々な形式のフローを使用して、ステップを並べ替え、追加、又は削除することができると理解されたい。例えば、本開示に記載の各ステップは、並列に実行されてもよいし、順次実行されてもよいし、異なる順序で実行されてもよいが、本開示で開示されている技術案が所望の結果を実現することができれば、本明細書では限定されない。
【0239】
上記具体的な実施形態は、本開示の保護範囲を制限するものではない。当業者は、設計要求と他の要因に応じて、様々な修正、組み合わせ、サブコンビネーション、及び代替を行うことができると理解されたい。任意の本開示の精神と原則内で行われる修正、同等の置換、及び改善などは、いずれも本開示の保護範囲内に含まれなければならない。