JP2019109875A - System, program and method - Google Patents
System, program and method Download PDFInfo
- Publication number
- JP2019109875A JP2019109875A JP2018159500A JP2018159500A JP2019109875A JP 2019109875 A JP2019109875 A JP 2019109875A JP 2018159500 A JP2018159500 A JP 2018159500A JP 2018159500 A JP2018159500 A JP 2018159500A JP 2019109875 A JP2019109875 A JP 2019109875A
- Authority
- JP
- Japan
- Prior art keywords
- node
- weighting factor
- gradient
- group
- parallel distributed
- 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
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
Description
本発明の実施形態は、システム、プログラム及び方法に関する。 Embodiments of the present invention relate to a system, a program and a method.
近年、機械学習の1つであるディープラーニングによるデータの有効活用が期待されている。ディープラーニングにおいて、大規模なデータを用いた学習結果をより高速に得るためには、複数のノード(コンピュータ)による学習の並列処理を実行し、各ノードによる学習経過を共有する並列分散学習処理が求められる。このような並列分散学習処理では、ノード間での通信によって学習経過を示すデータが共有される。 In recent years, effective use of data by deep learning which is one of machine learning is expected. In deep learning, in order to obtain learning results using large-scale data at high speed, parallel distributed learning processing is performed in which parallel processing of learning by a plurality of nodes (computers) is performed and learning progress by each node is shared. Desired. In such parallel distributed learning processing, data indicating learning progress is shared by communication between nodes.
ここで、上記した学習結果をより高速に得るために並列処理を実行するノードの数を増加させることが考えられるが、一般的な並列分散学習処理においては、当該ノード数を増加させたとしても効率的に学習結果を得ることができない(つまり、学習速度がスケールしない)場合があり、高いスケーラビリティを実現することは困難である。 Here, it is conceivable to increase the number of nodes executing parallel processing in order to obtain the above-described learning result more quickly, but in general parallel distributed learning processing, even if the number of nodes is increased. In some cases, learning results can not be obtained efficiently (that is, learning speed does not scale), and it is difficult to achieve high scalability.
そこで、本発明が解決しようとする課題は、並列分散学習処理における高いスケーラビリティを実現することが可能なシステム、プログラム及び方法を提供することにある。 Therefore, the problem to be solved by the present invention is to provide a system, a program, and a method capable of realizing high scalability in parallel distributed learning processing.
本実施形態に係るシステムは、第1グループに属する第1ノードと第2ノードと、第2グループに属する第3ノードと第4ノードと、を備える。前記システムは、前記第1ノードと前記第2ノードがn(nは自然数)回目の並列分散処理を実行する場合に、前記第1ノードによって目的関数の第1重み係数を第2重み係数へ更新するための第1勾配が算出され、かつ、前記第2ノードによって目的関数の前記第1重み係数を前記第2重み係数へ更新するための第2勾配が算出され、前記第3ノードと前記第4ノードとがm(mは自然数)回目の並列分散処理を実行する場合に、前記第3ノードによって目的関数の第3重み係数を第4重み係数へ更新するための第3勾配が算出され、かつ、前記第4ノードによって目的関数の前記第3重み係数を前記第4重み係数へ更新するための第4勾配が算出され、前記第1ノードと前記第2ノードとによる勾配の算出が、前記第3ノードと前記第4ノードとによる勾配の算出よりも早い場合、前記第1ノードと前記第2ノードとが実行するn+1回目の並列分散処理では、前記第1乃至第2勾配に基づいて前記第1重み係数から更新された前記第2重み係数をさらに更新し、かつ、前記第3ノードと前記第4ノードとが実行するm+1回目の並列分散処理では、前記第1乃至第4勾配に基づいて前記第3重み係数から更新された第4重み係数をさらに更新するものである。 The system according to the present embodiment includes a first node and a second node belonging to a first group, and a third node and a fourth node belonging to a second group. The system updates the first weighting factor of the objective function to the second weighting factor by the first node when the first node and the second node execute n (n is a natural number) parallel distributed processing A second gradient for updating the first weighting factor of the objective function to the second weighting factor is calculated by the second node, and the third node and the second When the fourth node executes m (m is a natural number) parallel distributed processing, a third gradient is calculated by the third node to update the third weighting factor of the objective function to the fourth weighting factor, And a fourth gradient for updating the third weighting coefficient of the objective function to the fourth weighting coefficient is calculated by the fourth node, and calculation of the gradient by the first node and the second node is the same as the fourth gradient. Third node and the fourth Update the first weighting factor based on the first and second gradients in the (n + 1) th parallel distributed processing executed by the first node and the second node if the calculation is faster than the calculation of the gradient by the In the m + 1th parallel distributed processing performed by the third node and the fourth node to further update the second weighting factor, and the third weighting factor based on the first to fourth gradients Are further updated.
以下、図面を参照して、各実施形態について説明する。
(第1の実施形態)
本実施形態に係るシステムは、例えば大規模なデータを扱うディープラーニングにおいて目的関数を基準とする並列分散学習処理を実行する。なお、目的関数を基準とする並列分散学習処理とは、目的関数を学習結果のフィードバック(評価値)として用いて、複数の処理主体で学習されるものであればどのようなものであってもよく、例えば目的関数を最適化するための並列分散学習処理である。
Hereinafter, each embodiment will be described with reference to the drawings.
First Embodiment
The system according to the present embodiment executes, for example, parallel distributed learning processing based on an objective function in deep learning that handles large-scale data. In addition, parallel distributed learning processing based on the objective function is any processing that can be learned by a plurality of processing subjects using the objective function as feedback (evaluation value) of the learning result. For example, parallel distributed learning processing for optimizing an objective function.
ところで、ディープラーニングでは、目的関数を最適化する手法として、例えば確率的勾配降下法(SGD:stochastic gradient descent)が用いられる。このSGDでは、勾配(ベクトル)と称される最適解方向へのベクトルを用いて、目的関数のパラメータが繰り返し更新される。なお、目的関数のパラメータには、例えば重み係数が含まれる。 In deep learning, stochastic gradient descent (SGD), for example, is used as a method of optimizing an objective function. In SGD, parameters of the objective function are repeatedly updated using a vector in the direction of an optimal solution called a gradient (vector). The parameters of the objective function include, for example, weighting factors.
SGDにおける現在の状態を示す重み係数(重みベクトル)、勾配ベクトル及び学習係数をそれぞれW(t)、∇W(t)、ε(t)とすると、更新後の重み係数W(t+1)は、以下の式で表される。 Assuming that the weighting factor (weighting vector) indicating the current state in SGD, the gradient vector and the learning factor are W (t) , ∇W (t) and ε (t) , the weighting factor W (t + 1) after update Is expressed by the following equation.
W(t+1)=W(t)−ε(t)∇W(t) 式(1)
なお、更新幅を決定する学習係数ε(t)は学習の進度に応じて適応的に決定され、例えば学習の進度に応じて減衰する。
W (t + 1) = W (t) -ε (t) ∇ W (t) Formula (1)
The learning coefficient ε (t) for determining the update width is adaptively determined according to the progress of learning, and attenuates according to the progress of learning, for example.
上記した勾配は、訓練事例である学習データを目的関数に入力することで得られるが、計算コストの観点から複数の学習データをまとめて入力して平均勾配を得る「ミニバッチ法」が一般的に使用される。この平均勾配を得るための学習データの数はバッチサイズと称される。SGDによる最適化を並列分散化する際に共有する学習経過としては例えば勾配が用いられる。 The gradient described above can be obtained by inputting training data that is a training case into an objective function, but the “mini-batch method” is generally used in which a plurality of learning data are input together to obtain an average gradient from the viewpoint of calculation cost. used. The number of training data to obtain this average gradient is called the batch size. For example, a gradient is used as a learning process shared in parallel decentralization of optimization by SGD.
ここで、並列分散学習の主要なアルゴリズムとしては、例えば同期型の並列分散学習方式及び非同期型の並列分散学習方式がある。 Here, as a main algorithm of parallel distributed learning, there are, for example, a synchronous parallel distributed learning method and an asynchronous parallel distributed learning method.
上記した並列分散学習処理においては複数のノードに勾配計算を実行させるが、同期型の並列分散学習方式は、当該複数のノードにおける勾配計算が同期して実行される方式である。具体的には、同期型の並列分散学習方式の一例としてはSynchronous−SGDが挙げられるが、当該Synchronous−SGDによれば、上記したミニバッチ法の勾配計算を複数ノードに分散し、全ノードが計算した勾配の平均値を重み係数の更新に用いる。なお、Synchronous−SGDの実施態様は複数存在し、例えば全ノード間で勾配を共有する集団通信型と、パラメータサーバと称されるノードに勾配を集約して重み係数の更新処理を行い、当該更新された重み係数を各ノードに配布するパラメータサーバ型等がある。 In the above-described parallel distributed learning processing, a plurality of nodes are caused to execute gradient calculation, but the synchronous parallel distributed learning method is a method in which gradient calculations in the plurality of nodes are executed in synchronization. Specifically, Synchronous-SGD is mentioned as an example of the synchronous parallel distributed learning method, but according to the Synchronous-SGD, the gradient calculation of the mini-batch method described above is distributed to a plurality of nodes, and all the nodes are calculated. The average value of the slopes is used to update the weighting factor. There are a plurality of Synchronous-SGD embodiments, for example, collective communication type in which all nodes share a gradient, and gradients are summarized in nodes called parameter servers to perform weighting factor update processing, and the update There is a parameter server type or the like that distributes the weighted coefficients to each node.
同期型の並列分散方式においては、勾配を計算するノード数(並列数)が増えるほど同期コストが増大し、処理スループットが低下すること、当該ノード数が増えるほどバッチサイズが増大し、汎化性能が低下すること、全体の処理速度が複数のノードの中の処理の遅いノードの処理速度の影響を受けること等が知られている。 In the synchronous parallel distributed system, the synchronization cost increases as the number of nodes for calculating the gradient (the number of parallel operations) increases, the processing throughput decreases, and the batch size increases as the number of nodes increases, and the generalization performance It is known that the overall processing speed is affected by the processing speed of slow processing nodes among multiple nodes.
一方、非同期型の並列分散学習方式は、複数のノードにおける勾配計算が非同期で実行される方式である。具体的には、非同期型の並列分散学習方式の一例としてはAsybchronous−SGDが挙げられるが、当該Asynchronous−SGDは、Synchronous−SGDと同様に勾配を共有するアルゴリズムである。しかしながら、Asynchronous−SGDによれば、同期による勾配の平均化を行うことなく、各ノードが計算した勾配をそのまま用いて重み係数が更新される。なお、Asynchronous−SGDの実施態様はパラメータサーバ型が主である。 On the other hand, the asynchronous parallel distributed learning method is a method in which gradient calculations in a plurality of nodes are executed asynchronously. Specifically, as an example of an asynchronous parallel distributed learning system, there is an Asybchronous-SGD, but the Asynchronous-SGD is an algorithm that shares a gradient in the same manner as the Synchronous-SGD. However, according to Asynchronous-SGD, the weighting factor is updated using the gradient calculated by each node as it is without performing gradient averaging by synchronization. The embodiment of Asynchronous-SGD is mainly a parameter server type.
非同期型の並列分散学習方式においては、同期型の並列分散方式と比較して高い処理スループットが得られるが、ノード毎の処理速度の差により収束速度が低下する等の要因からスケーラビリティには限界があることが知られている。 In the asynchronous parallel distributed learning method, higher processing throughput is obtained compared to the synchronous parallel distributed method, but due to factors such as the convergence speed decreasing due to the difference in processing speed between nodes, the scalability is limited. It is known that there is.
なお、Synchronous−SGDとは異なるアプローチのAsynchronous−SGDは、当該Synchronous−SGDとは異なり、バッチサイズに依存しない並列分散学習アルゴリズムであることから、バッチサイズ非依存並列方式(処理)等と称される。なお、バッチサイズ非依存並列方式は、その多くが非同期型の並列分散学習方式である。 Note that Asynchronous-SGD, which is an approach different from Synchronous-SGD, is a parallel distributed learning algorithm that does not depend on batch size, unlike the Synchronous-SGD, and is therefore called a batch size independent parallel method (processing) or the like. Ru. The batch size independent parallel method is mostly an asynchronous parallel distributed learning method.
ここで、図1を参照して、本実施形態に係るシステム(以下、本システムと表記)の概要について説明する。本システムは、並列分散学習処理において、階層的に異なる学習処理(例えばSynchronous−SGDと他のバッチサイズ非依存並列方式)を実行可能な構成を有するものとする。 Here, with reference to FIG. 1, an outline of a system according to the present embodiment (hereinafter, referred to as the present system) will be described. The present system is assumed to have a configuration capable of executing hierarchically different learning processing (for example, Synchronous-SGD and other batch size independent parallel methods) in parallel distributed learning processing.
具体的には、図1に示すように、第一階層においては複数のノードが属する各グループ内でSynchronous−SGDによるミニバッチ法の並列分散処理を行い、第二階層では第一階層における各グループの代表ノード同士でバッチサイズ非依存並列分散処理を行うものとする。以下、本システムについて詳細に説明する。 Specifically, as shown in FIG. 1, parallel distributed processing of the mini-batch method by Synchronous-SGD is performed in each group to which a plurality of nodes belong in the first hierarchy, and in the second hierarchy, each group in the first hierarchy is It is assumed that batch size independent parallel distributed processing is performed between representative nodes. Hereinafter, the present system will be described in detail.
図2は、本システムの構成の一例を示す。図2に示すように、本システム10は、サーバノード20、複数のワーカノード30及び複数のワーカノード40を備える。
FIG. 2 shows an example of the configuration of the present system. As shown in FIG. 2, the present system 10 includes a
本実施形態において、複数のワーカノード30はグループ1に属しており、複数のワーカノード40はグループ2に属している。
In the present embodiment, the plurality of
サーバノード20は、グループ1に属する複数のワーカノード30のうちの1つのワーカノード30(以下、グループ1の代表ノード30と表記)と通信可能に接続される。また、サーバノード20は、グループ2に属する複数のワーカノード30のうちの1つのワーカノード40(以下、グループ2の代表ノード40と表記)と通信可能に接続される。
なお、複数のワーカノード30のうち、サーバノード20と通信可能に接続されていないワーカノード30(つまり、グループ1の代表ノード30以外のワーカノード30)は、グループ1の非代表ノード30と称する。また、複数のワーカノード40のうち、サーバノード20と通信可能に接続されていないワーカノード40(つまり、グループ2の代表ノード40以外のワーカノード40)は、グループ2の非代表ノード40と称する。
Among the plurality of
グループ1内において、複数のワーカノード30(代表ノード30及び非代表ノード30)は、互いに通信可能に接続されている。同様に、グループ2内において、複数のワーカノード40(代表ノード40及び非代表ノード40)は、互いに通信可能に接続されている。
In
本実施形態において、第一階層では、グループ1(複数のワーカノード30)及びグループ2(複数のワーカノード40)内でそれぞれSynchronous−SGDによるミニバッチ法の並列分散学習処理が実行される。また、第二階層では、サーバノード20を介して、グループ1の代表ノード30及びグループ2の代表ノード40同士でバッチサイズ非依存並列分散方式による並列分散学習処理が実行される。
In this embodiment, in the first hierarchy, parallel distributed learning processing of the mini-batch method by Synchronous-SGD is executed in each of the group 1 (the plurality of worker nodes 30) and the group 2 (the plurality of worker nodes 40). Further, in the second hierarchy, parallel distributed learning processing by the batch size independent parallel distributed method is executed between the
なお、図2においてはグループ1及びグループ2にそれぞれ3つのワーカノードが属している例が示されているが、グループ1及びグループ2には2つ以上のワーカノードが属していればよい。また、図2においては2つのグループ(グループ1及びグループ2)のみが示されているが、本システムにおいては、3つ以上のグループを備えていてもよい。
Although FIG. 2 shows an example in which three worker nodes belong to
図3は、図2に示すサーバノード20のシステム構成の一例を示す。サーバノード20は、CPU201、システムコントローラ202、主メモリ203、BIOS−ROM204、不揮発性メモリ205、通信デバイス206、エンベデッドコントローラ(EC)207等を備える。
FIG. 3 shows an example of the system configuration of the
CPU201は、サーバノード20内の様々なコンポーネントの動作を制御するプロセッサである。CPU201は、ストレージデバイスである不揮発性メモリ205から主メモリ203にロードされる様々なプログラムを実行する。これらプログラムには、オペレーティングシステム(OS)203a、及び様々なアプリケーションプログラムが含まれている。アプリケーションプログラムには、サーバノード用の並列分散学習プログラム203bが含まれている。
The CPU 201 is a processor that controls the operation of various components in the
また、CPU201は、BIOS−ROM204に格納された基本入出力システム(BIOS)も実行する。BIOSは、ハードウェア制御のためのプログラムである。
The CPU 201 also executes a basic input / output system (BIOS) stored in the BIOS-
システムコントローラ202は、CPU201のローカルバスと各種コンポーネントとの間を接続するデバイスである。システムコントローラ202には、主メモリ203をアクセス制御するメモリコントローラも内蔵されている。
The
通信デバイス206は、有線または無線による通信を実行するように構成されたデバイスである。通信デバイス206は、信号を送信する送信部と、信号を受信する受信部とを含む。EC207は、電力管理のためのエンベデッドコントローラを含むワンチップマイクロコンピュータである。
The
図4は、ワーカノード30のシステム構成の一例を示す。ここでは、ワーカノード30のシステム構成について説明するが、ワーカノード40についても同様の構成であるものとする。
FIG. 4 shows an example of the system configuration of the
ワーカノード30は、CPU301、システムコントローラ302、主メモリ303、BIOS−ROM304、不揮発性メモリ305、通信デバイス306、エンベデッドコントローラ(EC)307等を備える。
The
CPU301は、ワーカノード30内の様々なコンポーネントの動作を制御するプロセッサである。CPU301は、ストレージデバイスである不揮発性メモリ305から主メモリ303にロードされる様々なプログラムを実行する。これらプログラムには、オペレーティングシステム(OS)303a及び様々なアプリケーションプログラムが含まれている。アプリケーションプログラムには、ワーカノード用の並列分散学習プログラム303bが含まれている。
The
また、CPU301は、BIOS−ROM304に格納された基本入出力システム(BIOS)も実行する。BIOSは、ハードウェア制御のためのプログラムである。
The
システムコントローラ302は、CPU301のローカルバスと各種コンポーネントとの間を接続するデバイスである。システムコントローラ302には、主メモリ303をアクセス制御するメモリコントローラも内蔵されている。
The
通信デバイス306は、有線または無線による通信を実行するように構成されたデバイスである。通信デバイス306は、信号を送信する送信部と、信号を受信する受信部とを含む。EC307は、電力管理のためのエンベデッドコントローラを含むワンチップマイクロコンピュータである。
The
図5は、サーバノード20の機能構成の一例を示すブロック図である。図5に示すように、サーバノード20は、学習データ格納部21、データ割当部22、送信制御部23、重み係数格納部24、受信制御部25及び算出部26を含む。
FIG. 5 is a block diagram showing an example of a functional configuration of the
本実施形態において、学習データ格納部21及び重み係数格納部24は、例えば図3に示す不揮発性メモリ205等に格納される。また、本実施形態において、データ割当部22、送信制御部23、受信制御部25及び算出部26は、例えば図3に示すCPU201(つまり、サーバノード20のコンピュータ)が不揮発性メモリ205に格納されている並列分散学習プログラム203bを実行すること(つまり、ソフトウェア)により実現されるものとする。なお、この並列分散学習プログラム203bは、コンピュータ読み取り可能な記憶媒体に予め格納して頒布可能である。また、並列分散学習プログラム203bは、例えばネットワークを介してサーバノード20にダウンロードされても構わない。
In the present embodiment, the learning
ここでは、各部22、23、25及び26がソフトウェアにより実現されるものとして説明したが、これらの各部22、23、25及び26は、ハードウェアにより実現されてもよいし、ソフトウェア及びハードウェアの組み合わせ構成によって実現されてもよい。
Here, although each
学習データ格納部21には、上記した並列分散学習処理において各ノード(ワーカノード)が勾配を計算するために用いられる学習データが格納されている。
The learning
データ割当部22は、学習データ格納部21に格納されている学習データのうち、各ワーカノード30及び40に割り当てられる学習データを決定する。データ割当部22は、例えば学習データ格納部21に格納されている学習データを2つに分割し、当該分割された学習データのそれぞれをグループ1(に属する複数のワーカノード30)及びグループ2(に属する複数のワーカノード40)に割り当てる。
The
送信制御部23は、通信デバイス206を介して各種データを送信する機能を有する。送信制御部23は、データ割当部22によってグループ1(に属する複数のワーカノード30)に割り当てられた学習データを、当該グループ1の代表ノード30に送信する。また、送信制御部23は、データ割当部22によってグループ2(に属する複数のワーカノード40)に割り当てられた学習データを、当該グループ2の代表ノード40に送信する。
The
重み係数格納部24には、目的関数の重み係数が格納されている。なお、重み係数格納部24に格納されている重み係数(つまり、サーバノード20において管理される重み係数)は、マスタパラメータと称される。
The weighting
受信制御部25は、通信デバイス206を介して各種データを受信する機能を有する。受信制御部25は、各ワーカノード30及び40上での学習経過を示す勾配を受信する。なお、受信制御部25によって受信される勾配は、重み係数を更新するために各ワーカノード30及び40において算出される。グループ1に属するワーカノード30の各々によって算出された勾配は、当該グループ1の代表ノード30から受信される。グループ2に属するワーカノード40の各々によって算出された勾配は、当該グループ2の代表ノード40から受信される。
The
算出部26は、重み係数格納部24に格納されている重み係数(マスタパラメータ)及び受信制御部25によって受信された勾配を用いて、当該マスタパラメータを更新する。この場合、算出部26は、上記した式(1)に基づいて更新後の重み係数を算出する。算出部26によって算出された重み係数(更新後の重み係数)は、マスタパラメータとして重み係数格納部24に格納されるとともに、送信制御部23によってグループ1の代表ノード30またはグループ2の代表ノード40に送信される。
The
以下、複数のワーカノード30及び40の機能構成について説明する。まず、図6を参照して、グループ1の代表ノード30の機能構成の一例について説明する。
The functional configuration of the plurality of
図6に示すように、グループ1の代表ノード30は、受信制御部31、学習データ格納部32、重み係数格納部33、算出部34及び送信制御部35を含む。
As shown in FIG. 6, the
本実施形態において、受信制御部31、算出部34及び送信制御部35は、例えば図4に示すCPU301(つまり、グループ1の代表ノード30のコンピュータ)が不揮発性メモリ305に格納されている並列分散学習プログラム303bを実行すること(つまり、ソフトウェア)により実現されるものとする。なお、この並列分散学習プログラム303bは、コンピュータ読み取り可能な記憶媒体に予め格納して頒布可能である。また、並列分散学習プログラム303bは、例えばネットワークを介して代表ノード30にダウンロードされても構わない。
In the present embodiment, the
ここでは、各部31、34及び35がソフトウェアにより実現されるものとして説明したが、これらの各部31、34及び35は、ハードウェアにより実現されてもよいし、ソフトウェア及びハードウェアの組み合わせ構成によって実現されてもよい。
Here, although the
また、本実施形態において、学習データ格納部32及び重み係数格納部33は、例えば図4に示す不揮発性メモリ305等に格納される。
Further, in the present embodiment, the learning data storage unit 32 and the weighting
受信制御部31は通信デバイス306を介して各種データを受信する機能を有する。受信制御部31は、サーバノード20に含まれる送信制御部23によって送信された学習データを受信する。受信制御部31によって受信された学習データのうち、グループ1の代表ノード30に割り当てられた学習データは、学習データ格納部32に格納される。一方、受信制御部31によって受信された学習データのうち、グループ1の非代表ノード30に割り当てられた学習データは、グループ1の代表ノード30から非代表ノード30に送信される。
The
また、受信制御部31は、グループ1の非代表ノード30において算出された勾配を、当該非代表ノード30から受信する。
Further, the
重み係数格納部33には、目的関数の重み係数が格納されている。なお、重み係数格納部33に格納されている重み係数(つまり、代表ノード30において管理される重み係数)は、便宜的にグループ1の代表ノード30の重み係数と称する。
The weighting
算出部34は、学習データ格納部32に格納された学習データ及び重み係数格納部33に格納されている重み係数を用いて、目的関数の重み係数を更新するための勾配を算出する。
The
送信制御部35は、通信デバイス306を介して各種データを送信する機能を有する。送信制御部35は、受信制御部31によって受信された勾配(非代表ノード30において算出された勾配)及び算出部34によって算出された勾配をサーバノード20に送信する。
The
なお、上記したようにサーバノード20に含まれる算出部26によって算出された重み係数(更新後の重み係数)が当該サーバノード20(送信制御部23)から送信された場合、当該重み係数は、受信制御部31によって受信され、重み係数格納部33に格納されている重み係数(更新前の重み係数)と置換される。これにより、グループ1の代表ノード30の重み係数が更新される。また、この重み係数は、送信制御部35を介して非代表ノード30に送信される。
When the weighting factor (weighting factor after update) calculated by the calculating
次に、グループ1の非代表ノード30の機能構成の一例について説明する。なお、グループ1の非代表ノード30の機能構成については便宜的に図6を用いて説明するが、ここでは上記したグループ1の代表ノード30と異なる部分について主に述べる。
Next, an example of a functional configuration of the
グループ1の非代表ノード30は、上記したグループ1の代表ノード30と同様に、図6に示す受信制御部31、学習データ格納部32、重み係数格納部33、算出部34及び送信制御部35を含む。
Similar to the
受信制御部31は、グループ1の代表ノード30から送信された学習データを受信する。受信制御部31によって受信された学習データは、学習データ格納部32に格納される。
The
重み係数格納部33には、目的関数の重み係数が格納されている。なお、重み係数格納部33に格納されている重み係数(つまり、非代表ノード30において管理される重み係数)は、便宜的にグループ1の非代表ノード30の重み係数と称する。
The weighting
上記したようにグループ1の代表ノード30から重み係数(更新後の重み係数)が送信された場合、当該重み係数は、受信制御部31によって受信され、重み係数格納部33に格納されている重み係数(更新前の重み係数)と置換される。これにより、グループ1の非代表ノード30の重み係数が更新される。
As described above, when the weighting factor (weighting factor after update) is transmitted from the
算出部34は、学習データ格納部32に格納された学習データ及び重み係数格納部33に格納されている重み係数を用いて、目的関数の重み係数を更新するための勾配を算出する。算出部34によって算出された勾配は、送信制御部35によって代表ノード30に送信される。
The
ここでは、グループ1の代表ノード30及び非代表ノード30について説明したが、本実施形態においては、グループ2の代表ノード40及び非代表ノード40についてもグループ1の代表ノード30及び非代表ノード30と同様の機能構成であるものとする。このため、以下においてグループ2の代表ノード40及び非代表ノード40の機能構成について述べる場合には図6を用いるものとする。
Here, although the
以下、図7のシーケンスチャートを参照して、本システムの処理手順の一例について説明する。ここでは、サーバノード20、グループ1(複数のワーカノード30)及びグループ2(複数のワーカノード40)間の処理について主に説明し、各グループ(グループ1及びグループ2)内のワーカノードの処理については後述する。
Hereinafter, an example of the processing procedure of the present system will be described with reference to the sequence chart of FIG. Here, processing between the
なお、グループ1に属する複数のワーカノード30の各々に割り当てられた学習データは、当該ワーカノード30に含まれる学習データ格納部32に格納されているものとする。グループ2に属する複数のワーカノード40についても同様である。
The learning data assigned to each of the plurality of
また、サーバノード20に含まれる重み係数格納部24、複数のワーカノード30及び40の各々に含まれる重み係数格納部33には、例えば同一の重み係数(以下、重み係数W0と表記)が格納されているものとする。
Also, in the weighting
この場合、グループ1(に属する複数のワーカノード30)においては、勾配算出処理が行われる(ステップS1)。この勾配算出処理によれば、グループ1に属する複数のワーカノード30の各々は、当該ワーカノード30に含まれる学習データ格納部32に格納されている学習データ及び重み係数格納部33に格納されている重み係数W0を用いて、目的関数の重み係数を更新するための勾配を算出する。なお、グループ1に属する複数のワーカノード30の各々は、互いに同期して勾配算出処理を実行する。
In this case, gradient calculation processing is performed in group 1 (a plurality of
このようにステップS1において複数のワーカノード30によって算出された勾配は、グループ1の代表ノード30からサーバノード20に送信される(ステップS2)。
Thus, the gradients calculated by the plurality of
サーバノード20(に含まれる受信制御部25)は、ステップS2において送信された勾配を受信する。サーバノード20(に含まれる算出部26)は、受信された勾配と当該サーバノード20に含まれる重み係数格納部24に格納されている重み係数W0を用いて新たな重み係数(以下、重み係数W1と表記)を算出する。これにより、重み係数格納部24に格納されている重み係数W0は、算出された重み係数W1に更新される(ステップS3)。
The server node 20 (
サーバノード20(に含まれる送信制御部23)は、ステップS3において重み係数W0から更新された重み係数W1(更新後のマスタパラメータ)を、グループ1に配布する(ステップS4)。
The server node 20 (the
このようにサーバノード20から配布された重み係数W1は、グループ1に属する複数のワーカノード30の各々に含まれる重み係数格納部33に格納される。この場合、グループ1においては、グループ1において算出された勾配が反映された重み係数を用いて、次回以降の勾配算出処理を実行することができる。
The weighting factor W1 distributed from the
一方、グループ2(に属する複数のワーカノード40)においては、グループ1と同様に、勾配算出処理が行われる(ステップS5)。この勾配算出処理によれば、グループ2に属する複数のワーカノード40の各々は、当該ワーカノード40に含まれる学習データ格納部32に格納されている学習データ及び重み係数格納部33に格納されている重み係数W0を用いて、目的関数の重み係数を更新するための勾配を算出する。なお、グループ2に属する複数のワーカノード40の各々は、互いに同期して勾配算出処理を実行する。
On the other hand, in the group 2 (a plurality of
このようにステップS5において算出された勾配は、グループ2の代表ノード40からサーバノード20に送信される(ステップS6)。
The gradient calculated in step S5 as described above is transmitted from the
サーバノード20は、ステップS6において送信された勾配を受信する。ここで、サーバノード20に含まれる重み係数格納部24に格納されている重み係数(マスタパラメータ)は、ステップS3において更新された重み係数W1である。
The
このため、サーバノード20は、受信された勾配と重み係数W1とを用いて新たな重み係数(以下、重み係数W2と表記)を算出する。これにより、重み係数格納部24に格納されている重み係数W1は、算出された重み係数W2に更新される(ステップS7)。
Therefore, the
サーバノード20は、ステップS7において重み係数W1から更新された重み係数W2(マスタパラメータ)を、グループ2に配布する(ステップS8)。
The
このようにサーバノード20から配布された重み係数W2は、グループ2に属する複数のワーカノード40の各々に含まれる重み係数格納部33に格納される。
The weighting factor W2 distributed from the
ここで、重み係数W2は、グループ1において算出された勾配を用いて更新された重み係数W1がグループ2において算出された勾配を用いて更に更新されたものである。すなわち、重み係数W2は、グループ1において算出された勾配(ステップS1において算出された勾配)及びグループ2において算出された勾配(ステップS5において算出された勾配)に基づいて算出された重み係数である。このようにグループ1による勾配の算出がグループ2による勾配の算出よりも早い場合、グループ2においては、グループ1において算出された勾配に基づいて更新された重み係数を用いた並列分散学習処理が実行される。
Here, the weighting factor W2 is one in which the weighting factor W1 updated using the gradient calculated in
このため、グループ2においては、当該グループ2において算出された勾配だけでなく、グループ1において算出された勾配もが反映された重み係数を用いて、次回以降の勾配算出処理を実行することができる。
For this reason, in the group 2, it is possible to execute the gradient calculation process after the next time using a weighting factor in which not only the gradient calculated in the group 2 but also the gradient calculated in the
また、上記したステップS1〜S4の処理が実行された場合、グループ1においては、当該ステップS1〜S4の処理に相当するステップS9〜S12の処理が実行される。この処理においては、グループ1における勾配算出処理によって算出された勾配とサーバノード20に含まれる重み係数格納部24に格納されている重み係数W2を用いて、当該重み係数W2が新たな重み係数(以下、重み係数W3と表記)に更新される。この重み係数W3は、グループ1に属する複数のワーカノード30に配布される。なお、ステップS9においては、ステップS1の勾配算出処理において用いられた学習データとは異なる学習データを用いて勾配を算出するものとする。
Further, when the processing of steps S1 to S4 described above is performed, in
ここで、重み係数W3は、グループ2において算出された勾配を用いて更新された重み係数W2がグループ1において算出された勾配を用いて更に更新されたものである。このようにグループ2による勾配の算出がグループ1による勾配の算出よりも早い場合、グループ1においては、グループ2において算出された勾配に基づいて更新された重み係数を用いた並列分散学習処理が実行される。
Here, the weighting factor W3 is one in which the weighting factor W2 updated using the gradient calculated in group 2 is further updated using the gradient calculated in
このため、グループ1においては、当該グループ1において算出された勾配(ステップS1及びS9において算出された勾配)だけでなく、グループ2において算出された勾配(ステップS5において算出された勾配)もが反映された重み係数を用いて、次回以降の勾配算出処理を実行することができる。
Therefore, in the
一方、上記したステップS5〜S8の処理が実行された場合、グループ2においては、当該ステップS5〜S8の処理に相当するステップS13〜S16の処理が実行される。この処理においては、グループ2における勾配算出処理によって算出された勾配とサーバノード20に含まれる重み係数格納部24に格納されている重み係数W3が新たな重み係数(以下、重み係数W4と表記)に更新される。この重み係数W4は、グループ2に属する複数のワーカノード40に配布される。なお、ステップS13においては、ステップS5の勾配算出処理において用いられた学習データとは異なる学習データを用いて勾配を算出するものとする。
On the other hand, when the process of steps S5 to S8 described above is performed, in group 2, the processes of steps S13 to S16 corresponding to the processes of steps S5 to S8 are performed. In this process, the gradient calculated by the gradient calculation process in group 2 and the weighting factor W3 stored in the weighting
ここで、重み係数W4は、グループ1において算出された勾配を用いて更新された重み係数W3がグループ2において算出された勾配を用いて更に更新されたものである。
Here, the weighting factor W4 is obtained by further updating the weighting factor W3 updated using the gradient calculated in
このため、グループ2においては、当該グループ2において算出された勾配(ステップS5及びS13において算出された勾配)だけでなく、グループ1において算出された勾配(ステップS1及びS9において算出された勾配)もが反映された重み係数を用いて、次回以降の勾配算出処理を実行することができる。 Therefore, in the group 2, not only the gradient calculated in the group 2 (slope calculated in steps S5 and S13) but also the gradient calculated in group 1 (slope calculated in steps S1 and S9) The gradient calculation process from the next time onward can be executed using the weighting factor on which
図7においてはステップS1〜S16の処理について説明したが、当該図7に示す処理は、複数のワーカノード30及び40の各々に含まれる学習データ格納部32に格納されている学習データの全てについて勾配算出処理(つまり、並列分散学習処理)が実行されるまで継続して実行される。
Although the process of steps S1 to S16 has been described in FIG. 7, the process shown in FIG. 7 is a gradient for all of the learning data stored in learning data storage unit 32 included in each of the plurality of
上記したように本実施形態によれば、グループ1及びグループ2内では互いに同期して処理が実行されるが、サーバノード20及びグループ1(の代表ノード30)間の処理と、サーバノード20及びグループ2(の代表ノード40)間の処理とは、非同期に実行される。
As described above, according to the present embodiment, processing is executed in synchronization with each other in
以下、上記した図7に示す処理が実行される際の、各グループの代表ノード及び非代表ノードの処理について説明する。 Hereinafter, processing of the representative node and the non-representative node of each group when the processing shown in FIG. 7 described above is executed will be described.
まず、図8のフローチャートを参照して、代表ノードの処理手順の一例について説明する。ここでは、グループ1の代表ノード30の処理手順について説明する。
First, an example of the processing procedure of the representative node will be described with reference to the flowchart of FIG. Here, the processing procedure of the
代表ノード30に含まれる算出部34は、学習データ格納部32に格納されている学習データ及び重み係数格納部33に格納されている重み係数(例えば、重み係数W0)を用いて勾配を算出する(ステップS21)。以下、代表ノード30において算出された勾配を代表ノード30の勾配と称する。
The
ここで、グループ1の代表ノード30がステップS21の処理を実行する場合、当該グループ1の非代表ノード30は、後述するように当該代表ノード30と同期して勾配を算出する。以下、このように非代表ノード30において算出された勾配を非代表ノード30の勾配と称する。
Here, when the
この場合、受信制御部31は、非代表ノード30の勾配を当該非代表ノード30から受信する(ステップS22)。なお、本システムにおいて、複数の非代表ノード30がグループ1に属している場合は、受信制御部31は、当該非代表ノード30の各々から勾配を受信する。
In this case, the
次に、算出部34は、ステップS21において算出された勾配(代表ノード30の勾配)及びステップS22において受信された勾配(非代表ノード30の勾配)の平均値を算出する(ステップS23)。以下、ステップS23において算出された勾配の平均値をグループ1の平均勾配と称する。
Next, the
送信制御部35は、グループ1の平均勾配をサーバノード20に送信する(ステップS24)。
The
なお、上記したステップS21〜S24の処理は、上記した図7に示すステップS1及びS2(またはステップS9及びS10)においてグループ1の代表ノード30によって実行される。
The processing of steps S21 to S24 described above is executed by the
この場合、サーバノード20によって図7に示すステップS3及びS4の処理が実行される。すなわち、サーバノード20においてはステップS24において送信されたグループ1の平均勾配でマスタパラメータが更新され、当該更新後のマスタパラメータ(例えば、重み係数W1)がサーバノード20からグループ1の代表ノード30に送信される。
In this case, the
サーバノード20からマスタパラメータが送信された場合、受信制御部31は、当該マスタパラメータを受信する(ステップS25)。
When the master parameter is transmitted from the
送信制御部35は、ステップS25において受信されたマスタパラメータを非代表ノード30に送信する(ステップS26)。
The
重み係数格納部33に格納されている重み係数(例えば、重み係数W0)は、ステップS25において受信されたマスタパラメータ(例えば、重み係数W1)で置換される(ステップS27)。これにより、グループ1の代表ノード30の重み係数がマスタパラメータ(と同一の重み係数)に更新される。
The weighting factor (for example, weighting factor W0) stored in the weighting
なお、ステップS25〜S27の処理は、上記した図7に示すステップS4(またはステップS12)の処理の後に代表ノード30によって実行される。
The process of steps S25 to S27 is executed by the
上記した図8に示す処理が実行されることにより、グループ1の代表ノード30の重み係数がグループ1の平均勾配を用いて算出された重み係数に更新され、次の勾配の算出においては当該更新された重み係数を用いることができる。
By executing the process shown in FIG. 8 described above, the weighting factor of the
なお、図示されていないが、図8に示す処理は、図7に示す処理が継続して実行されている間は繰り返し実行される。 Although not illustrated, the process illustrated in FIG. 8 is repeatedly performed while the process illustrated in FIG. 7 is continuously performed.
次に、図9のフローチャートを参照して、非代表ノードの処理手順の一例について説明する。ここでは、グループ1の非代表ノード30の処理手順について説明する。
Next, an example of the processing procedure of the non-representative node will be described with reference to the flowchart of FIG. Here, the processing procedure of the
非代表ノード30に含まれる算出部34は、上記した代表ノード30における勾配の算出と同期して、学習データ格納部32に格納されている学習データ及び重み係数格納部33に格納されている重み係数(例えば、重み係数W0)を用いて勾配を算出する(ステップS31)。
The
ステップS31の処理が実行されると、送信制御部35は、当該ステップS31において算出された勾配(非代表ノード30の勾配)を代表ノード30に送信する(ステップS32)。
When the process of step S31 is executed, the
なお、上記したステップS31及びS32の処理は、上記した図7に示すステップS1及びS2(またはステップS9及びS10)において非代表ノード30によって実行される。
The processes of steps S31 and S32 described above are executed by the
ステップS32の処理が実行された場合、代表ノード30においては、図8に示すステップS22〜S26の処理が実行される。この場合、サーバノード20から送信されたマスタパラメータ(例えば、重み係数W1)がグループ1の代表ノード30から非代表ノード30に送信される。
When the process of step S32 is executed, the process of steps S22 to S26 shown in FIG. 8 is executed in the
代表ノード30からマスタパラメータが送信された場合、受信制御部31は、当該マスタパラメータを受信する(ステップS33)。
When the master parameter is transmitted from the
重み係数格納部33に格納されている重み係数(例えば、重み係数W0)は、ステップS33において受信されたマスタパラメータで置換される(ステップS34)。これにより、グループ1の非代表ノード30の重み係数がマスタパラメータ(と同一の重み係数)に更新される。
The weighting factor (for example, weighting factor W0) stored in the weighting
なお、ステップS33及びS34の処理は、上記した図7に示すステップS4(またはステップS12)の処理の後に非代表ノード30によって実行される。
The processes of steps S33 and S34 are executed by the
上記した図9に示す処理が実行されることにより、グループ1の非代表ノード30の重み係数がグループ1の平均勾配を用いて算出された重み係数に更新され、次の勾配の算出においては当該更新された重み係数を用いることができる。
By executing the process shown in FIG. 9 described above, the weighting factor of the
なお、図示されていないが、図9に示す処理は、図7に示す処理が継続して実行されている間は繰り返し実行される。 Although not illustrated, the process illustrated in FIG. 9 is repeatedly performed while the process illustrated in FIG. 7 is continuously performed.
上記したようにグループ1においては、当該グループ1に属する全てのワーカノード30の勾配を代表ノード30に集約し、当該代表ノード30において平均勾配を算出する処理が実行される。この場合、例えばMPI(Message Passing Interface)で定義されるReduceと称される集団通信アルゴリズム(MPI_Reduce)を用いることで、非代表ノード30からの代表ノード30への勾配の送信と平均勾配(全ワーカノード30の勾配和)の算出処理を効率的に実行することが可能である。ここでは、MPI_Reduceを用いる場合について説明したが、当該MPI_Reduceと同程度の他の処理が実行されてもよい。
As described above, in the
ここでは、グループ1(代表ノード30及び非代表ノード30)の処理について説明したが、グループ2(代表ノード40及び非代表ノード40)においてもグループ1と同様の処理が実行される。
Here, although the processing of group 1 (
上記したように本実施形態において、システムはグループ1に属する複数のワーカノード(代表ノード及び非代表ノード)30とグループ2(第2グループ)に属する複数のワーカノード(代表ノード及び非代表ノード)40とを備える。複数のワーカノード30が目的関数を基準とする例えばn回目の並列分散処理を実行する場合、例えばグループ1の代表ノード(第1ノード)30によって目的関数の第1重み係数を第2重み係数へ更新するための第1勾配が算出され、かつ、グループ1の非代表ノード(第2ノード)30によって目的関数の第1重み係数を第2重み係数へ更新するための第2勾配が算出される。
As described above, in the present embodiment, the system includes a plurality of worker nodes (representative node and non-representative node) 30 belonging to
一方、複数のワーカノード30による並列分散処理と非同期に実行される例えばm回目の並列分散処理を複数のワーカノード40が実行する場合、例えばグループ2の代表ノード(第3ノード)40によって目的関数の第3重み係数を第4重み係数へ更新するための第4勾配が算出され、かつ、グループ2の非代表ノード40によって目的関数の第3重み係数を第4重み係数へ更新するための第4勾配が算出される。
On the other hand, when the plurality of
ここで、本実施形態においては、グループ1(代表ノード30及び非代表ノード30)における勾配の算出が、グループ2(代表ノード40及び非代表ノード40)における勾配の算出よりも早い場合、グループ1におけるn+1回目の並列分散処理では、第1乃至第2勾配に基づいて第1重み係数から更新された第2重み係数をさらに更新し、グループ2におけるm+1回目の並列分散処理では、第1乃至第4勾配に基づいて第3重み係数から更新された第4重み係数をさらに更新する。
Here, in the present embodiment, when the calculation of the gradient in group 1 (the
一方、グループ2(代表ノード40及び非代表ノード40)における勾配の算出が、グループ1(代表ノード30及び非代表ノード30)における勾配の算出よりも早い場合、グループ1におけるn+1回目の並列分散処理では、第1〜第4勾配に基づいて第1重み係数から更新された第2重み係数をさらに更新し、グループ2におけるm+1回目の並列分散処理では、第3乃至第4勾配に基づいて第3重み係数から更新された第4重み係数をさらに更新する。
On the other hand, if the gradient calculation in group 2 (
上記したように本実施形態においては、複数のワーカノード30及び40を複数のグループ(グループ1及びグループ2)に分割し、第一階層として、当該グループ内でSynchronous−SGDによる並列分散学習処理を行う。この第一階層においては、グループ毎に同期を行うため、例えば複数のワーカノード30及び40の全てを同期させて処理を行う場合と比較して、同期コスト及びバッチサイズを抑制することが可能となる。
As described above, in the present embodiment, the plurality of
また、第二階層としては、サーバノード20を介して、第一階層における各グループの代表ノード同士でバッチサイズ非依存並列方式による並列分散学習処理を行う。この第二階層においては、各代表ノードは同期する必要がないため、高いスループットを得ることができる。
Also, as the second layer, parallel distributed learning processing by the batch size independent parallel method is performed between the representative nodes of each group in the first layer via the
すなわち、本実施形態においては、例えばSynchronous−SGDとバッチサイズ非依存並列方式を階層的に組み合わせる構成により、並列分散学習処理における高いスケーラビリティを実現することができ、より大きな並列数での並列分散学習処理が可能となる。 That is, in this embodiment, high scalability in parallel distributed learning processing can be realized, for example, by hierarchically combining Synchronous-SGD and batch size independent parallel method, and parallel distributed learning with a larger number of parallels can be realized. Processing becomes possible.
ここで、図10は、所定の汎化性能を得ることができるまでの時間(学習時間)を学習方式毎に示している。 Here, FIG. 10 shows the time (learning time) until the predetermined generalization performance can be obtained for each learning method.
図10においては、学習方式として、例えば非並列分散方式(単一のノードによる学習方式)、Synchronous−SGD、バッチサイズ非依存並列方式及び本実施形態における方式(Synchronous−SGD+バッチサイズ非依存並列方式)が示されている。 In FIG. 10, as a learning method, for example, non-parallel distributed method (learning method by a single node), Synchronous-SGD, batch size independent parallel method, and method according to this embodiment (Synchronous-SGD + batch size independent parallel method )It is shown.
図10に示すように、非並列分散方式による学習処理において所定の汎化性能を得ることができるまでの学習時間(以下、非並列分散方式の学習時間と表記)を1.0とした場合、Synchronous−SGDによる並列分散学習処理において所定の汎化性能を得ることができるまでの学習時間(以下、Synchronous−SGDの学習時間と表記)は、0.6である。 As shown in FIG. 10, assuming that the learning time required to obtain predetermined generalization performance in learning processing by the non-parallel distributed system (hereinafter referred to as the learning time of the non-parallel distributed system) is 1.0. The learning time required to obtain predetermined generalization performance in parallel distributed learning processing by Synchronous-SGD (hereinafter referred to as Synchronous-SGD learning time) is 0.6.
同様に、非並列分散方式の学習時間を1.0とした場合、バッチサイズ非依存並列方式による並列分散学習処理において所定の汎化性能を得ることができるまでの学習時間(以下、バッチサイズ非依存並列方式の学習時間と表記)は、0.5である。 Similarly, assuming that the learning time of the non-parallel distributed system is 1.0, the learning time until the predetermined generalization performance can be obtained in parallel distributed learning processing by the batch size independent parallel system (hereinafter referred to as batch size non-parallel). The learning time of the dependency parallel system is 0.5.
これに対して、本実施形態に係る方式(階層的な並列分散方式)では、理論上はSynchronous−SGDとバッチサイズ非依存並列方式それぞれのスケーラビリティの上限を掛け合わせたスケーラビリティを得られる。 On the other hand, in the system according to the present embodiment (hierarchical parallel distributed system), it is possible in theory to obtain scalability by multiplying the scalability upper limit of each of the Synchronous-SGD and the batch size independent parallel system.
具体的には、本実施形態に係る方式による並列分散学習処理において所定の汎化性能を得ることができるまでの学習時間(の非並列分散方式の学習時間に対する割合)は、非並列分散方式の学習時間に対するSynchronous−SGDの学習時間の割合(ここでは、0.6)と非並列分散方式の学習時間に対するバッチサイズ非依存並列方式の学習時間の割合(ここでは、0.5)とを乗算した値(つまり、0.3)となる。 Specifically, the learning time (the ratio of the non-parallel distributed system to the learning time) of obtaining the predetermined generalization performance in the parallel distributed learning processing according to the system according to the embodiment is the non-parallel distributed system. Multiply the ratio of learning time of Synchronous-SGD to learning time (here, 0.6) and the ratio of learning time of batch size independent parallel system to learning time of non-parallel distributed system (here, 0.5) (Ie, 0.3).
これによれば、Synchronous−SGDでは非並列分散方式の6割程度の学習時間で所定の汎化性能を得ることができ、バッチサイズ非依存並列方式では非並列分散方式の5割程度の学習時間で所定の汎化性能を得ることができるところ、本実施形態に係る方式では、非並列分散方式の3割程度の学習時間で所定の汎化性能を得ることができる。 According to this, in Synchronous-SGD, a predetermined generalization performance can be obtained in about 60% of the learning time of the non-parallel distributed system, and in the batch size independent parallel system, about 50% of the learning time of the non-parallel distributed system In the method according to this embodiment, the predetermined generalization performance can be obtained in about 30% of the learning time of the non-parallel distributed system.
すなわち、本実施形態においては、単にSynchronous−SGDによる並列分散学習処理またはバッチサイズ非依存並列方式による並列分散学習処理を実行する場合に比べて、高いスケーラビリティを実現することが可能である。 That is, in the present embodiment, it is possible to realize high scalability as compared with the case of executing parallel distributed learning processing using only Synchronous-SGD or parallel distributed learning processing using the batch size independent parallel method.
なお、本実施形態において、上記した第2重み係数は、グループ1の代表ノード30によって算出された第1勾配及びグループ1の非代表ノード30によって算出された第2勾配から算出された第5勾配(例えば、第1勾配と第2勾配との平均値)に基づいて算出される。同様に、第4重み係数は、グループ2の代表ノード40によって算出された第3勾配及びグループ2の非代表ノード40によって算出された第4勾配から算出された第6勾配(例えば、第3勾配と第4勾配との平均値)に基づいて算出される。
In the present embodiment, the above-mentioned second weighting factor is the fifth gradient calculated from the first gradient calculated by the
また、本実施形態においては、グループ1の代表ノード30及びグループ2の代表ノード40と通信可能に接続されるサーバノード20において第2重み係数及び第4重み係数が算出される。
Further, in the present embodiment, the second weighting factor and the fourth weighting factor are calculated in the
サーバノード20において第2重み係数が算出された場合、サーバノード20は当該第2重み係数をグループ1の代表ノード30に送信し、当該代表ノード30は当該第2重み係数を非代表ノード30に送信する。本実施形態においては、このような構成により、グループ1の代表ノード30及び非代表ノード30の重み係数をサーバノード20によって算出された重み係数に更新することができる。
When the second weighting factor is calculated in the
また、サーバノード20において第4重み係数が算出された場合、サーバノード20は当該第4重み係数をグループ2の代表ノード40に送信し、当該代表ノード40は当該第4重み係数を非代表ノード40に送信する。本実施形態においては、このような構成により、グループ2の代表ノード40及び非代表ノード40の重み係数をサーバノード20によって算出された重み係数に更新することができる。
Further, when the fourth weighting factor is calculated in the
なお、本実施形態においては、グループ1における勾配の算出がグループ2における勾配の算出よりも早い場合、グループ1におけるn+1回目の並列分散処理では、第1乃至第2勾配に基づいて重み係数が更新され、グループ2におけるm+1回目の並列分散処理では、第1乃至第4勾配に基づいて重み係数がさらに更新されるものとして説明した。
In this embodiment, when the gradient calculation in
しかしながら、この「グループ1における勾配の算出がグループ2における勾配の算出よりも早い場合」には、サーバノード20がグループ2における勾配算出結果(グループ2の代表ノード40から送信された勾配)を受信するより先にグループ1における勾配算出結果(グループ1の代表ノード30から送信された勾配)を受信する場合を含むものとする。
However, in the case where “the calculation of the gradient in
これによれば、例えばグループ1における勾配算出結果がグループ2における勾配算出結果よりも先にサーバノード20によって受信された場合には、グループ1におけるn+1回目の並列分散処理(時間的に後の並列分散処理)では、当該グループ1における勾配算出結果(つまり、第1乃至第2勾配)に基づいて重み係数が更新され、グループ2におけるm+1回目の並列分散処理では、グループ1における勾配算出結果(に基づいて更新された重み係数)及びグループ2における勾配算出結果(つまり、第1乃至第4勾配)に基づいて重み係数がさらに更新されることになる。
According to this, for example, when the gradient calculation result in the
また、本実施形態においては、グループ2における勾配の算出がグループ1における勾配の算出よりも早い場合、グループ2におけるm+1回目の並列分散処理では、第3乃至第4勾配に基づいて重み係数が更新され、グループ1におけるn+1回目の並列分散処理では、第1乃至第4勾配に基づいて重み係数がさらに更新されるものとして説明した。
Further, in the present embodiment, when the gradient calculation in group 2 is faster than the gradient calculation in
しかしながら、この「グループ2における勾配の算出がグループ1における勾配の算出よりも早い場合」には、サーバノード20がグループ1における勾配算出結果(グループ1の代表ノード30から送信された勾配)を受信するより先にグループ2における勾配算出結果(グループ2の代表ノード40から送信された勾配)受信する場合を含むものとする。
However, in the case where “the calculation of the gradient in group 2 is faster than the calculation of the gradient in
これによれば、例えばグループ2おける勾配算出結果がグループ1における勾配算出結果よりも先にサーバノード20によって受信された場合には、グループ2におけるm+1回目の並列分散処理(時間的に後の並列分散処理)では、当該グループ2における勾配算出結果(つまり、第3乃至第4勾配)に基づいて重み係数が更新され、グループ1におけるn+1回目の並列分散処理では、グループ2における勾配算出結果(に基づいて更新された重み係数)及びグループ1における勾配算出結果(つまり、第1乃至第4勾配)に基づいて重み係数がさらに更新されることになる。
According to this, for example, when the gradient calculation result in the group 2 is received by the
すなわち、本実施形態においては、上記した各グループにおける勾配算出処理の順番(いずれのグループにおける勾配算出処理が早いか)という観点ではなく、いずれのグループにおける勾配算出処理の結果がサーバノード20において早く受信されるか(サーバノード20に早く送信されるか)という観点に基づいて重み係数が更新されるようにしても構わない。
That is, in this embodiment, the result of the gradient calculation process in any group is quick in the
なお、上記したようにSynchronous−SGDにおいて例えばグループ1に属する複数のワーカノード30は互いに同期して処理を実行するが、当該複数のワーカノード30の各々の処理性能(に基づく処理速度)の差が大きい場合、グループ1の処理速度は、処理性能の低いワーカノード30の処理速度の影響を受ける(つまり、処理性能の低いワーカノード30の処理速度が支配的となる)。グループ2についても同様である。
As described above, in Synchronous-SGD, for example, a plurality of
このため、同一のグループに属する複数のワーカノードの処理速度は同程度となるように構成するものとする。具体的には、グループ1に属する複数のワーカノード30(代表ノード30及び非代表ノード)間の処理速度の差は第1閾値以下となるようにし、グループ2に属する複数のワーカノード40(代表ノード40及び非代表ノード40)間の処理速度の差は第2閾値以下となるようにする。なお、第1閾値及び第2閾値は、同じ値であってもよいし、異なる値であってもよい。
For this reason, the processing speeds of a plurality of worker nodes belonging to the same group are configured to be approximately the same. Specifically, the difference in processing speed among the plurality of worker nodes 30 (
また、図11に示すように、例えばグループ1に属する複数のワーカノード30の処理速度よりもグループ2に属する複数のワーカノード40の処理速度が遅い場合には、グループ1に属するワーカノード30の数を、グループ2に属するワーカノード40の数よりも少なくするようにしてもよい。なお、複数のワーカノード30の処理速度よりもグループ2に属する複数のワーカノード40の処理速度が遅いとは、複数のワーカノード40の処理速度の平均値が複数のワーカノード30の処理速度の平均値よりも遅い場合であってもよいし、または、複数のワーカノード40の各々の処理速度のうちの最も遅い処理速度が複数のワーカノード30の処理速度のうちの最も遅い処理速度よりも遅い場合であってもよい。また、各ワーカノードの処理速度は、例えば当該ワーカノードのハードウェア性能等から算出されてもよい。
Further, as shown in FIG. 11, for example, when the processing speeds of the plurality of
また、グループ1に属する複数のワーカノード30の処理速度よりもグループ2に属する複数のワーカノード40の処理速度が遅い場合には、並列分散処理におけるグループ1の処理量(つまり、グループ1に割り当てられる学習データ量)を、グループ2の処理量(つまり、グループ2に割り当てられる学習データ量)よりも少なくする。この場合には、グループ1に属するワーカノード30の数及びグループ2に属するワーカノード40の数は同数であってもよい。
When the processing speeds of the plurality of
すなわち、上記したような構成によれば、各グループに属するワーカノードの数または当該各グループの処理量(負荷)を調整することによって、各グループにおいて必要な処理時間を同程度にする(つまり、処理速度の差の影響を打ち消す)ことが可能となる。 That is, according to the configuration as described above, by adjusting the number of worker nodes belonging to each group or the processing amount (load) of each group, the required processing time in each group can be made equal (that is, processing) It is possible to cancel the effect of the speed difference).
本実施形態においては、サーバノード20、複数のワーカノード30の各々及び複数のワーカノード40の各々がそれぞれ1つの装置(マシン)によって実現される(つまり、各ノードと装置とが1対1の関係にある)ものとして説明したが、当該各ノードは、1つの装置内で実行される1プロセスまたはスレッドとして実現されていても構わない。すなわち、本実施形態に係るシステム(サーバノード20、複数のワーカノード30及び複数のワーカノード40)は、1つの装置によって実現することも可能である。また、本実施形態に係るシステムは、ノードの数とは異なる数の複数の装置によって実現されることも可能である。
In this embodiment, each of the
すなわち、本実施形態において、1つのノードは1つのコンピュータ(サーバ)であってもよいし、複数のノードが1つのコンピュータに実装されてもよいし、1つのノードが複数のコンピュータで実装されていてもよい。なお、本実施形態においては、上記したように1つのシステムには2以上のグループがあればよく、1つのグループには2以上のノードがあれよい。 That is, in the present embodiment, one node may be one computer (server), a plurality of nodes may be implemented in one computer, and one node is implemented by a plurality of computers. May be In the present embodiment, as described above, one system may have two or more groups, and one group may have two or more nodes.
また、本実施形態においては、バッチサイズ非依存並列方式として非同期型の並列分散学習方式であるAsynchronous−SGDについて説明したが、例えばElastic Averaging SGD等の他の方式が採用されても構わない。 Furthermore, in the present embodiment, Asynchronous-SGD, which is an asynchronous parallel distributed learning method, has been described as the batch size independent parallel method, but another method such as Elastic Averaging SGD may be adopted.
また、本実施形態においては、第一階層及び第2階層において異なる方式(アルゴリズム)の並列分散学習処理が実行されるものとして説明したが、組み合わせるアルゴリズムによっては例えば3つ以上の階層で並列分散学習処理が実行される構成としてもよい。 Further, in the present embodiment, it has been described that parallel distributed learning processing of different methods (algorithms) is performed in the first layer and the second layer, but depending on the combination algorithm, for example, parallel distributed learning in three or more layers The processing may be executed.
(第2の実施形態)
次に、第2の実施形態について説明する。なお、本実施形態に係るシステムは、前述した第1の実施形態と同様に、階層的に異なる学習処理を実行可能な構成を有する。
Second Embodiment
Next, a second embodiment will be described. The system according to the present embodiment has a configuration capable of executing hierarchically different learning processing, as in the first embodiment described above.
すなわち、第一階層においては複数のワーカノードが属する各グループ内でSynchronous−SGDによるミニバッチ法の並列分散処理が行われ、第二階層においては各グループの代表ノード同士でバッチサイズ非依存並列分散処理(非同期型の並列分散方式)が行われる。 That is, in the first hierarchy, parallel distributed processing of the mini-batch method by Synchronous-SGD is performed in each group to which a plurality of worker nodes belong, and in the second hierarchy, batch size independent parallel distributed processing (representative nodes of each group) An asynchronous parallel distributed system is performed.
図12は、本実施形態に係るシステム(以下、本システムと表記)の構成の一例を示す。図12に示すように、本システム10は、複数のワーカノード30及び複数のワーカノード40を備える。
FIG. 12 shows an example of the configuration of a system according to the present embodiment (hereinafter referred to as the present system). As shown in FIG. 12, the present system 10 includes a plurality of
前述した第1の実施形態においてはサーバノード20を備える構成であるが、本実施形態は、当該サーバノード20を備えない点で、前述した第1の実施形態とは異なる。なお、複数のワーカノード30がグループ1に属しており、複数のワーカノード40がグループ2に属している点については、前述した第1の実施形態と同様である。
Although the first embodiment described above is configured to include the
グループ1に属する複数のワーカノード30のうちの1つのワーカノード(以下、グループ1の代表ノードと表記)30は、他のグループ2に属する複数のワーカノード40のうちの1つのワーカノード(以下、グループ2の代表ノードと表記)40と通信可能に接続される。
One worker node (hereinafter referred to as a representative node of group 1) 30 among a plurality of
なお、複数のワーカノード30のうち、グループ1の代表ノード30以外のワーカノード30は、グループ1の非代表ノード30と称する。同様に、複数のワーカノード40のうち、グループ2の代表ノード40以外のワーカノード40は、グループ2の非代表ノード40と称する。
Among the plurality of
本実施形態において、第一階層では、グループ1(複数のワーカノード30)及びグループ2(複数のワーカノード40)内でそれぞれSynchronous−SGDによる並列分散学習処理が実行される。また、第二階層では、グループ1の代表ノード30及びグループ2の代表ノード40同士でバッチサイズ非依存並列分散方式による並列分散学習処理が実行される。
In the present embodiment, in the first layer, parallel distributed learning processing by Synchronous-SGD is executed in each of the group 1 (the plurality of worker nodes 30) and the group 2 (the plurality of worker nodes 40). In the second hierarchy, parallel distributed learning processing by the batch size independent parallel distributed system is executed between the
なお、図12においてはグループ1及びグループ2にそれぞれ3つのワーカノードが属している例が示されているが、グループ1及びグループ2には2つ以上のワーカノードが属していればよい。また、図12においては2つのグループのみが示されているが、本システムにおいては、3つ以上のグループを備えていてもよい。
Although FIG. 12 shows an example in which three worker nodes belong to
複数のワーカノード30及び40のシステム構成については、前述した第1の実施形態と同様であるため、ここでは詳しい説明を省略する。
The system configuration of the plurality of
以下、複数のワーカノード30及び40のうち、グループ1の代表ノード30の機能構成の一例について説明する。なお、本実施形態におけるグループ1の代表ノード30の機能構成については便宜的に図6を用いて説明するが、ここでは前述した第1の実施形態におけるグループ1の代表ノード30と異なる部分について主に述べる。
Hereinafter, among the plurality of
図6に示すように、代表ノード30は、受信制御部31、学習データ格納部32、重み係数格納部33、算出部34及び送信制御部35を含む。
As shown in FIG. 6, the
受信制御部31は、グループ1の非代表ノード30において算出された勾配を、当該非代表ノード30から受信する。
The
学習データ格納部32には、グループ1の代表ノード30に割り当てられた学習データが格納される。重み係数格納部33には、目的関数の重み係数が格納されている。
The learning data storage unit 32 stores learning data assigned to the
算出部34は、学習データ格納部32に格納されている学習データ及び重み係数格納部33に格納されている重み係数を用いて、目的関数の重み係数を更新するための勾配を算出する。
The
算出部34は、受信制御部31によって受信された勾配(つまり、非代表ノード30において算出された勾配)及び算出部34によって算出された勾配と、重み係数格納部33に格納されている重み係数とを用いて、当該重み係数を更新する。この場合、算出部34は、上述した式(1)に基づいて更新後の重み係数を算出する。算出部34によって算出された重み係数は、重み係数格納部33に格納されている重み係数と置換される。これにより、グループ1の代表ノード30の重み係数が更新される。
送信制御部35は、算出部34によって算出された勾配を、グループ1の非代表ノード30に送信する。
The
また、送信制御部35は、グループ1の非代表ノード30において算出された勾配及び算出部34によって算出された勾配(つまり、代表ノード30において算出された勾配)を、他のグループ(例えば、グループ2)の代表ノードに送信する。
In addition, the
ここで、グループ1の非代表ノード30において算出された勾配及びグループ1の代表ノード30において算出された勾配は上記したようにグループ2の代表ノード40に送信されるが、同様に、グループ2の非代表ノード40において算出された勾配及びグループ2の代表ノード40において算出された勾配はグループ1の代表ノード30に送信される。
Here, the gradient calculated at the
グループ2の非代表ノード40において算出された勾配及び代表ノード40において算出された勾配がグループ1の代表ノード30(受信制御部31)において受信された場合、算出部34は当該勾配を用いて重み係数格納部33に格納されている重み係数を更新し、送信制御部35は当該勾配をグループ1の非代表ノード30に送信する。
When the gradient calculated at the
次に、グループ1の非代表ノード30の機能構成の一例について説明する。なお、本実施形態におけるグループ1の非代表ノード30の機能構成については便宜的に図6を用いて説明するが、ここでは前述した第1の実施形態におけるグループ1の非代表ノード30と異なる部分について主に述べる。
Next, an example of a functional configuration of the
グループ1の非代表ノード30は、上記したグループ1の代表ノード30と同様に、図6に示す受信制御部31、学習データ格納部32、重み係数格納部33、算出部34及び送信制御部35を含む。
Similar to the
受信制御部31は、グループ1の代表ノード30において算出された勾配及び他の非代表ノード30において算出された勾配を、当該代表ノード30及び当該非代表ノード30の各々から受信する。
The
学習データ格納部32には、当該非代表ノード30に割り当てられた学習データが格納される。重み係数格納部33には、目的関数の重み係数が格納されている。
The learning data storage unit 32 stores learning data assigned to the
算出部34は、学習データ格納部32に格納されている学習データ及び重み係数格納部33に格納されている重み係数を用いて、目的関数の重み係数を更新するための勾配を算出する。
The
算出部34は、受信制御部31によって受信された勾配(つまり、代表ノード30において算出された勾配及び他の非代表ノード30において算出された勾配)及び算出部34によって算出された勾配と、重み係数格納部33に格納されている重み係数とを用いて、当該重み係数を更新する。この場合、算出部34は、上述した式(1)に基づいて更新後の重み係数を算出する。算出部34によって算出された重み係数は、重み係数格納部33に格納されている重み係数と置換される。これにより、グループ1の非代表ノード30の重み係数が更新される。
The
なお、上記したようにグループ1の代表ノード30に含まれる送信制御部35によってグループ2の非代表ノード40において算出された勾配及びグループ2の代表ノード40において算出された勾配が送信された場合、当該勾配は、受信制御部31によって受信され、重み係数の更新に用いられる。
When the gradient calculated at the
ここでは、グループ1の代表ノード30及び非代表ノード30について説明したが、本実施形態においては、グループ2の代表ノード40及び非代表ノード40についてもグループ1の代表ノード30及び非代表ノード30と同様の機能構成であるものとする。このため、以下においてグループ2の代表ノード40及び非代表ノード40の機能構成について述べる場合には図6を用いるものとする。
Here, although the
以下、図13のシーケンスチャートを参照して、本システムの処理手順の一例について説明する。ここでは、グループ1(複数のワーカノード30)及びグループ2(複数のワーカノード40)間の処理について主に説明し、各グループ(グループ1及びグループ2)内の各ワーカノードの処理について後述する。
Hereinafter, an example of the processing procedure of the present system will be described with reference to the sequence chart of FIG. Here, processing between the group 1 (plural worker nodes 30) and the group 2 (plural worker nodes 40) will be mainly described, and the processing of each worker node in each group (
ここでは、グループ1に属する複数のワーカノード30の各々に含まれる重み係数格納部33には例えば重み係数W10が格納されており、グループ2に属する複数のワーカノード40の各々に含まれる重み係数格納部33には例えば重み係数W20が格納されているものとする。なお、重み係数W10及び重み係数W20は、同一の値であってもよいし、異なる値であってもよい。
Here, for example, a weighting factor W10 is stored in the weighting
まず、グループ1(に属する複数のワーカノード30)においては、Synchronous−SGDによる勾配算出処理が行われる(ステップS41)。この勾配算出処理によれば、グループ1に属する複数のワーカノード30の各々は、当該ワーカノード30に含まれる学習データ格納部32に格納されている学習データ及び重み係数格納部33に格納されている重み係数W10を用いて、目的関数の重み係数を更新するための勾配を算出する。なお、グループ1に属する複数のワーカノード30の各々は、互いに同期して勾配算出処理を実行する。
First, in the group 1 (a plurality of
複数のワーカノード30の各々は、ステップS41において算出された勾配及び当該ワーカノード30に含まれる重み係数格納部33に格納されている重み係数W10を用いて新たな重み係数(以下、重み係数W11と表記)を算出する。これにより、複数のワーカノード30の各々に含まれる重み係数格納部33に格納されている重み係数W10は、算出された重み係数W11に更新される(ステップS42)。
Each of the plurality of
ここで、ステップS42の処理が実行されると、上記したステップS41において算出された勾配がグループ1の代表ノード30からグループ2の代表ノード40に送信される(ステップS43)。
Here, when the process of step S42 is executed, the gradient calculated in step S41 described above is transmitted from the
グループ2の代表ノード40は、ステップS43において送信された勾配を受信する。このように受信された勾配は、グループ2に属する複数のワーカノード40において共有される。これにより、複数のワーカノード40の各々は、グループ2の代表ノード40において受信された勾配及び当該ワーカノード40に含まれる重み係数格納部33に格納されている重み係数W20を用いて新たな重み係数(以下、重み係数W21と表記)を算出する。これにより、複数のワーカノード40の各々に含まれる重み係数格納部33に格納されている重み係数W20は、算出された重み係数W21に更新される(ステップS44)。
The
また、グループ2(に属する複数のワーカノード40)においては、グループ1と同様に、Synchronous−SGDによる勾配算出処理が行われる(ステップS45)。この勾配算出処理によれば、グループ2に属する複数のワーカノード40の各々は、当該ワーカノード40に含まれる学習データ格納部32に格納されている学習データ及び重み係数格納部33に格納されている重み係数W21を用いて、目的関数の重み係数を更新するための勾配を算出する。なお、グループ2に属する複数のワーカノード40の各々は、互いに同期して勾配算出処理を実行する。
Further, in the group 2 (a plurality of
複数のワーカノード40の各々は、ステップS45において算出された勾配及び当該ワーカノード40に含まれる重み係数格納部33に格納されている重み係数21を用いて新たな重み係数(以下、重み係数W22と表記)を算出する。これにより、複数のワーカノード40の各々に含まれる重み係数格納部33に格納されている重み係数W21は、算出された重み係数W22に更新される(ステップS46)。
Each of the plurality of
ここで、ステップS46の処理が実行されると、上記したステップS45において算出された勾配がグループ2の代表ノード40からグループ1の代表ノード30に送信される(ステップS47)。
Here, when the process of step S46 is executed, the gradient calculated in step S45 described above is transmitted from the
グループ1の代表ノード30は、ステップS47において送信された勾配を受信する。このように受信された勾配は、グループ1に属する複数のワーカノード30において共有される。これにより、複数のワーカノード30の各々は、代表ノード30において受信された勾配及び当該ワーカノード30に含まれる重み係数格納部33に格納されている重み係数W11を用いて新たな重み係数(以下、重み係数W12と表記)を算出する。これにより、複数のワーカノード40の各々に含まれる重み係数格納部33に格納されている重み係数11は、算出された重み係数W12に更新される(ステップS48)。
The
図13においてはステップS41〜S48の処理について説明したが、当該図13の処理は、複数のワーカノード30及び40の各々に含まれる学習データ格納部32に格納されている学習データの全てについて勾配算出処理(つまり、並列分散学習処理)が実行されるまで継続して実行される。
Although the process of steps S41 to S48 has been described in FIG. 13, the process of FIG. 13 calculates gradients for all learning data stored in learning data storage unit 32 included in each of a plurality of
上記したように本実施形態によれば、グループ1及びグループ2内では互いに同期して処理が実行されるが、グループ1の処理とグループ2の処理とは非同期に実行される。
As described above, according to the present embodiment, the processing is executed in synchronization with each other in
すなわち、図13に示すステップS43においてはステップS41において算出された勾配がグループ1の代表ノード30からグループ2の代表ノード40に送信されるが、当該勾配の送信タイミングは、例えばステップS41及びS42の処理後であればよく、グループ2(に属する複数のワーカノード40)の処理によって影響されない。同様に、図13に示すステップS47における勾配の送信タイミングは、例えばステップS45及びS46の処理後であればよく、グループ1(に属する複数のワーカノード30)の処理によって影響されない。
That is, although the gradient calculated in step S41 is transmitted from the
以下、上記した図13に示す処理が実行される際の、各グループの代表ノード及び非代表ノードの処理について説明する。 Hereinafter, processing of the representative node and the non-representative node of each group when the processing shown in FIG. 13 described above is executed will be described.
まず、図14のフローチャートを参照して、代表ノードの処理手順の一例について説明する。ここでは、グループ1の代表ノード30の処理手順について説明する。
First, an example of the processing procedure of the representative node will be described with reference to the flowchart of FIG. Here, the processing procedure of the
グループ1の代表ノード30に含まれる算出部34は、学習データ格納部32に格納されている学習データ及び重み係数格納部33に格納されている重み係数(例えば、重み係数W11)を用いて勾配を算出する(ステップS51)。以下、代表ノード30において算出された勾配を代表ノード30の勾配と称する。
The
ここで、グループ1の代表ノード30がステップS51の処理を実行する場合、当該グループ1の非代表ノード30においては、後述するように当該代表ノード30と同期して勾配が算出される。以下、このように非代表ノード30において算出された勾配を非代表ノード30の勾配と称する。
Here, when the
この場合、グループ1の代表ノード30の勾配及び非代表ノード30の勾配がグループ1内で配布される(ステップS52)。すなわち、グループ1の代表ノード30の勾配が当該代表ノード30からグループ1の非代表ノード30(の各々)に送信されるとともに、グループ1の非代表ノード30(の各々)の勾配がグループ1の代表ノード30(に含まれる受信制御部31)において受信される。
In this case, the gradient of the
次に、算出部34は、ステップS51において算出された勾配(代表ノード30の勾配)及び受信制御部31によって受信された勾配(非代表ノード30の勾配)の平均値を算出する(ステップS53)。以下、ステップS53において算出された勾配の平均値をグループ1の平均勾配と称する。
Next, the
ステップS53の処理が実行されると、算出部34は、グループ1の平均勾配を用いて新たな重み係数を算出し、重み係数格納部33に格納されている重み係数を当該算出された重み係数(例えば、重み係数W11)に更新する(ステップS54)。これにより、グループ1の代表ノード30の重み係数がグループ1内のワーカノード30の各々によって算出された勾配に基づく重み係数に更新される。
When the process of step S53 is executed, the calculating
ステップS54の処理が実行されると、送信制御部35は、グループ1の平均勾配をグループ2の代表ノード40に送信する(ステップS55)。
When the process of step S54 is executed, the
上記したステップS51〜S55の処理は、図13に示すステップS41〜S43においてグループ1の代表ノード30によって実行される。
The processes of steps S51 to S55 described above are executed by the
なお、後述するように図14に示す処理は、グループ2の代表ノード40においても同様に実行される。このため、例えばグループ2の代表ノード40においてステップS55の処理に相当する処理が実行された場合には、グループ1の代表ノード30に含まれる受信制御部31は、グループ2の平均勾配を受信することができる。
The process shown in FIG. 14 is similarly executed in the
ここで、受信制御部31がグループ2の平均勾配を受信したか否かが判定される(ステップS56)。
Here, it is determined whether the
グループ2の平均勾配を受信したと判定された場合(ステップS56のYES)、送信制御部35は、受信フラグ「True」をグループ1の非代表ノード30に送信する(ステップS57)。
If it is determined that the average gradient of group 2 is received (YES in step S56), the
また、送信制御部35は、受信制御部31によって受信されたグループ2の平均勾配を、グループ1の非代表ノード30に送信する(ステップS58)。
Further, the
ステップS58の処理が実行されると、算出部34は、グループ2の平均勾配を用いて新たな重み係数を算出し、重み係数格納部33に格納されている重み係数を当該算出された重み係数(例えば、重み係数W12)に更新する(ステップS59)。これにより、グループ1の代表ノード30の重み係数がグループ2内のワーカノード40の各々によって算出された勾配に基づく重み係数に更新される。
When the process of step S58 is executed, the calculating
上記したステップS56〜S59の処理は、図13に示すステップS48においてグループ1の代表ノード30によって実行される。
The processes of steps S56 to S59 described above are executed by the
なお、ステップS56においてグループ2の平均勾配を受信していないと判定された場合(ステップS56のNO)、送信制御部35は、受信フラグ「False」を非代表ノード30に送信する(ステップS60)。
When it is determined in step S56 that the average gradient of group 2 is not received (NO in step S56), the
上記した図14に示す処理が実行されることにより、グループ1の代表ノード30の重み係数は、グループ1に属する複数のワーカノード30の各々によって算出された勾配(グループ1の平均勾配)を用いて更新されるとともに、グループ2に属する複数のワーカノード40の各々によって算出された勾配(グループ2の平均勾配)を用いて更に更新される。
By executing the process shown in FIG. 14 described above, the weighting factor of the
なお、図示されていないが、図14に示す処理は、上記した図13に示す処理が継続して実行されている間は繰り返し実行される。 Although not illustrated, the process illustrated in FIG. 14 is repeatedly performed while the process illustrated in FIG. 13 described above is continuously performed.
次に、図15のフローチャートを参照して、非代表ノードの処理手順の一例について説明する。ここでは、グループ1の非代表ノード30の処理手順について説明する。
Next, an example of the processing procedure of the non-representative node will be described with reference to the flowchart of FIG. Here, the processing procedure of the
非代表ノード30に含まれる算出部34は、上記した代表ノード30における勾配の算出処理と同期して、学習データ格納部32に格納されている学習データ及び重み係数格納部33に格納されている重み係数(例えば、重み係数W10)を用いて勾配を算出する(ステップS71)。
The
この場合、上記した代表ノード30の勾配及びステップS71において算出された勾配(非代表ノード30の勾配)がグループ1内で配布される(ステップS72)。すなわち、グループ1の非代表ノード30の勾配が当該非代表ノード30からグループ1の代表ノード30(及び他の非代表ノード30)に送信されるとともに、当該代表ノード30(及び他の非代表ノード30)の勾配が非代表ノード30(に含まれる受信制御部31)において受信される。
In this case, the gradient of the
次に、算出部34は、ステップS71において算出された勾配(非代表ノード30の勾配)及び受信制御部31によって受信された勾配(代表ノード30及び他の非代表ノード30の勾配)の平均値を算出する(ステップS73)。なお、このステップS73において算出される勾配の平均値は、上記した図14に示すステップS53において算出されたグループ1の平均勾配に相当する。
Next, the calculating
ステップS73の処理が実行されると、算出部34は、グループ1の平均勾配を用いて新たな重み係数を算出し、重み係数格納部33に格納されている重み係数を当該算出された重み係数(例えば、重み係数W11)に更新する(ステップS74)。これにより、グループ1の非代表ノード30の重み係数がグループ1内のワーカノード30の各々によって算出された勾配に基づく重み係数に更新される。
When the process of step S73 is executed, the calculating
上記したステップS71〜S74の処理は、図13に示すステップS41及びS42においてグループ1の非代表ノード30によって実行される処理である。
The processes of steps S71 to S74 described above are processes executed by the
ここで、上記した図14に示すステップS57またはステップS60において代表ノード30から送信された受信フラグは、非代表ノード30に含まれる受信制御部31によって受信される。
Here, the reception flag transmitted from the
この場合、受信制御部31によって受信フラグ「True」が受信されたか否かが判定される(ステップS76)。
In this case, the
受信フラグ「True」が受信されたと判定された場合(ステップS76のYES)、受信制御部31は、図14に示すステップS58においてグループ1の代表ノード30から送信されたグループ1の平均勾配を受信する(ステップS77)。
If it is determined that the reception flag "True" has been received (YES in step S76), the
ステップS77の処理が実行されると、算出部34は、グループ2の平均勾配を用いて新たな重み係数を算出し、重み係数格納部33に格納されている重み係数を当該算出された重み係数(例えば、重み係数W12)に更新する(ステップS78)。これにより、グループ1の非代表ノード30の重み係数がグループ2内のワーカノード40の各々によって算出された勾配に基づく重み係数に更新される。
When the process of step S77 is executed, the calculating
上記したステップS75〜S78の処理は、図13に示すステップS48においてグループ1の非代表ノード30によって実行される。
The processes of steps S75 to S78 described above are executed by the
なお、ステップS76において受信フラグ「True」が受信されていない(つまり、受信フラグ「False」が受信されている)と判定された場合(ステップS76のNO)、グループ2の平均勾配が受信されないため、ステップS77及びS78の処理は実行されない。 When it is determined in step S76 that the reception flag "True" has not been received (that is, the reception flag "False" has been received) (NO in step S76), the average gradient of group 2 is not received. The processes of steps S77 and S78 are not executed.
上記した図15の処理が実行されることにより、グループ1の非代表ノード30の重み係数は、グループ1に属する複数のワーカノード30の各々によって算出された勾配(グループ1の平均勾配)を用いて更新されるとともに、グループ2に属する複数のワーカノード40の各々によって算出された勾配(グループ2の平均勾配)を用いて更に更新される。
By executing the process of FIG. 15 described above, the weighting factor of the
なお、図示されていないが、図15に示す処理は、図13に示す処理が継続して実行されている間は繰り返し実行される。 Although not illustrated, the process illustrated in FIG. 15 is repeatedly performed while the process illustrated in FIG. 13 is continuously performed.
上記したようにグループ1においては、当該グループ1に属する全てのワーカノード30間で勾配を共有し、当該各ワーカノード30においてグループ1の平均勾配を算出する処理が実行される。この場合、MPIで定義されるAllreduceと称される集団通信アルゴリズム(MPI_Allreduce)を用いることで、当該各ワーカノード30間での勾配の送信と平均勾配(全ワーカノード30の勾配和)の算出処理を効率的に実行することが可能である。ここでは、MPI_Allreduceを用いる場合について説明したが、当該MPI_Allreduceと同程度の他の処理が実行されてもよい。
As described above, in the
ここでは、グループ1の代表ノード30及び非代表ノード30の処理について説明したが、グループ2の代表ノード40及び非代表ノード40においてもグループ1の代表ノード30及び非代表ノード30と同様の処理が実行される。
Here, the processing of the
本実施形態においては、グループ1(代表ノード30及び非代表ノード30)による勾配の算出がグループ2(代表ノード40及び非代表ノード40)による勾配の算出よりも早い場合、グループ1において算出された勾配はグループ2の代表ノード40に送信される。この場合、グループ2の代表ノード40(及び非代表ノード40)は、並列分散学習処理においてグループ1の平均勾配に基づいて重み係数を算出(更新)する。
In this embodiment, if the gradient calculation by group 1 (
また、グループ2による勾配の算出がグループ1による勾配の算出よりも早い場合、グループ2において算出された勾配はグループ1の代表ノード30に送信される。この場合、グループ1の代表ノード30(及び非代表ノード30)は、並列分散処理においてグループ2の平均勾配に基づいて重み係数を算出(更新)する。
Also, if the gradient calculation by group 2 is faster than the gradient calculation by
上記したように本実施形態においては、第一階層として、複数のワーカノード30及び40を複数のグループ(グループ1及びグループ2)に分割し、当該グループ内で集団通信型Synchronous−SGDによる並列分散学習処理を行う。この第一階層においては、グループ内のワーカノード間で勾配を共有し、当該ワーカノードの各々において平均勾配が算出されて重み係数が更新される。このような第一階層によれば、同期コスト及びバッチサイズを抑制することが可能となる。
As described above, in the present embodiment, a plurality of
また、第二階層として、第一階層における各グループの代表ノード同士でバッチサイズ非依存並列方式による並列分散学習処理を行う。この第二階層においては、各代表ノードは同期する必要がなく、高いスループットを得ることができる。 Further, as the second layer, parallel distributed learning processing by batch size independent parallel method is performed between representative nodes of each group in the first layer. In this second hierarchy, each representative node does not need to be synchronized, and high throughput can be obtained.
すなわち、本実施形態においては、前述した第1の実施形態と同様に、例えばSynchronous−SGDとバッチサイズ非依存並列方式を階層的に組み合わせる構成により、並列分散学習処理における高いスケーラビリティを実現することができ、より大きな並列数での並列分散学習処理が可能となる。 That is, in the present embodiment, as in the first embodiment described above, high scalability in parallel distributed learning processing can be realized, for example, by hierarchically combining Synchronous-SGD and a batch size independent parallel method. This enables parallel distributed learning processing with a larger parallel number.
なお、本実施形態において説明した「グループ1による勾配の算出がグループ2による勾配の算出よりも早い場合」には、グループ2における勾配の算出より先にグループ2の代表ノード40がグループ1において算出された勾配(グループ1における勾配算出結果)を受信する場合が含まれるものとする。
In the case where “the gradient calculation by
これによれば、例えばグループ2において勾配が算出されるより先にグループ2の代表ノード40がグループ1において算出された勾配を受信した場合、当該第1グループにおいては、当該グループ1において算出された勾配(つまり、第1乃至第2勾配)に基づいて重み係数が更新される。一方、グループ2においては、グループ1において算出された勾配に基づいて重み係数が更新された後に、グループ2において算出された勾配(つまり、第3乃至第4勾配)に基づいて重み係数が更に更新される。換言すれば、グループ2における勾配の算出より先にグループ2の代表ノード40がグループ1において算出された勾配を受信した場合には、グループ1においては第1乃至第2勾配に基づいて重み係数が更新され、グループ2においては第1乃至第4勾配に基づいて重み係数が更新される。
According to this, for example, when the
また、本実施形態において説明した「グループ2による勾配の算出がグループ1による勾配の算出よりも早い場合」には、グループ1における勾配の算出より先にグループ1の代表ノード30がグループ2において算出された勾配(グループ2における勾配算出結果)を受信する場合が含まれるものとする。
Further, in the case where “the calculation of the gradient by group 2 is faster than the calculation of the gradient by
これによれば、例えばグループ1において勾配が算出されるより先にグループ1の代表ノード30がグループ1において算出された勾配を受信した場合、当該第2グループにおいては、当該グループ2において算出された勾配(つまり、第3乃至第4勾配)に基づいて重み係数が更新される。一方、グループ1においては、グループ2において算出された勾配に基づいて重み係数が更新された後に、グループ1において算出された勾配(つまり、第1乃至第2勾配)に基づいて重み係数が更に更新される。換言すれば、グループ1における勾配の算出より先にグループ1の代表ノード30がグループ2において算出された勾配を受信した場合には、グループ2においては第3乃至第4勾配に基づいて重み係数が更新され、グループ1においては第1乃至第4勾配に基づいて重み係数が更新される。
According to this, for example, when the
すなわち、本実施形態においては、上記した各グループにおける勾配算出処理の順番(いずれのグループにおける勾配算出処理が早いか)という観点ではなく、いずれのグループにおける勾配算出処理の結果がグループ1またはグループ2の代表ノードにおいて早く受信されるかという観点に基づいて重み係数が更新されるようにしても構わない。
That is, in the present embodiment, the result of the gradient calculation process in any group is
なお、本実施形態においては、グループ内で勾配が共有されるものとして説明したが、例えばグループ内のワーカノードの各々において更新された重み係数が当該グループ内で共有されるような構成とすることも可能である。 In the present embodiment, the gradient is described as being shared in a group, but, for example, the weighting factor updated in each of the worker nodes in the group may be shared in the group. It is possible.
以上述べた少なくとも1つの実施形態によれば、並列分散学習処理における高いスケーラビリティを実現することが可能なシステム、プログラム及び方法を提供することができる。 According to at least one embodiment described above, it is possible to provide a system, program and method capable of realizing high scalability in parallel distributed learning processing.
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。 While certain embodiments of the present invention have been described, these embodiments have been presented by way of example only, and are not intended to limit the scope of the invention. These embodiments can be implemented in other various forms, and various omissions, replacements, and modifications can be made without departing from the scope of the invention. These embodiments and modifications thereof are included in the invention described in the claims and the equivalents thereof as well as included in the scope and the gist of the invention.
10…システム、20…サーバノード、21,32…学習データ格納部、22…データ割当部、23,35…送信制御部、24,33…重み係数格納部、25,31…受信制御部、26,34…算出部、30,40…ワーカーノード、201,301…CPU、202,302…システムコントローラ、203,303…主メモリ、204,304…BIOS−ROM、205,306…不揮発性メモリ、206,306…通信デバイス、207,307…EC。
DESCRIPTION OF SYMBOLS 10
Claims (21)
第1グループに属する第1ノードと第2ノードと、
第2グループに属する第3ノードと第4ノードと、を備え、
前記第1ノードと前記第2ノードとがn(nは自然数)回目の並列分散処理を実行する場合に、前記第1ノードによって目的関数の第1重み係数を第2重み係数へ更新するための第1勾配が算出され、かつ、前記第2ノードによって目的関数の前記第1重み係数を前記第2重み係数へ更新するための第2勾配が算出され、
前記第3ノードと前記第4ノードとがm(mは自然数)回目の並列分散処理を実行する場合に、前記第3ノードによって目的関数の第3重み係数を第4重み係数へ更新するための第3勾配が算出され、かつ、前記第4ノードによって目的関数の前記第3重み係数を前記第4重み係数へ更新するための第4勾配が算出され、
前記第1ノードと前記第2ノードとによる勾配の算出が、前記第3ノードと前記第4ノードとによる勾配の算出よりも早い場合、前記第1ノードと前記第2ノードとが実行するn+1回目の並列分散処理では、前記第1乃至第2勾配に基づいて前記第1重み係数から更新された前記第2重み係数をさらに更新し、かつ、前記第3ノードと前記第4ノードとが実行するm+1回目の並列分散処理では、前記第1乃至第4勾配に基づいて前記第3重み係数から更新された第4重み係数をさらに更新するものである、
システム。 A system,
A first node and a second node belonging to a first group,
And a third node and a fourth node belonging to a second group,
When updating the first weighting factor of the objective function to the second weighting factor by the first node when the first node and the second node execute the n (n is a natural number) parallel distributed processing A first gradient is calculated, and a second gradient is calculated by the second node to update the first weighting factor of the objective function to the second weighting factor.
When the third node and the fourth node execute the m (m is a natural number) parallel distributed processing, the third node updates the third weighting factor of the objective function to the fourth weighting factor A third slope is calculated, and a fourth slope for updating the third weighting factor of the objective function to the fourth weighting factor is calculated by the fourth node,
When the calculation of the gradient by the first node and the second node is faster than the calculation of the gradient by the third node and the fourth node, the (n + 1) th time that the first node and the second node execute In the parallel distributed processing, the second weighting factor updated from the first weighting factor is further updated based on the first and second gradients, and the third node and the fourth node execute In the m + 1th parallel distributed processing, the fourth weighting factor updated from the third weighting factor is further updated based on the first to fourth gradients.
system.
第1グループに属する第1ノードと第2ノードと、
第2グループに属する第3ノードと第4ノードと、を備え、
前記第1ノードと前記第2ノードとがn(nは自然数)回目の並列分散処理を実行する場合に、前記第1ノードによって目的関数の第1重み係数を第2重み係数へ更新するための第1勾配が算出され、かつ、前記第2ノードによって目的関数の前記第1重み係数を前記第2重み係数へ更新するための第2勾配が算出され、
前記第3ノードと前記第4ノードとがm(mは自然数)回目の並列分散処理を実行する場合に、前記第3ノードによって目的関数の第3重み係数を第4重み係数へ更新するための第3勾配が算出され、かつ、前記第4ノードによって目的関数の前記第3重み係数を前記第4重み係数へ更新するための第4勾配が算出され、
前記第3ノードと前記第4ノードとによる勾配の算出が、前記第1ノードと前記第2ノードとによる勾配の算出よりも早い場合、前記第1ノードと前記第2ノードとが実行するn+1回目の並列分散処理では、前記第1乃至第4勾配に基づいて前記第1重み係数から更新された前記第2重み係数をさらに更新し、かつ、前記第3ノードと前記第4ノードとが実行するm+1回目の並列分散処理では、前記第3乃至第4勾配に基づいて前記第3重み係数から更新された前記第4重み係数をさらに更新するものである、
システム。 A system,
A first node and a second node belonging to a first group,
And a third node and a fourth node belonging to a second group,
When updating the first weighting factor of the objective function to the second weighting factor by the first node when the first node and the second node execute the n (n is a natural number) parallel distributed processing A first gradient is calculated, and a second gradient is calculated by the second node to update the first weighting factor of the objective function to the second weighting factor.
When the third node and the fourth node execute the m (m is a natural number) parallel distributed processing, the third node updates the third weighting factor of the objective function to the fourth weighting factor A third slope is calculated, and a fourth slope for updating the third weighting factor of the objective function to the fourth weighting factor is calculated by the fourth node,
When the calculation of the gradient by the third node and the fourth node is faster than the calculation of the gradient by the first node and the second node, the (n + 1) th time that the first node and the second node execute In the parallel distributed processing, the second weighting factor updated from the first weighting factor is further updated based on the first to fourth gradients, and the third node and the fourth node execute In the (m + 1) th parallel distributed processing, the fourth weighting factor updated from the third weighting factor is further updated based on the third to fourth gradients.
system.
第1グループに属する第1ノードと第2ノードと、
第2グループに属する第3ノードと第4ノードと、を備え、
前記第1ノードと前記第2ノードとがn(nは自然数)回目の並列分散処理を実行する場合に、前記第1ノードによって目的関数の第1重み係数を第2重み係数へ更新するための第1勾配が算出され、かつ、前記第2ノードによって目的関数の前記第1重み係数を前記第2重み係数へ更新するための第2勾配が算出され、
前記第3ノードと前記第4ノードとがm(mは自然数)回目の並列分散処理を実行する場合に、前記第3ノードによって目的関数の第3重み係数を第4重み係数へ更新するための第3勾配が算出され、かつ、前記第4ノードによって目的関数の前記第3重み係数を前記第4重み係数へ更新するための第4勾配が算出され、
前記第1ノードと前記第2ノードとによる勾配の算出が、前記第3ノードと前記第4ノードとによる勾配の算出よりも早い場合、前記第1ノードと前記第2ノードとが実行するn+1回目の並列分散処理では、前記第1乃至第2勾配に基づいて前記第1重み係数から更新された前記第2重み係数をさらに更新し、かつ、前記第3ノードと前記第4ノードとが実行するm+1回目の並列分散処理では、前記第1乃至第4勾配に基づいて前記第3重み係数から更新された第4重み係数をさらに更新するものであって、
前記第3ノードと前記第4ノードとによる勾配の算出が、前記第1ノードと前記第2ノードとによる勾配の算出よりも早い場合、前記第1ノードと前記第2ノードとが実行するn+1回目の並列分散処理では、前記第1乃至第4勾配に基づいて前記第1重み係数から更新された前記第2重み係数をさらに更新し、かつ、前記第3ノードと前記第4ノードとが実行するm+1回目の並列分散処理では、前記第3乃至第4勾配に基づいて前記第3重み係数から更新された前記第4重み係数をさらに更新するものである、
システム。 A system,
A first node and a second node belonging to a first group,
And a third node and a fourth node belonging to a second group,
When updating the first weighting factor of the objective function to the second weighting factor by the first node when the first node and the second node execute the n (n is a natural number) parallel distributed processing A first gradient is calculated, and a second gradient is calculated by the second node to update the first weighting factor of the objective function to the second weighting factor.
When the third node and the fourth node execute the m (m is a natural number) parallel distributed processing, the third node updates the third weighting factor of the objective function to the fourth weighting factor A third slope is calculated, and a fourth slope for updating the third weighting factor of the objective function to the fourth weighting factor is calculated by the fourth node,
When the calculation of the gradient by the first node and the second node is faster than the calculation of the gradient by the third node and the fourth node, the (n + 1) th time that the first node and the second node execute In the parallel distributed processing, the second weighting factor updated from the first weighting factor is further updated based on the first and second gradients, and the third node and the fourth node execute In the m + 1th parallel distributed processing, the fourth weighting factor updated from the third weighting factor is further updated based on the first to fourth gradients,
When the calculation of the gradient by the third node and the fourth node is faster than the calculation of the gradient by the first node and the second node, the (n + 1) th time that the first node and the second node execute In the parallel distributed processing, the second weighting factor updated from the first weighting factor is further updated based on the first to fourth gradients, and the third node and the fourth node execute In the (m + 1) th parallel distributed processing, the fourth weighting factor updated from the third weighting factor is further updated based on the third to fourth gradients.
system.
前記第4重み係数は、前記第3乃至第4勾配から算出された第6勾配に基づいて更新される
請求項1〜3のいずれか一項に記載のシステム。 The second weighting factor is updated based on a fifth gradient calculated from the first and second gradients,
The system according to any one of claims 1 to 3, wherein the fourth weighting factor is updated based on a sixth gradient calculated from the third to fourth gradients.
前記サーバノードは、前記第2重み係数及び前記第4重み係数を算出し、
前記第1ノードは、前記サーバノードから送信された第2重み係数を第2ノードに送信し、
前記第3ノードは、前記サーバノードから送信された第4重み係数を第4ノードに送信する
請求項1〜3のいずれか一項に記載のシステム。 And a server node communicably connected to the first node and the third node,
The server node calculates the second weighting factor and the fourth weighting factor.
The first node transmits to the second node the second weighting factor transmitted from the server node.
The system according to any one of claims 1 to 3, wherein the third node transmits, to a fourth node, a fourth weighting factor transmitted from the server node.
前記第3ノードと第4ノードとが実行するm+1回目の並列分散処理では、前記第1乃至第4勾配に基づいて前記第4重み係数がさらに更新され、
前記第3ノードと前記第4ノードとによる勾配の算出が、前記第1ノードと前記第2ノードとによる勾配の算出よりも早い場合、前記第3乃至第4勾配は前記第1ノードと第2ノードとに送信され、
前記第1ノードと第2ノードとが実行するn+1回目の並列分散処理では、前記第1乃至第4勾配に基づいて前記第2重み係数がさらに更新される
請求項3記載のシステム。 When the calculation of the gradient by the first node and the second node is faster than the calculation of the gradient by the third node and the fourth node, the first to second gradients correspond to the third node and the fourth node. Sent to the node and
In the m + 1th parallel distributed processing executed by the third node and the fourth node, the fourth weighting factor is further updated based on the first to fourth gradients,
When the calculation of the gradient by the third node and the fourth node is faster than the calculation of the gradient by the first node and the second node, the third to fourth gradients correspond to the first node and the second node. Sent to the node and
The system according to claim 3, wherein in the (n + 1) th parallel distributed processing executed by the first node and the second node, the second weighting factor is further updated based on the first to fourth gradients.
前記第2グループに属する第3ノード及び第4ノードの処理速度の差は第2閾値以下である
請求項1〜3のいずれか一項に記載のシステム。 The difference in processing speed between the first node and the second node belonging to the first group is equal to or less than a first threshold,
The system according to any one of claims 1 to 3, wherein a difference between processing speeds of the third node and the fourth node belonging to the second group is equal to or less than a second threshold.
前記第2グループには、前記第3ノード及び第4ノードを含む複数のノードが属しており、
前記第1ノード及び前記第2ノードの処理速度よりも前記第3ノード及び前記第4ノードの処理速度が遅い場合、前記第1グループに属するノードの第1数は、前記第2グループに属するノードの第2数よりも少ない
請求項7記載のシステム。 A plurality of nodes including the first node and the second node belong to the first group,
A plurality of nodes including the third node and the fourth node belong to the second group,
When the processing speed of the third node and the fourth node is slower than the processing speed of the first node and the second node, the first number of nodes belonging to the first group is a node belonging to the second group The system of claim 7, wherein the number is less than the second number.
前記1以上のコンピュータに、
前記第1ノードと前記第2ノードとがn(nは自然数)回目の並列分散処理を実行する場合に、前記第1ノードによって目的関数の第1重み係数を第2重み係数へ更新するための第1勾配を算出し、かつ、前記第2ノードによって目的関数の前記第1重み係数を前記第2重み係数へ更新するための第2勾配を算出するステップと、
前記第3ノードと前記第4ノードとがm(mは自然数)回目の並列分散処理を実行する場合に、前記第3ノードによって目的関数の第3重み係数を第4重み係数へ更新するための第3勾配を算出し、かつ、前記第4ノードによって目的関数の前記第3重み係数を前記第4重み係数へ更新するための第4勾配を算出するステップと
を実行させ、
前記第1ノードと前記第2ノードとによる勾配の算出が、前記第3ノードと前記第4ノードとによる勾配の算出よりも早い場合、前記第1ノードと前記第2ノードとが実行するn+1回目の並列分散処理では、前記第1乃至第2勾配に基づいて前記第1重み係数から更新された前記第2重み係数をさらに更新し、かつ、前記第3ノードと前記第4ノードとが実行するm+1回目の並列分散処理では、前記第1乃至第4勾配に基づいて前記第3重み係数から更新された第4重み係数をさらに更新するものである、
プログラム。 A program executed by one or more computers of a system comprising a first node and a second node belonging to a first group, and a third node and a fourth node belonging to a second group,
On the one or more computers,
When updating the first weighting factor of the objective function to the second weighting factor by the first node when the first node and the second node execute the n (n is a natural number) parallel distributed processing Calculating a first gradient and calculating a second gradient for updating the first weighting factor of the objective function to the second weighting factor by the second node;
When the third node and the fourth node execute the m (m is a natural number) parallel distributed processing, the third node updates the third weighting factor of the objective function to the fourth weighting factor Calculating a third gradient, and calculating a fourth gradient for updating the third weighting coefficient of the objective function to the fourth weighting coefficient by the fourth node;
When the calculation of the gradient by the first node and the second node is faster than the calculation of the gradient by the third node and the fourth node, the (n + 1) th time that the first node and the second node execute In the parallel distributed processing, the second weighting factor updated from the first weighting factor is further updated based on the first and second gradients, and the third node and the fourth node execute In the m + 1th parallel distributed processing, the fourth weighting factor updated from the third weighting factor is further updated based on the first to fourth gradients.
program.
前記1以上のコンピュータに、
前記第1ノードと前記第2ノードとがn(nは自然数)回目の並列分散処理を実行する場合に、前記第1ノードによって目的関数の第1重み係数を第2重み係数へ更新するための第1勾配を算出し、かつ、前記第2ノードによって目的関数の前記第1重み係数を前記第2重み係数へ更新するための第2勾配を算出するステップと、
前記第3ノードと前記第4ノードとがm(mは自然数)回目の並列分散処理を実行する場合に、前記第3ノードによって目的関数の第3重み係数を第4重み係数へ更新するための第3勾配を算出し、かつ、前記第4ノードによって目的関数の前記第3重み係数を前記第4重み係数へ更新するための第4勾配を算出するステップと
を実行させ、
前記第3ノードと前記第4ノードとによる勾配の算出が、前記第1ノードと前記第2ノードとによる勾配の算出よりも早い場合、前記第1ノードと前記第2ノードとが実行するn+1回目の並列分散処理では、前記第1乃至第4勾配に基づいて前記第1重み係数から更新された前記第2重み係数をさらに更新し、かつ、前記第3ノードと前記第4ノードとが実行するm+1回目の並列分散処理では、前記第3乃至第4勾配に基づいて前記第3重み係数から更新された前記第4重み係数をさらに更新するものである、
プログラム。 A program executed by one or more computers of a system comprising a first node and a second node belonging to a first group, and a third node and a fourth node belonging to a second group,
On the one or more computers,
When updating the first weighting factor of the objective function to the second weighting factor by the first node when the first node and the second node execute the n (n is a natural number) parallel distributed processing Calculating a first gradient and calculating a second gradient for updating the first weighting factor of the objective function to the second weighting factor by the second node;
When the third node and the fourth node execute the m (m is a natural number) parallel distributed processing, the third node updates the third weighting factor of the objective function to the fourth weighting factor Calculating a third gradient, and calculating a fourth gradient for updating the third weighting coefficient of the objective function to the fourth weighting coefficient by the fourth node;
When the calculation of the gradient by the third node and the fourth node is faster than the calculation of the gradient by the first node and the second node, the (n + 1) th time that the first node and the second node execute In the parallel distributed processing, the second weighting factor updated from the first weighting factor is further updated based on the first to fourth gradients, and the third node and the fourth node execute In the (m + 1) th parallel distributed processing, the fourth weighting factor updated from the third weighting factor is further updated based on the third to fourth gradients.
program.
前記1以上のコンピュータに、
前記第1ノードと前記第2ノードとがn(nは自然数)回目の並列分散処理を実行する場合に、前記第1ノードによって目的関数の第1重み係数を第2重み係数へ更新するための第1勾配を算出し、かつ、前記第2ノードによって目的関数の前記第1重み係数を前記第2重み係数へ更新するための第2勾配を算出するステップと、
前記第3ノードと前記第4ノードとがm(mは自然数)回目の並列分散処理を実行する場合に、前記第3ノードによって目的関数の第3重み係数を第4重み係数へ更新するための第3勾配を算出し、かつ、前記第4ノードによって目的関数の前記第3重み係数を前記第4重み係数へ更新するための第4勾配を算出するステップと
を実行させ、
前記第1ノードと前記第2ノードとによる勾配の算出が、前記第3ノードと前記第4ノードとによる勾配の算出よりも早い場合、前記第1ノードと前記第2ノードとが実行するn+1回目の並列分散処理では、前記第1乃至第2勾配に基づいて前記第1重み係数から更新された前記第2重み係数をさらに更新し、かつ、前記第3ノードと前記第4ノードとが実行するm+1回目の並列分散処理では、前記第1乃至第4勾配に基づいて前記第3重み係数から更新された第4重み係数をさらに更新するものであって、
前記第3ノードと前記第4ノードとによる勾配の算出が、前記第1ノードと前記第2ノードとによる勾配の算出よりも早い場合、前記第1ノードと前記第2ノードとが実行するn+1回目の並列分散処理では、前記第1乃至第4勾配に基づいて前記第1重み係数から更新された前記第2重み係数をさらに更新し、且つ、前記第3ノードと前記第4ノードとが実行するm+1回目の並列分散処理では、前記第3乃至第4勾配に基づいて前記第3重み係数から更新された前記第4重み係数をさらに更新するものである、
プログラム。 A program executed by one or more computers of a system comprising a first node and a second node belonging to a first group, and a third node and a fourth node belonging to a second group,
On the one or more computers,
When updating the first weighting factor of the objective function to the second weighting factor by the first node when the first node and the second node execute the n (n is a natural number) parallel distributed processing Calculating a first gradient and calculating a second gradient for updating the first weighting factor of the objective function to the second weighting factor by the second node;
When the third node and the fourth node execute the m (m is a natural number) parallel distributed processing, the third node updates the third weighting factor of the objective function to the fourth weighting factor Calculating a third gradient, and calculating a fourth gradient for updating the third weighting coefficient of the objective function to the fourth weighting coefficient by the fourth node;
When the calculation of the gradient by the first node and the second node is faster than the calculation of the gradient by the third node and the fourth node, the (n + 1) th time that the first node and the second node execute In the parallel distributed processing, the second weighting factor updated from the first weighting factor is further updated based on the first and second gradients, and the third node and the fourth node execute In the m + 1th parallel distributed processing, the fourth weighting factor updated from the third weighting factor is further updated based on the first to fourth gradients,
When the calculation of the gradient by the third node and the fourth node is faster than the calculation of the gradient by the first node and the second node, the (n + 1) th time that the first node and the second node execute In the parallel distributed processing, the second weighting factor updated from the first weighting factor is further updated based on the first to fourth gradients, and the third node and the fourth node execute In the (m + 1) th parallel distributed processing, the fourth weighting factor updated from the third weighting factor is further updated based on the third to fourth gradients.
program.
前記第4重み係数は、前記第3乃至第4勾配から算出された第6勾配に基づいて更新される
請求項10〜12のいずれか一項に記載のプログラム。 The second weighting factor is updated based on a fifth gradient calculated from the first and second gradients,
The program according to any one of claims 10 to 12, wherein the fourth weighting factor is updated based on a sixth gradient calculated from the third to fourth gradients.
前記第1ノードは、前記サーバノードから送信された第2重み係数を第2ノードに送信し、
前記第3ノードは、前記サーバノードから送信された第4重み係数を第4ノードに送信する
請求項10〜12のいずれか一項に記載のプログラム。 The second weighting factor and the fourth weighting factor are calculated by a server node,
The first node transmits to the second node the second weighting factor transmitted from the server node.
The program according to any one of claims 10 to 12, wherein the third node transmits a fourth weighting factor transmitted from the server node to a fourth node.
前記第3ノードと第4ノードとが実行するm+1回目の並列分散処理では、前記第1勾配乃至第4勾配に基づいて前記第4重み係数がさらに更新され、
前記第3ノードと前記第4ノードとによる勾配の算出が、前記第1ノードと前記第2ノードとによる勾配の算出よりも早い場合、前記第3乃至第4勾配は前記第1ノードと第2ノードとに送信され、
前記第1ノードと第2ノードとが実行するn+1回目の並列分散処理では、前記第1乃至第4勾配に基づいて前記第2重み係数がさらに更新される
請求項10記載のプログラム。 When the calculation of the gradient by the first node and the second node is faster than the calculation of the gradient by the third node and the fourth node, the first to second gradients correspond to the third node and the fourth node. Sent to the node and
In the m + 1th parallel distributed processing executed by the third node and the fourth node, the fourth weighting factor is further updated based on the first gradient to the fourth gradient,
When the calculation of the gradient by the third node and the fourth node is faster than the calculation of the gradient by the first node and the second node, the third to fourth gradients correspond to the first node and the second node. Sent to the node and
The program according to claim 10, wherein in the (n + 1) th parallel distributed processing executed by the first node and the second node, the second weighting factor is further updated based on the first to fourth gradients.
前記第2グループに属する第3ノード及び第4ノードの処理速度の差は第2閾値以下である
請求項10〜12のいずれか一項に記載のプログラム。 The difference in processing speed between the first node and the second node belonging to the first group is equal to or less than a first threshold,
The program according to any one of claims 10 to 12, wherein a difference between processing speeds of the third node and the fourth node belonging to the second group is equal to or less than a second threshold.
前記第2グループには、前記第3ノード及び第4ノードを含む複数のノードが属しており、
前記第1ノード及び前記第2ノードの処理速度よりも前記第3ノード及び前記第4ノードの処理速度が遅い場合、前記第1グループに属するノードの第1数は、前記第2グループに属するノードの第2数よりも少ない
請求項16記載のプログラム。 A plurality of nodes including the first node and the second node belong to the first group,
A plurality of nodes including the third node and the fourth node belong to the second group,
When the processing speed of the third node and the fourth node is slower than the processing speed of the first node and the second node, the first number of nodes belonging to the first group is a node belonging to the second group The program according to claim 16, which is less than the second number of.
第2グループに属する第3ノードと第4ノードとがm(mは自然数)回目の並列分散処理を実行する場合に、前記第3ノードによって目的関数の第3重み係数を第4重み係数へ更新するための第3勾配が算出され、かつ、前記第4ノードによって目的関数の前記第3重み係数を前記第4重み係数へ更新するための第4勾配が算出されるステップと
を具備し、
前記第1ノードと前記第2ノードとによる勾配の算出が、前記第3ノードと前記第4ノードとによる勾配の算出よりも早い場合、前記第1ノードと前記第2ノードとが実行するn+1回目の並列分散処理では、前記第1乃至第2勾配に基づいて前記第1重み係数から更新された前記第2重み係数をさらに更新し、かつ、前記第3ノードと前記第4ノードとが実行するm+1回目の並列分散処理では、前記第1乃至第4勾配に基づいて前記第3重み係数から更新された第4重み係数をさらに更新するものである、
方法。 The first weighting factor of the objective function is updated by the first node to the second weighting factor when the first node and the second node belonging to the first group execute the n (n is a natural number) parallel distributed processing Calculating a first gradient to be calculated, and calculating a second gradient for updating the first weighting factor of the objective function to the second weighting factor by the second node;
When the third node and the fourth node belonging to the second group execute m (m is a natural number) parallel distributed processing, the third weighting factor of the objective function is updated to the fourth weighting factor by the third node Calculating a third gradient to calculate the third gradient, and calculating a fourth gradient for updating the third weighting coefficient of the objective function to the fourth weighting coefficient by the fourth node;
When the calculation of the gradient by the first node and the second node is faster than the calculation of the gradient by the third node and the fourth node, the (n + 1) th time that the first node and the second node execute In the parallel distributed processing, the second weighting factor updated from the first weighting factor is further updated based on the first and second gradients, and the third node and the fourth node execute In the m + 1th parallel distributed processing, the fourth weighting factor updated from the third weighting factor is further updated based on the first to fourth gradients.
Method.
第2グループに属する第3ノードと第4ノードとがm(mは自然数)回目の並列分散処理を実行する場合に、前記第3ノードによって目的関数の第3重み係数を第4重み係数へ更新するための第3勾配が算出され、かつ、前記第4ノードによって目的関数の前記第3重み係数を前記第4重み係数へ更新するための第4勾配が算出されるステップと
を具備し、
前記第3ノードと前記第4ノードとによる勾配の算出が、前記第1ノードと前記第2ノードとによる勾配の算出よりも早い場合、前記第1ノードと前記第2ノードとが実行するn+1回目の並列分散処理では、前記第1乃至第4勾配に基づいて前記第1重み係数から更新された前記第2重み係数をさらに更新し、且つ、前記第3ノードと前記第4ノードとが実行するm+1回目の並列分散処理では、前記第3乃至第4勾配に基づいて前記第3重み係数から更新された前記第4重み係数をさらに更新するものである
方法。 The first weighting factor of the objective function is updated by the first node to the second weighting factor when the first node and the second node belonging to the first group execute the n (n is a natural number) parallel distributed processing Calculating a first gradient to be calculated, and calculating a second gradient for updating the first weighting factor of the objective function to the second weighting factor by the second node;
When the third node and the fourth node belonging to the second group execute m (m is a natural number) parallel distributed processing, the third weighting factor of the objective function is updated to the fourth weighting factor by the third node Calculating a third gradient to calculate the third gradient, and calculating a fourth gradient for updating the third weighting coefficient of the objective function to the fourth weighting coefficient by the fourth node;
When the calculation of the gradient by the third node and the fourth node is faster than the calculation of the gradient by the first node and the second node, the (n + 1) th time that the first node and the second node execute In the parallel distributed processing, the second weighting factor updated from the first weighting factor is further updated based on the first to fourth gradients, and the third node and the fourth node execute In the m + 1th parallel distributed processing, the fourth weighting factor updated from the third weighting factor is further updated based on the third to fourth gradients.
第2グループに属する第3ノードと第4ノードとがm(mは自然数)回目の並列分散処理を実行する場合に、前記第3ノードによって目的関数の第3重み係数を第4重み係数へ更新するための第3勾配が算出され、かつ、前記第4ノードによって目的関数の前記第3重み係数を前記第4重み係数へ更新するための第4勾配が算出されるステップと
を具備し、
前記第1ノードと前記第2ノードとによる勾配の算出が、前記第3ノードと前記第4ノードとによる勾配の算出よりも早い場合、前記第1ノードと前記第2ノードとが実行するn+1回目の並列分散処理では、前記第1乃至第2勾配に基づいて前記第1重み係数から更新された前記第2重み係数をさらに更新し、かつ、前記第3ノードと前記第4ノードとが実行するm+1回目の並列分散処理では、前記第1乃至第4勾配に基づいて前記第3重み係数から更新された第4重み係数をさらに更新するものであって、
前記第3ノードと前記第4ノードとによる勾配の算出が、前記第1ノードと前記第2ノードとによる勾配の算出よりも早い場合、前記第1ノードと前記第2ノードとが実行するn+1回目の並列分散処理では、前記第1乃至第4勾配に基づいて前記第1重み係数から更新された前記第2重み係数をさらに更新し、且つ、前記第3ノードと前記第4ノードとが実行するm+1回目の並列分散処理では、前記第3乃至第4勾配に基づいて前記第3重み係数から更新された前記第4重み係数をさらに更新するものである
方法。 The first weighting factor of the objective function is updated by the first node to the second weighting factor when the first node and the second node belonging to the first group execute the n (n is a natural number) parallel distributed processing Calculating a first gradient to be calculated, and calculating a second gradient for updating the first weighting factor of the objective function to the second weighting factor by the second node;
When the third node and the fourth node belonging to the second group execute m (m is a natural number) parallel distributed processing, the third weighting factor of the objective function is updated to the fourth weighting factor by the third node Calculating a third gradient to calculate the third gradient, and calculating a fourth gradient for updating the third weighting coefficient of the objective function to the fourth weighting coefficient by the fourth node;
When the calculation of the gradient by the first node and the second node is faster than the calculation of the gradient by the third node and the fourth node, the (n + 1) th time that the first node and the second node execute In the parallel distributed processing, the second weighting factor updated from the first weighting factor is further updated based on the first and second gradients, and the third node and the fourth node execute In the m + 1th parallel distributed processing, the fourth weighting factor updated from the third weighting factor is further updated based on the first to fourth gradients,
When the calculation of the gradient by the third node and the fourth node is faster than the calculation of the gradient by the first node and the second node, the (n + 1) th time that the first node and the second node execute In the parallel distributed processing, the second weighting factor updated from the first weighting factor is further updated based on the first to fourth gradients, and the third node and the fourth node execute In the m + 1th parallel distributed processing, the fourth weighting factor updated from the third weighting factor is further updated based on the third to fourth gradients.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/129,161 US20190188563A1 (en) | 2017-12-18 | 2018-09-12 | System |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017241778 | 2017-12-18 | ||
JP2017241778 | 2017-12-18 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019109875A true JP2019109875A (en) | 2019-07-04 |
JP6877393B2 JP6877393B2 (en) | 2021-05-26 |
Family
ID=67179962
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018159500A Active JP6877393B2 (en) | 2017-12-18 | 2018-08-28 | Systems, programs and methods |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6877393B2 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021140643A1 (en) * | 2020-01-10 | 2021-07-15 | 富士通株式会社 | Neural network system, neural network training method, and neural network training program |
EP4009241A1 (en) | 2020-12-03 | 2022-06-08 | Fujitsu Limited | Arithmetic processing apparatus, arithmetic processing method, and arithmetic processing program |
JP2023518779A (en) * | 2020-04-08 | 2023-05-08 | 北京字節跳動網絡技術有限公司 | Network connection method and apparatus for training participants of common training model |
EP4177797A1 (en) | 2021-11-08 | 2023-05-10 | Fujitsu Limited | Machine learning program, machine learning device, and machine learning method |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016197389A (en) * | 2015-04-03 | 2016-11-24 | 株式会社デンソーアイティーラボラトリ | Learning system, learning program, and learning method |
-
2018
- 2018-08-28 JP JP2018159500A patent/JP6877393B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016197389A (en) * | 2015-04-03 | 2016-11-24 | 株式会社デンソーアイティーラボラトリ | Learning system, learning program, and learning method |
Non-Patent Citations (1)
Title |
---|
吉敷一将、外2名: "パラメータサーバのためのFPGAおよびDPDKによる通信高効率化手法", 電子情報通信学会技術研究報告, vol. 117, no. 46, JPN6021010323, 15 May 2017 (2017-05-15), JP, pages 99 - 104, ISSN: 0004472670 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021140643A1 (en) * | 2020-01-10 | 2021-07-15 | 富士通株式会社 | Neural network system, neural network training method, and neural network training program |
JPWO2021140643A1 (en) * | 2020-01-10 | 2021-07-15 | ||
JP7453563B2 (en) | 2020-01-10 | 2024-03-21 | 富士通株式会社 | Neural network system, neural network learning method, and neural network learning program |
JP2023518779A (en) * | 2020-04-08 | 2023-05-08 | 北京字節跳動網絡技術有限公司 | Network connection method and apparatus for training participants of common training model |
JP7454065B2 (en) | 2020-04-08 | 2024-03-21 | 北京字節跳動網絡技術有限公司 | Network connection method and device for training participants of common training model |
EP4009241A1 (en) | 2020-12-03 | 2022-06-08 | Fujitsu Limited | Arithmetic processing apparatus, arithmetic processing method, and arithmetic processing program |
EP4177797A1 (en) | 2021-11-08 | 2023-05-10 | Fujitsu Limited | Machine learning program, machine learning device, and machine learning method |
Also Published As
Publication number | Publication date |
---|---|
JP6877393B2 (en) | 2021-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6877393B2 (en) | Systems, programs and methods | |
Gai et al. | Resource management in sustainable cyber-physical systems using heterogeneous cloud computing | |
CN107688493B (en) | Method, device and system for training deep neural network | |
JP6380110B2 (en) | Resource control system, control pattern generation device, control device, resource control method, and program | |
Zhu et al. | Drl-based deadline-driven advance reservation allocation in eons for cloud–edge computing | |
JP6699891B2 (en) | Electronic device, method and information processing system | |
CN111090631B (en) | Information sharing method and device under distributed environment and electronic equipment | |
CN108089918B (en) | Graph computation load balancing method for heterogeneous server structure | |
US9407561B2 (en) | Systems and methods for traffic engineering in software defined networks | |
CN114357676B (en) | Aggregation frequency control method for hierarchical model training framework | |
CN112104693B (en) | Task unloading method and device for non-uniform mobile edge computing network | |
CN114500560A (en) | Edge node service deployment and load balancing method for minimizing network delay | |
CN113778691A (en) | Task migration decision method, device and system | |
Dalgkitsis et al. | Schema: Service chain elastic management with distributed reinforcement learning | |
Xu et al. | Stable service caching in mecs of hierarchical service markets with uncertain request rates | |
Mohammadabadi et al. | Communication-Efficient Training Workload Balancing for Decentralized Multi-Agent Learning | |
CN106717084B (en) | Apparatus and method for overlapping rate partition | |
US20180150035A1 (en) | System Control Method and Apparatus, Controller, And Control System | |
JP7021132B2 (en) | Learning equipment, learning methods and programs | |
US9503367B2 (en) | Risk mitigation in data center networks using virtual machine sharing | |
Huang et al. | Parallel Placement of Virtualized Network Functions via Federated Deep Reinforcement Learning | |
Zhou et al. | DRL-Based Workload Allocation for Distributed Coded Machine Learning | |
JP2015050511A (en) | Physical resource allocation device | |
US20220173973A1 (en) | Connecting processors using twisted torus configurations | |
CN112234599B (en) | Advanced dynamic self-adaptive partitioning method and system for multi-element complex urban power grid |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200316 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20210317 |
|
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: 20210330 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210427 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 6877393 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |