JP2020518065A - ジョブサーバを使用した大規模な分散システムでの機械学習モデルのトレーニング - Google Patents

ジョブサーバを使用した大規模な分散システムでの機械学習モデルのトレーニング Download PDF

Info

Publication number
JP2020518065A
JP2020518065A JP2019558354A JP2019558354A JP2020518065A JP 2020518065 A JP2020518065 A JP 2020518065A JP 2019558354 A JP2019558354 A JP 2019558354A JP 2019558354 A JP2019558354 A JP 2019558354A JP 2020518065 A JP2020518065 A JP 2020518065A
Authority
JP
Japan
Prior art keywords
training
job
group
compute
node
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
JP2019558354A
Other languages
English (en)
Other versions
JP6894532B2 (ja
Inventor
シン・チェン
フア・ジョウ
ドンヤン・ワン
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.)
Midea Group Co Ltd
Original Assignee
Midea Group 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 Midea Group Co Ltd filed Critical Midea Group Co Ltd
Publication of JP2020518065A publication Critical patent/JP2020518065A/ja
Application granted granted Critical
Publication of JP6894532B2 publication Critical patent/JP6894532B2/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
    • G06N20/00Machine learning
    • G06N20/20Ensemble learning
    • 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
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • H04L67/1051Group master selection mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1065Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT] 

Abstract

複数の機械学習モデルをトレーニングするためのコンピュータシステムであって、ジョブサーバ及び複数の計算ノードを含む。ジョブサーバは、機械学習モデルをトレーニングするためのジョブを受信し、これらのトレーニングジョブを1つ以上の計算ノードからなるグループに割り当てる。この割り当ては、トレーニングジョブの現在の要件及び計算ノードの現在の状態に基づく。トレーニングジョブは、機械学習モデルの重み、偏差等のパラメータの値の更新が含まれる。好ましくは、トレーニングジョブを完成するように、トレーニンググループ中の計算ノードでパラメータの更新値を交換する。

Description

