IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 之江実験室の特許一覧

特表2024-535971知的計算向けのパイプライン並列トレーニングの自己適応調整システム、方法
<>
  • 特表-知的計算向けのパイプライン並列トレーニングの自己適応調整システム、方法 図1
  • 特表-知的計算向けのパイプライン並列トレーニングの自己適応調整システム、方法 図2
  • 特表-知的計算向けのパイプライン並列トレーニングの自己適応調整システム、方法 図3
  • 特表-知的計算向けのパイプライン並列トレーニングの自己適応調整システム、方法 図4
  • 特表-知的計算向けのパイプライン並列トレーニングの自己適応調整システム、方法 図5
  • 特表-知的計算向けのパイプライン並列トレーニングの自己適応調整システム、方法 図6
  • 特表-知的計算向けのパイプライン並列トレーニングの自己適応調整システム、方法 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-10-04
(54)【発明の名称】知的計算向けのパイプライン並列トレーニングの自己適応調整システム、方法
(51)【国際特許分類】
   G06F 9/50 20060101AFI20240927BHJP
   G06N 3/098 20230101ALI20240927BHJP
【FI】
G06F9/50 150D
G06N3/098
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023573533
(86)(22)【出願日】2023-07-04
(85)【翻訳文提出日】2023-11-28
(86)【国際出願番号】 CN2023105618
(87)【国際公開番号】W WO2024060788
(87)【国際公開日】2024-03-28
(31)【優先権主張番号】202211147981.3
(32)【優先日】2022-09-21
(33)【優先権主張国・地域又は機関】CN
(81)【指定国・地域】
(71)【出願人】
【識別番号】521162399
【氏名又は名称】之江実験室
(74)【代理人】
【識別番号】100128347
【弁理士】
【氏名又は名称】西内 盛二
(72)【発明者】
【氏名】朱 世▲強▼
(72)【発明者】
【氏名】李 勇
(72)【発明者】
【氏名】程 ▲穏▼
(72)【発明者】
【氏名】▲陳▼ 光
(72)【発明者】
【氏名】曾 令▲倣▼
(57)【要約】
【課題】本発明は知的計算向けのパイプライン並列トレーニングの自己適応調整システム、方法を提供する。
【解決手段】
システムはモニタリングモジュール及び調整モジュールを含み、調整モジュールは計算ノードの計算タスクの分割が不均等である場合、計算ノードの不均等タイプに基づいて調整ポリシーを決定し、且つ調整ポリシーに基づいて計算クラスタにおけるサブモデルの割り当てを調整し、調整は、計算タスクの分割が不均等な計算ノードの少なくとも一部のサブモデルの層を該計算ノードから他の計算ノードに遷移すること、計算タスクの分割が不均等な計算ノードを制御してCPU-GPUバンク切り替え又は再計算を実行させ、又は計算タスクの分割が不均等な計算ノードを制御して現在実行中のCPU-GPUバンク切り替え又は再計算をキャンセルさせること、計算クラスタのネットワークトポロジー構造を調整すること、のうちの少なくとも1つを含む。本発明は計算クラスタにおけるサブモデルの割り当てを動的に調整することができる。
【選択図】図1
【特許請求の範囲】
【請求項1】
知的計算向けのパイプライン並列トレーニングの自己適応調整システムであって、
計算クラスタは複数の計算ノードを含み、複数の計算ノード同士が互いに通信でき、各計算ノードが少なくとも1つのCPU及び少なくとも1つのGPUを含み、トレーニング対象モデルが複数層のサブモデルを含み、前記トレーニング対象モデルのトレーニング過程は順方向計算段階及び逆方向計算段階を含み、前記順方向計算段階において、パラメータが複数層の前記サブモデルの第1層のサブモデルから最終層のサブモデルへ順次伝達され、前記逆方向計算段階において、パラメータが前記最終層のサブモデルから前記第1層のサブモデルへ順次伝達され、各計算ノードが少なくとも1つのサブモデルをトレーニングすることに用いられ、
前記システムはモニタリングモジュール及び調整モジュールを含み、
前記モニタリングモジュールは、前記計算クラスタ内の各計算ノードのリソース実行状況をモニタリングし及び収集し、且つ各計算ノードのリソース実行状況に応じて、該計算ノードの計算タスクの分割が均等であるかどうかを決定し、及び、前記計算ノードの計算タスクの分割が不均等である場合、前記計算ノードの不均等タイプを決定することに用いられ、
前記調整モジュールは、前記計算ノードの計算タスクの分割が不均等である場合、前記計算ノードの不均等タイプに基づいて調整ポリシーを決定し、且つ前記調整ポリシーに基づいて計算クラスタにおけるサブモデルの割り当てを調整することに用いられ、
前記調整することは、
計算タスクの分割が不均等な計算ノードの少なくとも一部のサブモデルの層を該計算ノードから他の計算ノードに遷移することと、
計算タスクの分割が不均等な計算ノードを制御してCPU-GPUバンク切り替え又は再計算を実行させ、又は計算タスクの分割が不均等な計算ノードを制御して現在実行中のCPU-GPUバンク切り替え又は再計算をキャンセルさせることと、
前記計算クラスタのネットワークトポロジー構造を調整することと、のうちの少なくとも1つを含む
ことを特徴とする知的計算向けのパイプライン並列トレーニングの自己適応調整システム。
【請求項2】
前記リソース実行状況は、計算遅延、GPU利用率、ネットワーク伝送遅延及び内部メモリ使用率を含み、
前記モニタリングモジュールは、各計算ノードのリソース実行状況に応じて、該計算ノードの計算タスクの分割が均等であるかどうかを決定する際に、具体的には、現在計算ノードのリソース実行状況に応じて、現在計算ノードには以下の状況1~3の少なくとも一つが存在すると決定した場合、該計算ノードの計算タスクの分割が不均等であることを決定することに用いられ、
前記状況1は、前記現在計算ノードの計算遅延が所定の遅延閾値以上であることであり、
前記状況2は、前記現在計算ノードの内部メモリ使用率が所定の内部メモリ使用率閾値以上であり、且つ前記現在計算ノードのGPU利用率が前記計算クラスタにおける全ての計算ノードのGPU利用率の平均値よりも小さいことであり、
前記状況3は、現在計算ノードのネットワーク遅延が前記計算クラスタにおける他の計算ノードの最大ネットワーク遅延の所定倍数を超え、前記所定倍数が1以上であることである
ことを特徴とする請求項1に記載の知的計算向けのパイプライン並列トレーニングの自己適応調整システム。
【請求項3】
前記モニタリングモジュールは前記計算ノードの計算タスクの分割が不均等である場合、前記計算ノードの不均等タイプを決定し、具体的には、
現在計算ノードの計算遅延が所定の遅延閾値以上であり、及び/又は前記現在計算ノードの内部メモリ使用率が所定の内部メモリ使用率閾値以上であり、且つ前記現在計算ノードのGPU利用率が前記計算クラスタにおける全ての計算ノードのGPU利用率の平均値よりも小さい場合、前記現在計算ノードの不均等タイプが、現在計算段階に割り当てられる層が多すぎることを含むこと、及び
現在計算ノードのネットワーク遅延が前記計算クラスタにおける他の計算ノードの最大ネットワーク遅延の所定倍数を超える場合、前記現在計算ノードの不均等タイプが、ネットワークが異常であることを含むことに用いられる
ことを特徴とする請求項2に記載の知的計算向けのパイプライン並列トレーニングの自己適応調整システム。
【請求項4】
現在計算ノードの計算遅延が所定の遅延閾値以上である場合、前記調整ポリシーは計算調整ポリシーを含み、
前記計算調整ポリシーは、
現在計算ノードがCPU-GPUバンク切り替え又は再計算を用いる場合、前記現在計算ノードが用いるCPU-GPUバンク切り替え又は再計算をキャンセルすることと、
前記現在計算ノードが用いるCPU-GPUバンク切り替え又は再計算をキャンセルした後、前記現在計算ノードが前記現在計算ノード上のサブモデルを実行するために必要なメモリ容量が、前記現在計算ノードの最大内部メモリ容量を超える場合、前記現在計算ノードの1つ前の計算ノードのGPU利用率及び前記現在計算ノードの次の計算ノードのGPU利用率に基づいて、前記現在計算ノードの少なくとも一部のサブモデルの少なくとも一部の層を他の計算ノードに遷移して実行することと、を含む
ことを特徴とする請求項3に記載の知的計算向けのパイプライン並列トレーニングの自己適応調整システム。
【請求項5】
前記現在計算ノードの1つ前の計算ノードのGPU利用率及び前記現在計算ノードの次の計算ノードのGPU利用率に基づいて、前記現在計算ノードの少なくとも一部のサブモデルの少なくとも一部の層を他の計算ノードに遷移して実行することは、
前記現在計算ノードの1つ前の計算ノードのGPU利用率が前記現在計算ノードの次の計算ノードのGPU利用率よりも小さい場合、前記現在計算ノードの1つ前の計算ノードを初期目標計算ノードとすることと、
前記現在計算ノードの1つ前の計算ノードが初期目標計算ノードである場合、前記初期目標計算ノードのGPU利用率と前記初期目標計算ノードの1つ前の計算ノードのGPU利用率とを比較し、前記初期目標計算ノードのGPU利用率が前記初期目標計算ノードの1つ前の計算ノードのGPU利用率よりも小さい場合、前記初期目標計算ノードを最終的な目標計算ノードとし、前記初期目標計算ノードのGPU利用率が前記初期目標計算ノードの1つ前の計算ノードのGPU利用率よりも大きい場合、前記初期目標計算ノードの1つ前の計算ノードを新たな初期目標計算ノードとして前に遷移して比較し続け、先頭の目標計算ノードまで順次行うことと、
前記現在計算ノードの少なくとも一部のサブモデルの少なくとも一部の層を最終的な目標計算ノードに遷移して実行することと、を含む
ことを特徴とする請求項4に記載の知的計算向けのパイプライン並列トレーニングの自己適応調整システム。
【請求項6】
前記現在計算ノードの1つ前の計算ノードのGPU利用率及び前記現在計算ノードの次の計算ノードのGPU利用率に基づいて、前記現在計算ノードの少なくとも一部のサブモデルの少なくとも一部の層を他の計算ノードに遷移して実行することは、
前記現在計算ノードの1つ前の計算ノードのGPU利用率が前記現在計算ノードの次の計算ノードのGPU利用率よりも大きい場合、前記現在計算ノードの次の計算ノードを初期目標計算ノードとすることと、
前記現在計算ノードの次の計算ノードが初期目標計算ノードである場合、前記初期目標計算ノードのGPU利用率と前記初期目標計算ノードの次の計算ノードのGPU利用率とを比較し、前記初期目標計算ノードのGPU利用率が前記初期目標計算ノードの次の計算ノードのGPU利用率よりも小さい場合、前記初期目標計算ノードを最終的な目標計算ノードとし、前記初期目標計算ノードのGPU利用率が前記初期目標計算ノードの次の計算ノードのGPU利用率よりも大きい場合、前記初期目標計算ノードの次の計算ノードを新たな初期目標計算ノードとして前に遷移して比較し続け、先頭の目標計算ノードまで順次行うことと、
前記現在計算ノードの少なくとも一部のサブモデルの少なくとも一部のサブユニットを最終的な目標計算ノードに遷移して実行することと、を含む
ことを特徴とする請求項4に記載の知的計算向けのパイプライン並列トレーニングの自己適応調整システム。
【請求項7】
前記計算調整ポリシーは、
前記現在計算ノードの少なくとも一部のサブモデルの少なくとも一部の層を他の計算ノードに遷移して実行した後、前記現在計算ノードがモデルパラメータを改めて生成し、且つ前記現在計算ノードのモデルバージョン情報を更新することを更に含む
ことを特徴とする請求項5又は6に記載の知的計算向けのパイプライン並列トレーニングの自己適応調整システム。
【請求項8】
現在計算ノードの内部メモリ使用率が所定の内部メモリ使用率閾値以上であり、且つ前記現在計算ノードのGPU利用率が前記計算クラスタにおける全ての計算ノードのGPU利用率の平均値よりも小さい場合、前記調整ポリシーは内部メモリ調整ポリシーを含み、
前記内部メモリ調整ポリシーは、
前記現在計算ノードが再計算するGPUオーバーヘッドが、前記現在計算ノードがCPU-GPUバンク切り替えするGPUオーバーヘッドよりも大きい場合、前記現在計算ノードが前記現在計算ノードの内部メモリ使用率を低減するようにCPU-GPUバンク切り替えを用いることと、
前記現在計算ノードが再計算するGPUオーバーヘッドが、前記現在計算ノードがCPU-GPUバンク切り替えするGPUオーバーヘッドよりも小さい場合、前記現在計算ノードが前記現在計算ノードの内部メモリ使用率を低減するように再計算を用いることと、を含む
ことを特徴とする請求項3又は4に記載の知的計算向けのパイプライン並列トレーニングの自己適応調整システム。
【請求項9】
前記内部メモリ調整ポリシーは、
前記現在計算ノードの元のタスクトレーニング時間及び前記現在計算ノードが前記再計算又は前記CPU-GPUバンク切り替えを実行するために必要な時間に基づいて、前記現在計算ノードの計算時間を決定することと、
前記現在計算ノードの計算時間が前記計算クラスタにおける全ての計算ノードの平均タスクトレーニング時間以上である場合、前記現在計算ノードの少なくとも一部のサブモデルの少なくとも一部のサブユニットを前記現在計算ノードの隣接する計算ノードに遷移して実行することと、
前記現在計算ノードの計算時間が前記計算クラスタにおける全ての計算ノードの平均タスクトレーニング時間よりも小さい場合、前記現在計算ノードを、他の計算ノードが層遷移を行う計算ノードのサブユニットが移入する目標計算ノードとすることと、を更に含む
ことを特徴とする請求項8に記載の知的計算向けのパイプライン並列トレーニングの自己適応調整システム。
【請求項10】
現在計算ノードのネットワーク遅延が前記計算クラスタにおける他の計算ノードの最大ネットワーク遅延の所定倍数を超える場合、前記調整ポリシーはトポロジー調整ポリシーを含み、
前記トポロジー調整ポリシーは、
該現在計算ノードとのネットワーク遅延が最も小さい3つの連続した計算ノードを選択し、且つ現在ネットワークが遅延しない計算ノードの最大ネットワーク遅延の1倍以上を決定することと、
前記現在計算ノードと前記3つの連続した計算ノードの中間計算ノードとをタスク交換することと、
それぞれタスク交換後の2つの計算ノードの前後の計算ノードのネットワーク遅延が前記最大ネットワーク遅延を超えるかどうかを判断し、YESの場合、遅延が次に小さい3つの連続した計算ノードを選択し続け、全ての計算ノードをトラバースするまでタスク交換過程を繰り返し、前記最大ネットワーク遅延を超えない計算ノードが依然として存在しない場合、前記計算クラスタのネットワークトポロジー調整を終了することと、
超えない場合、前記タスク交換後の2つの計算ノード間のモデルパラメータ及び中間変数を交換することと、を含む
ことを特徴とする請求項3又は4に記載の知的計算向けのパイプライン並列トレーニングの自己適応調整システム。
【請求項11】
前記トポロジー調整ポリシーは、
前記タスク交換後の2つの計算ノードのうちのいずれか1つの計算ノードの内部メモリ使用率が所定の内部メモリ使用率閾値以上である場合、内部メモリ調整ポリシーを用いて計算クラスタにおけるサブモデルの割り当てを調整し続けることと、
前記内部メモリ調整ポリシーを用いて計算クラスタにおけるサブモデルの割り当てを調整し続けた後、タスク交換後の2つの計算ノードのうちのいずれか1つの計算ノードの内部メモリ使用率が依然として所定の内部メモリ使用率閾値以上である場合、計算調整ポリシーを用いて前記内部メモリ使用率が依然として所定の内部メモリ使用率閾値以上である計算ノードの少なくとも一部のサブモデルの少なくとも一部のサブユニットを遷移することと、を更に含む
ことを特徴とする請求項10に記載の知的計算向けのパイプライン並列トレーニングの自己適応調整システム。
【請求項12】
知的計算向けのパイプライン並列トレーニングの自己適応調整方法であって、
計算クラスタは複数の計算ノードを含み、複数の計算ノード同士が互いに通信でき、各計算ノードが少なくとも1つのCPU及び少なくとも1つのGPUを含み、トレーニング対象モデルが複数層のサブモデルを含み、前記トレーニング対象モデルのトレーニング過程は順方向計算段階及び逆方向計算段階を含み、前記順方向計算段階において、パラメータが複数層の前記サブモデルの第1層のサブモデルから最終層のサブモデルへ順次伝達され、前記逆方向計算段階において、パラメータが前記最終層のサブモデルから前記第1層のサブモデルへ順次伝達され、各計算ノードが少なくとも1つのサブモデルをトレーニングすることに用いられ、
前記方法は、
モニタリングモジュールにより、前記計算クラスタ内の各計算ノードのリソース実行状況をモニタリングし及び収集し、且つ各計算ノードのリソース実行状況に応じて、該計算ノードの計算タスクの分割が均等であるかどうかを決定し、及び、前記計算ノードの計算タスクの分割が不均等である場合、前記計算ノードの不均等タイプを決定することと、
調整モジュールにより、前記計算ノードの計算タスクの分割が不均等である場合、前記計算ノードの不均等タイプに基づいて調整ポリシーを決定し、且つ前記調整ポリシーに基づいて計算クラスタにおけるサブモデルの割り当てを調整することと、を含み、
前記調整することは、
計算タスクの分割が不均等な計算ノードの少なくとも一部のサブモデルの少なくとも一部の層を該計算ノードから他の計算ノードに遷移することと、
計算タスクの分割が不均等な計算ノードを制御してCPU-GPUバンク切り替え又は再計算を実行させ、又は計算タスクの分割が不均等な計算ノードを制御して現在実行中のCPU-GPUバンク切り替え又は再計算をキャンセルさせることと、
前記計算クラスタのネットワークトポロジー構造を調整することと、のうちの少なくとも1つを含む
ことを特徴とする知的計算向けのパイプライン並列トレーニングの自己適応調整方法。
【請求項13】
知的計算向けのパイプライン並列トレーニングの自己適応調整装置であって、
メモリと、1つ又は複数のプロセッサとを含み、前記メモリに実行可能コードが記憶され、前記1つ又は複数のプロセッサが前記実行可能コードを実行するとき、請求項12に記載の知的計算向けのパイプライン並列トレーニングの自己適応調整方法を実行する
ことを特徴とする知的計算向けのパイプライン並列トレーニングの自己適応調整装置。
【請求項14】
コンピュータ読み取り可能な記憶媒体であって、
プログラムが記憶され、該プログラムがプロセッサにより実行されるとき、請求項12に記載の知的計算向けのパイプライン並列トレーニングの自己適応調整方法を実行する
ことを特徴とするコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は知的計算の分野に関し、特に知的計算向けのパイプライン並列トレーニングの自己適応調整システム、方法に関する。
【背景技術】
【0002】
深層学習の出現により自然言語処理、音声/ビデオ処理、メディアコンバージェンスなどの分野が大きくアップデートされている。しかしながら、深層学習モデルが大きくなるにつれて、パラメータ量が数百億を超える大きなモデルもあり、このような大規模のモデルは常に分散型機械学習システムを構築することによりモデルトレーニングを完了する。分散型トレーニングは単一のGPUのハッシュレートの制限を突破することができ、モデルトレーニング時に複数台の機械及び複数のGPUカードに分散型トレーニング方法を構築することによりモデルトレーニングを加速することは、既に非常に普及している方法となっている。
【0003】
パイプライン並列はよく見られる分散型トレーニング方法であり、パイプライン並列方法はモデルを層によって複数の段階stageに分割し、各段階をGPUに配置し、複数の段階で順方向計算を順次実行し、且つ最後の段階で損失関数を計算し、更に最後の段階から1番目の段階まで順に逆方向計算を行う。過程全体における異なる段階の順方向計算と逆方向計算との間のアイドル待ち時間が異なる。そして、各段階で複数のミニバッチ(mini-batch)を同時に実行する(又は、1つのmini-batchを複数のマイクロバッチ(micro-batch)に分解して同時に実行する)ことにより、複数の段階のパイプライン実行を実現し、GPUのアイドル待ち時間を短縮し、効率を向上させる。しかしながら、深層学習モデルの異なる層の計算ニーズ、メモリ容量及び通信ニーズにいずれも相違があり、各段階で計算、内部メモリ及びネットワークリソースをどのように均等に割り当てるかは、パイプライン並列の計算効率の向上にとって極めて重要である。
【0004】
現在の方法は一般的に静的方法により層の分割を行い、例えば、パイプドリーム(pipedream)は動的計画方法により分割を行う。しかしながら、現在のAIフレームワークが動的計算マップ例えばパイトーチ(Pytorch)をサポートするため、異なるトレーニング期間にモデルが変化する可能性があり、静的分割結果はモデル(例えば、ニューラルネットワークモデル)が変更した後で全体効率が低下する問題に直面してしまう。
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明の目的は知的計算向けのパイプライン並列トレーニングの自己適応調整システム、方法を提供することで、従来技術における静的方法により層の分割を行えばモデルが変更した後で全体効率が低下する問題に直面してしまうという問題を解決した。
【課題を解決するための手段】
【0006】
本発明が用いる技術案は以下のとおりである。
【0007】
本発明の実施例は知的計算向けのパイプライン並列トレーニングの自己適応調整システムを提供し、計算クラスタは複数の計算ノードを含み、複数の計算ノード同士が互いに通信でき、各計算ノードが少なくとも1つのCPU及び少なくとも1つのGPUを含み、トレーニング対象モデルが複数層のサブモデルを含み、前記トレーニング対象モデルのトレーニング過程は順方向計算段階及び逆方向計算段階を含み、前記順方向計算段階において、パラメータが複数層の前記サブモデルの第1層のサブモデルから最終層のサブモデルへ順次伝達され、前記逆方向計算段階において、パラメータが前記最終層のサブモデルから前記第1層のサブモデルへ順次伝達され、各計算ノードが少なくとも1つのサブモデルをトレーニングすることに用いられ、
前記システムはモニタリングモジュール及び調整モジュールを含み、
前記モニタリングモジュールは、前記計算クラスタ内の各計算ノードのリソース実行状況をモニタリングし及び収集し、且つ各計算ノードのリソース実行状況に応じて、該計算ノードの計算タスクの分割が均等であるかどうかを決定し、及び、前記計算ノードの計算タスクの分割が不均等である場合、前記計算ノードの不均等タイプを決定することに用いられ、
前記調整モジュールは、前記計算ノードの計算タスクの分割が不均等である場合、前記計算ノードの不均等タイプに基づいて調整ポリシーを決定し、且つ前記調整ポリシーに基づいて計算クラスタにおけるサブモデルの割り当てを調整することに用いられ、
前記調整することは、
計算タスクの分割が不均等な計算ノードの少なくとも一部のサブモデルの層を該計算ノードから他の計算ノードに遷移することと、
計算タスクの分割が不均等な計算ノードを制御してCPU-GPUバンク切り替え又は再計算を実行させ、又は計算タスクの分割が不均等な計算ノードを制御して現在実行中のCPU-GPUバンク切り替え又は再計算をキャンセルさせることと、
前記計算クラスタのネットワークトポロジー構造を調整することと、のうちの少なくとも1つを含む。
【0008】
本発明は知的計算向けのパイプライン並列トレーニングの自己適応調整方法を更に提供し、計算クラスタは複数の計算ノードを含み、複数の計算ノード同士が互いに通信でき、各計算ノードが少なくとも1つのCPU及び少なくとも1つのGPUを含み、トレーニング対象モデルが複数層のサブモデルを含み、前記トレーニング対象モデルのトレーニング過程は順方向計算段階及び逆方向計算段階を含み、前記順方向計算段階において、パラメータが複数層の前記サブモデルの第1層のサブモデルから最終層のサブモデルへ順次伝達され、前記逆方向計算段階において、パラメータが前記最終層のサブモデルから前記第1層のサブモデルへ順次伝達され、各計算ノードが少なくとも1つのサブモデルをトレーニングすることに用いられ、
前記方法は、
モニタリングモジュールにより、前記計算クラスタ内の各計算ノードのリソース実行状況をモニタリングし及び収集し、且つ各計算ノードのリソース実行状況に応じて、該計算ノードの計算タスクの分割が均等であるかどうかを決定し、及び、前記計算ノードの計算タスクの分割が不均等である場合、前記計算ノードの不均等タイプを決定することと、
調整モジュールにより、前記計算ノードの計算タスクの分割が不均等である場合、前記計算ノードの不均等タイプに基づいて調整ポリシーを決定し、且つ前記調整ポリシーに基づいて計算クラスタにおけるサブモデルの割り当てを調整することと、を含み、
前記調整することは、
計算タスクの分割が不均等な計算ノードの少なくとも一部のサブモデルの少なくとも一部の層を該計算ノードから他の計算ノードに遷移することと、
計算タスクの分割が不均等な計算ノードを制御してCPU-GPUバンク切り替え又は再計算を実行させ、又は計算タスクの分割が不均等な計算ノードを制御して現在実行中のCPU-GPUバンク切り替え又は再計算をキャンセルさせることと、
前記計算クラスタのネットワークトポロジー構造を調整することと、のうちの少なくとも1つを含む。
【0009】
本発明は知的計算向けのパイプライン並列トレーニングの自己適応調整装置を更に提供し、メモリと、1つ又は複数個のプロセッサとを含み、前記メモリに実行可能コードが記憶され、前記1つ又は複数個のプロセッサが前記実行可能コードを実行するとき、上記知的計算向けのパイプライン並列トレーニングの自己適応調整方法を実行する。
【0010】
本発明はコンピュータ読み取り可能な記憶媒体を更に提供し、プログラムが記憶され、該プログラムがプロセッサにより実行されるとき、上記知的計算向けのパイプライン並列トレーニングの自己適応調整方法を実行する。
【発明の効果】
【0011】
本発明の有益な効果は、調整モジュールにより前記計算ノードの計算タスクの分割が不均等である場合、計算クラスタにおけるサブモデルの割り当てを動的に調整し、パイプライン並列の動的適応能力を効果的に向上させ、知的計算クラスタのGPU利用率を向上させることである。
【図面の簡単な説明】
【0012】
本発明の実施例の技術案をより明確に説明するために、以下に実施例の記述に必要な図面を簡単に説明するが、明らかに、以下に記載する図面は単に本発明の実施例の一例であって、当業者であれば、創造的な労力を要することなく、更にこれらの図面に基づいて他の図面を取得することができる。
【0013】
図1図1は本発明の一実施例に係る計算クラスタの構造模式図である。
図2図2は本発明の一実施例に係る知的計算向けのパイプライン並列トレーニングの自己適応調整システムの構造模式図である。
図3図3は本発明の一実施例に係る計算調整ポリシーの模式的なフローチャートである。
図4図4は本発明の一実施例に係る内部メモリ調整ポリシーの模式的なフローチャートである。
図5図5は本発明の一実施例に係るトポロジー調整ポリシーの模式的なフローチャートである。
図6図6は本発明の一実施例に係る知的計算向けのパイプライン並列トレーニングの自己適応調整方法の模式的なフローチャートである。
図7図7は本発明の一実施例に係る知的計算向けのパイプライン並列トレーニングの自己適応調整装置の構造模式図である。
【発明を実施するための形態】
【0014】
以下に本発明の実施例の図面を参照しながら、本発明の実施例の技術案を明確且つ完全に説明し、無論、説明される実施例は本発明の実施例の一部であり、実施例の全部ではない。本発明の実施例に基づいて、当業者が進歩性のある労働を必要とせずに取得する他の実施例は、いずれも本発明の保護範囲に属する。
【0015】
なお、矛盾しない限り、下記実施例及び実施形態の特徴は互いに組み合わせられることができる。
【0016】
計算クラスタは一般的にマルチテナンシーをサポートし、特にパブリッククラウドシーンにおいて、計算クラスタにおける計算ノードの性能も共有タスクの変化につれて変化することとなる。従って、動的に変化するシーンに適応するようにパイプライン並列による層分割に対する自己適応調整方法を必要としている。
【0017】
図1を参照し、本発明の実施例の計算クラスタは複数の計算ノードを備えてもよく、複数の計算ノード同士が互いに通信でき、各計算ノードが少なくとも1つのCPU及び少なくとも1つのGPUを備える。図1に示すように、計算クラスタは計算ノード1、計算ノード2、…、計算ノードNを備えてもよく、Nが正の整数であり、且つNが3以上である。
【0018】
本発明の実施例のトレーニング対象モデルはニューラルネットワークモデルであってもよく、他のタイプのモデル例えばトレーニング対象の数学モデルであってもよい。
【0019】
本発明の実施例では、トレーニング対象モデルは複数層のサブモデルを備えてもよく、パイプライン並列方式で前記トレーニング対象モデルをトレーニングし、具体的に、トレーニング対象モデルのトレーニング過程は順方向計算段階及び逆方向計算段階を含む。順方向計算段階において、パラメータが複数層のサブモデルの第1層のサブモデルから最終層のサブモデルへ順次伝達され、逆方向計算段階において、パラメータが最終層のサブモデルから第1層のサブモデルへ順次伝達する。なお、1回のトレーニング反復(即ち1回のトレーニング過程であり、一次のトレーニング反復又は一次のトレーニング過程と称されてもよい)は1回の順方向計算段階及び1回の逆方向計算段階を含む。
【0020】
例示的に、トレーニング対象モデルはニューラルネットワークモデルであり、該ニューラルネットワークモデルは第1層のネットワーク、第2層のネットワーク、第3層のネットワーク及び第4層のネットワークを含み、第1層のネットワーク、第2層のネットワーク、第3層のネットワーク及び第4層のネットワークが順次接続され、第1層のネットワークが第1層のサブモデルであり、第4層のネットワークが最終層のサブモデルである。順方向計算段階において、パラメータが第1層のネットワークから第2層のネットワーク、第3層のネットワーク及び第4層のネットワークへ順次伝達し、逆方向計算段階において、パラメータが第4層のネットワークから第3層のネットワーク、第2層のネットワーク及び第1層のネットワークへ順次伝達する。
なお、第1層のネットワーク、第2層のネットワーク及び第3層のネットワークのタイプは必要に応じて設計されてもよく、例えば、第1層のネットワークが入力層、第2層のネットワークが畳み込み層、第3層のネットワークがプーリング層、第4層のネットワークが出力層である。
【0021】
計算クラスタにおける各計算ノードは少なくとも1つのサブモデルをトレーニングするためのものであり、即ち各計算ノードに少なくとも1つのサブモデルを割り当て、それにより知的計算クラスタのGPU利用率を向上させる。
【0022】
図2を参照し、本発明の実施例は知的計算向けのパイプライン並列トレーニングの自己適応調整システムを提供し、該システムはモニタリングモジュール10及び調整モジュール20を備えてもよい。
【0023】
本発明の実施例では、モニタリングモジュール10は計算クラスタ内の各計算ノードのリソース実行状況をモニタリングし及び収集し、且つ各計算ノードのリソース実行状況に応じて、該計算ノードの計算タスクの分割が均等であるかどうかを決定し、及び、計算ノードの計算タスクの分割が不均等である場合、計算ノードの不均等タイプを決定することを担うためのものである。モニタリングモジュール10は計算クラスタには計算タスクの分割が不均等な計算ノードが存在することを決定した場合、計算クラスタには計算タスクの分割が不均等な計算ノードが存在すること及び対応する不均等タイプを調整モジュール20に通知することとなる。上記実施例を援用し、モニタリングモジュール10は計算ノード1、計算ノード2、…、計算ノードNのリソース実行状況をモニタリングし及び収集し、且つ計算ノード1、計算ノード2、…、計算ノードNのリソース実行状況に応じて、計算ノード2の計算タスクの分割が不均等であることを決定し、計算ノード2の不均等タイプを更に決定することを担うためのものである。且つ、モニタリングモジュール10は計算ノード2の計算タスクの分割が不均等であること及び不均等のタイプを調整モジュール20に通知することとなる。
【0024】
調整モジュール20は計算ノードの計算タスクの分割が不均等である場合、計算ノードの不均等タイプに基づいて調整ポリシーを決定し、且つ調整ポリシーに基づいて計算クラスタにおけるサブモデルの割り当てを調整するためのものである。本発明の実施例では、調整モジュール20はモニタリングモジュール10から送信された、計算クラスタには計算タスクの分割が不均等な計算ノードが存在することを指示するための指示情報を受信した場合、計算タスクの分割が不均等な計算ノードの不均等タイプに基づいて調整ポリシーを決定し、且つ調整ポリシーに基づいて計算クラスタにおけるサブモデルの割り当てを調整する。指示情報には計算タスクの分割が不均等な計算ノードの不均等タイプが含まれる。
【0025】
本発明の実施例では、計算クラスタにおけるサブモデルの割り当てを調整することは、
第(1)として、計算タスクの分割が不均等な計算ノードの少なくとも一部のサブモデルの層を該計算ノードから他の計算ノードに遷移すること、
第(2)として、計算タスクの分割が不均等な計算ノードを制御してCPU-GPUバンク切り替え又は再計算を実行させ、又は計算タスクの分割が不均等な計算ノードを制御して現在実行中のCPU-GPUバンク切り替え又は再計算をキャンセルさせること、
第(3)として、計算クラスタのネットワークトポロジー構造を調整すること、のうちの少なくとも1つの方式を含んでもよい。
【0026】
本発明の実施例に係る知的計算向けのパイプライン並列トレーニングの自己適応調整システムにおける調整モジュール20は前記計算ノードの計算タスクの分割が不均等である場合、計算クラスタにおけるサブモデルの割り当てを動的に調整し、パイプライン並列の動的適応能力を効果的に向上させ、知的計算クラスタのGPU利用率を向上させる。
【0027】
本実施例では、リソース実行状況は計算遅延、GPU利用率、ネットワーク伝送遅延及び内部メモリ使用率などの情報を含んでもよく、即ちモニタリングモジュール10は計算クラスタ内の各計算ノードの計算遅延、GPU利用率、ネットワーク伝送遅延及び内部メモリ使用率などの情報をモニタリング及び収集し、具体的に、モニタリングモジュール10は各回のトレーニング反復過程における順方向計算段階及び逆方向計算段階の計算遅延、GPU利用率、ネットワーク伝送遅延、内部メモリ使用率などの情報をモニタリング及び収集し、このように、より完全な実行情報をモニタリング及び収集することにより、後続の調整ポリシーの選択に寄与し、それにより計算クラスタのGPU利用率を効果的に向上させる。理解されるように、他の実施例では、リソース実行状況は計算遅延、GPU利用率、ネットワーク伝送遅延及び内部メモリ使用率などの情報の一部を含んでもよい。
【0028】
モニタリングモジュール10が各回のトレーニング反復過程における計算クラスタ内の各計算ノードのリソース実行状況を収集する手段は必要に応じて設定されてもよく、例えば、いくつかの実施例では、各回の反復トレーニングが終了した後、計算クラスタ内の各計算ノードは該回の反復トレーニングにおける本ノードの計算遅延、GPU利用率、ネットワーク伝送遅延、内部メモリ使用率などの情報をモニタリングモジュール10に送信する。
【0029】
他のいくつかの実施例では、モニタリングモジュール10は計算クラスタ内の各計算ノードから各計算ノードの計算遅延、GPU利用率、ネットワーク伝送遅延、内部メモリ使用率などの情報を能動的に読み取り、例えば、モニタリングモジュール10は計算クラスタ内の各計算ノードから各計算ノードの計算遅延、GPU利用率、ネットワーク伝送遅延、内部メモリ使用率などの情報を周期的に読み取ることができる。読み取りサイクルは必要に応じて設定されてもよく、例えば、モニタリングモジュール10は10分間おきに計算クラスタ内の各計算ノードから各計算ノードの計算遅延、GPU利用率、ネットワーク伝送遅延、内部メモリ使用率などの情報を読み取る。
【0030】
選択肢として、モニタリングモジュール10は各計算ノードのリソース実行状況に応じて、該計算ノードの計算タスクの分割が均等であるかどうかを決定するときには、具体的に、現在計算ノードのリソース実行状況に応じて、現在計算ノードに下記状況の少なくとも1つが存在することを決定した場合、該現在計算ノードの計算タスクの分割が不均等であることを決定する。
【0031】
状況1において、現在計算ノードの計算遅延が所定の遅延閾値以上である。
【0032】
所定の遅延閾値の大きさは必要に応じて設定されてもよく、例えば、現在計算ノードの計算遅延が他の計算ノードの計算遅延の大きさの半分以上を超える場合、該現在計算ノードの計算タスクの分割が不均等であることを決定する。
【0033】
状況2において、現在計算ノードの内部メモリ使用率が所定の内部メモリ使用率閾値以上であり、且つ現在計算ノードのGPU利用率が計算クラスタにおける全ての計算ノードのGPU利用率の平均値よりも小さい。
【0034】
所定の内部メモリ使用率閾値の大きさは必要に応じて設定されてもよく、例えば、現在計算ノードの内部メモリ使用率が90%を超え、且つ現在計算ノードのGPU利用率が計算クラスタにおける全ての計算ノードのGPU利用率の平均値よりも小さい場合、該現在計算ノードの計算タスクの分割が不均等であることを決定する。
【0035】
状況3において、現在計算ノードのネットワーク遅延が計算クラスタにおける他の計算ノードの最大ネットワーク遅延の所定倍数を超え、所定倍数が1以上である。
【0036】
所定倍数の大きさは必要に応じて設定されてもよく、例えば、現在計算ノードのネットワーク伝送遅延が計算クラスタ内の他の計算ノードの最大アクセス遅延の1倍以上を超える場合、該現在計算ノードの計算タスクの分割が不均等であることを決定する。
【0037】
選択肢として、モニタリングモジュール10は計算ノードの計算タスクの分割が不均等である場合、計算ノードの不均等タイプを決定し、具体的に、(現在計算ノードの計算遅延が所定の遅延閾値以上であり、及び/又は現在計算ノードの内部メモリ使用率が所定の内部メモリ使用率閾値以上であり、且つ現在計算ノードのGPU利用率が計算クラスタにおける全ての計算ノードのGPU利用率の平均値よりも小さい場合、現在計算ノードの不均等タイプは現在計算段階に割り当てられる層が多すぎることを含む。現在計算ノードのネットワーク遅延が計算クラスタにおける他の計算ノードの最大ネットワーク遅延の所定倍数を超える場合、現在計算ノードの不均等タイプはネットワークが異常であることを含む。
【0038】
現在計算ノードの計算遅延が所定の遅延閾値以上である場合、前記調整ポリシーは計算調整ポリシーを含み、計算調整ポリシーは計算遅延が極めて高い計算ノードの一部を調整することを担い、計算調整ポリシーに従ってこの計算ノードの層を改めて調整することにより、該計算ノードの計算タスクを減少し、それにより該計算ノードの計算遅延を低減する。例えば、現在計算ノードNodeadjustの計算遅延が他の計算ノードの計算遅延の大きさの半分以上を超える場合、現在計算ノードNodeadjustに現在計算段階(現在計算段階が順方向計算段階又は逆方向計算段階であってもよい)で割り当てられた層(即ちサブモデル)は多すぎると見なし、調整モジュール20は計算調整ポリシーを用いて改めて割り当てる。
【0039】
本発明の実施例の計算調整ポリシーは、現在計算ノードがCPU-GPUバンク切り替え又は再計算を用いる場合、現在計算ノードが用いるCPU-GPUバンク切り替え又は再計算をキャンセルすることと、現在計算ノードが用いるCPU-GPUバンク切り替え又は再計算をキャンセルした後、現在計算ノードが現在計算ノード上のサブモデルを実行するために必要なメモリ容量は現在計算ノードの最大内部メモリを超える場合、現在計算ノードの1つ前の計算ノードのGPU利用率及び現在計算ノードの次の計算ノードのGPU利用率に基づいて、現在計算ノードの少なくとも一部のサブモデルの少なくとも一部の層を他の計算ノードに遷移して実行することと、を含んでもよい。また、現在計算ノードが現在計算ノード上のサブモデルを実行するために必要なメモリ容量は現在計算ノードの最大内部メモリを超えない場合、調整モジュール20は調整を終了する。現在計算ノードが行っているCPU-GPUバンク切り替え又は再計算をキャンセルすると、現在計算ノードにおける計算に使用できる内部メモリの大きさを節約し、該計算ノードの計算タスクを減少させ、それにより該現在計算ノードの計算遅延を低減する。且つ、計算クラスタにおけるサブモデルの割り当てを調整する際に計算に必要なメモリ容量及び現在計算ノードの最大内部メモリを考慮し、計算に必要なメモリ容量が現在計算ノードの最大内部メモリを超える場合、サブモデルを改めて割り当て、このように、該現在計算ノードの計算タスクを減少させることもでき、それにより該現在計算ノードの計算遅延を低減する。
【0040】
現在計算ノードの1つ前の計算ノードのGPU利用率及び現在計算ノードの次の計算ノードのGPU利用率に基づいて、現在計算ノードの少なくとも一部のサブモデルの少なくとも一部の層を他の計算ノードに遷移して実行することは、下記ステップ1及びステップ2のうちの少なくとも1つを含んでもよい。
【0041】
ステップ1では、現在計算ノードの1つ前の計算ノードのGPU利用率が現在計算ノードの次の計算ノードのGPU利用率よりも小さい場合、現在計算ノードの1つ前の計算ノードを初期目標計算ノードとし、現在計算ノードの1つ前の計算ノードが初期目標計算ノードである場合、初期目標計算ノードのGPU利用率と初期目標計算ノードの1つ前の計算ノードのGPU利用率とを比較し、初期目標計算ノードのGPU利用率が初期目標計算ノードの1つ前の計算ノードのGPU利用率よりも小さい場合、初期目標計算ノードを最終的な目標計算ノードとし、初期目標計算ノードのGPU利用率が初期目標計算ノードの1つ前の計算ノードのGPU利用率よりも大きい場合、初期目標計算ノードの1つ前の計算ノードを新たな初期目標計算ノードとして前に遷移して比較し続け、先頭の目標計算ノードまで順次行い、現在計算ノードの少なくとも一部のサブモデルの少なくとも一部の層を最終的な目標計算ノードに遷移して実行する。計算クラスタにおけるサブモデルの割り当てを調整する際に計算に必要なメモリ容量及び現在計算ノードの最大内部メモリを考慮し、計算に必要なメモリ容量が現在計算ノードの最大内部メモリを超える場合、サブモデルを改めて割り当て、現在計算ノードの少なくとも一部のサブモデルの少なくとも一部の層を現在計算段階における該現在計算ノードの前の他の計算ノードのうちのGPU利用率が比較的低い計算ノードに遷移することは、計算クラスタの計算遅延を最小化することに役立つ。
【0042】
ステップ2では、現在計算ノードの1つ前の計算ノードのGPU利用率が現在計算ノードの次の計算ノードのGPU利用率よりも大きい場合、現在計算ノードの次の計算ノードを初期目標計算ノードとし、現在計算ノードの次の計算ノードが初期目標計算ノードである場合、初期目標計算ノードのGPU利用率と初期目標計算ノードの次の計算ノードのGPU利用率とを比較し、初期目標計算ノードのGPU利用率が初期目標計算ノードの次の計算ノードのGPU利用率よりも小さい場合、初期目標計算ノードを最終的な目標計算ノードとし、初期目標計算ノードのGPU利用率が初期目標計算ノードの次の計算ノードのGPU利用率よりも大きい場合、初期目標計算ノードの次の計算ノードを新たな初期目標計算ノードとして前に遷移して比較し続け、先頭の目標計算ノードまで順次行い、現在計算ノードの少なくとも一部のサブモデルの少なくとも一部のサブユニットを最終的な目標計算ノードに遷移して実行する。計算クラスタにおけるサブモデルの割り当てを調整する際に計算に必要なメモリ容量及び現在計算ノードの最大内部メモリを考慮し、計算に必要なメモリ容量が現在計算ノードの最大内部メモリを超える場合、サブモデルを改めて割り当て、現在計算ノードの少なくとも一部のサブモデルの少なくとも一部の層を現在計算段階における該現在計算ノードの後ろの他の計算ノードのうちのGPU利用率が比較的低い計算ノードに遷移することは、計算クラスタの計算遅延を最小化することに役立つ。
【0043】
なお、ステップ1及びステップ2において、現在計算段階は現在計算遅延の極めて高い計算ノードがトレーニング反復中にある計算段階である。
【0044】
選択肢として、いくつかの実施例では、調整サブモデルは現在計算ノードの1つ前の計算ノードのGPU利用率及び現在計算ノードの次の計算ノードのGPU利用率に基づいて、現在計算ノードの少なくとも一部のサブモデルの少なくとも一部の層を他の計算ノードに遷移して実行するときには、具体的に、調整サブモデルはまずステップ1を実行し、現在計算段階における計算時刻が該現在計算ノードの前にある他の計算ノードにはGPU利用率が該現在計算ノードのGPU利用率よりも小さい計算ノードが存在する場合、最終的な目標計算ノードを見つけると、調整を終了する。現在計算段階における計算時刻が該現在計算ノードの前にある他の計算ノードにはGPU利用率が該現在計算ノードのGPU利用率よりも小さい計算ノードが存在しない場合、ステップ2を実行し、現在計算段階における計算時刻が該現在計算ノードの後にある他の計算ノードにはGPU利用率が該現在計算ノードのGPU利用率よりも小さい計算ノードが存在する場合、最終的な目標計算ノードを見つけると、調整を終了し、現在計算段階における計算時刻が該現在計算ノードの後にある他の計算ノードにはGPU利用率が該現在計算ノードのGPU利用率よりも小さい計算ノードが存在しない場合には、サブモデルの再割り当てを行うことが不可能であると説明される。
【0045】
他のいくつかの実施例では、調整サブモデルは現在計算ノードの1つ前の計算ノードのGPU利用率及び現在計算ノードの次の計算ノードのGPU利用率に基づいて、現在計算ノードの少なくとも一部のサブモデルの少なくとも一部の層を他の計算ノードに遷移して実行するときには、具体的に、調整サブモデルはまずステップ2を実行し、現在計算段階における計算時刻が該現在計算ノードの後にある他の計算ノードにはGPU利用率が該現在計算ノードのGPU利用率よりも小さい計算ノードが存在する場合、最終的な目標計算ノードを見つけると、調整を終了する。現在計算段階における計算時刻が該現在計算ノードの後にある他の計算ノードにはGPU利用率が該現在計算ノードのGPU利用率よりも小さい計算ノードが存在しない場合、ステップ1を実行し、現在計算段階における計算時刻が該現在計算ノードの前にある他の計算ノードにはGPU利用率が該現在計算ノードのGPU利用率よりも小さい計算ノードが存在する場合、最終的な目標計算ノードを見つけると、調整を終了し、現在計算段階における計算時刻が該現在計算ノードの前にある他の計算ノードにはGPU利用率が該現在計算ノードのGPU利用率よりも小さい計算ノードが存在しない場合には、サブモデルの再割り当てを行うことが不可能であると説明される。
【0046】
更に、いくつかの実施例では、計算調整ポリシーは、現在計算ノードの少なくとも一部のサブモデルの少なくとも一部の層を他の計算ノードに遷移して実行した後、現在計算ノードがモデルパラメータを改めて生成し、且つ現在計算ノードのモデルバージョン情報を更新することを更に含んでもよい。このように、層が変更した計算段階stageにおいてモデルパラメータを改めて生成し、且つバージョン番号を更新することとなる。同じロットのデータトレーニングは同じバージョンのモデルを用いてトレーニングして、トレーニングの整合性を確保する。パイプライン並列方式自体が複数のバージョンパラメータをサポートするため、旧バージョンのモデルがパイプライン並列のモデルバージョン管理により解放される。
【0047】
例示的に、具体的な実施例では、図3を参照し、計算調整ポリシーは下記ステップを含んでもよい。
【0048】
現在計算ノードNodeadjustの計算遅延が比較的大きい場合、まず現在計算ノードNodeadjustがCPU-GPUバンク切り替え又は再計算を用いるかどうかを判断し、YESの場合、まずCPU-GPUバンク切り替え又は再計算をキャンセルする。CPU-GPUバンク切り替え又は再計算をキャンセルした後、メモリ容量が現在計算ノードNodeadjustの最大内部メモリを超えない場合、調整を終了する。NOの場合、ステップS1~2を続ける。
【0049】
次に、現在計算ノードNodeadjustの前後の2つの計算ノードの2つの段階stageのGPU利用率を比較して、現在計算ノードNodeadjustの層をGPU利用率が比較的低い計算ノードNodetargetに遷移する。
【0050】
Nodetargetが1つ前の計算ノードである場合、計算ノードNodetargetの1つ前の計算ノードNodebeforeを比較し続け、NodebeforeのGPU利用率がNodetargetのGPU利用率よりも小さい場合、Nodetargetの層を前に遷移し続ける。Nodetargetが次の計算ノードである場合、計算ノードNodetargetの次の計算ノードNodeafterを比較し、NodeafterのGPU利用率がNodetargetのGPU利用率よりも小さい場合、Nodetargetの層を後ろに遷移し続ける。最後の計算ノードまで順次行う。
【0051】
最後に、層が変更した段階stageにおいてモデルパラメータを改めて生成し、且つバージョン番号を更新する。同じロットのデータトレーニングが同じバージョンのモデルトレーニングを用いれば、トレーニングの整合性が確保される。パイプライン並列自体が複数のバージョンパラメータをサポートするため、旧バージョンのモデルがパイプライン並列のモデルバージョン管理により解放される。
【0052】
現在計算ノードの内部メモリ使用率が所定の内部メモリ使用率閾値以上であり、且つ現在計算ノードのGPU利用率が計算クラスタにおける全ての計算ノードのGPU利用率の平均値よりも小さい場合、調整ポリシーは内部メモリ調整ポリシーを含み、内部メモリ調整ポリシーは内部メモリ使用率が極めて高いがGPU利用率が極めて低い計算ノードを調整することを担い、内部メモリ調整ポリシーに従ってこの計算ノードの層を改めて調整することにより、該計算ノードの計算タスクを減少させ、それにより該計算ノードの計算遅延を低減する。例えば、現在計算ノードの内部メモリ使用率が90%を超えるが、該現在計算ノードのGPU利用率が計算クラスタ内の全ての計算ノードのGPU利用率の平均値よりも低い場合、現在計算ノードに現在計算段階(現在計算段階が順方向計算段階又は逆方向計算段階であってもよい)で割り当てられた層は多すぎると見なし、内部メモリ調整ポリシーを用いて改めて割り当てる。なお、現在計算段階は現在の内部メモリ使用率が極めて高いがGPU利用率が極めて低い計算ノードがトレーニング反復中にある計算段階である。
【0053】
本発明の実施例の内部メモリ調整ポリシーは下記内容を含んでもよい。現在計算ノードが再計算するGPUオーバーヘッドは現在計算ノードがCPU-GPUバンク切り替えするGPUオーバーヘッドよりも大きい場合、現在計算ノードが現在計算ノードの内部メモリ使用率を低減するようにCPU-GPUバンク切り替えを用いる。現在計算ノードが再計算するGPUオーバーヘッドは現在計算ノードがCPU-GPUバンク切り替えするGPUオーバーヘッドよりも小さい場合、現在計算ノードが現在計算ノードの内部メモリ使用率を低減するように再計算を用いる。GPUグラフィックメモリが比較的小さく、又はモデルパラメータ及び中間変数などのモデル自体の原因で内部メモリ使用率が比較的高いが計算効果が比較的低いという問題に対して、グラフィックメモリ(GPU)が限られているため、隣接する段階の層を遷移することによりGPU計算効率を更に向上させることができない。従って、本実施例はまず再計算又はCPU-GPUバンク切り替えにより該現在計算段階の内部メモリ使用率を低減する。再計算のGPUオーバーヘッドがバンク切り替えのGPUオーバーヘッドを超える場合、バンク切り替えを用いるが、それとは逆に、バンク切り替えのGPUオーバーヘッドが再計算のGPUオーバーヘッドを超える場合、再計算を用いる。
【0054】
更に、いくつかの実施例では、内部メモリ調整ポリシーは、現在計算ノードの元のタスクトレーニング時間及び現在計算ノードが再計算又はCPU-GPUバンク切り替えを実行するために必要な時間に基づいて、現在計算ノードの計算時間を決定することと、現在計算ノードの計算時間が計算クラスタにおける全ての計算ノードの平均タスクトレーニング時間以上である場合、現在計算ノードの少なくとも一部のサブモデルの少なくとも一部のサブユニットを現在計算ノードの隣接する計算ノードに遷移して実行することと、現在計算ノードの計算時間が計算クラスタにおける全ての計算ノードの平均タスクトレーニング時間よりも小さい場合、現在計算ノードを、他の計算ノードが層遷移を行う計算ノードのサブユニットが移入する目標計算ノードとすることと、を更に含んでもよい。バンク切り替え又は再計算がいずれも追加の計算オーバーヘッドを増加させることとなるため、現在計算ノードの元のタスクトレーニング時間にバンク切り替え又は再計算に必要な時間を加えたものを該段階の計算時間Tadjustとする。次に、計算時間Tadjustとパイプライン並列における各段階の平均計算時間Taverageとを比較し、Tadjust<Taverageの場合、計算効率が比較的低い計算段階とし、且つ層遷移ポリシーを用いて隣接する計算段階から層を移入して各計算段階の計算効率のバランスを取る。Tadjust≧Taverageの場合、該現在計算段階からいくつかの層を取り外して隣接する計算段階に遷移する。最終的に計算クラスタの計算遅延を最小化する効果を実現する。
【0055】
例示的に、具体的な実施例では、図4を参照し、内部メモリ調整ポリシーは下記ステップを含んでもよい。
【0056】
再計算それともバンク切り替えを用いるかの決定
まず、再計算又はCPU-GPUバンク切り替えにより該段階の内部メモリ使用率を低減する。再計算のGPUオーバーヘッドがバンク切り替えのGPUオーバーヘッドを超える場合、バンク切り替えを用いるが、それとは逆に、バンク切り替えのGPUオーバーヘッドが再計算のGPUオーバーヘッドを超える場合、再計算を用いる。
【0057】
現在計算段階の計算時間の更新については、現在計算ノードの元のタスクトレーニング時間にバンク切り替え又は再計算に必要な時間を加えたものを該段階の計算時間Tadjustとする。
【0058】
他の計算段階の平均計算時間との比較については、計算時間Tadjustとパイプライン並列における各段階の平均計算時間Taverageとを比較する。
【0059】
計算調整ポリシーによる調整については、Tadjust<Taverageの場合、計算効率が比較的低い段階とし、且つ層遷移ポリシーを用いて隣接する段階から層を移入して各段階の計算効率のバランスを取る。Tadjust≧Taverageの場合、該段階からいくつかの層を取り外して隣接する段階に遷移する。
【0060】
現在計算ノードのネットワーク遅延が計算クラスタにおける他の計算ノードの最大ネットワーク遅延の所定倍数を超える場合、調整ポリシーはトポロジー調整ポリシーを含み、トポロジー調整ポリシーはネットワーク遅延が極めて高い計算ノードの一部を調整することを担う。例えば、ある計算ノードのネットワーク伝送遅延が計算クラスタ内の他の計算ノード間の最大アクセス遅延の1倍以上を超える場合、該計算ノードのネットワークに異常がある可能性があると見なし、トポロジー調整ポリシーを用いて改めて調整する。
【0061】
本発明の実施例のトポロジー調整ポリシーは、該現在計算ノードとのネットワーク遅延が最も小さい3つの連続した計算ノードを選択し、且つ現在ネットワークが遅延しない計算ノードの最大ネットワーク遅延の1倍以上を決定することと、現在計算ノードと3つの連続した計算ノードの中間計算ノードとをタスク交換することと、それぞれタスク交換後の2つの計算ノードの前後の計算ノードのネットワーク遅延が最大ネットワーク遅延を超えるかどうかを判断し、YESの場合、遅延が次に小さい3つの連続した計算ノードを選択し続け、全ての計算ノードをトラバースするまでタスク交換過程を繰り返し、最大ネットワーク遅延を超えない計算ノードが依然として存在しない場合、計算クラスタのネットワークトポロジー調整を終了することと、NOの場合、タスク交換後の2つの計算ノード間のモデルパラメータ及び中間変数を交換することと、を含んでもよい。
【0062】
更に、いくつかの実施例では、トポロジー調整ポリシーは、タスク交換後の2つの計算ノードのうちのいずれか1つの計算ノードの内部メモリ使用率が所定の内部メモリ使用率閾値以上である場合、内部メモリ調整ポリシーを用いて計算クラスタにおけるサブモデルの割り当てを調整し続けることと、内部メモリ調整ポリシーを用いて計算クラスタにおけるサブモデルの割り当てを調整し続けた後、タスク交換後の2つの計算ノードのうちのいずれか1つの計算ノードの内部メモリ使用率が依然として所定の内部メモリ使用率閾値以上である場合、計算調整ポリシーを用いて内部メモリ使用率が依然として所定の内部メモリ使用率閾値以上である計算ノードの少なくとも一部のサブモデルの少なくとも一部のサブユニットを遷移することと、を更に含んでもよい。
【0063】
例示的に、具体的な実施例では、図5を参照し、トポロジー調整ポリシーは下記ステップを含んでもよい。
【0064】
アクセス遅延が他の計算ノードの最大アクセス遅延の1倍を超えるかどうかについては、現在計算ノードNodeslowと前後段階の他の計算ノードとの通信遅延が比較的遅くなった後、まず該現在計算ノードと他のノードとのネットワークアクセス遅延をテストする。該現在計算ノードと隣接する計算ノードとのネットワークアクセス遅延が他の計算ノード間の最大アクセス遅延の1倍以上を超える場合、ネットワーク間に異常がある可能性があると判断し、トポロジー調整を行い続け、そうでない場合、該計算ノードのトポロジー調整を停止する。
【0065】
アクセス遅延が最も小さい3つの連続した計算ノードについては、該現在計算ノードNodeslowとのアクセス遅延が最も小さい3つの連続した計算ノードNode、Node、Nodeを選択する。
【0066】
中間ノードとの交換については、3つの連続した計算ノードの中間計算ノードNode及びNodeslowと交換する。
【0067】
遅延が正常であるかどうかの判断については、Node及びNodeslowの前後の計算ノード間の遅延が正常であるかどうか、即ち現在正常計算ノードの最大アクセス遅延を超えないかどうかをテストして判断する。遅延が正常ではない場合、下記最終ロットの計算ノードであるかどうかを判断するステップを実行する。遅延が正常である場合、下記内部メモリが十分であるかどうかを判断するステップを実行する。
【0068】
最終ロットの計算ノードであるかどうかの判断については、最終ロットの計算ノードではない場合、Nodeslowは遅延が次に小さい3つの連続した計算ノードを選択し続け、次に、全ての計算ノードをトラバースするまで中間計算ノードと交換する。全ての計算ノードをトラバースするまで依然として条件に合う交換する計算ノードを見つけていない場合、今回のネットワークトポロジー調整を終了する。
【0069】
内部メモリが十分であるかどうかの判断については、計算ノードNodeslowと計算ノードNodeとのモデルパラメータ及び中間変数を交換して、内部メモリが十分であるかどうかを判断する。
【0070】
内部メモリ調整ポリシーの使用については、内部メモリが不十分である場合、内部メモリ調整ポリシーを用いて調整し、依然として不十分である場合、計算調整ポリシーに従って層を遷移することによりメモリ容量を低減する。内部メモリが十分である場合、今回のネットワークトポロジー調整を終了する。
【0071】
本発明は知的計算向けのパイプライン並列トレーニングの自己適応調整方法を更に提供し、図6を参照し、前記知的計算向けのパイプライン並列トレーニングの自己適応調整方法は、
モニタリングモジュールは計算クラスタ内の各計算ノードのリソース実行状況をモニタリングし及び収集し、且つ各計算ノードのリソース実行状況に応じて、該計算ノードの計算タスクの分割が均等であるかどうかを決定し、及び、計算ノードの計算タスクの分割が不均等である場合、計算ノードの不均等タイプを決定することを担うS100と、
調整モジュールは計算ノードの計算タスクの分割が不均等である場合、計算ノードの不均等タイプに基づいて調整ポリシーを決定し、且つ調整ポリシーに基づいて計算クラスタにおけるサブモデルの割り当てを調整するS200と、を含んでもよく、
ここでは、調整は、
計算タスクの分割が不均等な計算ノードの少なくとも一部のサブモデルの少なくとも一部の層を該計算ノードから他の計算ノードに遷移すること、
計算タスクの分割が不均等な計算ノードを制御してCPU-GPUバンク切り替え又は再計算を実行させ、又は計算タスクの分割が不均等な計算ノードを制御して現在実行中のCPU-GPUバンク切り替え又は再計算をキャンセルさせること、
計算クラスタのネットワークトポロジー構造を調整すること、のうちの少なくとも1つを含む。
【0072】
本発明は知的計算向けのパイプライン並列トレーニングの自己適応調整装置を更に提供し、メモリと、1つ又は複数個のプロセッサとを含み、メモリに実行可能コードが記憶され、1つ又は複数個のプロセッサが実行可能コードを実行するとき、上記知的計算向けのパイプライン並列トレーニングの自己適応調整方法を実行するためのものである。
【0073】
本発明はコンピュータ読み取り可能な記憶媒体を更に提供し、プログラムが記憶され、該プログラムがプロセッサにより実行されるとき、上記知的計算向けのパイプライン並列トレーニングの自己適応調整方法を実行する。
【0074】
上記知的計算向けのパイプライン並列トレーニングの自己適応調整方法の実施例に対応して、本発明は知的計算向けのパイプライン並列トレーニングの自己適応調整装置の実施例を更に提供する。
【0075】
図7を参照し、本発明の実施例に係る知的計算向けのパイプライン並列トレーニングの自己適応調整装置はメモリと、1つ又は複数個のプロセッサとを含み、メモリに実行可能コードが記憶され、1つ又は複数個のプロセッサが実行可能コードを実行するとき、上記実施例における知的計算向けのパイプライン並列トレーニングの自己適応調整方法を実行するためのものである。
【0076】
本発明の実施例に係る知的計算向けのパイプライン並列トレーニングの自己適応調整装置の実施例はデータ処理能力を有するいかなる機器に応用されてもよく、該データ処理能力を有するいかなる機器はコンピュータなどの機器又は装置であってもよい。装置実施例はソフトウェアにより実現されてもよく、ハードウェア又はソフトウェアとハードウェアとの組合せにより実現されてもよい。ソフトウェアによる実現を例とし、1つの論理意味上の装置として、その位置するデータ処理能力を有するいかなる機器のプロセッサが不揮発性メモリにおける対応するコンピュータプログラム命令を内部メモリに読み取って実行することにより形成したものである。ハードウェアの面から言えば、図7は本発明の実施例に係る知的計算向けのパイプライン並列トレーニングの自己適応調整装置の位置するデータ処理能力を有するいかなる機器のハードウェア構造図であり、図7に示されるプロセッサ、内部メモリ、ネットワークインターフェース及び不揮発性メモリ以外に、実施例における装置の位置するデータ処理能力を有するいかなる機器は一般的に該データ処理能力を有するいかなる機器の実際の機能によって、他のハードウェアを更に備えてもよく、これについて詳細な説明は省略する。
【0077】
上記装置の各ユニットの機能及び作用の実現過程は具体的に上記方法における対応ステップの実現過程を参照し、ここで詳細な説明は省略する。
【0078】
装置実施例は、基本的に方法実施例に対応するため、関連箇所が方法実施例の説明の一部を参照すればよい。以上に説明される装置実施例は模式的なものに過ぎず、分離部材として説明される前記ユニットは物理的に分離してもよく、物理的に分離しなくてもよく、ユニットとして表示される部材は物理ユニットであってもよく、物理ユニットでなくてもよく、即ち、一箇所に位置してもよく、複数のネットワークユニットに配置されてもよい。実際の必要に応じて、その一部又は全部のモジュールを選択して本発明案の目的を実現してもよい。当業者であれば、創造的な労力を要することなく、理解して実施することができる。
【0079】
本発明の実施例はコンピュータ読み取り可能な記憶媒体を更に提供し、プログラムが記憶され、該プログラムがプロセッサにより実行されるとき、上記実施例における知的計算向けのパイプライン並列トレーニングの自己適応調整方法を実行する。
【0080】
前記コンピュータ読み取り可能な記憶媒体は上記いずれか1つの実施例に記載のデータ処理能力を有するいかなる機器の内部記憶ユニット、例えばハードディスク又は内部メモリであってもよい。前記コンピュータ読み取り可能な記憶媒体はデータ処理能力を有するいかなる機器の外部記憶装置、例えば前記機器に配置されるプラグインハードディスク、スマートメディアカード(SMC、Smart Media Card)、SDカード、フラッシュカード(Flash Card)などであってもよい。更に、前記コンピュータ読み取り可能な記憶媒体はデータ処理能力を有するいかなる機器の内部記憶ユニットのほか、外部記憶装置を更に含んでもよい。前記コンピュータ読み取り可能な記憶媒体は前記コンピュータプログラムと、前記データ処理能力を有するいかなる機器に必要な他のプログラム及びデータとを記憶するためのものであり、出力されたデータ又は出力しようとするデータを一時的に記憶するためのものであってもよい。
【0081】
以上の説明は本発明の好適な実施例に過ぎず、本発明を制限するためのものではなく、当業者であれば、本発明に対して種々の変更及び変化を行うことができる。本発明の主旨及び原則内に行われたいかなる修正、等価置換、改良などは、いずれも本発明の保護範囲内に含まれるべきである。
【符号の説明】
【0082】
10 モニタリングモジュール
20 調整モジュール
図1
図2
図3
図4
図5
図6
図7
【手続補正書】
【提出日】2023-12-05
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
知的計算向けのパイプライン並列トレーニングの自己適応調整システムであって、
計算クラスタは複数の計算ノードを含み、複数の計算ノード同士が互いに通信でき、各計算ノードが少なくとも1つのCPU及び少なくとも1つのGPUを含み、トレーニング対象モデルが複数層のサブモデルを含み、前記トレーニング対象モデルのトレーニング過程は順方向計算段階及び逆方向計算段階を含み、前記順方向計算段階において、パラメータが複数層の前記サブモデルの第1層のサブモデルから最終層のサブモデルへ順次伝達され、前記逆方向計算段階において、パラメータが前記最終層のサブモデルから前記第1層のサブモデルへ順次伝達され、各計算ノードが少なくとも1つのサブモデルをトレーニングすることに用いられ、
前記システムはモニタリングモジュール及び調整モジュールを含み、
前記モニタリングモジュールは、前記計算クラスタ内の各計算ノードのリソース実行状況をモニタリングし及び収集し、且つ各計算ノードのリソース実行状況に応じて、該計算ノードの計算タスクの分割が均等であるかどうかを決定し、及び、前記計算ノードの計算タスクの分割が不均等である場合、前記計算ノードの不均等タイプを決定することに用いられ、
前記調整モジュールは、前記計算ノードの計算タスクの分割が不均等である場合、前記計算ノードの不均等タイプに基づいて調整ポリシーを決定し、且つ前記調整ポリシーに基づいて計算クラスタにおけるサブモデルの割り当てを調整することに用いられ、
前記調整することは、
計算タスクの分割が不均等な計算ノードの少なくとも一部のサブモデルの層を該計算ノードから他の計算ノードに遷移することと、
計算タスクの分割が不均等な計算ノードを制御してCPU-GPUバンク切り替え又は再計算を実行させ、又は計算タスクの分割が不均等な計算ノードを制御して現在実行中のCPU-GPUバンク切り替え又は再計算をキャンセルさせることと、
前記計算クラスタのネットワークトポロジー構造を調整することと、のうちの少なくとも1つを含む
ことを特徴とする知的計算向けのパイプライン並列トレーニングの自己適応調整システム。
【請求項2】
前記リソース実行状況は、計算遅延、GPU利用率、ネットワーク伝送遅延及び内部メモリ使用率を含み、
前記モニタリングモジュールは、各計算ノードのリソース実行状況に応じて、該計算ノードの計算タスクの分割が均等であるかどうかを決定する際に、具体的には、現在計算ノードのリソース実行状況に応じて、現在計算ノードには以下の状況1~3の少なくとも一つが存在すると決定した場合、該計算ノードの計算タスクの分割が不均等であることを決定することに用いられ、
前記状況1は、前記現在計算ノードの計算遅延が所定の遅延閾値以上であることであり、
前記状況2は、前記現在計算ノードの内部メモリ使用率が所定の内部メモリ使用率閾値以上であり、且つ前記現在計算ノードのGPU利用率が前記計算クラスタにおける全ての計算ノードのGPU利用率の平均値よりも小さいことであり、
前記状況3は、現在計算ノードのネットワーク遅延が前記計算クラスタにおける他の計算ノードの最大ネットワーク遅延の所定倍数を超え、前記所定倍数が1以上であることである
ことを特徴とする請求項1に記載の知的計算向けのパイプライン並列トレーニングの自己適応調整システム。
【請求項3】
前記モニタリングモジュールは前記計算ノードの計算タスクの分割が不均等である場合、前記計算ノードの不均等タイプを決定し、具体的には、
現在計算ノードの計算遅延が所定の遅延閾値以上であり、及び/又は前記現在計算ノードの内部メモリ使用率が所定の内部メモリ使用率閾値以上であり、且つ前記現在計算ノードのGPU利用率が前記計算クラスタにおける全ての計算ノードのGPU利用率の平均値よりも小さい場合、前記現在計算ノードの不均等タイプが、現在計算段階に割り当てられる層が多すぎることを含むこと、及び
現在計算ノードのネットワーク遅延が前記計算クラスタにおける他の計算ノードの最大ネットワーク遅延の所定倍数を超える場合、前記現在計算ノードの不均等タイプが、ネットワークが異常であることを含むことに用いられる
ことを特徴とする請求項2に記載の知的計算向けのパイプライン並列トレーニングの自己適応調整システム。
【請求項4】
現在計算ノードの計算遅延が所定の遅延閾値以上である場合、前記調整ポリシーは計算調整ポリシーを含み、
前記計算調整ポリシーは、
現在計算ノードがCPU-GPUバンク切り替え又は再計算を用いる場合、前記現在計算ノードが用いるCPU-GPUバンク切り替え又は再計算をキャンセルすることと、
前記現在計算ノードが用いるCPU-GPUバンク切り替え又は再計算をキャンセルした後、前記現在計算ノードが前記現在計算ノード上のサブモデルを実行するために必要なメモリ容量が、前記現在計算ノードの最大内部メモリ容量を超える場合、前記現在計算ノードの1つ前の計算ノードのGPU利用率及び前記現在計算ノードの次の計算ノードのGPU利用率に基づいて、前記現在計算ノードの少なくとも一部のサブモデルの少なくとも一部の層を他の計算ノードに遷移して実行することと、を含む
ことを特徴とする請求項3に記載の知的計算向けのパイプライン並列トレーニングの自己適応調整システム。
【請求項5】
前記現在計算ノードの1つ前の計算ノードのGPU利用率及び前記現在計算ノードの次の計算ノードのGPU利用率に基づいて、前記現在計算ノードの少なくとも一部のサブモデルの少なくとも一部の層を他の計算ノードに遷移して実行することは、
前記現在計算ノードの1つ前の計算ノードのGPU利用率が前記現在計算ノードの次の計算ノードのGPU利用率よりも小さい場合、前記現在計算ノードの1つ前の計算ノードを初期目標計算ノードとすることと、
前記現在計算ノードの1つ前の計算ノードが初期目標計算ノードである場合、前記初期目標計算ノードのGPU利用率と前記初期目標計算ノードの1つ前の計算ノードのGPU利用率とを比較し、前記初期目標計算ノードのGPU利用率が前記初期目標計算ノードの1つ前の計算ノードのGPU利用率よりも小さい場合、前記初期目標計算ノードを最終的な目標計算ノードとし、前記初期目標計算ノードのGPU利用率が前記初期目標計算ノードの1つ前の計算ノードのGPU利用率よりも大きい場合、前記初期目標計算ノードの1つ前の計算ノードを新たな初期目標計算ノードとして前に遷移して比較し続け、先頭の目標計算ノードまで順次行うことと、
前記現在計算ノードの少なくとも一部のサブモデルの少なくとも一部の層を最終的な目標計算ノードに遷移して実行することと、を含む
ことを特徴とする請求項4に記載の知的計算向けのパイプライン並列トレーニングの自己適応調整システム。
【請求項6】
前記現在計算ノードの1つ前の計算ノードのGPU利用率及び前記現在計算ノードの次の計算ノードのGPU利用率に基づいて、前記現在計算ノードの少なくとも一部のサブモデルの少なくとも一部の層を他の計算ノードに遷移して実行することは、
前記現在計算ノードの1つ前の計算ノードのGPU利用率が前記現在計算ノードの次の計算ノードのGPU利用率よりも大きい場合、前記現在計算ノードの次の計算ノードを初期目標計算ノードとすることと、
前記現在計算ノードの次の計算ノードが初期目標計算ノードである場合、前記初期目標計算ノードのGPU利用率と前記初期目標計算ノードの次の計算ノードのGPU利用率とを比較し、前記初期目標計算ノードのGPU利用率が前記初期目標計算ノードの次の計算ノードのGPU利用率よりも小さい場合、前記初期目標計算ノードを最終的な目標計算ノードとし、前記初期目標計算ノードのGPU利用率が前記初期目標計算ノードの次の計算ノードのGPU利用率よりも大きい場合、前記初期目標計算ノードの次の計算ノードを新たな初期目標計算ノードとして前に遷移して比較し続け、先頭の目標計算ノードまで順次行うことと、
前記現在計算ノードの少なくとも一部のサブモデルの少なくとも一部のサブユニットを最終的な目標計算ノードに遷移して実行することと、を含む
ことを特徴とする請求項4に記載の知的計算向けのパイプライン並列トレーニングの自己適応調整システム。
【請求項7】
前記計算調整ポリシーは、
前記現在計算ノードの少なくとも一部のサブモデルの少なくとも一部の層を他の計算ノードに遷移して実行した後、前記現在計算ノードがモデルパラメータを改めて生成し、且つ前記現在計算ノードのモデルバージョン情報を更新することを更に含む
ことを特徴とする請求項5又は6に記載の知的計算向けのパイプライン並列トレーニングの自己適応調整システム。
【請求項8】
現在計算ノードの内部メモリ使用率が所定の内部メモリ使用率閾値以上であり、且つ前記現在計算ノードのGPU利用率が前記計算クラスタにおける全ての計算ノードのGPU利用率の平均値よりも小さい場合、前記調整ポリシーは内部メモリ調整ポリシーを含み、
前記内部メモリ調整ポリシーは、
前記現在計算ノードが再計算するGPUオーバーヘッドが、前記現在計算ノードがCPU-GPUバンク切り替えするGPUオーバーヘッドよりも大きい場合、前記現在計算ノードが前記現在計算ノードの内部メモリ使用率を低減するようにCPU-GPUバンク切り替えを用いることと、
前記現在計算ノードが再計算するGPUオーバーヘッドが、前記現在計算ノードがCPU-GPUバンク切り替えするGPUオーバーヘッドよりも小さい場合、前記現在計算ノードが前記現在計算ノードの内部メモリ使用率を低減するように再計算を用いることと、を含み、
前記内部メモリ調整ポリシーは、
前記現在計算ノードの元のタスクトレーニング時間及び前記現在計算ノードが前記再計算又は前記CPU-GPUバンク切り替えを実行するために必要な時間に基づいて、前記現在計算ノードの計算時間を決定することと、
前記現在計算ノードの計算時間が前記計算クラスタにおける全ての計算ノードの平均タスクトレーニング時間以上である場合、前記現在計算ノードの少なくとも一部のサブモデルの少なくとも一部のサブユニットを前記現在計算ノードの隣接する計算ノードに遷移して実行することと、
前記現在計算ノードの計算時間が前記計算クラスタにおける全ての計算ノードの平均タスクトレーニング時間よりも小さい場合、前記現在計算ノードを、他の計算ノードが層遷移を行う計算ノードのサブユニットが移入する目標計算ノードとすることと、を更に含む
ことを特徴とする請求項3又は4に記載の知的計算向けのパイプライン並列トレーニングの自己適応調整システム。
【請求項9】
現在計算ノードのネットワーク遅延が前記計算クラスタにおける他の計算ノードの最大ネットワーク遅延の所定倍数を超える場合、前記調整ポリシーはトポロジー調整ポリシーを含み、
前記トポロジー調整ポリシーは、
該現在計算ノードとのネットワーク遅延が最も小さい3つの連続した計算ノードを選択し、且つ現在ネットワークが遅延しない計算ノードの最大ネットワーク遅延の1倍以上を決定することと、
前記現在計算ノードと前記3つの連続した計算ノードの中間計算ノードとをタスク交換することと、
それぞれタスク交換後の2つの計算ノードの前後の計算ノードのネットワーク遅延が前記最大ネットワーク遅延を超えるかどうかを判断し、YESの場合、遅延が次に小さい3つの連続した計算ノードを選択し続け、全ての計算ノードをトラバースするまでタスク交換過程を繰り返し、前記最大ネットワーク遅延を超えない計算ノードが依然として存在しない場合、前記計算クラスタのネットワークトポロジー調整を終了することと、
超えない場合、前記タスク交換後の2つの計算ノード間のモデルパラメータ及び中間変数を交換することと、を含み、
前記トポロジー調整ポリシーは、
前記タスク交換後の2つの計算ノードのうちのいずれか1つの計算ノードの内部メモリ使用率が所定の内部メモリ使用率閾値以上である場合、内部メモリ調整ポリシーを用いて計算クラスタにおけるサブモデルの割り当てを調整し続けることと、
前記内部メモリ調整ポリシーを用いて計算クラスタにおけるサブモデルの割り当てを調整し続けた後、タスク交換後の2つの計算ノードのうちのいずれか1つの計算ノードの内部メモリ使用率が依然として所定の内部メモリ使用率閾値以上である場合、計算調整ポリシーを用いて前記内部メモリ使用率が依然として所定の内部メモリ使用率閾値以上である計算ノードの少なくとも一部のサブモデルの少なくとも一部のサブユニットを遷移することと、を更に含む
ことを特徴とする請求項3又は4に記載の知的計算向けのパイプライン並列トレーニングの自己適応調整システム。
【請求項10】
知的計算向けのパイプライン並列トレーニングの自己適応調整方法であって、
計算クラスタは複数の計算ノードを含み、複数の計算ノード同士が互いに通信でき、各計算ノードが少なくとも1つのCPU及び少なくとも1つのGPUを含み、トレーニング対象モデルが複数層のサブモデルを含み、前記トレーニング対象モデルのトレーニング過程は順方向計算段階及び逆方向計算段階を含み、前記順方向計算段階において、パラメータが複数層の前記サブモデルの第1層のサブモデルから最終層のサブモデルへ順次伝達され、前記逆方向計算段階において、パラメータが前記最終層のサブモデルから前記第1層のサブモデルへ順次伝達され、各計算ノードが少なくとも1つのサブモデルをトレーニングすることに用いられ、
前記方法は、
モニタリングモジュールにより、前記計算クラスタ内の各計算ノードのリソース実行状況をモニタリングし及び収集し、且つ各計算ノードのリソース実行状況に応じて、該計算ノードの計算タスクの分割が均等であるかどうかを決定し、及び、前記計算ノードの計算タスクの分割が不均等である場合、前記計算ノードの不均等タイプを決定することと、
調整モジュールにより、前記計算ノードの計算タスクの分割が不均等である場合、前記計算ノードの不均等タイプに基づいて調整ポリシーを決定し、且つ前記調整ポリシーに基づいて計算クラスタにおけるサブモデルの割り当てを調整することと、を含み、
前記調整することは、
計算タスクの分割が不均等な計算ノードの少なくとも一部のサブモデルの少なくとも一部の層を該計算ノードから他の計算ノードに遷移することと、
計算タスクの分割が不均等な計算ノードを制御してCPU-GPUバンク切り替え又は再計算を実行させ、又は計算タスクの分割が不均等な計算ノードを制御して現在実行中のCPU-GPUバンク切り替え又は再計算をキャンセルさせることと、
前記計算クラスタのネットワークトポロジー構造を調整することと、のうちの少なくとも1つを含む
ことを特徴とする知的計算向けのパイプライン並列トレーニングの自己適応調整方法。
【国際調査報告】