JP2022137193A - 深層学習モデルの分散トレーニング方法、装置、電子機器、記憶媒体およびコンピュータプログラム - Google Patents

深層学習モデルの分散トレーニング方法、装置、電子機器、記憶媒体およびコンピュータプログラム Download PDF

Info

Publication number
JP2022137193A
JP2022137193A JP2022111838A JP2022111838A JP2022137193A JP 2022137193 A JP2022137193 A JP 2022137193A JP 2022111838 A JP2022111838 A JP 2022111838A JP 2022111838 A JP2022111838 A JP 2022111838A JP 2022137193 A JP2022137193 A JP 2022137193A
Authority
JP
Japan
Prior art keywords
deep learning
distributed
learning model
distributed training
cluster
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2022111838A
Other languages
English (en)
Other versions
JP7433373B2 (ja
Inventor
ジフア ウー
Zhihua Wu
ディアンハイ ユ
Dianhai Yu
ユロン アオ
Yulong Ao
ウェイバオ ゴン
Weibao Gong
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Publication of JP2022137193A publication Critical patent/JP2022137193A/ja
Application granted granted Critical
Publication of JP7433373B2 publication Critical patent/JP7433373B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/098Distributed learning, e.g. federated learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Image Analysis (AREA)
  • Machine Translation (AREA)

Abstract

【課題】深層学習モデルの分散トレーニングの効率を向上させ、クラスターハードウェアリソースの利用率を向上させ、拡張性が高く、保守性が高く、ロバスト性が高い、深層学習モデルの分散トレーニング方法、装置、電子機器及び記憶媒体を提供する。【解決手段】方法は、トレーニングすべき深層学習モデルのデータ情報に基づいて分散コンピューティングビューを生成すること201と、トレーニングすべき深層学習モデルに対応するクラスターハードウェアリソースの属性情報に基づいてクラスターリソースビューを生成すること202と、分散コンピューティングビューとクラスターリソースビューとに基づいて、分散トレーニングタスクの目標分割ポリシーを確定すること203と、目標分割ポリシーに基づいてトレーニングすべき深層学習モデルに対して分散トレーニングを行うこと204と、を含む。【選択図】図2

Description

本出願は、人工知能技術分野に関し、具体的に深層学習、およびクラウドコンピューティング技術分野に関し、特に深層学習モデルの分散トレーニング方法、装置、電子機器、記憶媒体およびコンピュータプログラムに関する。
近年、コンピュータビジョン、自然言語処理、個性化推薦などの分野のモデルは、より良い効果を追求するために、モデルトレーニング時に、通常、より大規模なモデルパラメータあるいはより大規模なトレーニングデータを用い、例えば20億パラメータを持つVIT-G/14視覚モデル、千億パラメータ規模のGPT3言語モデル、兆パラメータ規模の億レベルのデータを持つクリック率推定モデルが挙げられる。そのため、分散トレーニングは超大規模なモデルの効率的なトレーニングに必要な手段として、ますます広く用いられている。現在の分散トレーニングでは、開発の難しさが大きく、使いやすさが低く、ロバスト性が低く、拡張性が低く、リソースの利用率が低いなどの問題がある。
本出願は深層学習モデルの分散トレーニング方法、装置、電子機器、記憶媒体およびコンピュータプログラムを提供する。
本出願の第1の態様によれば、トレーニングすべき深層学習モデルのデータ情報に基づいて分散コンピューティングビューを生成することと、トレーニングすべき深層学習モデルに対応するクラスターハードウェアリソースの属性情報に基づいてクラスターリソースビューを生成することと、分散コンピューティングビューとクラスターリソースビューとに基づいて、分散トレーニングタスクの目標分割ポリシーを確定することと、目標分割ポリシーに基づいてトレーニングすべき深層学習モデルに対して分散トレーニングを行うことと、を含む深層学習モデルの分散トレーニング方法を提供する。
本出願の第2の態様によれば、トレーニングすべき深層学習モデルのデータ情報に基づいて分散コンピューティングビューを生成するように構成される第1の生成モジュールと、トレーニングすべき深層学習モデルに対応するクラスターハードウェアリソースの属性情報に基づいてクラスターリソースビューを生成するように構成される第2の生成モジュールと、分散コンピューティングビューとクラスターリソースビューとに基づいて、分散トレーニングタスクの目標分割ポリシーを確定するように構成される確定モジュールと、目標分割ポリシーに基づいてトレーニングすべき深層学習モデルに対して分散トレーニングを行うように構成されるトレーニングモジュールと、を備える深層学習モデルの分散トレーニング装置を提供する。
本出願の第3の態様によれば、少なくとも1つのプロセッサと、少なくとも1つのプロセッサと通信可能に接続されたメモリとを備える電子機器であって、メモリには、少なくとも1つのプロセッサによって実行可能な指令が格納され、指令が少なくとも1つのプロセッサによって実行されると、少なくとも1つのプロセッサに第1の態様のいずれかの実施形態に記載の分散トレーニング方法が実行される、電子機器を提供する。
本出願の第4の態様によれば、コンピュータ指令が格納されている非一時的コンピュータ可読記憶媒体であって、コンピュータ指令は第1の態様のいずれかの実施形態の分散トレーニング方法をコンピュータに実行させるために用いられる非一時的コンピュータ可読記憶媒体を提供する。
本出願の第5の態様によれば、プロセッサによって実行されると、第1の態様のいずれかの実施形態に記載の分散トレーニング方法が実現されるコンピュータプログラムを提供する。
なお、発明の概要に記載された内容は、本出願の実施形態のかなめとなる特徴または重要な特徴を限定することを意図するものではなく、本出願の範囲を限定するものでもない。本出願の他の特徴は、以下の説明によって容易に理解される。
図面は本出願をよりよく理解するために用いられ、本出願に対する限定ではない。
本出願の適用可能な例示的なシステムアーキテクチャを示す図である。 本出願に係る深層学習モデルの分散トレーニング方法の一実施形態のフローチャートである。 本出願に係る深層学習モデルの分散トレーニング方法のもう一つの実施形態のフローチャートである。 本出願に係る深層学習モデルの分散トレーニング方法の他の1つの実施形態のフローチャートである。 本出願に係る深層学習モデルの分散トレーニング装置の一実施形態の構造概略図である。 本出願に係る実施形態の深層学習モデルの分散トレーニング方法を実現するための電子機器のブロック図である。
以下は、図面を参照して本出願の例示的な実施形態を説明し、ここでは理解を助けるために、本出願の実施形態の様々な詳細が記載されるが、これらは単なる例示的なものに過ぎない。従って、本出願の範囲および要旨を逸脱しない限り、当業者が本明細書の実施形態に対して様々な変更および修正を行うことができることを理解すべきである。なお、以下の説明では、明確化および簡略化のため、公知の機能および構成については説明を省略する。
なお、本出願の実施形態および実施形態における特徴は、矛盾を生じない限り、相互に組み合わせることができる。以下、図面および実施形態を参照しながら本出願を詳細に説明する。
図1は、本出願に係る深層学習モデルの分散トレーニング方法または深層学習モデルの分散トレーニング装置の実施形態が適用可能な例示的なシステムアーキテクチャ100を示している。
図1に示すように、システムアーキテクチャ100は、端末装置101、102、103、ネットワーク104、およびサーバ105を含んでもよい。ネットワーク104は、端末装置101、102、103とサーバ105との間で通信リンクを提供するための媒体として使用される。ネットワーク104は、有線、無線通信リンクまたは光ファイバケーブルなどの様々なタイプの接続を含んでもよい。
ユーザは、情報を送受信するために、端末装置101、102、103を使用してネットワーク104を介してサーバ105と情報のやり取りをしてもよい。端末装置101、102、103には、様々なクライアントアプリケーションをインストールすることができる。
端末装置101、102、103は、ハードウェアであってもよいし、ソフトウェアであってもよい。端末装置101、102、103がハードウェアである場合、様々な電子機器であってもよく、スマートフォン、タブレットコンピュータ、ラップトップコンピュータおよびデスクトップコンピュータなどを含むが、これらに限定されない。端末装置101、102、103がソフトウェアである場合、上記電子機器にインストールされてもよい。それは、複数のソフトウェア若しくはソフトウェアモジュールとして実現されてもよく、または単一のソフトウェア若しくはソフトウェアモジュールとして実現されてもよい。ここでは特に限定しない。
サーバ105は、様々なサービスを提供できる。例えば、サーバ105は、端末装置101、102、および103から取得されたトレーニングすべき深層学習モデルのデータ情報と、クラスターハードウェアリソースの属性情報を解析および処理し、処理結果(例えば、目標分割ポリシー)を生成することができる。
なお、サーバ105は、ハードウェアであってもよいし、ソフトウェアであってもよい。サーバ105がハードウェアである場合、複数のサーバから構成される分散サーバクラスターとしても、単一のサーバとしても実装可能である。サーバ105がソフトウェアである場合、複数のソフトウェア若しくはソフトウェアモジュール(例えば、分散サービスを提供するためのもの)として実装されてもよく、または単一のソフトウェア若しくはソフトウェアモジュールとして実装されてもよい。ここでは特に限定しない。
なお、本出願の実施形態に係る深層学習モデルの分散トレーニング方法は、通常、サーバ105によって実行され、これに応じて、深層学習モデルの分散トレーニング装置は、通常、サーバ105に設けられている。
図1における端末装置、ネットワークおよびサーバの数は例示的なものに過ぎないことを理解すべきである。実現のニーズに応じて、端末装置、ネットワークおよびサーバの数を任意に加減してもよい。
次に、本出願に係る深層学習モデルの分散トレーニング方法の一つの実施形態のフロー200を示す図2を参照する。当該深層学習モデルの分散トレーニング方法は、以下のステップを含む。
ステップ201では、トレーニングすべき深層学習モデルのデータ情報に基づいて分散コンピューティングビューを生成する。
本実施形態では、深層学習モデルの分散トレーニング方法の実行主体(例えば、図1に示すサーバ105)が、トレーニングすべき深層学習モデルのデータ情報に基づいて分散コンピューティングビューを生成することができる。本実施形態では、トレーニングすべき深層学習モデルは、分散トレーニングが必要とされる深層学習モデルであり、上記実行主体は、トレーニングすべき深層学習モデルのデータ情報を取得し、そのデータ情報に基づいて分散コンピューティングビューを生成することができる。
深層学習モデル(ニューラルネットワーク)のトレーニングプロセスを、データフロー図(Data Flow Diagram)を計算するプロセスとして記述することができるため、データフロー図またはコンピューティンググラフ(Computational Graph)はノードとエッジから構成され、ノードでの計算は演算子と呼ばれ、各エッジはノード間で伝送されるテンソルを表す。そこで、いくつかの実施形態では、上記実行主体は、トレーニングすべき深層学習モデルの演算子およびテンソルを取得した後に、取得した演算子およびテンソルに基づいて分散コンピューティングビューを生成する。
あるいは、各演算子とテンソルはいずれもそれぞれの分散属性を持つことができ、上記実行主体は、演算子とテンソルの分散属性を取得することができ、ここで、分散属性は、論理プロセストポロジー情報、テンソルの次元ごとの分割マッピング情報、テンソルの次元ごとのスライスサイズ情報およびスライスの物理装置配置情報を含むが、これらに限定されない。なお、テンソルの分散属性は、そのテンソルを使用する演算子に対応する分散属性とは異なっていてもよく、それによって保存と演算の分離に役立つ。
ステップ202では、トレーニングすべき深層学習モデルに対応するクラスターハードウェアリソースの属性情報に基づいて、クラスターリソースビューを生成する。
本実施形態では、上記実行主体は、トレーニングすべき深層学習モデルに対応するクラスターハードウェアリソースの属性情報に基づいて、クラスターリソースビューを生成することができる。深層学習モデルは、分散トレーニングを行う際に複数のハードウェアデバイスを使用することが可能であり、ハードウェアデバイスごとに複数のGPU(グラフィックス プロセッシング ユニット,Graphics Processing Unit)を設けることができ、深層学習モデルは各デバイス中のGPUで並列してトレーニングされる。異なるハードウェアデバイスの構造の差異が比較的大きいため、例えば計算力、グラフィックスメモリ(Video Memory)、接続方式および帯域幅などの面で大きな差異がある。そこで、本実施形態では、上記実行主体は、トレーニングすべき深層学習モデルに対応するクラスターハードウェアリソース(プロセッサ、スイッチなど)を抽象的に表現してクラスターリソースビューを生成する。
例えば、上記実行主体は、各デバイス間のトポロジー関係、すなわち、各デバイス間の接続関係を取得し、さらに、各デバイスのプロセッサ、グラフィックスメモリ、帯域幅などの各デバイスの処理能力情報を取得し、各デバイス間のトポロジー関係と各デバイスそれぞれの処理能力情報とに基づいてクラスターリソースビューを生成することにより、クラスターハードウェアリソースを抽象的に表現し、クラスター間、クラスター内の各デバイス間、各デバイス内の具体的な接続形態および差異をマスクすることにより、様々な異種ハードウェアデバイスおよびクラスター環境をサポートすることができ、開発の難しさを低減し、当該方法の汎用性を高めることができる。
ステップ203では、分散コンピューティングビューとクラスターリソースビューとに基づいて、分散トレーニングタスクの目標分割ポリシーを確定する。
本実施形態では、上記実行主体は、ステップ201で生成された分散コンピューティングビューと、ステップ202で生成されたクラスターリソースビューとに基づいて、分散トレーニングタスクの目標分割ポリシーを確定することができる。分割ポリシーには、深層学習モデルの分割方式とクラスターハードウェアリソースのリソース配置方式が含まれており、異なる分割ポリシーの対応するオーバーヘッドが異なるため、本実施形態では、分散コンピューティングビューとクラスターリソースビューとに基づいて、分散トレーニングタスクの最適分割ポリシー、すなわち目標分割ポリシーを確定することにより、異種ハードウェアの性能を十分に発揮するように、分散トレーニングタスクを適切な異種ハードウェアリソーストポロジーに分割する。
例えば、コストモデルをモデリングすることによって、分割ポリシー(モデル分割とクラスターリソース構成を含む)下でのコンピューティンググラフ全体のトレーニングコスト(オーバーヘッド)を評価することができる。この場合、トレーニングコストにはランタイム、メモリ空間占有などが含まれ、これにより、各分割ポリシーに対応するトレーニングコストに基づいて最適分割ポリシーが確定され、トレーニング効率とリソース利用率の向上の目的が達成される。また上記実行主体は、グラフレベルのコスト推定の難点、たとえば通信の同期操作、並行による隠蔽時間遅延、異種ハードウェアによる性能の違いなどに対して、動的情報と静的情報を結合した還元アルゴリズム(reduction algorithm)を用いてグラフ全体のコスト(オーバーヘッド)を計算し、オーバーヘッド計算の正確性を確保する。
ステップ204では、目標分割ポリシーに基づいて、トレーニングすべき深層学習モデルに対して分散トレーニングを行う。
本実施形態では、上記実行主体は、ステップ203で確定された目標分割ポリシーに基づいて、トレーニングすべき深層学習モデルに対して分散トレーニングを行うことができる。例えば、上記実行主体は、目標分割ポリシーに基づいて、非同期式パイプライン処理機構を用いて、トレーニングすべき深層学習モデルを分散トレーニングすることにより、通信と計算の同時性(concurrence)を最大化し、分散トレーニングのトレーニング効率を向上させることができる。また、分散トレーニングの各サブタスクをデカップリングすることにより、1つのタスクを複数の種類のデバイス上で動作させることができ、複数の実行粒度をサポートすることができ、異種のハードウェアの計算力に対して異なる実行粒度を設定することができるだけでなく、より複雑な条件、ループなどの制御フローロジックを処理することができ、実行効率と負荷分散(Load Balancing)能力を向上させることができる。
あるいは、分散トレーニングの実行プロセスに、上記実行主体が、例えばクラスター内のトレーニングデバイスの故障またはデバイスの動的な追加/削減が発生した場合など、クラスターハードウェアリソースの環境が変化したことを検出した場合、柔軟なリソース管理機構をトリガし、フォールトトレランスまたはリソースのオートスケーリングを行い、自己適応的に応答して現在のクラスターハードウェア環境における目標分割ポリシーを再確定し、新たに確定された目標分割ポリシーに基づいて分散トレーニングを実行するようにしてもよい。例えば、上記実行主体がノードの故障を検出した場合、フォルトトレランス機構をトリガし、トレーニングをほとんど中断しない状況下で故障ノードを交換することにより、リソースの再スケジューリングの時間を節約し、リソースの無駄使いを削減することができ、また、上記実行主体がクラスターリソースのアイドル状態またはリソース不足を検出した場合、リソースのオートスケーリングを行い、ノード数の動的な計算と調整を行い、必要に応じた再分割を行うことにより、クラスター全体のリソースの利用率を向上させることができる。
本出願の実施形態に係る深層学習モデルの分散トレーニング方法は、まず、トレーニングすべき深層学習モデルのデータ情報に基づいて分散コンピューティングビューを生成し、次に、トレーニングすべき深層学習モデルに対応するクラスターハードウェアリソースの属性情報に基づいてクラスターリソースビューを生成し、分散コンピューティングビューとクラスターリソースビューとに基づいて、分散トレーニングタスクの目標分割ポリシーを確定し、最後に、目標分割ポリシーに基づいてトレーニングすべき深層学習モデルに対して分散トレーニングを行う。本実施形態における深層学習モデルの分散トレーニング方法は、分散コンピューティングビューとクラスターリソースビューを生成することにより、異種のハードウェアとの互換性を持たせ、異なるハードウェア間の差異をマスクすることができ、さらに、目標分割ポリシーを確定することにより、分散トレーニングタスクを適切な異種ハードウェアリソースに分割し、異種ハードウェアの性能を十分に発揮させることができ、深層学習モデルに基づいて、その目標分割ポリシーに従って分散トレーニングを行うトレーニング効率を向上させる。
本出願の技術方案では、関連するユーザ個人情報の収集、記憶、使用、加工、伝送、提供および公開などの処理は、いずれも関連法律法規の規定に準拠し、且つ公序良俗に反しない。
次に、本出願に係る深層学習モデルの分散トレーニング方法のもう一つの実施形態のフロー300を示す図3を参照する。当該深層学習モデルの分散トレーニング方法は、以下のステップを含む。
ステップ301では、トレーニングすべき深層学習モデルの演算子とテンソルを取得する。
本実施形態では、深層学習モデルの分散トレーニング方法の実行主体(例えば、図1に示すサーバ105)は、トレーニングすべき深層学習モデルの演算子とテンソルを取得することができる。コンピューティングデータフローグラフにおけるノードでの計算を演算子と呼び、各エッジはノード間で伝送されるテンソルを表し、各演算子とテンソルを並列して表現すれば、ニューラルネットワーク全体を並列化し、順次実行されるコンピューティンググラフから分散コンピューティンググラフに変換することができる。したがって、上記実行主体は、まず、トレーニングすべき深層学習モデルの演算子とテンソルを取得する。
本実施形態のいくつかのオプション的な実施形態では、ステップ301の後に、上記深層学習モデルの分散トレーニング方法は、演算子の分散属性およびテンソルの分散属性を取得するステップをさらに含む。各演算子とテンソルはそれぞれの分散属性を持つことができるので、上記実行主体は、演算子の分散属性とテンソルの分散属性を取得する。ここで、分散属性は、論理プロセストポロジー情報、テンソルの次元ごとの分割マッピング情報、テンソルの次元ごとのスライスサイズ情報およびスライスの物理装置配置情報を含むが、これらに限定されない。なお、テンソルの分散属性は、そのテンソルを使用する演算子に対応する分散属性とは異なっていてもよく、それによって保存と演算の分離に役立つ。
ステップ302では、演算子とテンソルに基づいて分散コンピューティングビューを生成する。
本実施形態では、上記実行主体は、演算子とテンソルとに基づいて分散コンピューティングビューを生成することができる。生成された分散コンピューティングビューは、分散演算子と分散テンソルとをデカップリングすることによって、異なる並列ポリシーにさらによく拡張できる。
本実施形態のいくつかのオプション的な実施形態では、ステップ302において、演算子と、演算子の分散属性と、テンソルと、テンソルの分散属性とに基づいて分散コンピューティングビューを生成することを含む。上記実行主体が演算子の分散属性およびテンソルの分散属性を取得した後、演算子と、演算子の分散属性と、テンソルと、テンソルの分散属性とに基づいて分散コンピューティングビューを生成することができる。これにより、分散コンピューティングビューの全面性および正確性が確保される。
本実施形態のいくつかのオプション的な実施形態では、上記深層学習モデルの分散トレーニング方法は、分散コンピューティングビューにおける入力テンソルおよび出力テンソルの定義と、当該入力テンソルおよび出力テンソルを使用する演算子の定義とが一致しないことを検出したことに応答して、再構成変換演算子を挿入することと、分散コンピューティングビューにおける入力テンソルおよび出力テンソルに対応するデバイスと、当該入力テンソルおよび出力テンソルを使用する演算子に対応するデバイスとが一致しないことを検出したことに応答して、通信演算子を挿入することとをさらに含む。
本実施態様では、入力テンソルおよび出力テンソルの定義と演算子の定義とが一致しない場合に、再構成変換演算子を自動的に挿入することができ、計算の正確性が確保される。入力テンソルおよび出力テンソルのデバイスと演算子のデバイスとが一致しない場合、通信演算子を自動的に挿入することができ、デバイス間での分割の正確性が確保される。
ステップ303では、トレーニングすべき深層学習モデルに対応するクラスターハードウェアリソースにおける各デバイス間のトポロジー情報と、クラスターハードウェアリソースにおける各デバイスの処理能力情報とを取得する。
本実施形態では、トレーニングすべき深層学習モデルに対応するクラスターハードウェアリソースに複数のデバイスが含まれることが可能であるので、上記実行主体は、クラスターハードウェアリソースにおける各デバイス間のトポロジー情報、すなわち各デバイス間の接続態様情報を取得することができ、さらに、クラスターハードウェアリソースにおける各デバイスの処理能力情報を取得することができ、ここで、処理能力情報には、デバイス内のプロセッサ情報、帯域幅情報、グラフィックスメモリ情報が含まれるが、これらに限定されない。
ステップ304では、トポロジー情報と処理能力情報とに基づいてクラスターリソースビューを生成する。
本実施形態では、上記実行主体は、ステップ303で取得した各デバイス間のトポロジー情報と各デバイスの処理能力情報とに基づいてクラスターリソースビューを生成することができ、クラスターリソースビューは、クラスターハードウェアリソースを抽象的に表現し、クラスター間、クラスター内部の各デバイス間、各デバイス内部の具体的な接続方法および差異をマスクすることを実現し、それによって様々な異種ハードウェアデバイスおよびクラスター環境をサポートすることができ、開発の難しさが低減され、この方法の汎用性が向上される。
ステップ305では、分散コンピューティングビューとクラスターリソースビューとに基づいて、分散トレーニングタスクの目標分割ポリシーを確定する。
ステップ306では、目標分割ポリシーに基づいて、トレーニングすべき深層学習モデルに対して分散トレーニングを行う。
ステップ305~306は上記実施形態のステップ203~204とほぼ一致し、具体的な実現方式は前記ステップ203~204の説明を参照することができ、ここではその説明を省略する。
図3から分かるように、図2に対応する実施形態と比較して、本実施形態における深層学習モデルの分散トレーニング方法は、分散コンピューティングビューの生成およびクラスターリソースビューの生成のプロセスを強調しており、演算子とテンソルをデカップリングし、ハードウェアデバイスの処理能力とトポロジー関係を抽象的に表現することにより、論理分割とハードウェアリソースをデカップリングし、異種ハードウェアの互換性を実現し、当該分散トレーニング方法の拡張性と保守性を向上した。
次に、本出願に係る深層学習モデルの分散トレーニング方法のもう一つの実施形態のフロー400を示す図4を参照する。当該深層学習モデルの分散トレーニング方法は、以下のステップを含む。
ステップ401では、トレーニングすべき深層学習モデルの演算子とテンソルを取得する。
ステップ402では、演算子とテンソルとに基づいて分散コンピューティングビューを生成する。
ステップ403では、トレーニングすべき深層学習モデルに対応するクラスターハードウェアリソースにおける各デバイス間のトポロジー情報と、クラスターハードウェアリソースにおける各デバイスの処理能力情報とを取得する。
ステップ404では、トポロジー情報と処理能力情報とに基づいてクラスターリソースビューを生成する。
ステップ401~404は上記実施形態のステップ301~304とほぼ一致し、具体的な実現方式は前記ステップ301~304の説明を参照することができ、ここではその説明を省略する。
ステップ405では、分散コンピューティングビューとクラスターリソースビューとに基づいて、異なる分割ポリシーを生成する。
本実施形態では、深層学習モデルの分散トレーニング方法の実行主体(例えば、図1に示すサーバ105)は、分散コンピューティングビューとクラスターリソースビューとに基づいて、深層学習モデルの分割方式とクラスターハードウェアリソースのリソース構成方式を含む異なる分割ポリシーを生成することができる。すなわち、上記実行主体は、異なるモデル分割方式および異なるリソース配置方式を確定し、各モデル分割方式と各リソース配置方式とを組み合わせることによって、異なる分割ポリシーを得ることができる。
ステップ406では、各分割ポリシーに対応するオーバーヘッドに基づいて、分散トレーニングタスクの目標分割ポリシーを確定する。
本実施形態では、上記実行主体は、各分割ポリシーに対応するオーバーヘッドに基づいて、分散トレーニングタスクの目標分割ポリシー、すなわち最適分割ポリシーを確定することができる。例えば、上記実行主体は、各分割ポリシーに対応するオーバーヘッドをそれぞれ計算し、そのオーバーヘッドが最小となる分割ポリシーを最適分割ポリシー、すなわち目標分割ポリシーとして確定することができる。これにより、目標分割ポリシーに基づいてトレーニングを行う場合のトレーニング効率が向上される。
本実施形態のいくつかのオプション的な実施形態では、ステップ406は、各分割ポリシーに対応するオーバーヘッドを計算することであって、オーバーヘッドは、ランタイムオーバーヘッドおよびメモリ空間占有オーバーヘッドを含み、ランタイムオーバーヘッドは、演算子オーバーヘッドおよび通信オーバーヘッドを含むことと、オーバーヘッドが最小である分割ポリシーを、分散トレーニングタスクの目標分割ポリシーとして確定することと、を含む。
本実施態様では、上記実行主体は、様々な分割ポリシーのランタイムオーバーヘッドとメモリ空間占有オーバーヘッドをそれぞれ計算し、様々な分割ポリシーに対応するオーバーヘッド値を得ることができ、ここで、ランタイムオーバーヘッドは、演算子オーバーヘッドおよび通信オーバーヘッドをさらに含み、そして、オーバーヘッド値が最小となる分割ポリシーを、分散トレーニングタスクの最適分割ポリシー、すなわち目標分割ポリシーとして確定する。これにより、分散トレーニングタスクを適切な異種ハードウェアリソースに分割して、異種ハードウェアの性能を十分に発揮させ、当該分散トレーニング方法の使いやすさとトレーニング効率を向上した。
ステップ407では、目標分割ポリシーに基づいて、非同期式パイプライン処理機構を用いてトレーニングすべき深層学習モデルに対して分散トレーニングを行う。
本実施形態では、上記実行主体は、ステップ406で確定された目標分割ポリシーに基づいて、非同期式パイプライン処理機構を用いて、トレーニングすべき深層学習モデルに対して分散トレーニングを行うことにより、通信と計算の同時性を最大化し、分散トレーニングのトレーニング効率を向上させることができる。また、非同期でデバッグが困難な問題に対しては、上記実行主体は、シリアルコンピューティンググラフと分散コンピューティンググラフの精度を揃えて順次実行することで解決することもでき、実行時には、上記実行主体は、ハードウェアトポロジー情報に基づいて最適な通信アルゴリズムを選択することにより、通信効率を向上させることができる。
本実施形態のいくつかのオプション的な実施形態では、上記深層学習モデルの分散トレーニング方法は、分散トレーニングプロセス中に、クラスターハードウェアリソースの環境が変化したことに応答して、目標分割ポリシーを再確定するために柔軟なリソース管理機構をトリガすることをさらに含む。
本実施形態では、クラスター内のトレーニングデバイスの故障、またはデバイスの動的な追加/削減が発生した場合、上記実行主体は、柔軟なリソース管理機構をトリガし、フォールトトレランスまたはリソースのオートスケーリングを行い、自己適応的に応答して現在のクラスターハードウェア環境における目標分割ポリシーを再確定し、新たに確定された目標分割ポリシーに基づいて分散トレーニングを実行することができる。例えば、上記実行主体がノードの故障を検出した場合、フォルトトレランス機構をトリガし、トレーニングをほとんど中断しない状況下で故障ノードを交換することにより、リソースの再スケジューリングの時間を節約し、リソースの無駄使いを削減することができ、また、上記実行主体がクラスターリソースのアイドル状態またはリソース不足を検出した場合、リソースのオートスケーリングを行い、ノード数の動的な計算と調整を行い、必要に応じた再分割を行うことにより、クラスター全体のリソースの利用率を向上させることができる。
図4から分かるように、図3に対応する実施形態と比較して、本実施形態における深層学習モデルの分散トレーニング方法は、目標分割ポリシーを確定するステップおよび分散トレーニングのステップを強調しており、分散トレーニングタスクを適切な異種ハードウェアリソースに分割し、異種ハードウェアの性能を十分に発揮し、当該分散トレーニング方法の使いやすさを向上させ、非同期式パイプライン処理機構を用いることによりトレーニング効率を向上させ、さらに、トレーニングプロセスにおいてトレーニングに用いるハードウェアリソースを自動的に柔軟に調整することをサポートし、トレーニング方法のロバスト性およびハードウェアリソースの利用率を向上させる。
更に図5を参照すると、上記の各図に示された方法の実施態様として、本出願は、深層学習モデルの分散トレーニング装置の一実施形態を提供し、当該装置の実施形態は、図2に示された方法の実施形態に対応しており、当該装置は、具体的に様々な電子機器に適用することができる。
図5に示すように、本実施形態の深層学習モデルの分散トレーニング装置500は、第1の生成モジュール501と、第2の生成モジュール502と、確定モジュール503と、トレーニングモジュール504とを備える。このうち、第1の生成モジュール501は、トレーニングすべき深層学習モデルのデータ情報に基づいて分散コンピューティングビューを生成するように構成される。第2の生成モジュール502は、トレーニングすべき深層学習モデルに対応するクラスターハードウェアリソースの属性情報に基づいてクラスターリソースビューを生成するように構成される。確定モジュール503は、分散コンピューティングビューとクラスターリソースビューとに基づいて、分散トレーニングタスクの目標分割ポリシーを確定するように構成される。トレーニングモジュール504は、目標分割ポリシーに基づいてトレーニングすべき深層学習モデルに対して分散トレーニングを行うように構成される。
本実施形態において、深層学習モデルの分散トレーニング装置500において、第1の生成モジュール501と、第2の生成モジュール502と、確定モジュール503と、トレーニングモジュール504の具体的な処理およびそれらの技術効果は、それぞれ図2の対応する実施形態におけるステップ201~204の関連する説明を参照することができ、ここでその説明を省略する。
本実施形態のいくつかのオプション的な実施形態では、第1の生成モジュールは、トレーニングすべき深層学習モデルの演算子およびテンソルを取得するように構成される第1の取得サブモジュールと、演算子およびテンソルに基づいて分散コンピューティングビューを生成するように構成される第1の生成サブモジュールとを備える。
本実施形態のいくつかのオプション的な実施形態では、第1の生成モジュールは、演算子の分散属性およびテンソルの分散属性を取得するように構成される第2の取得サブモジュールをさらに備え、第1の生成サブモジュールは、演算子、演算子の分散属性、テンソルおよびテンソルの分散属性に基づいて、分散コンピューティングビューを生成するように構成される生成ユニットを備える。
本実施形態のいくつかのオプション的な実施形態では、上記深層学習モデルの分散トレーニング装置は、分散コンピューティングビューにおける入力テンソルおよび出力テンソルの定義と、当該入力テンソルおよび出力テンソルを使用する演算子の定義とが一致しないことを検出したことに応答して、再構成変換演算子を挿入するように構成される第1の挿入モジュールと、分散コンピューティングビューにおける入力テンソルおよび出力テンソルに対応するデバイスと、当該入力テンソルおよび出力テンソルを使用する演算子に対応するデバイスとが一致しないことを検出したことに応答して、通信演算子を挿入するように構成される第2の挿入モジュールと、をさらに備える。
本実施形態のいくつかのオプション的な実施形態では、第2の生成モジュールは、トレーニングすべき深層学習モデルに対応するクラスターハードウェアリソースにおける各デバイス間のトポロジー情報と、クラスターハードウェアリソースにおける各デバイスの処理能力情報とを取得するように構成される第3の取得サブモジュールであって、処理能力情報は、プロセッサ情報、帯域幅情報、グラフィックスメモリ情報の少なくとも1つを含む第3の取得サブモジュールと、トポロジー情報と処理能力情報とに基づいてクラスターリソースビューを生成するように構成される第2の生成サブモジュールと、を備える。
本実施形態のいくつかのオプション的な実施形態では、確定モジュールは、分散コンピューティングビューとクラスターリソースビューとに基づいて、深層学習モデルの分割方式とクラスターハードウェアリソースのリソース構成方式を含む異なる分割ポリシーを生成するように構成される第3の生成サブモジュールと、各分割ポリシーに対応するオーバーヘッドに基づいて、分散トレーニングタスクの目標分割ポリシーを確定するように構成される確定サブモジュールと、を備える。
本実施形態のいくつかのオプション的な実施形態では、確定サブモジュールは、各分割ポリシーに対応するオーバーヘッドを計算するように構成される計算ユニットであって、オーバーヘッドはランタイムオーバーヘッドとメモリ空間占有オーバーヘッドを含み、ランタイムオーバーヘッドは演算子オーバーヘッドと通信オーバーヘッドを含む計算ユニットと、オーバーヘッドが最小となる分割ポリシーを、分散トレーニングタスクの目標分割ポリシーとして確定するように構成される確定ユニットと、を備える。
本実施形態のいくつかのオプション的な実施形態では、トレーニングモジュールは、目標分割ポリシーに基づいて、非同期式パイプライン処理機構を用いてトレーニングすべき深層学習モデルに対して分散トレーニングを行うように構成されるトレーニングサブモジュールを備える。
本実施形態のいくつかのオプション的な実施形態では、上記深層学習モデルの分散トレーニング装置は、分散トレーニングプロセスにおいて、クラスターハードウェアリソースの環境が変化したことに応答して、目標分割ポリシーを再確定するために柔軟なリソース管理機構をトリガするように構成されるトリガモジュールをさらに備える。
本出願の実施形態によれば、本出願はさらに電子機器、読み取り可能な記憶媒体およびコンピュータプログラム製品を提供する。
図6は、本出願の実施形態を実施するために使用できる例示的な電子機器600の概略ブロック図を示している。電子機器は、ラップトップコンピュータ、デスクトップコンピュータ、ワークステーション、パーソナルデジタルアシスタント、サーバ、ブレード型サーバ、メインフレームコンピュータおよびその他の適切なコンピュータ等の様々な形態のデジタルコンピュータを表す。また、電子機器は、個人デジタル処理、携帯電話、スマートフォン、ウェアラブル機器およびその他の類似するコンピューティングデバイス等の様々な形態のモバイルデバイスを表すことができる。なお、ここで示したコンポーネント、それらの接続関係、およびそれらの機能はあくまでも例示であり、ここで記述および/または要求した本出願の実施形態を限定することを意図するものではない。
図6に示すように、電子機器600は、読み出し専用メモリ(ROM)602に記憶されているコンピュータプログラム又は記憶ユニット608からランダムアクセスメモリ(RAM)603にロードされたコンピュータプログラムによって様々な適当な動作および処理を実行することができる計算ユニット601を備える。RAM603には、機器600の動作に必要な様々なプログラムおよびデータがさらに格納されることが可能である。計算ユニット601、ROM602およびRAM603は、バス604を介して互いに接続されている。入/出力(I/O)インターフェース605もバス604に接続されている。
電子機器600において、キーボード、マウスなどの入力ユニット606と、様々なタイプのディスプレイ、スピーカなどの出力ユニット607と、磁気ディスク、光ディスクなどの記憶ユニット608と、ネットワークプラグイン、モデム、無線通信送受信機などの通信ユニット609とを含む複数のコンポーネントは、I/Oインターフェース605に接続されている。通信ユニット609は、機器600がインターネットなどのコンピュータネットワークおよび/または様々な電気通信ネットワークを介して他の装置と情報またはデータのやりとりを可能にする。
計算ユニット601は、処理および計算能力を有する様々な汎用および/又は専用処理コンポーネントであってもよい。計算ユニット601のいくつかの例示として、中央処理装置(CPU)、グラフィックスプロセシングユニット(GPU)、様々な専用人工知能(AI)計算チップ、機械学習モデルアルゴリズムを実行する様々な計算ユニット、デジタルシグナルプロセッサ(DSP)、および任意の適切なプロセッサ、コントローラ、マイクロコントローラなどを含むが、これらに限定されない。計算ユニット601は、上述した深層学習モデルの分散トレーニング方法のような様々な方法および処理を実行する。例えば、いくつかの実施形態では、深層学習モデルの分散トレーニング方法は、記憶ユニット608などの機械可読媒体に有形に含まれるコンピュータソフトウェアプログラムとして実現されてもよい。いくつかの実施形態では、コンピュータプログラムの一部または全部は、ROM602および/または通信ユニット609を介して機器600にロードおよび/またはインストールされてもよい。コンピュータプログラムがRAM603にロードされ、計算ユニット601によって実行されると、上述した深層学習モデルの分散トレーニング方法の1つまたは複数のステップを実行可能である。あるいは、他の実施形態では、計算ユニット601は、他の任意の適切な形態によって(例えば、ファームウェアを介して)深層学習モデルの分散トレーニング方法を実行するように構成されていてもよい。
ここで説明するシステムおよび技術の様々な実施形態はデジタル電子回路システム、集積回路システム、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、特定用途向け標準製品(ASSP)、システムオンチップ(SOC)、コンプレックスプログラマブルロジックデバイス(CPLD)、コンピュータハードウェア、ファームウェア、ソフトウェア、および/又はそれらの組み合わせにおいて実現することができる。これらの各実施形態は、1つまたは複数のコンピュータプログラムに実装され、該1つまたは複数のコンピュータプログラムは少なくとも一つのプログラマブルプロセッサを含むプログラマブルシステムにおいて実行および/または解釈することができ、該プログラマブルプロセッサは専用または汎用プログラマブルプロセッサであってもよく、記憶システム、少なくとも一つの入力装置および少なくとも一つの出力装置からデータおよび指令を受信することができ、且つデータおよび指令を該記憶システム、該少なくとも一つの入力装置および該少なくとも一つの出力装置に伝送することを含み得る。
本出願の方法を実施するためのプログラムコードは、1つまたは複数のプログラミング言語のあらゆる組み合わせで作成されてもよい。これらのプログラムコードは、汎用コンピュータ、専用コンピュータ、または他のプログラミング可能なデータ処理装置のプロセッサまたはコントローラに提供されることができ、これらのプログラムコードがプロセッサまたはコントローラによって実行されると、フローチャートおよび/またはブロック図に規定された機能または動作が実施される。プログラムコードは、完全にデバイス上で実行されることも、部分的にデバイス上で実行されることも、スタンドアロンソフトウェアパッケージとして部分的にデバイス上で実行されながら部分的にリモートデバイス上で実行されることも、または完全にリモートデバイスもしくはサーバ上で実行されることも可能である。
本出願のコンテキストでは、機械可読媒体は、有形の媒体であってもよく、指令実行システム、装置または機器が使用するため、または指令実行システム、装置または機器と組み合わせて使用するためのプログラムを含むか、または格納することができる。機械可読媒体は、機械可読信号媒体または機械可読記憶媒体であり得る。機械可読媒体は、電子的、磁気的、光学的、電磁的、赤外線の、または半導体のシステム、装置または機器、またはこれらのあらゆる適切な組み合わせを含むことができるが、これらに限定されない。機械可読記憶媒体のより具体的な例には、1本または複数本のケーブルに基づく電気的接続、携帯型コンピュータディスク、ハードディスク、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROMまたはフラッシュメモリ)、光ファイバ、コンパクトディスク読み取り専用メモリ(CD-ROM)、光学記憶装置、磁気記憶装置、またはこれらのあらゆる適切な組み合わせが含まれ得る。
ユーザとのインタラクションを提供するために、ここで説明するシステムと技術は、ユーザに情報を表示するための表示装置(例えば、陰極線管(CathodeRayTube,CRT)またはLCD(液晶ディスプレイ)モニタ)と、キーボードおよびポインティングデバイス(例えば、マウスまたはトラックボール)とを備えるコンピュータ上で実装することができ、ユーザが該キーボードおよび該ポインティングデバイスを介してコンピュータに入力を提供できる。他の種類の装置もユーザとのやりとりを行うことに用いることができる。例えば、ユーザに提供されるフィードバックは、例えば、視覚フィードバック、聴覚フィードバック、又は触覚フィードバックであるいかなる形態のセンシングフィードバックであってもよく、且つ音入力、音声入力若しくは触覚入力を含むいかなる形態でユーザからの入力を受信してもよい。
ここで説明したシステムおよび技術は、バックグラウンドコンポーネントを含むコンピューティングシステム(例えば、データサーバ)に実施されてもよく、又はミドルウェアコンポーネントを含むコンピューティングシステム(例えば、アプリケーションサーバ)に実施されてもよく、又はフロントエンドコンポーネントを含むコンピューティングシステム(例えば、グラフィカルユーザインターフェース又はウェブブラウザを有するユーザコンピュータ)に実施されてもよく、ユーザは該グラフィカルユーザインターフェース又はウェブブラウザを介してここで説明したシステムおよび技術の実施形態とインタラクションしてもよく、又はこのようなバックグラウンドコンポーネント、ミドルウェアコンポーネント又はフロントエンドコンポーネントのいずれかの組み合わせを含むコンピューティングシステムに実施されてもよい。また、システムの各コンポーネントの間は、通信ネットワーク等の任意の形態または媒体を介してデジタルデータ通信により接続されていてもよい。通信ネットワークとしては、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)およびインターネットなどを含む。
コンピュータシステムは、クライアントとサーバとを含んでもよい。クライアントとサーバは、通常、互いに離れており、通信ネットワークを介してやりとりを行う。クライアントとサーバとの関係は、互いにクライアント-サーバの関係を有するコンピュータプログラムをそれぞれのコンピュータ上で動作することによって生成される。サーバはクラウドサーバであってもよく、分散システムのサーバ、あるいはブロックチェーンを結合したサーバであってもよい。
なお、上述した様々な形態のフローを用いて、ステップを並び替え、追加または削除を行うことができることを理解すべきである。例えば、本出願に記載された各ステップは、本出願に開示された技術的解決方案の所望の結果が達成できる限り、並行して実行されてもよく、順番に実行されてもよく、異なる順番で実行されてもよい。本明細書はここで制限しない。
上記具体的な実施形態は、本出願の保護範囲を限定するものではない。当業者であれば、設計要件および他の要因に応答して、様々な修正、組み合わせ、副次的な組み合わせ、および置換を行うことができることを理解すべきである。本出願の趣旨および原理を逸脱せずに行われたあらゆる修正、均等な置換および改善などは、いずれも本出願の保護範囲内に含まれるべきである。

Claims (21)

  1. トレーニングすべき深層学習モデルのデータ情報に基づいて分散コンピューティングビューを生成することと、
    前記トレーニングすべき深層学習モデルに対応するクラスターハードウェアリソースの属性情報に基づいてクラスターリソースビューを生成することと、
    前記分散コンピューティングビューと前記クラスターリソースビューとに基づいて、分散トレーニングタスクの目標分割ポリシーを確定することと、
    前記目標分割ポリシーに基づいて前記トレーニングすべき深層学習モデルに対して分散トレーニングを行うことと、
    を含む深層学習モデルの分散トレーニング方法。
  2. トレーニングすべき深層学習モデルのデータ情報に基づいて分散コンピューティングビューを生成することは、
    前記トレーニングすべき深層学習モデルの演算子とテンソルを取得することと、
    前記演算子と前記テンソルに基づいて分散コンピューティングビューを生成することと、を含む請求項1に記載の分散トレーニング方法。
  3. トレーニングすべき深層学習モデルのデータ情報に基づいて分散コンピューティングビューを生成することは、
    前記演算子の分散属性と前記テンソルの分散属性を取得することをさらに含み、
    前記演算子と前記テンソルに基づいて分散コンピューティングビューを生成することは、
    前記演算子と、前記演算子の分散属性と、前記テンソルと、前記テンソルの分散属性とに基づいて、分散コンピューティングビューを生成することを含む請求項2に記載の分散トレーニング方法。
  4. 前記分散コンピューティングビューにおける入力テンソルと出力テンソルの定義と、その入力テンソルと出力テンソルを使用する演算子の定義とが一致しないことを検出したことに応答して、再構成変換演算子を挿入することと、
    前記分散コンピューティングビューにおける入力テンソルと出力テンソルに対応するデバイスと、その入力テンソルと出力テンソルを使用する演算子に対応するデバイスとが一致しないことを検出したことに応答して、通信演算子を挿入することと、
    をさらに含む請求項2または請求項3に記載の分散トレーニング方法。
  5. 前記トレーニングすべき深層学習モデルに対応するクラスターハードウェアリソースの属性情報に基づいてクラスターリソースビューを生成することは、
    前記トレーニングすべき深層学習モデルに対応するクラスターハードウェアリソースにおける各デバイス間のトポロジー情報と、前記クラスターハードウェアリソースにおける各デバイスの処理能力情報とを取得することであって、前記処理能力情報は、プロセッサ情報、帯域幅情報、グラフィックスメモリ情報の少なくとも1つを含むことと、
    前記トポロジー情報と前記処理能力情報とに基づいてクラスターリソースビューを生成することと、
    を含む請求項1に記載の分散トレーニング方法。
  6. 前記分散コンピューティングビューと前記クラスターリソースビューとに基づいて、分散トレーニングタスクの目標分割ポリシーを確定することは、
    前記分散コンピューティングビューと前記クラスターリソースビューとに基づいて、前記深層学習モデルの分割方式と前記クラスターハードウェアリソースのリソース構成方式を含む異なる分割ポリシーを生成することと、
    各分割ポリシーに対応するオーバーヘッドに基づいて、分散トレーニングタスクの目標分割ポリシーを確定することと、
    を含む請求項1に記載の分散トレーニング方法。
  7. 各分割ポリシーに対応するオーバーヘッドに基づいて、分散トレーニングタスクの目標分割ポリシーを確定することは、
    各分割ポリシーに対応するオーバーヘッドを計算することであって、前記オーバーヘッドはランタイムオーバーヘッドとメモリ空間占有オーバーヘッドを含み、前記ランタイムオーバーヘッドは演算子オーバーヘッドと通信オーバーヘッドを含むことと、
    オーバーヘッドが最小となる分割ポリシーを、分散トレーニングタスクの目標分割ポリシーとして確定することと、
    を含む請求項6に記載の分散トレーニング方法。
  8. 前記目標分割ポリシーに基づいて前記トレーニングすべき深層学習モデルに対して分散トレーニングを行うことは、
    前記目標分割ポリシーに基づいて、非同期式パイプライン処理機構を用いて前記トレーニングすべき深層学習モデルに対して分散トレーニングを行うことを含む請求項1に記載の分散トレーニング方法。
  9. 前記分散トレーニングプロセスにおいて、前記クラスターハードウェアリソースの環境が変化したことに応答して、前記目標分割ポリシーを再確定するために柔軟なリソース管理機構をトリガすることをさらに含む請求項8に記載の分散トレーニング方法。
  10. トレーニングすべき深層学習モデルのデータ情報に基づいて分散コンピューティングビューを生成するように構成される第1の生成モジュールと、
    前記トレーニングすべき深層学習モデルに対応するクラスターハードウェアリソースの属性情報に基づいてクラスターリソースビューを生成するように構成される第2の生成モジュールと、
    前記分散コンピューティングビューと前記クラスターリソースビューとに基づいて、分散トレーニングタスクの目標分割ポリシーを確定するように構成される確定モジュールと、
    前記目標分割ポリシーに基づいて前記トレーニングすべき深層学習モデルに対して分散トレーニングを行うように構成されるトレーニングモジュールと、
    を備える深層学習モデルの分散トレーニング装置。
  11. 前記第1の生成モジュールは、
    前記トレーニングすべき深層学習モデルの演算子とテンソルを取得するように構成される第1の取得サブモジュールと、
    前記演算子と前記テンソルに基づいて分散コンピューティングビューを生成するように構成される第1の生成サブモジュールと、
    を備える請求項10の分散トレーニング装置。
  12. 前記第1の生成モジュールは、
    前記演算子の分散属性と前記テンソルの分散属性を取得するように構成される第2の取得サブモジュールをさらに備え、
    前記第1の生成サブモジュールは、
    前記演算子と、前記演算子の分散属性と、前記テンソルと、前記テンソルの分散属性とに基づいて、分散コンピューティングビューを生成するように構成される生成ユニットを備える請求項11に記載の分散トレーニング装置。
  13. 前記分散コンピューティングビューにおける入力テンソルと出力テンソルの定義と、その入力テンソルと出力テンソルを使用する演算子の定義とが一致しないことを検出したことに応答して、再構成変換演算子を挿入するように構成される第1の挿入モジュールと、
    前記分散コンピューティングビューにおける入力テンソルと出力テンソルに対応するデバイスと、その入力テンソルと出力テンソルを使用する演算子に対応するデバイスとが一致しないことを検出したことに応答して、通信演算子を挿入するように構成される第2の挿入モジュールと、をさらに備える請求項11または請求項12に記載の分散トレーニング装置。
  14. 前記第2の生成モジュールは、
    前記トレーニングすべき深層学習モデルに対応するクラスターハードウェアリソースにおける各デバイス間のトポロジー情報と、前記クラスターハードウェアリソースにおける各デバイスの処理能力情報とを取得するように構成される第3の取得サブモジュールであって、前記処理能力情報は、プロセッサ情報、帯域幅情報、グラフィックスメモリ情報の少なくとも1つを含む第3の取得サブモジュールと、
    前記トポロジー情報と前記処理能力情報とに基づいてクラスターリソースビューを生成するように構成される第2の生成サブモジュールと、
    を備える請求項10に記載の分散トレーニング装置。
  15. 前記確定モジュールは、
    前記分散コンピューティングビューと前記クラスターリソースビューとに基づいて、前記深層学習モデルの分割方式と前記クラスターハードウェアリソースのリソース構成方式を含む異なる分割ポリシーを生成するように構成される第3の生成サブモジュールと、
    各分割ポリシーに対応するオーバーヘッドに基づいて、分散トレーニングタスクの目標分割ポリシーを確定するように構成される確定サブモジュールと、を備える請求項10に記載の分散トレーニング装置。
  16. 前記確定サブモジュールは、
    各分割ポリシーに対応するオーバーヘッドを計算するように構成される計算ユニットであって、前記オーバーヘッドはランタイムオーバーヘッドとメモリ空間占有オーバーヘッドを含み、前記ランタイムオーバーヘッドは演算子オーバーヘッドと通信オーバーヘッドを含む、計算ユニットと、
    オーバーヘッドが最小となる分割ポリシーを、分散トレーニングタスクの目標分割ポリシーとして確定するように構成される確定ユニットと、
    を備える請求項15に記載の分散トレーニング装置。
  17. 前記トレーニングモジュールは、
    前記目標分割ポリシーに基づいて、非同期式パイプライン処理機構を用いて前記トレーニングすべき深層学習モデルに対して分散トレーニングを行うように構成されるトレーニングサブモジュールを備える請求項10に記載の分散トレーニング装置。
  18. 前記分散トレーニングプロセスにおいて、前記クラスターハードウェアリソースの環境が変化したことに応答して、前記目標分割ポリシーを再確定するために柔軟なリソース管理機構をトリガするように構成されるトリガモジュールをさらに備える、請求項17に記載の分散トレーニング装置。
  19. 少なくとも1つのプロセッサと、
    前記少なくとも1つのプロセッサと通信接続されたメモリとを備える電子機器であって、
    前記メモリには、前記少なくとも1つのプロセッサによって実行可能な指令が格納され、前記指令が前記少なくとも1つのプロセッサによって実行されると、前記少なくとも1つのプロセッサに請求項1~9のいずれか1項に記載の分散トレーニング方法を実行させる、電子機器。
  20. コンピュータ指令が格納されている非一時的コンピュータ可読記憶媒体であって、
    前記コンピュータ指令は、コンピュータに請求項1~3、5~9のいずれか1項に記載の分散トレーニング方法を実行させるために用いられる非一時的コンピュータ可読記憶媒体。
  21. プロセッサによって実行されると、請求項1~3、5~9のいずれか1項に記載の分散トレーニング方法が実現されるコンピュータプログラム。

JP2022111838A 2021-10-28 2022-07-12 深層学習モデルの分散トレーニング方法、装置、電子機器、記憶媒体およびコンピュータプログラム Active JP7433373B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202111264469.2A CN113961351B (zh) 2021-10-28 2021-10-28 深度学习模型的分布式训练方法、装置、设备及存储介质
CN202111264469.2 2021-10-28

Publications (2)

Publication Number Publication Date
JP2022137193A true JP2022137193A (ja) 2022-09-21
JP7433373B2 JP7433373B2 (ja) 2024-02-19

Family

ID=79468048

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022111838A Active JP7433373B2 (ja) 2021-10-28 2022-07-12 深層学習モデルの分散トレーニング方法、装置、電子機器、記憶媒体およびコンピュータプログラム

Country Status (3)

Country Link
US (1) US20220374713A1 (ja)
JP (1) JP7433373B2 (ja)
CN (1) CN113961351B (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115600671A (zh) * 2022-10-20 2023-01-13 北京百度网讯科技有限公司(Cn) 深度学习框架的数据处理方法、装置、设备和存储介质
CN115858131A (zh) * 2023-02-22 2023-03-28 山东海量信息技术研究院 一种任务执行方法、系统、设备及可读存储介质

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114723045B (zh) * 2022-04-06 2022-12-20 北京百度网讯科技有限公司 模型训练方法、装置、系统、设备、介质及程序产品
CN114840322B (zh) * 2022-05-17 2022-12-09 北京百度网讯科技有限公司 任务调度方法及装置、电子设备和存储
CN114820279B (zh) * 2022-05-18 2023-03-24 北京百度网讯科技有限公司 基于多gpu的分布式深度学习方法、装置及电子设备
CN114862656B (zh) * 2022-05-18 2023-05-05 北京百度网讯科技有限公司 基于多gpu的分布式深度学习模型训练代价的获取方法
CN116309002B (zh) * 2022-05-19 2024-03-01 北京百度网讯科技有限公司 图数据存储、访问、处理方法、训练方法、设备及介质
CN114969444A (zh) * 2022-05-24 2022-08-30 北京百度网讯科技有限公司 数据的处理方法、装置、电子设备和存储介质
WO2024065826A1 (en) * 2022-09-30 2024-04-04 Intel Corporation Accelerate deep learning with inter-iteration scheduling
CN116596091B (zh) * 2022-11-08 2024-02-02 北京百度网讯科技有限公司 模型训练方法、装置、设备以及存储介质
CN115996173B (zh) * 2022-11-14 2023-06-20 中国科学技术大学 面向分布式深度学习算子并行训练的通信优化方法与系统
CN115906983B (zh) * 2022-11-23 2024-01-02 北京百度网讯科技有限公司 分布式模型训练方法、装置、设备、存储介质及程序产品
CN115936091B (zh) * 2022-11-24 2024-03-08 北京百度网讯科技有限公司 深度学习模型的训练方法、装置、电子设备以及存储介质
CN115829053B (zh) * 2022-11-25 2023-09-19 北京百度网讯科技有限公司 模型运行策略确定方法、装置、电子设备以及存储介质
CN115543639B (zh) * 2022-12-01 2023-04-28 阿里云计算有限公司 分布式执行深度学习任务的优化方法和分布式系统
CN115878332B (zh) * 2023-02-14 2023-05-26 北京燧原智能科技有限公司 深度学习网络中的内存资源分配方法、装置、设备及介质
CN116341642B (zh) * 2023-03-01 2023-11-10 之江实验室 一种数据处理的方法、装置、存储介质及电子设备
CN116227585B (zh) * 2023-05-10 2023-07-25 之江实验室 集群任务的并行执行方法、装置、计算机设备和存储介质
CN116306856B (zh) * 2023-05-17 2023-09-05 之江实验室 一种基于搜索的深度学习模型部署方法及装置
CN116579400B (zh) * 2023-05-19 2024-02-23 北京百度网讯科技有限公司 深度学习模型的量化方法、数据处理方法和装置
CN116862019B (zh) * 2023-07-06 2024-03-19 清华大学 基于数据并行范式的模型训练方法及装置
CN116701001B (zh) * 2023-08-08 2023-10-20 国网浙江省电力有限公司信息通信分公司 目标任务分配方法、装置、电子设备及存储介质
CN117057411B (zh) * 2023-10-11 2024-01-09 北京燧原智能科技有限公司 一种大语言模型训练方法、装置、设备及存储介质
CN117112145B (zh) * 2023-10-16 2024-02-13 之江实验室 训练模型分配方法、装置、计算机设备和存储介质
CN117271098B (zh) * 2023-11-21 2024-02-13 北京燧原智能科技有限公司 一种ai模型计算核调度方法、装置、设备及存储介质
CN117875362A (zh) * 2024-03-12 2024-04-12 菲特(天津)检测技术有限公司 大模型的分布式训练方法、装置及电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008123205A (ja) * 2006-11-10 2008-05-29 Internatl Business Mach Corp <Ibm> ジョブ実行方法、ジョブ実行システム及びジョブ実行プログラム
JP2015167041A (ja) * 2015-05-20 2015-09-24 大澤 昇平 機械学習モデル設計支援装置、機械学習モデル設計支援方法、機械学習モデル設計支援装置用プログラム
JP2020518065A (ja) * 2017-04-26 2020-06-18 ミデア グループ カンパニー リミテッドMidea Group Co., Ltd. ジョブサーバを使用した大規模な分散システムでの機械学習モデルのトレーニング
CN113128702A (zh) * 2021-04-15 2021-07-16 杭州电子科技大学 一种基于强化学习的神经网络自适应分布式并行训练方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7552098B1 (en) * 2005-12-30 2009-06-23 At&T Corporation Methods to distribute multi-class classification learning on several processors
CN109754060B (zh) * 2017-11-06 2023-08-25 阿里巴巴集团控股有限公司 一种神经网络机器学习模型的训练方法及装置
US10776164B2 (en) * 2018-11-30 2020-09-15 EMC IP Holding Company LLC Dynamic composition of data pipeline in accelerator-as-a-service computing environment
CN109559734B (zh) * 2018-12-18 2022-02-18 百度在线网络技术(北京)有限公司 声学模型训练的加速方法和装置
CN110889492B (zh) * 2019-11-25 2022-03-08 北京百度网讯科技有限公司 用于训练深度学习模型的方法和装置
US20210158147A1 (en) * 2019-11-26 2021-05-27 International Business Machines Corporation Training approach determination for large deep learning models
CN115456160A (zh) * 2020-03-27 2022-12-09 华为技术有限公司 一种数据处理方法和数据处理设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008123205A (ja) * 2006-11-10 2008-05-29 Internatl Business Mach Corp <Ibm> ジョブ実行方法、ジョブ実行システム及びジョブ実行プログラム
JP2015167041A (ja) * 2015-05-20 2015-09-24 大澤 昇平 機械学習モデル設計支援装置、機械学習モデル設計支援方法、機械学習モデル設計支援装置用プログラム
JP2020518065A (ja) * 2017-04-26 2020-06-18 ミデア グループ カンパニー リミテッドMidea Group Co., Ltd. ジョブサーバを使用した大規模な分散システムでの機械学習モデルのトレーニング
CN113128702A (zh) * 2021-04-15 2021-07-16 杭州电子科技大学 一种基于强化学习的神经网络自适应分布式并行训练方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115600671A (zh) * 2022-10-20 2023-01-13 北京百度网讯科技有限公司(Cn) 深度学习框架的数据处理方法、装置、设备和存储介质
CN115858131A (zh) * 2023-02-22 2023-03-28 山东海量信息技术研究院 一种任务执行方法、系统、设备及可读存储介质

Also Published As

Publication number Publication date
US20220374713A1 (en) 2022-11-24
CN113961351B (zh) 2022-12-30
JP7433373B2 (ja) 2024-02-19
CN113961351A (zh) 2022-01-21

Similar Documents

Publication Publication Date Title
JP7433373B2 (ja) 深層学習モデルの分散トレーニング方法、装置、電子機器、記憶媒体およびコンピュータプログラム
AU2019284011B2 (en) Data processing method and related products
US11847554B2 (en) Data processing method and related products
CN109117252B (zh) 基于容器的任务处理的方法、系统及容器集群管理系统
CN109614227B (zh) 任务资源调配方法、装置、电子设备及计算机可读介质
US20230409921A1 (en) Multi-node distributed training method and apparatus, device and readable medium
CN114862656A (zh) 基于多gpu的分布式深度学习模型训练代价的获取方法
EP4209894A1 (en) Cloud code development system, method, and apparatus, device, and storage medium
US20220101194A1 (en) Method, electronic device, and computer program product for processing machine learning model
CN114816393B (zh) 信息生成方法、装置、设备以及存储介质
CN107526639B (zh) 资源编排的方法、介质、装置和计算设备
CN109582528B (zh) 状态监测方法、装置、电子设备及计算机可读存储介质
CN114924851A (zh) 训练任务的调度方法、装置、电子设备和存储介质
CN116932147A (zh) 流式作业处理方法、装置、电子设备及介质
CN115543543A (zh) 一种应用服务处理方法、装置、设备及介质
US20210243088A1 (en) Infrastructure resource simulation mechanism
CN112955865A (zh) 应用视图层次的静态协调
US11953972B2 (en) Selective privileged container augmentation
Chung et al. Perseus: Removing Energy Bloat from Large Model Training
CN117057411B (zh) 一种大语言模型训练方法、装置、设备及存储介质
CN114356505A (zh) 用于调度容器组的方法、装置、设备、介质和产品
CN117270862A (zh) 基于动态编译的软件可插拔方法、装置、设备和介质
CN117667038A (zh) 代码生成方法、装置、设备以及存储介质
CN116684473A (zh) 程序变更发布方法、程序变更发布装置、存储介质及设备
KR20220046526A (ko) 데이터 처리 방법, 장치, 전자 기기 및 저장 매체

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220713

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220713

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230719

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230808

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231102

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240130

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240206

R150 Certificate of patent or registration of utility model

Ref document number: 7433373

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150