本発明は、全般的に、機械学習に関し、より具体的には、機械学習モデルをトレーニングするための分散アーキテクチャに関する。
大規模なデータ集合トレーニングに基づいて得られた最新の深層学習アーキテクチャは、音声及び画像認識、画像セグメンテーション、画像/ビデオの理解と分析、自然言語処理及び不正検出、医療システムと推奨システムなどの様々なアプリケーションを含む広い分野で印象的なパフォーマンスを得ることができる。しかしながら、これらの機械学習モデルをトレーニングすることは、計算に対して厳しく要求している。1台の機械でトレーニングすることは、実用的ではなく、長い時間がかかる場合がある。
したがって、複数の機械を含む分散システムによって機械学習モデルをトレーニングするタスクを割り当てることができる。しかしながら、このような方法には、自体の問題を生じる。トレーニングには、多数のデータが含まれる。代表的に、トレーニングセットには大量のトレーニングサンプルが含まれており、画像、ビデオ、テキストまたはオーディオなどの各トレーニングサンプルが非常に大きい場合がある。機械学習モデル自体も非常に大きい可能性があり、重み、偏差など多数のパラメータ及び多数のレイヤーなどの多数のパラメータをトレーニングする必要がある。現在のトレーニング方法では、代表的に、1台の機械(パラメータサーバ)を割り当てることにより、機械学習モデルの各パラメータのマスターバージョンを格納し、トレーニングタスク全体について、これらのパラメータを同期及び更新する。したがって、多数のデータが、パラメータサーバとその他の機械との間に交換される。大規模な分散システムで大規模なモデルをトレーニングする場合、膨大な通信帯域幅が必要である。
大規模な分散システム中の複数の機械で1つのモデルまたは複数の機械学習モデルを同時に効率的かつ効果的にトレーニングすることが望まれる場合、もっと多くの通信帯域幅が必要となり、かつパラメータサーバがすぐにトレーニングのボトルネックになる。したがって、通信帯域幅への巨額の投資が必要であり、そうでなければ、通信帯域幅が制限されている場合、全体的なトレーニング容量も制限される。
したがって、大規模な分散システムで機械学習モデルをトレーニングする方法を改善する必要がある。
本開示は、ジョブサーバ及び複数の計算ノードを含む大規模な分散コンピュータシステムを使用することにより、先行技術の制限を克服する。ジョブサーバは、機械学習モデルをトレーニングするジョブを1つ以上の計算ノードからなるグループに割り当てるために使用される。これらのトレーニンググループは、トレーニングジョブを実行する。ただし、モデルのパラメータの値の更新と更新値の交換は、トレーニンググループの計算ノード内(トレーニンググループとジョブサーバとの間ではなく)で完成することが好ましい。これにより、ジョブサーバに対する通信要件が軽減される。
ある実施形態において、ジョブサーバは、異なる機械学習モデルをトレーニングするための複数のジョブを受信する。ジョブサーバは、トレーニングジョブの現在の要件と計算ノードの現在の状態に基づいて、トレーニングジョブを1つ以上の計算ノードからなるトレーニンググループに割り当てる。トレーニング要件の例には、計算能力、データストレージ、通信帯域幅及び/または専用機能の要件が含まれる。一般的に、ノード状態には、ノードの能力とノードの可用性が含まれる。トレーニンググループは、前記トレーニンググループに割り当てられたトレーニングジョブを実行する。トレーニングの進行に伴い、この実行は、代表的に、モデルの重み、偏差などのパラメータの値の更新が含まれる。トレーニンググループには、2つ以上の計算ノードを含むことが好ましい。この更新及び更新値の交換は、トレーニンググループ内の計算ノード内で完成されるため、グループ外との通信が削減される。
各トレーニンググループ内のアーキテクチャは、グループごとに異なることができ、説明された方法は、階層的である。例えば、計算ノードのうちの一は、トレーニンググループのローカルジョブサーバ及び/またはパラメータサーバとして機能されてもよく、残りの計算ノードはサブグループに編成される。トレーニングの進行、トレーニングジョブの順序付けまたは完成、及び計算ノードの使用可能または使用不可能につれて、トレーニングジョブのトレーニンググループの間での割り当てと、トレーニンググループの構成も動的に変化する。
作業量が軽減された後、ジョブサーバ(及び他のサーバ)は、機械学習モデル及びそのトレーニングの視覚化または報告システムにおける計算ノードの状態などの追加タスクを実行することができる。
他の側面には、コンポーネント、装置、システム、改良、方法、プロセス、アプリケーション、コンピュータ読み取り可能な媒体及び上記に関連する他のいずれの技術が含まれる。
本発明に係るジョブ(job)サーバを含む大規模な分散コンピュータシステムのブロック図である。 図2Aないし図2Cは、本発明に係る異なるアーキテクチャを有するトレーニンググループのブロック図である。 本発明に係るジョブサーバの動作を例示する。 本発明に係るジョブサーバを備える他の1つのコンピュータシステムのブロック図である。 本発明に係るジョブサーバのブロック図である。 本発明に係る計算ノードのブロック図である。
本開示の実施例の有する他の有利な効果と特徴は、添付の図面と併せて、以下の発明を実施するための形態と請求の範囲によると、より容易に理解されるだろう。
図面は、例示のことだけ目的として様々な実施例を説明する。以下の議論から、当業者は、本明細書に記載された原理から逸脱することなく、本明細書に例示された構造および方法を代替実施例で置き換えることができることを容易に認識するであろう。
図面及び以下の説明は、ただ例示的に好ましい実施例に関する。以下の議論から、本明細書に開示された構造及び方法の代替実施例は、特許請求の原理から逸脱することなく採用できる実行可能な代替方案として容易に認識されることに留意されたい。
図1は、本発明に係るジョブサーバ110を含む大規模な分散コンピュータシステム100のブロック図である。コンピュータシステム100は、さらに計算ノード130と、異なるコンポーネントを接続するネットワーク120とも含む。代表的な大規模な分散コンピュータシステムは、ジョブサーバ110と計算ノード130との間に分散された1000個以上のプロセッサユニット(例えば、例如CPUとGPU)を有することが好ましいが、実際の数は状況と使用される技術によって異なる。以下により詳細に説明されるように、トレーニングジョブを、異なるグループ140の計算ノードに割り当てることにより、コンピュータシステム100は、複数の機械学習モデルを同時にトレーニングすることができる。図1は、4つのトレーニンググループ140A〜140Dに編成された計算ノード130を示す。トレーニンググループ140Aは、計算ノード130A1〜130ANを含む。トレーニンググループ140B、140C及び140Dは、同様の番号を使用する。グループ140Dは単一の計算ノード130D1のみを含むことに留意されたい。より具体的には、計算ノード130をトレーニンググループ140に割り当てたことについて以下に説明する。未使用の計算ノード130Pは、利用可能な計算ノードのプール142を形成する。
コンピュータシステム100は、機械学習モデルのトレーニングに使用される。機械学習モデルの例として、畳み込みニューラルネットワーク(convolutional neural networks:CNN)、リカレントニューラルネットワーク(recurrent neural networks:RNN)、ニューラルネットワーク及びサポートベクターマシンが含まれる。
代表的なトレーニングジョブにおいて、機械学習モデルには、一定数のレイヤーとノード、ノードの間の重み付き接続を持つアーキテクチャを備える。代表的に、機械学習モデルのトレーニングには、トレーニングサンプルのセットに基づいて、モデルのパラメータ(例えば、重みと偏差)の値を決定することが含まれる。教師あり学習は、トレーニングサンプルは、一対の入力と既知の優良な出力(即ち、基本的な事実)である。機械学習モデルに入力を提示すると、機械学習モデルは、例えば、入力が目標属性を示すか、または入力が目標属性の信頼レベルを示すかなどの出力を生成する。機械学習モデルの出力と既知の優良な出力との差は、モデルの値を調整するために使用される。このプロセスは、機械学習モデルのパフォーマンスが十分になるまで、多くの異なるトレーニングサンプルに対して繰り返される。機械学習モデルが充分にトレーニングされているかどうかを判断する過程を検証と称する。トレーニングが完了すると、新しい入力を示すときに、機械学習モデルは、満足できる正しい出力を予測することができる。アクティブな動作に使用されている場合でも、機械学習モデルは、トレーニングを継続することができる。その他の種類の機械学習方法には、半教師あり学習、教師なし学習、強化学習が含まれる。
システム全体において、ジョブサーバ110は、トレーニングジョブを計算ノード130に割り当てることを管理及び監視する役割をより多く果たし、計算ノード130はトレーニングタスクを実行する役割をより多く果たす。これらのコンポーネント110、130は、データストレージとある処理能力を含む(共有することもできる)が,実際の実施形態は、大きく異なる(共有することもできる)。例えば、処理能力は、通常の中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)、専用プロセッサ、カスタムASIC、マルチプロセッサ構成及びトレーニングと推論用に設計されたチップによって提供することができる。これらのコンポーネントは、ブレードサーバなどの実際の物理コンポーネントとして実施することができるか、または仮想化によって実施することができる。コンポーネント110、130は、完全に同一である必要がない。例えば、異なる計算ノード130は異なる能力を有してもよく、または特定のタスク専用であってもよい。
ネットワーク120は、異なるコンポーネント間の接続を提供する。用語「ネットワーク」は、広く解釈されるべきである。イーサネット、インフィニバンド(InfiniBand)などの基準定義プロトコルを備えた公式ネットワークが含まれることができる。例えば、サーバーラック上のバックプレーン接続、リモートダイレクトメモリアクセス(remote direct memory access:RDMA)及び高性能コンピューティングファブリックフレームワークなど、コンポーネント間の他の種類の接続も含まれる。ネットワーク120は、異なる種類の接続を組み合わせることもできる。有線及び/または無線リンクを使用するローカルエリアネットワーク及び/またはワイドエリアネットワークの組み合わせを含んでもよい。コンポーネント110、130間で交換されるデータは、任意の適当なフォーマットを使用して示すことができる。ある実施例において、データ及び通信の全部または一部は暗号化されてもよい。
したがって、コンピュータシステム110全体を異なる方法で実施することができる。例えば、独自のシステムとして実施することができる。または、サードパーティのサービスまたはクラウドサービス上に構築することができる。
図1中の破線矢印は、コンピュータシステム100の動作を示す。この例において、コンピュータシステム100は、ジョブサーバ110が各トレーニンググループ140のマスタとして動作し、各トレーニンググループがジョブサーバのワーカーとして動作するマスターワーカ(master−worker)アーキテクチャを備える。ジョブサーバ110は、機械学習モデルのトレーニングをするためにジョブ115を受信する。これは、ジョブ125A-Dを計算ノード130のグループに割り当てて、これらのグループをトレーニンググループ140A-Dと称する。トレーニングジョブ125Aは、トレーニンググループ140Aの計算ノード130Axに割り当てられ、トレーニングジョブ125Bは、トレーニンググループ140Bの計算ノード130Bxに割り当てられ、以下は同様である。好ましくは、ジョブサーバ110は、どのトレーニンググループ140がどの計算ノード130を含むかも決定する。
ジョブサーバ110は、トレーニングジョブの現在の要件及び計算ノード130の現在の状態に基づいて、トレーニングジョブを割り当てる。ある実施例において、ジョブがトレーニンググループに割り当てられると、ジョブサーバ110は、モデルの初期パラメータのセット(及び/またはトレーニングジョブの他の態様)もトレーニンググループに送信する。または,ジョブサーバ110は、トレーニンググループにパラメータを物理的に送信せず、代わりにパラメータへのポインタを提供するか、または他の方法でトレーニンググループと初期値を交換してもよい。トレーニングが完成すると、パラメータの最終値はジョブサーバ110に送信されてもよいし、ジョブサーバに送信されなくてもよい。パラメータの遷移値は、ジョブサーバ110に送信されないことが好ましい。ジョブサーバ110は、トレーニング計算を実行しないことが好ましい。ただし、ジョブサーバ110は、代表的に、各トレーニンググループの進度を監視し、表示または監視の目的でパラメータの遷移値にアクセスする場合がある。
この例において、各トレーニングタスクは、モデルのパラメータの適応など、異なる機械学習モデルをトレーニングすることである。したがって、トレーニンググループ140Aは、機械学習モデルAをトレーニングし、トレーニンググループ140Bは、別の1つの機械学習モデルBをトレーニングし、以下は同様である。トレーニングジョブ115は、異なる時間に順序付けされることができる。したがって、トレーニングジョブ125A-Dをいつでも割り当てることができる。
各トレーニンググループ140中の計算ノード130は、143が前記トレーニンググループに割り当てたトレーニングジョブを実行するように、共同に働く。これには、143のモデルのパラメータの更新値を計算し、これらの更新されたパラメータを相互に交換147することが含まれる。例として、トレーニンググループ140Aを説明する。トレーニンググループ中の計算ノード130A1-Nは、トレーニングジョブを実行して、機械学習モデルAをトレーニングする。このジョブの一部として、トレーニングセットの異なる一部は、異なる計算ノード130Axに割り当てられることができ、その中の各計算ノードは、そのトレーニングサンプルを使用してトレーニング143を実行する。計算ノード130Axは、それらのトレーニングに基づいて143パラメータの更新値を生成する。これらの値は、計算ノード間で交換147され、すべての計算ノード130Axからのトレーニングを集約する。パラメータの遷移値と最終値は、トレーニンググループ中の計算ノード130によって計算されることが好ましい。1つ以上の計算ノード130は、トレーニンググループのトレーニングジョブに対して、ローカル制御及び監視も実行し得る。
ジョブサーバ110は、トレーニングジョブの現在の要件及び計算ノード130の現在の状態に基づいて、トレーニングジョブを1つ以上の計算ノード130のトレーニンググループに割り当てる125。トレーニング要件の例として、計算能力、データストレージ、通信帯域幅及び/または専用機能の要件を含む。トレーニングジョブのサイズは、多くの場合、トレーニングサンプルの数とトレーニングサンプルのサイズ、機械学習モデルのサイズ、モデル中パラメータの数及びトレーニングアルゴリズムの有効性等要因に依存する。
計算ノードの状態には、ノードの能力とノードの可用性が含まれる。これらは、計算能力、データストレージ、通信帯域幅及び/または専用機能のメトリクスにもなる。計算能力のメトリックは、プロセッサコアまたはプロセッサの数、プロセッサの種類及び処理能力、フロップレート(flops rate、即ち、1秒あたりの浮動小数点演算)などの処理スループット、クロック速度が含まれる。データストレージのメトリックには、データストレージの種類と数、読み取り/書き込み帯域幅、アクセス時間、プリロード容量、低メモリ警告の数及び最後の低メモリ警告からの経過時間が含まれる。バスインターフェイスPCI expressの他の接続の帯域幅及びNUMAとSMPなどのマザーボードトポロジなどの要因も、データ伝送転送に影響を与える可能性がある。通信帯域幅のメトリックには、ネットワーク接続の種類と数、最近のデータ転送速度の平均値などのデータ転送速度、最近の接続に基づくネットワーク接続可用性の確率などのネットワーク接続信頼性及びデータ転送遅延が含まれる。
ある実施例において、ジョブサーバ110は、計算ノード130の能力に基づいて、それらを異なるカテゴリに分類する。例えば、いくつかの計算ノード130は、他の計算ノード130よりも多くの処理能力またはより大きいメモリまたは専用機能を有し得る。これらは、「専用」計算ノードとして分類され、残りは「通常の」計算ノードとして分類される。カテゴリごとに追加の規定がある場合がある。例えば、「通常の」計算ノードには、処理能力とメモリ容量を示す数字が含まれることができる。
ある実施例において、計算ノード130の可用性は、「可用」、「一部可用」及び「利用不可」として分類される。例えば、トレーニングジョブを実行しない計算ノードは可用であり、トレーニングジョブを実行するが100%容量で実行されない計算ノードは一部可用であり、全容量でトレーニングジョブを実装する計算ノードは不可用である。別の1つの方法において、可用性は、0から1または0から100などの範囲内の数字で示される。ジョブサーバ110は、異なるカテゴリで各トレーニングジョブに割り当てられた計算ノードの数及び割り当てられた具体的な計算ノードを決定することができる。
図1は、異なるトレーニンググループ140に割り当てられた異なる計算ノード130を示したが、各トレーニンググループの内部アーキテクチャは示していない。異なるトレーニンググループ140は、異なるアーキテクチャを使用することができる。同じアーキテクチャを使用する必要はない。ジョブサーバ110は、トレーニンググループのアーキテクチャを規定することができ、またはトレーニンググループは、アーキテクチャに従ってすでに編成されることができ、またはトレーニンググループはトレーニングジョブを受信したら、アーキテクチャは選択されることができる。図2A-2Cは、それぞれマスターオペレータアーキテクチャ、ピアツーピアアーキテクチャ及びクライアントサーバアーキテクチャのトレーニンググループのブロック図である。
図2Aは、マスターワーカーアーキテクチャ(master−worker architecture)を備えるトレーニンググループ210のブロック図である。トレーニンググループ210は、4つの計算ノード210Mと210W1-3を有する。計算ノード210Mは、マスタとして機能し、計算ノード210W1-3は、ワーカーとして機能する。マスタ210Mは、代表的に、ワーカー210Wのワークフローを制御する。この例において、マスタ210Mは、トレーニングジョブを受信し、トレーニングジョブを各ワーカー210Wによって完成する小さなタスクに分割し、機械学習モデルのパラメータの値を更新する。マスタ210Mは、パラメータの初期値を記憶することができ,その後、ワーカー210Wから遷移トレーニング結果を受信すると、これらの値を更新することができる。一方法において、マスタ210Mは、そのローカルメモリにパラメータを格納し、必要に応じてこれらの値をワーカー210Wに送信する。または,パラメータは、計算ノード210M及び210Wによって共有メモリに格納されてもよい。
ある実施例において、トレーニングジョブは、トレーニングサンプルのセットを含む。マスタ210Mは、トレーニングサンプルのサブセットは、異なるワーカー210Wに割り当てることにより、トレーニングジョブをより小さなタスクに分割する。例えば、トレーニングジョブが300,000個のトレーニングサンプルを含むと、マスタ210Mは各ワーカー210Wに100,000個のトレーニングサンプルを割り当てることができる。マスタ210Mは、各ワーカーに同数のトレーニングサンプルを割り当てない場合がある。マスタは、ワーカーの状態に基づいて、トレーニングサンプルをワーカー210Wに割り当てることができる。例えば、マスタは、トレーニングジョブを10個のブロックに分割して、各ブロックには、30,000個のトレーニングサンプルが含まれる。次に、マスタは、30,000個のトレーニングサンプルを含むそれぞれの最初の3つのブロックをワーカー210W1-3に割り当て、ワーカー210W可用になって時に、残りのブロックを再び割り当てる。マスタ210Mの自体も何らかのトレーニングを実行することができる。
代替のセグメントにおいて、機械学習モデルは、異なるコンポーネントに細かく分割されることができる。マスタ210Mは、異なるモデル構成部分を異なるワーカー210Wに割り当てることにより、トレーニングジョブを分割する。例えば、モデルが分離可能な場合、一部のワーカー210Wはモデル中の以前のレイヤーをトレーニングすることができ、他の一部のワーカーは、モデル中の後続のレイヤーをトレーニングすることができる。または,一部のモデルコンポーネントは、個別にトレーニングされることができる特性を検出するように設計される。
図2Bは、ピアツーピアアーキテクチャで配置された4つの計算ノード220P1-4のトレーニンググループ220のブロック図である。トレーニンググループ220は、分散アルゴリズムを使用して、トレーニングジョブをピア(peers)220Pによって実行される小さなタスクに分割する。ピア220Pはお互いに協調して、タスクを実行し、機械学習モデルのパラメータを更新する。例えば、トレーニングジョブが10個のタスクに分割されると、ピア220Pは、現在のタスクの完了後に共有パラメータセットを更新してから、共通キューに入って次の可用タスクを取得することができる。
也可以使用混合方法。例えば、1つの計算ノード220P1は、ジョブサーバ110に接続するための単一の連絡先として機能することができる。この計算ノード220P1は、ジョブサーバからトレーニングジョブを受信し、トレーニングジョブを最初に小さなタスクに分割する。この計算ノードは、初期タスクを他の計算ノード220Pに割り当てることもできる。その後、計算ノード220Pは、タスクを実行し、機械学習モデルのパラメータを更新するピアとして機能する。プライマリ計算ノード220P1は、パラメータマスタセット及び保留中のタスクのキューを維持することができる。
図2Cは、クライアントサーバアーキテクチャを備えるトレーニンググループ230のブロック図である。計算ノード230Sは、サーバとして機能し、計算ノード230C1-3は、クライアントとして機能する。サーバ230Sはトレーニングサンプルを提供する。クライアント230Cは、サーバ230Sからトレーニングサンプルを取得し、それらのトレーニングタスクを実行する。サーバ230Sは、さらに、パラメータの値をクライアント230Cに提供し、クライアント230Cからのトレーニング結果に基づいて、パラメータの値を更新するために使用することができる。
前述のように、ジョブサーバ110は、トレーニングジョブを計算ノードグループに割り当てる。便宜上、これらのグループはトレーニンググループと呼ばれる。ジョブサーバ110は、どの計算ノードがどのトレーニンググループに含まれているかを決定することが好ましい。ある実施例において、このような「含む」関係は、トレーニングジョブの現在の要件及び/または計算ノードの現在の状態の変化に応じて、時間とともに変化し得る。
図3は、ジョブサーバがトレーニングジョブを計算ノードに割り当てる例を示す。この例において、12つの通常の計算ノード130R1-R12と3つの専用計算ノード130S1-S3を含む最大15つの計算ノードがある。ジョブサーバ110は、計算ノードによって実行される4つのトレーニングジョブA-Dを受信する。表300は、各トレーニングジョブの要件を示す。トレーニングジョブAには、1つの通常の計算ノード130R及び1つの専用計算ノード130Sなどが必要とし、以下は同様である。この例において、これらは最小要件である。この数より多い計算ノードを使用することができるが、この数未満の計算ノードは使用することができない。ジョブ要件は、範囲、最小値及び最大値、推奨値、許容値などの他の方法でも規定することができる。
トレーニングジョブは、異なる時間において順序付けている。ジョブサーバ110がトレーニングジョブを受け取った場合、ジョブサーバ110は、トレーニングジョブの現在の要件及び計算ノード130の現在の状態に基づいて、トレーニングジョブを計算ノード130に割り当てる。表350は、トレーニングジョブの計算ノードへの割り当てを示すタイムログである。表350において、ジョブに割り当てられた計算ノード130にジョブレターでマークされ、オンラインかつ可用な計算ノードマークは空白セルとしてマークされ、オフラインの計算ノードは用ツイルパターンでマークされる。この例において、コンピュータシステムがある程度の動的再割り当てが可能であると想定される。つまり、トレーニングジョブの実行時に、トレーニングジョブに割り当てられた計算ノードを変更することができる。ただし、ジョブサーバの使用は静的状況にも適用することができ、即ち、トレーニンググループが固定的であり、ジョブの最初から最後まで同じ状態を維持しなければならない。この場合、割り当てポリシーは、この追加の制約に基づいて変更される。
時間t0では、5つの通常ノードR1-R5と3つの専用ノードS1-S3がオンラインで利用可能であるが、トレーニングジョブはまだ受信されない。ツイルパターンで示されたように、ノードR6-R12はオフラインである。時間t1では、トレーニングジョブAが順序付けされ、開始される。ジョブAは、1つの通常ノードRと1つの専用ノードSを必要とするが、ジョブサーバ110はこのトレーニングジョブを2つの通常ノードR1-2と2つの専用ノードS1-2に割り当てる。残りの計算ノードR3-5とS3は将来のジョブに使用でき、他の2つの計算ノードR6-7は既にオンラインされた。
トレーニングジョブAに割り当てられた計算ノード130は、時間t1で多数の可用な計算リソースがあるため、このトレーニングジョブの要件に必要な数よりも多い。したがって、トレーニングジョブを完成するのに必要な時間はより短くなる。同時に、近い将来、他のトレーニングジョブが期待されるため、可用なすべての計算リソースがトレーニングジョブAに割り当てられるわけではない。例えば、ジョブを事前にスケジュールしたり、または過去の履歴に基づいて将来のジョブの需要を予測したりすることができる。別の1つの方法において、ジョブAを最小要件の計算ノードに割り当てることができる。この方法は、ジョブ中に計算ノードを切り替えることが困難な場合、または現在のジョブを完成する前に多数のジョブがあると予想される場合に適している。逆の方法において、ジョブAをすべての可用な計算ノードに割り当てて、新しいジョブが順序付けられると、動的に再割り当てを行うことができる。
時間t2では、ジョブAがまだ実行されている時、トレーニングジョブBが開始する。ジョブサーバ110は、トレーニングジョブBを最小要件の5つの通常ノードR3-7と1つの専用ノードS3に割り当てる。このように、トレーニンググループの計算リソースは、ジョブの要件と同じである。同時に、通常ノードR1-2と専用ノードS1-2がトレーニングタスクAを実行し続く。時間t2では、アイドル状態の計算ノードは存在しない。
時間t3では、追加ノードR8-12がオンラインになる。これらのノードは、以前と同じように実行を続ける既存のジョブAまたはBに割り当てられない。時間t4では、トレーニングジョブCが順序付けられる。しかしながら、トレーニングジョブCは、6つの通常ノード130Rと1つの専用ノード130Sが必要であるが、5つの通常ノードR8-12のみがあり、可用な専用ノードはない。現在の可用な計算ノードは、ジョブCの要件に満たすのに十分ではない。ジョブサーバ110は、時間t3とt4との行の間の矢印で示されるように、ノードR2とS2をジョブAからジョブCに動的に再割り当てをする。これは、ジョブAの最小要件を依然として満足し、同時にリソースを解放することにより、ジョブCの最小要件を満足する。トレーニングジョブBのトレーニンググループは、余計な計算ノードがため、トレーニングジョブBは、依然として同じ計算ノードによって実行される。現在、可用なプールに計算ノードがない。
時間t5では、トレーニングタスクDが順序付けられる。ただし、可用な計算ノードがないため、ジョブDは、実行を開始しない。他のジョブのいずれかが完成するまで待機しなければならない。時間t6では、ジョブBが完成し、ノードR3-R7とS3が解放される。ジョブサーバは、ジョブDをノードR3-R5に割り当てる。これは、基本的に先着順の方法である。
代替の実施例において、コンピュータシステムがオーバーサブスクライブ(oversubscribed)されると、ジョブサーバ110は優先度に基づいてトレーニングジョブにリソースを割り当てることができる。ジョブDの優先度がジョブCより高ければ、時間t5では、ジョブサーバが計算ノードをジョブCからジョブDに動的に再割り当てする。トレーニングジョブの優先度は、トレーニングジョブの緊急度、トレーニングジョブの重要性、実行トレーニングジョブに必要な期間など、様々な要因によって決定する。別の1つの方法において、比例的に割り当てを行うことができる。
時間t7では、計算ノードR8-9が意外にオフラインする。したがって、ジョブCは、必要な数の計算ノードを備えない。ただし、計算ノードR6-7は、可用であるため、ジョブCに割り当てることができる。この例において、ジョブCは、ノードR3-7に再割り当てられ、ジョブDがノードR10-12に移動される。例えば、ノードR3-7が1つのデータセンタにあるが、ノードR8-12は他の1つのデータセンタにあると、このように実行することができる。こうして、ジョブに割り当てられたすべての通常ノードは、同一なデータセンタにある。
上記の例では、ジョブサーバ110が主にトレーニングジョブの実行に対する管理を担当し、計算ノード130が主にトレーニングジョブ中に必要な計算、更新及び機械学習モデルのパラメータの交換を担当する。ある実施例において、ジョブサーバ110はそのほかの機能も完成する。例えば、ジョブサーバは、トレーニンググループに割り当てたトレーニングジョブに対する前記トレーニンググループの実行及び/または計算ノード130の状態を監視する。ジョブサーバ110は、さらにレーニングジョブのパラメータ及び/または計算ノード130の状態を視覚的に表示することもできる。
ある実施形態において、ジョブサーバ110は、可用な計算ノードは、緑色のアイコンでマークされ、不可用な計算ノードは、赤色のアイコンでマークされ、いくつかの可用な計算ノードは、黄色なアイコンでマークされる視覚的な表示を提供する。視覚的な表示は、トレーニンググループの内部アーキテクチャ及び/またはアクティビティレベルも表示することができる。コンピュータシステム100のユーザは、視覚的な表示を使用して、トレーニングジョブの進度を制御し、ジョブサーバ110に新しいトレーニングジョブを送信するかどうかを決定することができる。
図4は、本発明に係る他の1つのコンピュータシステム400のブロック図である。図1に示すコンポーネントに加えて、コンピュータシステム400は、表示ノード440とバッファノード450も含む。上記のように、ジョブサーバは、トレーニングジョブの進度の監視、トレーニング中のパラメータのインスタンス化、コンピュータシステム全体の容量の表示等、様々な視覚的な表示を提供することができる。図4には、これらの機能を表示ノード440によって完成される。
バッファノード450は、計算ノード130によって実行された次のトレーニングジョブで使用されるデータをバッファリングする。例えば、ジョブサーバ410は、トレーニングサンプル、モデルのパラメータの初期値等データをバッファノード450にプリロードする。計算ノード130は、次にバッファノード450からデータにアクセスする。バッファノード450は、システム全体にキャッシング機能を提供して、システム全体のパフォーマンスを改善する。
図5と図6は、それぞれジョブサーバと計算ノードの例のブロック図である。図示されたコンポーネントは、規定された機能を提供するためのコンピュータプログラム命令及び他のロジックを指す。これらのコンポーネントは、ハードウェア、ファームウェア及び/またはソフトウェアによって実施される。ある実施例において、それらは、記憶装置に格納され、メモリにロードされ、プロセッサによって実行される実行可能なコンピュータプログラム命令として実装される。
図5において、ジョブサーバ500は、インターフェースモジュール510、システムモニタ520、割り当てエンジン530、計算ノードマネージャ540、ジョブモニタ550及び表示モジュール560を含む。ジョブサーバは、コンピュータシステム及びトレーニングジョブに関連する情報を格納する(機械学習モデルのパラメータ及びトレーニングサンプルを含む)ためのデータストレージをさらに含むことができる。
インターフェースモジュール510は、他の装置及び/またはユーザとの通信が容易にする。トレーニングジョブはインターフェースモジュール510を介して受信され、計算ノードの命令はインターフェースモジュール510を介してディスパッチされる。データもインターフェースモジュール510を介して転送される。インターフェースモジュール510は、ユーザインターフェースを含むことができる。
システムモニタ520は計算ノードの状態(能力及び/または可用性)を監視する。システムモニタ520は、計算能力、ストレージ、通信などの計算ノードの能力を自動的に発見することができる。システムモニタ520はまた、どの計算ノードがオンラインであるかを決定し、オンライン計算ノードが可用であるか、一部可用であるか、それとも不可用であるかを決定する。
割り当てエンジン530は、トレーニングジョブの要件を決定し、トレーニングジョブの要件及び計算ノードの状態に基づいて、トレーニングジョブを計算ノードに割り当てる。ある実施例において、割り当てエンジン530は、各トレーニングジョブに必要な計算ノードの数を決定し、可用な計算ノードまたは一部可用な計算ノードの数も確認する。割り当てエンジンは、対応的にトレーニングジョブを計算ノードに割り当てる。トレーニングジョブの割り当てには、再割り当てを含み、動的に完成することができる。
計算ノードマネージャ540は、計算ノードを制御及び指示するためのロジックを提供する。計算ノードマネージャは、計算ノードがトレーニングジョブを実行するための命令を生成する。この命令は、トレーニングジョブの機械学習モデル(例えば、ID、目的、数学アルゴリズム及びパラメータの初期値)、トレーニングジョブのトレーニングサンプルの位置及びトレーニンググループ中の他の計算ノードに関連する情報を記述することができる。
計算ノードマネージャ540は、計算ノードに対するジョブサーバの制御量に応じて、他の態様も管理することができる。例えば、命令は、トレーニンググループ中のマスタ計算ノードとワーカー計算ノードを識別するなど、トレーニンググループのアーキテクチャを追加的に制限することができる。なお、命令は、トレーニンググループ中の計算ノード間のトレーニングジョブの分割を規定することができる。ある実施例において、命令は、計算ノード間にパラメータの更新値を更新するように規定することができる。例えば、命令は、具体的な計算ノードは、トレーニンググループ中の他の計算ノードから更新値を受信するように規定することができ、更なるトレーニングのために、この計算ノードはトレーニング結果を調整し、更新されたパラメータのセットを生成し、更新値を他の計算ノードに送り返す。
ジョブモニタ550は、様々なトレーニングジョブの進度を監視する。ジョブモニタは、進行状況レポートを照会したり、またはトレーニンググループがその進度を自主的に報告したりすることができる。
表示モジュール560は、トレーニングジョブの実行及び/またはコンピュータシステムの状態に関連する情報を表示する。ある実施例において、表示モジュール560は、計算ノードの状態を表示する。ユーザは、表示の状態に基づいて、もっと多いトレーニングジョブをコンピュータシステムに送信するか、それとも特定のノードに送信するかを決定することができる。他の実施例において、表示モジュール560は、機械学習モデルのパラメータの値を表示する。例えば、表示モジュール560は、機械学習モデルのパラメータの初期値と最終値を表示することができる。表示モジュール560は、トレーニングの進行につれてパラメータの更新値を表示することができる。
図6では、計算ノード600は、インターフェースモジュール610、制御モジュール620、トレーニングモジュール630及びパラメータ一貫性モジュール640を含む。計算ノードは、例えば、モデルのパラメータ、トレーニングセットの統計パラメータ、モデルトレーニングの進度及び他の情報などのデータストレージをさらに含むことができる。インターフェースモジュール610は、他の装置及び/またはユーザとの通信を容易にする。例えば、ジョブサーバからのトレーニングジョブと命令がインターフェースモジュール610を介して受信される。同様に、インターフェースモジュールを介して他の計算ノードと通信には、トレーニング中に使用されるパラメータの交換を含む。
制御モジュール620は、ジョブサーバと他の計算ノード相互作用を含む、計算ノードを制御するためのロジックを提供する。制御モジュールは、ジョブサーバの計算ノードマネージャ540に部分的に対応する。
トレーニングモジュール630は、トレーニングジョブを実行する。この例において、トレーニングモジュール630は、適応エンジン632及び検証エンジン634を含む。トレーニングモジュール630は、トレーニングサンプルを使用して、機械学習モデルをトレーニングする。一方法において、トレーニングモジュール630は、関心のある目標属性を有するトレーニングサンプルのポジティブトレーニングセットと、関心の少ない目標属性を有するトレーニングサンプルのネガティブトレーニングセットを形成する。適応エンジン632は、機械学習モデルのパラメータの値を更新して、適合ポジティブトレーニングセットとネガティブトレーニングセットに適合させる。異なる実施例で、線形サポートベクターマシン(線形SVM)等、AdaBoost等他のアルゴリズムに対するブースト、ニューラルネットワーク、ロジック回帰、単純ベイズ(naive Bayes)、メモリベースの学習、ランダムフォレスト、バギングツリー、決定ツリー、ブースト木またはブーストされた切り株(boosted stumps)など、様々な機械学習技術を使用することができる。
検証エンジン634は、追加サンプルに基づいて、トレーニングされた機械学習モデルを検証する。検証エンジン634は、トレーニングされたモデルを検証サンプルに適用して、トレーニングのモデルの正確度を定量化する。正確度メトリクス中の共通メトリクス基準は、精度=TP/(TP+FP)及びリコール率(recall)=TP/(TP+FN)を含み、ここで、TPは真陽性の数(number of true positive)であり、FPは偽陽性の数(number of false positive)であり、FNは偽陰性の数(number of false negative)である。精度は、トレーニングされたモデルによって予測された目標属性(TP+FP)を有する総数のうち、トレーニングされたモデルによって正しく予測された目標属性(TP)のある結果の数である。リコール率は、確実に目標属性(TP+FN)有する検証サンプルの総数のうち、トレーニングされたモデルによって正しく予測された属性(TP)の有する結果の数である。F分数(F分数=2×精度×リコール率/(精度+リコール率))は、精度とリコール率を単一のメトリクスに統合する。正確度メトリクスに適用されるアプリケーションの共通メトリクス基準には、上位1位の正確度と、上位5位の正確度を含む。上位1位の正確度では、トレーニングされたモデルによって予測された上位1位の予測(即ち、最も可能性のある予測)が正しい場合、このトレーニングされたモデルは正確である。上位5位の正確度では、現在の5位の予測(例えば、最も可能性のある5つの予測)のうちの1つが正しい場合、トレーニングされたモデルは正確である。検証エンジン634は、他の種類のメトリクス基準を使用して、トレーニングされたモデルの正確度を定量化する。ある実施例において、トレーニングモジュール630は、モデルが十分に正確であるという正確度メトリクス指示、または既に行われたいくつかのトレーニングラウンドなどの停止条件が現れるまで機械学習モデルを繰り返して再トレーニングする。
パラメータ一貫性モジュール640は、異なる計算ノードのからのトレーニング結果を集約する。例えば、1つの計算ノード上のトレーニングは、パラメータの更新値のセットを作成し、別の1つの計算ノード上のトレーニングは、別の1つの更新値のセットを作成することができる。パラメータ一貫性モジュール640は、これらの結果を単一の更新値のセットに組み合わせる。
発明を実施するための形態は、多くの特定の詳細を含むが、これらは、本発明の範囲を制限するものとして解釈されてはいけなく、単に本発明の異なる例と態様を例示するものであり。本発明の範囲は、上記で具体的に論じられていない他の実施例を含むことが理解されるであろう。例えば、計算ノードのセットに対して、複数のジョブサーバを使用し得る。添付の特許請求の範囲によって定義される本発明の精神および範囲から逸脱することなく、本明細書に開示される本発明の方法および装置の配置、動作、および詳細に対する様々な修正、変更及び変形は、当業者にとっては自明である。したがって、本発明的範囲は、添付の特許請求の範囲およびその法律的の均等物によって決定されるべきである。
代替実施例は、コンピュータハードウェア、ファームウェア、ソフトウェア及び/またはそれらの組み合わせとして実装される。実施形態は、プログラム可能なプロセッサによる実行のために、機械可読記憶装置に有形に具現化されたコンピュータプログラム製品として実装することができる。方法のステップは、入力データを操作して出力を生成することにより機能を実行する命令のプログラムを実行するプログラム可能なプロセッサによって実行できる。実施例は、データを受信するように結合された少なくとも1つのプログラム可能なプロセッサを含むプログラム可能なシステム上で実行可能な1つ以上のコンピュータプログラムで有利に実装することができる。各コンピュータプログラムは、高いレベルの過程またはオブジェクト指向プログラミング言語として実施される。または、必要に応じて、アセンブリまたはマシン言語として実施される。いずれの場合でも、言語はコンパイル言語またはインタープリター言語になる。適切なプロセッサには、一例として、汎用および専用のマイクロプロセッサが含まれる。一般的に、プロセッサは読み取り専用メモリおよび/またはランダムアクセスメモリから命令とデータを受信する。通常は、コンピュータには、データファイルを保存するための1つまたは複数の大容量記憶装置が含まれる。このようなデバイスには、内蔵ハードディスクやリムーバブルディスク、光磁気ディスク、光ディスクなどのディスクが含まれる。コンピュータプログラムの命令とデータを具体的に具現するのに適したストレージデバイスには、たとえば、EPROM、EEPROM、フラッシュメモリデバイスなどの半導体メモリデバイス、内蔵ハードディスクやリムーバブルディスクなどの磁気ディスク、光磁気ディスク、光ディスクなどを含むあらゆる形態の不揮発性メモリが含まれる。上記のいずれも、ASIC(application−specific integrated circuits:特定用途向け集積回路)およびその他の形式のハードウェアで補完(または統合)できる。
1 計算ノード
100 コンピュータシステム
110 コンポーネント
115 ジョブ
120 ネットワーク
125A-D トレーニングジョブ
130 計算ノード
140 トレーニンググループ
400 コンピュータシステム
410 ジョブサーバ
440 表示ノード
450 バッファノード
500 ジョブサーバ
540計算ノードマネージャ
550 ジョブモニタ
560 表示モジュール
600 計算ノード
610 インターフェースモジュール
620 制御モジュール
630 トレーニングモジュール
634 検証エンジン
640 パラメータ一貫性モジュール

Claims (20)

  1. ジョブサーバを備えるコンピュータシステムにおいて複数の機械学習モデルをトレーニングするための方法であって、前記ジョブサーバはネットワークを介して複数の計算ノードと通信し、各機械学習モデルはパラメータのセットを含み、前記方法は、
    前記ジョブサーバは、前記機械学習モデルをトレーニングするための複数のトレーニングジョブを受信することと、
    前記ジョブサーバは、前記トレーニングジョブの現在の要件と前記計算ノードの現在の状態に基づいて、前記トレーニングジョブを1つ以上の計算ノードからなるトレーニンググループに割り当てることであって、前記ジョブサーバは、どの計算ノードがどのトレーニンググループに含まれるかを決定することと、
    前記トレーニンググループが、前記トレーニンググループに割り当てられたトレーニングジョブを実行することと、を含み、
    前記実行は、
    前記機械学習モデルの前記パラメータの値を更新することと、及び
    2つ以上の計算ノードを含む少なくとも1つのトレーニンググループについて、トレーニンググループの計算ノードの間に前記パラメータの更新値を交換して、交換された更新値を使用して前記トレーニングジョブを進めることとを含む、前記方法。
  2. 前記コンピュータシステムは、マスターワーカーアーキテクチャを有し、前記ジョブサーバは、各トレーニンググループのマスタとして動作し、各トレーニンググループは、前記ジョブサーバのワーカーとして動作する、
    請求項1に記載の方法。
  3. 2つ以上の計算ノードを有する少なくとも1つのトレーニンググループ内にもマスターワーカーアーキテクチャを備え、前記トレーニンググループ中の1つの計算ノードは、前記トレーニンググループ中の残りの計算ノードのマスタとして動作し、前記残りの計算ノードは、この1つの計算ノードのワーカーとして動作する、
    請求項2に記載の方法。
  4. 2つ以上の計算ノードを有する少なくとも1つのトレーニンググループ内には、ピアツーピアアーキテクチャを有する、
    請求項2に記載の方法。
  5. 2つ以上の計算ノードを有する少なくとも1つのトレーニンググループにおいて、前記トレーニングジョブは、前記パラメータの初期値で開始し、前記パラメータの最終値で終了し、前記トレーニンググループ中の1つの計算ノードは、前記パラメータに対して前記初期値を前記最終値に更新され、格納される、
    請求項2に記載の方法。
  6. 前記ジョブサーバは、前記トレーニングジョブの現在の要件と前記計算ノードの現在の状態に基づいて、トレーニンググループに含まれた計算ノードを変更することをさらに含む、
    請求項1に記載の方法。
  7. 前記計算ノードの現在の状態に基づいて、前記トレーニングジョブをトレーニンググループに割り当てることは、前記計算ノードの現在の能力と前記計算ノードの現在の可用性に基づいて、前記トレーニングジョブをトレーニンググループに割り当てることを含む、
    請求項1に記載の方法。
  8. 前記ジョブサーバは、前記計算ノードの計算能力及び/または可用性に基づいて、前記計算ノードのデータストレージ能力及び/または可用性に基づいて、及び/または、前記計算ノードの通信能力及び/または可用性に基づいて、前記トレーニングジョブをトレーニンググループに割り当てる、
    請求項1に記載の方法。
  9. 前記トレーニンググループにおいて、前記ジョブサーバは、前記更新値が計算ノード間で交換されることを指定する、
    請求項1に記載の方法。
  10. 前記前記トレーニングジョブは、前記パラメータの初期値で始まり、前記パラメータの遷移値によって実行され、前記パラメータの最終値によって終了し、前記パラメータの遷移値と最終値は、前記ジョブサーバではなくて、前記トレーニンググループ中の計算ノードによって決定される、
    請求項1に記載の方法。
  11. 前記トレーニングジョブ中の少なくとも1つのトレーニングジョブに対して、前記ジョブサーバは、前記最終値にアクセスしない、
    請求項10に記載の方法。
  12. 前記ジョブサーバは、前記トレーニンググループに割り当てられたトレーニングジョブを前記トレーニンググループが実行することを監視することをさらに含む、
    請求項1に記載の方法。
  13. 前記ジョブサーバは、前記トレーニングジョブ中の少なくとも1つのトレーニングジョブのパラメータを視覚的に表示することをさらに含む、
    請求項1に記載の方法。
  14. 前記ジョブサーバは、前記計算ノードの現在の状態及び/または前記計算ノードの現在の可用性を視覚的に表示することをさらに含む、
    請求項1に記載の方法。
  15. 複数の機械学習モデルをトレーニングするための実行可能なコンピュータプログラム命令を格納する非一時的なコンピュータ可読記憶媒体であって、各機械学習モデルはパラメータのセットを含み、前記命令はプロセッサによって実行されて前記プロセッサに方法を実行させ、
    前記方法は、
    前記機械学習モデルをトレーニングするための複数のトレーニングジョブを受信することと、
    前記トレーニングジョブの現在の要件と計算ノードの現在の状態に基づいて、前記トレーニングジョブを1つ以上の計算ノードからなるトレーニンググループに割り当てることと、
    トレーニンググループが、前記トレーニンググループに割り当てられたトレーニングジョブを実行することと、を含み、
    前記実行は、
    前記機械学習モデルの前記パラメータの値を更新することと、及び
    2つ以上の計算ノードを含む少なくとも1つのトレーニンググループについて、トレーニンググループの計算ノードの間に前記パラメータの更新値を交換して、交換された更新値を使用して前記トレーニングジョブを進めることと、を含む、前記非一時的なコンピュータ可読記憶媒体。
  16. 複数の機械学習モデルをトレーニングするためのコンピュータシステムであって、各機械学習モデルはパラメータのセットを含み、前記コンピュータシステムは、
    ジョブサーバと、及び
    ジョブサーバと通信する複数の計算ノードとを備え、
    前記ジョブサーバは、前記機械学習モデルをトレーニングするための複数のトレーニングジョブを受信し、前記ジョブサーバが、前記トレーニングジョブの現在の要件と前記計算ノードの現在の状態に基づいて、前記トレーニングジョブを1つ以上の計算ノードからなるトレーニンググループに割り当てて、そして、前記ジョブサーバは、トレーニンググループに含まれた計算ノードを決定し、
    前記トレーニンググループが、前記トレーニンググループに割り当てられたトレーニングジョブを実行し、前記実行は、前記機械学習モデルの前記パラメータの値を更新することと、及び、2つ以上の計算ノードを含む少なくとも1つのトレーニンググループについて、トレーニンググループの計算ノードの間に前記パラメータの更新値を交換し、交換された更新値を使用して前記トレーニングジョブを進めることとを含む、前記コンピュータシステム。
  17. 前記ジョブサーバ及び前記複数の計算ノードは、合計で少なくとも1000個のプロセッサユニットを備える、
    請求項16に記載のコンピュータシステム。
  18. 前記コンピュータシステムはさらに、表示ノードを含み、
    前記表示ノードは、前記ジョブサーバと通信し、前記トレーニングジョブ中の少なくとも1つのトレーニングジョブのパラメータを視覚的に表示する、
    請求項16に記載のコンピュータシステム。
  19. 前記コンピュータシステムはさらに、バッファノードを備え、
    前記バッファノードは、前記計算ノードと通信し、前記計算ノードによって実行される次のトレーニングジョブで使用されるデータをバッファリングする、
    請求項16に記載のコンピュータシステム。
  20. 前記トレーニンググループ中の前記2つ以上の計算ノードは、前記計算ノードによって共有されるメモリを含み、前記計算ノードは、前記共有メモリ中の前記更新値の位置を交換することにより、前記パラメータの前記更新値を交換する、
    請求項16に記載のコンピュータシステム。
JP2019558354A 2017-04-26 2018-04-13 ジョブサーバを使用した大規模な分散システムでの機械学習モデルのトレーニング Active JP6894532B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/497,749 2017-04-26
US15/497,749 US20180314971A1 (en) 2017-04-26 2017-04-26 Training Machine Learning Models On A Large-Scale Distributed System Using A Job Server
PCT/CN2018/082970 WO2018196631A1 (en) 2017-04-26 2018-04-13 Training machine learning models on a large-scale distributed system using a job server

Publications (2)

Publication Number Publication Date
JP2020518065A true JP2020518065A (ja) 2020-06-18
JP6894532B2 JP6894532B2 (ja) 2021-06-30

Family

ID=63916703

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019558354A Active JP6894532B2 (ja) 2017-04-26 2018-04-13 ジョブサーバを使用した大規模な分散システムでの機械学習モデルのトレーニング

Country Status (6)

Country Link
US (1) US20180314971A1 (ja)
EP (1) EP3593247B1 (ja)
JP (1) JP6894532B2 (ja)
KR (1) KR102300984B1 (ja)
CN (1) CN110462591A (ja)
WO (1) WO2018196631A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022017588A (ja) * 2021-03-10 2022-01-25 ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド 深層学習フレームワークのトレーニング方法、装置及び記憶媒体
JP2022137193A (ja) * 2021-10-28 2022-09-21 ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド 深層学習モデルの分散トレーニング方法、装置、電子機器、記憶媒体およびコンピュータプログラム
JP2023171248A (ja) * 2022-05-18 2023-12-01 浙江工商大学 ディープラーニングに基づく分散式異種データの処理方法、装置及び設備

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11288575B2 (en) * 2017-05-18 2022-03-29 Microsoft Technology Licensing, Llc Asynchronous neural network training
US10235625B1 (en) * 2018-02-09 2019-03-19 Capital One Services, Llc Automatically scaling neural networks based on load
CN110389816B (zh) * 2018-04-20 2023-05-23 伊姆西Ip控股有限责任公司 用于资源调度的方法、装置以及计算机可读介质
CN110554912B (zh) * 2018-05-31 2022-05-20 杭州海康威视数字技术股份有限公司 调度设备执行任务的方法和装置
US20200090000A1 (en) * 2018-09-18 2020-03-19 Microsoft Technology Licensing, Llc Progress Portal for Synthetic Data Tasks
EP3895009A4 (en) * 2018-12-13 2022-06-22 Telefonaktiebolaget Lm Ericsson (Publ) METHOD AND MACHINE LEARNING AGENT FOR PERFORMING MACHINE LEARNING IN AN EDGE CLOUD
US11941493B2 (en) 2019-02-27 2024-03-26 International Business Machines Corporation Discovering and resolving training conflicts in machine learning systems
KR102096737B1 (ko) * 2019-03-28 2020-04-02 한국과학기술원 저밀도 패리티 검사 부호를 활용한 고장 방지 능력을 갖춘 분산 기계 학습 방법 및 그 장치
KR102648599B1 (ko) * 2019-04-09 2024-03-15 에이에스엠엘 네델란즈 비.브이. 설비 위치들 사이에서 예측 모델을 조절하기 위한 시스템 및 방법
US11886960B2 (en) 2019-05-07 2024-01-30 International Business Machines Corporation Elastic training of machine learning models via re-partitioning based on feedback from the training algorithm
US11573803B2 (en) 2019-05-07 2023-02-07 International Business Machines Corporation Parallel training of machine learning models
CN110728317A (zh) * 2019-09-30 2020-01-24 腾讯科技(深圳)有限公司 决策树模型的训练方法、系统、存储介质及预测方法
US20210097429A1 (en) * 2019-09-30 2021-04-01 Facebook, Inc. Machine learning training resource management
WO2021101945A1 (en) * 2019-11-19 2021-05-27 Captiv8, Inc. Systems and methods for identifying, tracking, and managing a plurality of social network users having predefined characteristcs
US11710068B2 (en) * 2019-11-24 2023-07-25 International Business Machines Corporation Labeling a dataset
CN112884157B (zh) * 2019-11-29 2024-03-26 北京达佳互联信息技术有限公司 一种模型训练方法、模型训练节点及参数服务器
US11379718B2 (en) 2019-12-10 2022-07-05 International Business Machines Corporation Ground truth quality for machine learning models
CN111027713B (zh) * 2019-12-10 2022-09-02 支付宝(杭州)信息技术有限公司 共享机器学习系统及方法
CN111143308B (zh) * 2019-12-26 2023-04-28 许昌中科森尼瑞技术有限公司 基于联邦学习的高低压电动机数据处理方法、系统及装置
CN111241745A (zh) * 2020-01-09 2020-06-05 深圳前海微众银行股份有限公司 逐步模型选择方法、设备及可读存储介质
CN111241746B (zh) * 2020-01-09 2024-01-26 深圳前海微众银行股份有限公司 向前模型选择方法、设备和可读存储介质
US11249861B2 (en) 2020-02-06 2022-02-15 Bank Of America Corporation Multi-layered disaster recovery manager
WO2021220616A1 (ja) * 2020-04-30 2021-11-04 ソニーグループ株式会社 情報処理装置及び情報処理方法、コンピュータプログラム、並びに分散学習システム
US11593714B2 (en) * 2020-05-06 2023-02-28 Citrix Systems, Inc. Adaptive anomaly detector
CN111722923A (zh) * 2020-05-29 2020-09-29 浪潮电子信息产业股份有限公司 一种异构资源的调用方法、装置和计算机可读存储介质
US11456917B2 (en) * 2020-06-01 2022-09-27 Cisco Technology, Inc. Analyzing deployed networks with respect to network solutions
KR102163402B1 (ko) 2020-06-15 2020-10-08 주식회사 딥노이드 멀티 노드와 멀티 gpu를 이용한 분산 학습 시스템 및 방법
US11651293B2 (en) 2020-07-22 2023-05-16 International Business Machines Corporation Hierarchical decentralized distributed deep learning training
CN111917579A (zh) * 2020-07-30 2020-11-10 云知声智能科技股份有限公司 分布式训练方法、装置、设备和存储介质
US20220287104A1 (en) * 2021-03-05 2022-09-08 Samsung Electronics Co., Ltd. Method and apparatus for support of machine learning or artificial intelligence techniques in communication systems
CN112966601A (zh) * 2021-03-05 2021-06-15 上海深硅信息科技有限公司 一种人工智能师徒半监督学习的方法
US20220374327A1 (en) * 2021-04-29 2022-11-24 International Business Machines Corporation Fair simultaneous comparison of parallel machine learning models
JPWO2023276382A1 (ja) * 2021-07-01 2023-01-05
CN114139723A (zh) * 2021-11-30 2022-03-04 支付宝(杭州)信息技术有限公司 用于深度学习模型训练的方法、装置及系统
US20230214837A1 (en) * 2022-01-04 2023-07-06 Fidelity Information Services, Llc. Methods, systems, and devices for machine learning-based contextual engagement decision engine
KR20240003537A (ko) * 2022-07-01 2024-01-09 몬드리안에이아이 주식회사 공유자원 기반 원격 분산 학습 시스템

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007533034A (ja) * 2004-04-15 2007-11-15 レイセオン カンパニー Hpcクラスタを管理するためのグラフィカル・ユーザ・インタフェース
US20130290223A1 (en) * 2012-04-27 2013-10-31 Yahoo! Inc. Method and system for distributed machine learning
JP2013228859A (ja) * 2012-04-25 2013-11-07 Toyota Motor Corp プラント制御装置
US20150379424A1 (en) * 2014-06-30 2015-12-31 Amazon Technologies, Inc. Machine learning service

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7596788B1 (en) * 2004-05-11 2009-09-29 Platform Computing Corporation Support of non-trivial scheduling policies along with topological properties
CN102073546B (zh) * 2010-12-13 2013-07-10 北京航空航天大学 一种云计算环境中分布式计算模式下的任务动态调度方法
CN102523249A (zh) * 2011-11-24 2012-06-27 哈尔滨工业大学 基于Web的分布式远程仿真系统及仿真方法
CN104714852B (zh) * 2015-03-17 2018-05-22 华中科技大学 一种适用于分布式机器学习的参数同步优化方法及其系统
CN106156810B (zh) * 2015-04-26 2019-12-03 阿里巴巴集团控股有限公司 通用机器学习算法模型训练方法、系统和计算节点
CN105069703B (zh) * 2015-08-10 2018-08-28 国家电网公司 一种电网海量数据管理方法
CN105575119B (zh) * 2015-12-29 2018-06-19 大连楼兰科技股份有限公司 路况气候深度学习及识别方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007533034A (ja) * 2004-04-15 2007-11-15 レイセオン カンパニー Hpcクラスタを管理するためのグラフィカル・ユーザ・インタフェース
JP2013228859A (ja) * 2012-04-25 2013-11-07 Toyota Motor Corp プラント制御装置
US20130290223A1 (en) * 2012-04-27 2013-10-31 Yahoo! Inc. Method and system for distributed machine learning
US20150379424A1 (en) * 2014-06-30 2015-12-31 Amazon Technologies, Inc. Machine learning service

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MARTIN ABADI, ET AL.: "TensorFlow: Large-Scale Machine Learning on Heterogeneous Distributed Systems", [ONLINE], JPN7020004088, 16 March 2016 (2016-03-16), ISSN: 0004410059 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022017588A (ja) * 2021-03-10 2022-01-25 ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド 深層学習フレームワークのトレーニング方法、装置及び記憶媒体
JP2022137193A (ja) * 2021-10-28 2022-09-21 ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド 深層学習モデルの分散トレーニング方法、装置、電子機器、記憶媒体およびコンピュータプログラム
JP7433373B2 (ja) 2021-10-28 2024-02-19 ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド 深層学習モデルの分散トレーニング方法、装置、電子機器、記憶媒体およびコンピュータプログラム
JP2023171248A (ja) * 2022-05-18 2023-12-01 浙江工商大学 ディープラーニングに基づく分散式異種データの処理方法、装置及び設備
JP7408042B2 (ja) 2022-05-18 2024-01-05 浙江工商大学 ディープラーニングに基づく分散式異種データの処理方法、装置及び設備

Also Published As

Publication number Publication date
EP3593247B1 (en) 2022-11-16
EP3593247A4 (en) 2020-05-13
EP3593247A1 (en) 2020-01-15
KR20190132475A (ko) 2019-11-27
CN110462591A (zh) 2019-11-15
KR102300984B1 (ko) 2021-09-09
JP6894532B2 (ja) 2021-06-30
US20180314971A1 (en) 2018-11-01
WO2018196631A1 (en) 2018-11-01

Similar Documents

Publication Publication Date Title
JP6894532B2 (ja) ジョブサーバを使用した大規模な分散システムでの機械学習モデルのトレーニング
US11507430B2 (en) Accelerated resource allocation techniques
CN110301128B (zh) 基于学习的资源管理数据中心云架构的实现方法
US8612987B2 (en) Prediction-based resource matching for grid environments
US10761897B2 (en) Predictive model-based intelligent system for automatically scaling and managing provisioned computing resources
US20200174844A1 (en) System and method for resource partitioning in distributed computing
Yang et al. Intermediate data caching optimization for multi-stage and parallel big data frameworks
US20180246765A1 (en) System and method for scheduling jobs in distributed datacenters
KR102199275B1 (ko) 분산 컴퓨팅 시스템에서의 적응적 리소스 관리
US11409576B2 (en) Dynamic distribution of a workload processing pipeline on a computing infrastructure
CN111984385A (zh) 基于装饰bim模型的任务调度方法和任务调度装置
US20230136661A1 (en) Task scheduling for machine-learning workloads
JP2016042284A (ja) 並列計算機システム、管理装置、並列計算機システムの制御方法及び管理装置の制御プログラム
CN116263701A (zh) 算力网络任务调度方法、装置、计算机设备及存储介质
US20220300323A1 (en) Job Scheduling Method and Job Scheduling Apparatus
US11521042B2 (en) System and method to dynamically and automatically sharing resources of coprocessor AI accelerators
Razavi et al. FA2: Fast, accurate autoscaling for serving deep learning inference with SLA guarantees
Niu et al. An adaptive efficiency-fairness meta-scheduler for data-intensive computing
Jena et al. Improving quality of service constraints of Cloud data centers
CN110427217B (zh) 基于内容的发布订阅系统匹配算法轻量级并行方法和系统
Cano et al. ADARES: adaptive resource management for virtual machines
Manikonda et al. A Novel Method for Dynamic Scheduling for Stochastic Edge-Cloud Computing Environments
Tairin et al. Embracing Uncertainty for Equity in Resource Allocation in ML Training
US20230007856A1 (en) Real-time dynamic container optimization computing platform
US20230185622A1 (en) Graph Execution Engine

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191025

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201222

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210217

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: 20210525

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210603

R150 Certificate of patent or registration of utility model

Ref document number: 6894532

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250