JP2019212111A - 分散学習方法及び分散学習装置 - Google Patents

分散学習方法及び分散学習装置 Download PDF

Info

Publication number
JP2019212111A
JP2019212111A JP2018108754A JP2018108754A JP2019212111A JP 2019212111 A JP2019212111 A JP 2019212111A JP 2018108754 A JP2018108754 A JP 2018108754A JP 2018108754 A JP2018108754 A JP 2018108754A JP 2019212111 A JP2019212111 A JP 2019212111A
Authority
JP
Japan
Prior art keywords
gradient
distributed learning
parameter
parameter group
parameters
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.)
Pending
Application number
JP2018108754A
Other languages
English (en)
Inventor
雄介 都竹
Yusuke Tsuzuku
雄介 都竹
宏人 井町
Hiroto Imachi
宏人 井町
拓哉 秋葉
Takuya Akiba
拓哉 秋葉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Preferred Networks Inc
Original Assignee
Preferred Networks Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Preferred Networks Inc filed Critical Preferred Networks Inc
Priority to JP2018108754A priority Critical patent/JP2019212111A/ja
Publication of JP2019212111A publication Critical patent/JP2019212111A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】高い圧縮率を達成しつつ、認識精度の低下を抑制可能で、かつ、ハイパーパラメータの調整が容易な分散学習を実現する方法及び装置を提供する。【解決手段】複数のパラメータの分散学習装置10は、複数のパラメータそれぞれに関する誤差関数の勾配を計算する勾配計算手順101と、複数のパラメータをグループ化したパラメータグループ毎に統計量を計算する統計量計算手順102と、前記統計量と予め設定された送信割合とに基づいて、前記勾配が送信される送信パラメータグループを判定する判定手順103と、前記送信パラメータグループに含まれるパラメータに関する誤差関数の勾配であって、複数のコンピュータでそれぞれ計算された勾配の平均を示す勾配平均を、集団通信により複数のコンピュータ間で共有する共有手順105と、前記勾配平均を用いて、前記送信パラメータグループに含まれるパラメータを更新する更新手順106とを実行する。【選択図】図3

Description

本発明は、分散学習方法及び分散学習装置に関する。
近年、通信ネットワークを介して接続された複数の計算ノードを用いて、これらの複数の計算ノード間で分散して深層学習(DL:Deep Learning)を行う手法が知られるようになってきた。このような手法は、分散深層学習とも称される。
分散深層学習では、ニューラルネットワークのパラメータ数に比例して各計算ノード間の通信量が増大する。このため、例えばイーサネット(登録商標)等の比較的低速な通信媒体を用いた通信ネットワークでは、計算ノードの計算時間と比較して、各計算ノード間の通信時間が大幅に大きくなる場合があり、学習速度が通信ネットワークの通信速度に律速されてしまうことがある。これに対して、例えばインフィニバンド等の比較的高速な通信媒体を用いることも考えられるが、コストが高くなるという問題がある。
ここで、分散深層学習では、主に、各計算ノードで計算した勾配に対する全計算ノードでの平均を計算するために通信が行われる。そこで、各計算ノード間で通信される勾配を量子化したり、或る閾値以上の勾配のみを各計算ノード間で通信したりすること等で、通信量を圧縮する様々な手法が提案されている(例えば、非特許文献1〜4参照)。このように、各計算ノード間で通信される勾配の通信量を圧縮(削減)する手法は勾配圧縮とも称される。
F. Seide, H. Fu, J. Droppo, G. Li, D. Yu. "1-bit stochastic gradient descent and its application to data-parallel distributed training of speech DNNs", In INTERSPEECH-2014, 1058-1062. N. Strom. "Scalable distributed DNN training using commodity GPU cloud computing", In INTERSPEECH-2015, 1488-1492. D. Alistarh, J. Li, R. Tomioka, M. Vojnovic. "QSGD: Randomized quantization for communication-optimal stochastic gradient descent", arXiv:1610.02132, 2016. Y. Tsuzuku, H. Imachi, T. Akiba. "Variance-based Gradient Compression for Efficient Distributed Deep Learning", arXiv preprint arXiv:1802.06058, 2018.
しかしながら、従来の手法では、例えば、学習後のニューラルネットワークの認識精度の高さと通信量の圧縮率の高さとを両立させることが困難であったり、ハイパーパラメータの調整が困難であったりする。
本発明の実施の形態は、高い圧縮率を達成しつつ、認識精度の低下を抑制可能で、かつ、ハイパーパラメータの調整が容易な分散学習を実現することを目的とする。
上記目的を達成するため、本発明の実施の形態は、複数のコンピュータで複数のパラメータを学習する分散学習方法であって、前記コンピュータが、前記複数のパラメータそれぞれに関する誤差関数の勾配を計算する勾配計算手順と、前記複数のパラメータを複数のグループにそれぞれグループ化したパラメータグループ毎に、該パラメータグループの統計量を計算する統計量計算手順と、前記統計量と、予め設定された送信割合とに基づいて、複数のパラメータグループのうち、前記勾配が送信されるパラメータのパラメータグループを示す送信パラメータグループを判定する判定手順と、前記送信パラメータグループに含まれるパラメータに関する誤差関数の勾配であって、前記複数のコンピュータでそれぞれ計算された勾配の平均を示す勾配平均を、集団通信により前記複数のコンピュータ間で共有する共有手順と、前記勾配平均を用いて、前記送信パラメータグループに含まれるパラメータを更新する更新手順と、を実行することを特徴とする。
高い圧縮率を達成しつつ、認識精度の低下を抑制可能で、かつ、ハイパーパラメータの調整が容易な分散学習を実現することができる。
本発明の実施の形態における分散学習システムのシステム構成の一例を示す図である。 本発明の実施の形態における分散学習装置のハードウェア構成の一例を示す図である。 本発明の実施の形態における分散学習装置の機能構成の一例を示す図である。 本発明の実施の形態における分散学習システムが実行する分散学習処理の一例を示すフローチャート(実施例1)である。 本発明の実施の形態における分散学習システムが実行する分散学習処理の一例を示すフローチャート(実施例2)である。 実施例1における分散学習処理の効果の一例を説明するための図である。 実施例2における分散学習処理の効果の一例を説明するための図である。
以下、本発明の実施の形態について、図面を参照しながら詳細に説明する。本発明の実施の形態では、複数の計算ノード間で分散深層学習を行う際に、通信量の高い圧縮率を達成しつつ、学習後のニューラルネットワークの認識精度の低下を抑制可能で、かつ、ハイパーパラメータの調整が容易な分散学習システム1について説明する。
ここで、「圧縮率」とは、(総パラメータ数)×(計算ノード数)/(総パラメータのうち、各計算ノードで勾配が送信されたパラメータ数の合計)で示される値のことである。圧縮率が高い程、圧縮の性能が良いことを意味する。
また、「精度」とは、ニューラルネットワークの学習後に、学習時に使わなかったデータ(これは「テストデータ」とも称される。)を用いて評価した精度(validation accuracy)のことである。
<システム構成>
まず、本発明の実施の形態における分散学習システム1のシステム構成について、図1を参照しながら説明する。図1は、本発明の実施の形態における分散学習システム1のシステム構成の一例を示す図である。
図1に示すように、本発明の実施の形態における分散学習システム1には、複数の分散学習装置10が含まれる。また、各分散学習装置10は、通信ネットワークを介して通信可能に接続されている。通信ネットワークとしては、例えば、LAN(Local Area Network)等が用いられる。なお、通信ネットワークに用いられる通信媒体や通信手法、通信方式等は任意のものを用いることができる。
分散学習装置10は、分散深層学習の計算ノード(以降、単に「ノード」とも表す。)として機能するコンピュータである。各分散深層装置10は、分散深層学習によりニューラルネットワークのパラメータを更新する。分散深層学習では、学習データ(これは、「訓練データ」とも称される。)を用いて各分散学習装置10がそれぞれ勾配を計算した後、これらの勾配に対する全ての分散学習装置10での平均(勾配平均)が計算される。そして、この勾配平均を用いて、ニューラルネットワークのパラメータが更新される。
これにより、分散深層学習では、大量の学習データを用いて、パラメータ数が膨大であるニューラルネットワーク(DNN:Deep Neural Network)の学習を複数の分散学習装置10で並列的に実行することが可能となる。ここで、勾配とは、ニューラルネットワークの各パラメータに関する誤差関数のそれぞれの偏微分の或るデータ点(例えば、後述するミニバッチを構成する学習データにより示される点)における値である。勾配は、例えば、誤差逆伝播法により計算される。なお、誤差関数は、損失関数等とも称される。
なお、上述したように、分散深層学習では、勾配平均を計算する際に分散学習装置10間で通信(勾配の送受信)が行われ、この通信量はパラメータ数に比例する。このため、例えばイーサネット等の比較的低速な通信媒体を用いた通信ネットワークを介して接続される分散学習装置10により、パラメータ数が膨大なニューラルネットワーク(DNN)の学習を行う場合、分散深層学習に要する時間は、勾配平均を計算する際の通信に要する時間に律速される。
本発明の実施の形態では、ニューラルネットワークのパラメータをグループ分けした上で、各分散学習装置10が、グループ毎に、このグループに属するパラメータに関する勾配を他の分散学習装置10に送信するか否かを判定し、送信すると判定された勾配のみを他の分散学習装置10に送信する。これにより、本発明の実施の形態に係る分散学習システム1では、分散学習装置10間の通信量を圧縮(削減)することができるようになる。
なお、本発明の実施の形態では、分散学習システム1にはP台の分散学習装置10が含まれるものとし、各分散学習装置10を区別して表す場合は、「分散学習装置10」,「分散学習装置10」,・・・,「分散学習装置10」,・・・,「分散学習装置10」と表す。
<ハードウェア構成>
次に、本発明の実施の形態における分散学習装置10のハードウェア構成について、図2を参照しながら説明する。図2は、本発明の実施の形態における分散学習装置10のハードウェア構成の一例を示す図である。
図2に示すように、本発明の実施の形態における分散学習装置10は、プロセッサ11と、RAM(Random Access Memory)12と、ROM(Read Only Memory)13と、補助記憶装置14と、外部I/F15と、通信I/F16とを有する。
プロセッサ11は、例えば、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)等であり、各種処理を実行する演算装置である。なお、分散学習装置10は、プロセッサ11として、CPU及びGPUの両方を有していても良い。分散学習装置10がプロセッサ11としてGPUを有している場合、分散学習システム1はGPUクラスタを備える構成となる。また、分散学習装置10は、例えば、FPGA(field-programmable gate array)等の専用の半導体チップを備えていても良い。
RAM12は、プログラムやデータを一時保持する揮発性の半導体メモリである。ROM13は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリである。
補助記憶装置14は、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)等であり、プログラムやデータを格納している不揮発性の記憶装置である。補助記憶装置14に格納されているプログラムやデータには、分散学習装置10が有する各種機能を実現する1以上のプログラムや学習データ等がある。
外部I/F15は、外部装置とのインタフェースである。外部装置には、例えば、CDやDVD、SDメモリカード、USBメモリカード等の外部記録媒体がある。外部記録媒体には、例えば、分散学習装置10が有する各種機能を実現する1以上のプログラムや学習データ等が記録されていても良い。
通信I/F16は、分散学習装置10を通信ネットワークに接続するためのインタフェースである。分散学習装置10は、通信I/F16を介して、他の分散学習装置10との間で各種通信を行うことができる。
本発明の実施の形態における分散学習装置10は、図2に示すハードウェア構成を有することにより、後述する各種処理を実現することができる。なお、図2に示すハードウェア構成は一例であって、他の構成であっても良い。例えば、分散学習装置10は、キーボードやマウス等の入力装置と、ディスプレイ等の表示装置とを有していても良い。
<機能構成>
次に、本発明の実施の形態における分散学習装置10の機能構成について、図3を参照しながら説明する。図3は、本発明の実施の形態における分散学習装置10の機能構成の一例を示す図である。
図3に示すように、本発明の実施の形態における分散学習装置10は、勾配計算部101と、統計量計算部102と、送信グループ判定部103と、量子化部104と、勾配共有部105と、最適化部106と、通信部107とを有する。これら各部は、分散学習装置10にインストールされた1以上のプログラムが、プロセッサ11に実行させる処理により実現される。
勾配計算部101は、学習データを入力して、各パラメータに関する勾配を計算する。このとき、勾配計算部101は、各分散学習装置10にそれぞれ割り当てられた学習データの集合(ミニバッチ)から各パラメータに関する勾配を計算する。ここで、分散深層学習では、1回のイテレーションで用いられる学習データの集合(バッチ)がノード間でミニバッチに分割される。したがって、各分散学習装置10は、自身に割り当てられたミニバッチを用いて、勾配計算部101により各パラメータに関する勾配を計算する。なお、イテレーションとは、パラメータの更新を行う際の繰り返しのことである。
統計量計算部102は、予め決められたパラメータのグループ(以降、「パラメータグループ」と表す。)毎に、勾配計算部101により計算された勾配を用いて、パラメータグループの統計量を計算する。各パラメータをどのようにグループ化するかや統計量の計算方法等の具体例については後述する。
送信グループ判定部103は、統計量計算部102により計算された統計量を用いて、勾配が送信されるパラメータのパラメータグループ(以降、「送信パラメータグループ」と表す。)を判定する。送信パラメータグループに属するパラメータに関する勾配は、通信部107により他の分散学習装置10に送信され、各分散学習装置10で勾配平均が共有される。
量子化部104は、送信パラメータグループに属するパラメータに関する勾配を量子化する。量子化とは、浮動小数点形式の勾配をより少ないビット数で表現することである。勾配を量子化することにより、分散学習装置10間で送受信される勾配のデータ量をより削減することができる。
勾配共有部105は、通信部107により、MPI(Message Passing Interface)集団通信の1つであるAllReduceを行って、各分散学習装置10で勾配平均を共有する。
最適化部106は、勾配共有部105によって各分散学習装置10で共有された勾配平均を用いて、パラメータを更新する。各イテレーションでパラメータの更新が繰り返し行われることで、パラメータが最適化される。パラメータの最適化手法としては、例えば、確率的勾配降下法(SGD:stochastic gradient descent)、Momentum、AdaGrad、Adam等の任意の最適化手法を用いることができる。
通信部107は、他の分散学習装置10との間で各種情報の送受信を行う。他の分散学習装置10との間で送受信される情報としては、例えば、各分散学習装置10の統計量計算部102が統計量を計算するための情報(具体的には、例えば、後述する遅延勾配バッファの絶対値の平均等)、送信パラメータグループに属するパラメータに関する勾配等が挙げられる。
<分散学習処理>
次に、本発明の実施の形態における分散学習システム1が実行する分散学習処理について説明する。以降で説明する分散学習処理では、ニューラルネットワークのパラメータ数と同じサイズの配列である遅延勾配バッファrを用いる。なお、iは各パラメータのインデックスである。これらの遅延勾配バッファrの初期値は0である。
また、ハイパーパラメータとして量子化ビット数k及び送信割合πを用いる。量子化ビット数kは1以上の任意の整数値、送信割合πは0より大で1未満の任意の値に設定することができるが、典型的には、例えば、k=3,π=0.2等と設定することが考えられる。
(実施例1)
まず、実施例1における分散学習処理について、図4を参照しながら説明する。図4は、本発明の実施の形態における分散学習システムが実行する分散学習処理の一例を示すフローチャート(実施例1)である。以降のステップS101〜ステップS109の処理は、所定の回数だけ繰り返し実行される。このような繰り返し回数は、例えば、ハイパーパラメータとして指定されても良いし、ハイパーパラメータとしてエポック数と1回のイテレーションあたりの学習データ数(バッチサイズ)とが指定されることで決定されても良い。以降では、1回のイテレーションにおける分散学習処理について説明する。
ステップS101:各分散学習装置10の勾配計算部101は、自身に割り当てられたミニバッチから各パラメータに関する勾配を計算する。以降では、ニューラルネットワークの各パラメータを「w」、パラメータwに関する勾配を「g」と表す。
ステップS102:各分散学習装置10の統計量計算部102は、パラメータw毎に、当該パラメータwに関する勾配gを遅延勾配バッファrに加算する。
ステップS103:各分散学習装置10の統計量計算部102は、パラメータグループs毎に、当該パラメータグループsに属するパラメータwに対応する遅延勾配バッファrの絶対値の平均μを計算する。
すなわち、パラメータグループsに属するパラメータwを「w 」と表した場合、統計量計算部102は、これらのパラメータw にそれぞれ対応する遅延勾配バッファr の絶対値|r |の平均μを計算する。これにより、各分散学習装置10において、パラメータグループs毎に、平均μが得られる。
ここで、各パラメータwは、例えば、ニューラルネットワークの線形層(全結合層又はアフィン層とも称される。)であれば、各行をそれぞれ1つのパラメータグループsとすれば良い。例えば、或る線形層Lの第M行に属するパラメータwを、1つのパラメータグループsL,Mとすれば良い。
また、他の例として、各パラメータwは、例えば、畳み込みニューラルネットワークの畳み込み層であれば、同一の出力チャネルに対応するパラメータwを1つのパラメータグループsとすれば良い。例えば、或る畳み込み層Cの出力チャネルRに対応するパラメータwを、1つのパラメータグループsC,Rとすれば良い。又は、これと同様に、同一入力チャネルに対応するパラメータwを1つのパラメータグループsとしても良い。
なお、以降では、パラメータグループsの数をSであるとして、パラメータグループsをそれぞれ区別して表す場合は、「パラメータグループ1」,「パラメータグループ2」,・・・,「パラメータグループS」と表す。
ステップS104:各分散学習装置10の統計量計算部102は、パラメータグループs毎に、上記のステップS103で計算された平均μの全ノード(全ての分散学習装置10)での平均μ´を計算する。この平均μ´は、例えば、次のようにして得られる。
分散学習装置10(p=1,2,・・・,P)の統計量計算部102により上記のステップS103で計算された平均μを「μ 」と表した場合、各分散学習装置10の通信部107は、平均μ をAllreduceする。これにより、各分散学習装置10はμ のp=1,2,・・・,Pに関する和(Σμ )を得るので、その後、各分散学習装置10の統計量計算部102は、このΣμ をPで除算して、平均μ´を計算すれば良い。なお、この平均μ´が、パラメータグループsの統計量の一例である。
ここで、上記のステップS104では、平均μ´を計算するために分散学習装置10間で通信が行われるが、この通信の通信量はパラメータグループsの数に比例する。他方で、パラメータをグループ化する方法から分かるように、パラメータグループsの数Sは、パラメータwの数(すなわち、勾配gの数)と比べると十分小さい。このため、上記のステップS104で平均μ´を計算するために行われる通信の通信量は、分散学習処理全体の通信量に対して無視できる程に小さい。
ステップS105:各分散学習装置10の送信グループ判定部103は、パラメータグループsのうち、上記のステップS104で得られたμ´が上位πの割合に入るグループs(言い換えれば、μ´の大きさの順位が上位πの割合に入るパラメータグループs)を送信パラメータグループsと判定する。
例えば、π=0.2である場合、送信グループ判定部103は、パラメータグループ1,パラメータグループ2,・・・,パラメータグループSのうち、μ´が上位20%の割合に入るパラメータグループsを送信パラメータグループsと判定する。なお、上記のステップS104で得られたμ´は、全ての分散学習装置10で共通であるため、送信パラメータグループsと判定されるパラメータグループsも同一である。
以降では、送信パラメータグループsに属するパラメータwを「送信パラメータw」、送信パラメータwに関する勾配gを「送信勾配g」とも表す。
ステップS106:各分散学習装置10の量子化部104は、送信勾配gを量子化する。なお、送信勾配gの量子化は必ずしも行われなくても良い。ただし、送信勾配gを量子化した方が、分散深層学習の通信量を更に削減することができる。
ここで、量子化部104による量子化手法としては任意の手法を用いることができるが、以下では、一例として、特に好ましい量子化手法について説明する。以下の(1−1)〜(1−4)では、或る1つの送信パラメータグループsに属する送信パラメータwに関する勾配g(送信勾配g)を量子化する場合について説明する。この量子化方法では、パラメータwのインデックスを他の分散学習装置10に送信する必要がないため、通信量を効率的に削減することが可能となる。
(1−1)まず、量子化部104は、当該送信パラメータwに関する送信勾配gの絶対値の最大値をMとする。すなわち、これらの送信勾配gに対して、M=max|g|とする。
(1−2)次に、量子化部104は、各送信勾配gの絶対値をMで除算して正規化する。すなわち、x=|g|/Mとする。このとき、0≦x≦1である。また、送信勾配gの符号(正又は負)をσとする。
(1−3)次に、量子化部104は、l={0,1,・・・,2−1}として、各xに対して、1/2≦x<1/(2l−1)を満たすl(これを「l」と表す。)を算出し、xをlに量子化する。これにより、各xがそれぞれlに量子化される。
ただし、l=2−1である場合、1/2=0と見做すものとする。例えば、k=3である場合、l=2−1=7である。したがって、この場合、1/2=0と見做すものとする。
(1−4)以上により、Mと、符号σと、lとが得られる。これらが送信勾配gを量子化した結果である。ここで、Mは各送信勾配gと同一のビット数(例えば単精度であれば32ビット)であり、符号σは1ビット、lはkビットである。このため、例えば、或る1つの送信パラメータグループsに属する送信パラメータwの送信勾配gがN個であり、かつ、各送信勾配gが32ビットである場合、これらの送信勾配gは、量子化により、1つのMと、N個のσと、N個のlとで表すことができる。したがって、この場合、これらの送信勾配gは、32+(1+k)×Nビットに圧縮される。
なお、上記で各送信勾配gを量子化することで得られた情報(すなわち、M、σ、l)は、例えば、更に、可逆圧縮アルゴリズム等によって圧縮されても良い。
以降のステップS107〜ステップS109において、単に、「送信勾配g」と表した場合、上記のステップS106が実行された場合は量子化された送信勾配g(すなわち、例えば、M、σ、l)を表し、上記のステップS106が実行されなかった場合は量子化されていない送信勾配gを表すものとする。これらの送信勾配gは、他の分散学習装置10に送信するためのバッファ領域である送信バッファに格納されている。
ステップS107:各分散学習装置10の勾配共有部105は、送信勾配gの全ノード(全ての分散学習装置10)での平均hを、全ノードで共有する。すなわち、分散学習装置10での送信勾配をg と表した場合、各分散学習装置10の勾配共有部105は、平均h=(g +・・・+g )/Pを、全ノードで共有する。この平均hが勾配平均であり、例えば、Allreduceにより得られる。Allreduceのアルゴリズムは任意のものを利用することができるが、例えば、以下の(2−1)〜(2−3)により勾配平均を得ることができる。
(2−1)分散学習装置10(p=1,2,・・・,P)の通信部107は、送信バッファをP個のブロック領域B,・・・,Bに分割した上で、分割したブロック領域B,・・・,Bにそれぞれ格納されている送信勾配gを、当該ブロック領域Bに対応する分散学習装置10に送信する。ただし、ブロック領域Bに対応する分散学習装置10が自分自身である場合は、当該分散学習装置10の通信部107は、当該ブロック領域Bに格納されている送信勾配gを送信しない。
例えば、分散学習装置10の通信部107は、ブロック領域B,・・・,ブロック領域Bにそれぞれ格納されている送信勾配gを、分散学習装置10,・・・,分散学習装置10にそれぞれ送信する。同様に、分散学習装置10の通信部107は、ブロック領域B,ブロック領域B,・・・,ブロック領域Bにそれぞれ格納されている送信勾配gを、分散学習装置10,分散学習装置10,・・・,分散学習装置10にそれぞれ送信する。以降も同様に、分散学習装置10の通信部107は、ブロック領域B,・・・,ブロック領域Bp−1,ブロック領域Bp+1,・・・,ブロック領域Bにそれぞれ格納されている送信勾配gを、分散学習装置10,・・・,分散学習装置10p−1,分散学習装置10p+1,・・・,分散学習装置10にそれぞれ送信する。
これにより、各分散学習装置10は、全ノードのブロック領域Bに格納されていた送信勾配g(自身のブロック領域Bに格納されている送信勾配gも含む)を得る。
(2−2)次に、各分散学習装置10の勾配共有部105は、上記の(2−1)で得られた送信勾配gの勾配平均hを計算する。このとき、送信勾配gが量子化されている場合、勾配共有部105は、送信勾配gを浮動小数点形式に復元した上で、復元後の送信勾配gから勾配平均hを計算する。
(2−3)次に、各分散学習装置10の通信部107は、上記のステップ(2−2)で計算した勾配平均hをAllgatherする。これにより、各分散学習装置10(p=1,2,・・・,P)で勾配平均hが共有される。上記の(2−1)〜(2−3)は勾配平均hを得るための和が1回のみであるため、送信勾配gの復元が1度で済み、また精度を保ち易い。なお、各分散学習装置10は、Allgatherの前に、再度量子化を行っても良い。このときの量子化ビット数kは、上記のステップS106で用いた量子化ビット数kと異なっていても良い。
なお、分散学習装置10(p=1,2,・・・,P)は、上記のステップS104と同様に、通信部107により、送信勾配gをAllreduceしても良い。これにより、各分散学習装置10はg のp=1,2,・・・,Pに関する和(Σg )を得るので、その後、各分散学習装置10の勾配共有部105は、このΣg をPで除算して、勾配平均hを計算しても良い。
ステップS108:各分散学習装置10の統計量計算部102は、送信パラメータwに対応する遅延勾配バッファrを0にクリアする。このように、統計量計算部102は、他の分散学習装置10に送信された勾配g(送信勾配g)に対応する遅延勾配バッファrを0にクリアする。
一方で、他の分散学習装置10に送信されなかった勾配gに対応する遅延勾配バッファrについてはそのままとする。すなわち、これらの遅延勾配バッファrの値は、次のイテレーションに持ち越される。これにより、例えば、或るイテレーションで勾配gの大きさが小さい場合(言い換えれば、パラメータwの重要度が低い場合)であっても、イテレーションを繰り返すことで、当該勾配gに対応するパラメータwも更新され得る。
ステップS109:各分散学習装置10の最適化部106は、勾配共有部105により共通された勾配平均hを用いて、予め決められた任意の最適化手法によってパラメータwを更新する。
(実施例2)
次に、実施例2における分散学習処理について、図5を参照しながら説明する。図5は、本発明の実施の形態における分散学習システムが実行する分散学習処理の一例を示すフローチャート(実施例2)である。実施例2では、いくつかのパラメータグループsを1つのサブグループtにまとめた上で、サブグループt毎に、このサブグループtに含まれるパラメータグループsのうち、勾配gが送信されるパラメータwのパラメータグループsを判定する場合に説明する。
これにより、例えば、パラメータグループs間で、勾配gの大きさに偏りがある場合等に、この偏りをサブグループt内に局所化させることができる。すなわち、例えば、1つの線形層の各行をそれぞれ1つのパラメータグループs、これらのパラメータグループs(すなわち、同一の線形層のパラメータグループs)を1つのサブグループtとすることで、上述した偏りを1つの線形層内に局所化させることができる。この場合、例えば、線形層Lの第m行(m=1,・・・,M)に属するパラメータwをグループ化したパラメータグループをsL,mとした場合、サブグループt={sL,1,・・・,sL,M}とすれば良い。
同様に、例えば、畳み込みニューラルネットワークの畳み込み層であれば、同一の畳み込み層のパラメータグループsを1つのサブグループtとすれば良い。この場合、例えば、畳み込み層Cの出力チャネルがR、G、Bの3チャネルで、同一の出力チャネルに対応するパラメータwをグループ化したパラメータグループをそれぞれsC,R、sC,G、及びsC,Bとした場合、サブグループt={sC,R,sC,G,sC,B}とすれば良い。
上記のように同一層のパラメータグループsを1つのサブグループtとすることで、実施例2では、例えば、上述した偏りによって或る特定の層のパラメータwのみが更新されてしまうような事態を防止することができる。
なお、図5のステップS101〜ステップS104及びステップS106〜ステップS109は、図4と同様であるため、その説明を省略する。
ステップS205:各分散学習装置10の送信グループ判定部103は、サブグループt毎に、このサブグループtに属するパラメータグループsのうち、ステップS104で得られたμ´が上位πの割合に入るグループsを送信パラメータグループsと判定する。これにより、サブグループt毎に、送信パラメータグループsが判定される。なお、πは、サブグループt毎に異なる値が設定されても良い。
<本発明の効果>
ここで、本発明の実施の形態における分散学習システム1の効果を図6及び図7に示す。図6(a)は、π=0.2に設定した上で、実施例1により分散学習処理を行った場合における精度を示す。図6(b)は、π=0.02に設定した上で、実施例1により分散学習処理を行った場合における精度を示す。
また、図6(c)は、π=0.2に設定した上で、実施例1により分散学習処理を行った場合における圧縮率を示す。図6(d)は、π=0.02に設定した上で、実施例1により分散学習処理を行った場合における圧縮率を示す。
他方で、図7(a)は、π=0.2に設定した上で、実施例2により分散学習処理を行った場合における精度を示す。図7(b)は、π=0.02に設定した上で、実施例2により分散学習処理を行った場合における精度を示す。
また、図7(c)は、π=0.2に設定した上で、実施例2により分散学習処理を行った場合における圧縮率を示す。図7(d)は、π=0.02に設定した上で、実施例2により分散学習処理を行った場合における圧縮率を示す。
なお、図6(a)〜図6(b)及び図7(a)〜図7(b)の「baseline」は、非圧縮時の最大到達精度を表す。また、図6(c)〜図6(d)及び図7(c)〜図7(d)の縦軸は10を底とした対数値を表す。
図6及び図7に示されているように、本発明の実施の形態における分散学習システム1では、非圧縮時からの精度の低下を抑止しつつ、高い圧縮率が達成できていることがわかる。
<まとめ>
以上のように、本発明の実施の形態における分散学習システム1では、パラメータグループs毎に、このパラメータグループsに属するパラメータwの勾配gを送信するか否かを判定する。これにより、本発明の実施の形態における分散学習システム1では、分散学習において、分散学習装置10間の通信量を高い圧縮率で圧縮(削減)することができるようになる。
また、本発明の実施の形態における分散学習システム1では、或るイテレーションで送信パラメータグループsと判定されなかったパラメータグループsも、イテレーションが繰り返されることで、送信パラメータグループsと判定され得る。このため、例えば、勾配gの大きさが小さく、重要度が低いと考えられるパラメータwも適切に更新され、このようなパラメータwが更新されないことによる精度の低下を抑止することができる。
また、本発明の実施の形態における分散学習システム1では、各分散学習装置10で同一のパラメータグループsが送信パラメータグループsとして判定される。このため、各分散学習装置10は、送信勾配gに関するパラメータwのインデックスを他の分散学習装置10に送る必要がない。また、このため、効率的な集団通信のアルゴリズムを使用することができ、ノード数(分散学習装置10の数)が多い場合であっても、効率的に勾配平均を共有することができる。
更に、本発明の実施の形態における分散学習システム1では、送信パラメータグループsを判定する際に用いるハイパーパラメータπは、勾配gが送信されたパラメータwの割合を表しているため、ユーザが直観的に容易に設定することができる。また、このため、各イテレーション間での送信勾配gの割合が同一であるため、学習の経過時間の予測を容易に行うこともできるようになる。
加えて、本発明の実施の形態における分散学習システム1では、送信勾配gを更に量子化することもできる。これにより、分散学習装置10間の通信量を更に圧縮することができる。また、このとき、適切な量子化手法を用いることで、量子化による精度の低下も抑止することができる。
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
1 分散学習システム
10 分散学習装置
101 勾配計算部
102 統計量計算部
103 送信グループ判定部
104 量子化部
105 勾配共有部
106 最適化部
107 通信部

Claims (8)

  1. 複数のコンピュータで複数のパラメータを学習する分散学習方法であって、前記コンピュータが、
    前記複数のパラメータそれぞれに関する誤差関数の勾配を計算する勾配計算手順と、
    前記複数のパラメータを複数のグループにそれぞれグループ化したパラメータグループ毎に、該パラメータグループの統計量を計算する統計量計算手順と、
    前記統計量と、予め設定された送信割合とに基づいて、複数のパラメータグループのうち、前記勾配が送信されるパラメータのパラメータグループを示す送信パラメータグループを判定する判定手順と、
    前記送信パラメータグループに含まれるパラメータに関する誤差関数の勾配であって、前記複数のコンピュータでそれぞれ計算された勾配の平均を示す勾配平均を、集団通信により前記複数のコンピュータ間で共有する共有手順と、
    前記勾配平均を用いて、前記送信パラメータグループに含まれるパラメータを更新する更新手順と、
    を実行することを特徴とする分散学習方法。
  2. 前記統計量計算手順は、
    前記パラメータグループ毎に、該パラメータグループに含まれるパラメータに関する誤差関数の勾配を、該勾配に対応する遅延勾配バッファに加算し、
    加算後の遅延勾配バッファの絶対値の平均を、前記パラメータグループの統計量として計算する、
    ことを特徴とする請求項1に記載の分散学習方法。
  3. 前記統計量計算手順は、
    前記勾配平均が前記複数のコンピュータ間で共有された後、前記加算後の遅延勾配バッファをゼロクリアする、
    ことを特徴とする請求項2に記載の分散学習方法。
  4. 前記判定手順は、
    前記複数のパラメータグループに対してそれぞれ計算された前記統計量のうち、該統計量の大きさの順位が、前記送信割合が示す割合に含まれる統計量に対応するパラメータグループを、前記送信パラメータグループと判定する、
    ことを特徴とする請求項1に記載の分散学習方法。
  5. 前記コンピュータが、更に、
    前記送信パラメータグループに含まれるパラメータに関する誤差関数の勾配を量子化する量子化手順を実行し、
    前記共有手順は、
    前記複数のコンピュータ間で前記量子化後の勾配を集団通信することにより前記勾配平均を共有する、
    ことを特徴とする請求項1に記載の分散学習方法。
  6. 前記統計量計算手順は、
    前記複数のパラメータのうち、ニューラルネットワークの線形層における各行のパラメータを同一のグループにグループ化したパラメータグループ又は畳み込みニューラルネットワークの畳み込み層における同一出力チャネル若しくは同一入力チャネルのパラメータを同一グループにグループ化したパラメータグループのいずれかのパラメータグループ毎に、前記統計量を計算する、
    ことを特徴とする請求項1に記載の分散学習方法。
  7. 前記統計量計算手順は、
    複数の前記パラメータグループを複数のグループにそれぞれグループ化したサブグループ毎に、該サブグループに含まれる複数のパラメータグループのうち、前記勾配が送信されるパラメータのパラメータグループを示す送信パラメータグループを判定する、
    ことを特徴とする請求項1に記載の分散学習方法。
  8. 複数のパラメータの分散学習を行う分散学習装置であって、
    前記複数のパラメータそれぞれに関する誤差関数の勾配を計算する勾配計算部と、
    前記複数のパラメータを複数のグループにそれぞれグループ化したパラメータグループ毎に、該パラメータグループの統計量を計算する統計量計算部と、
    前記統計量と、予め設定された送信割合とに基づいて、複数のパラメータグループのうち、前記勾配が送信されるパラメータのパラメータグループを示す送信パラメータグループを判定する判定部と、
    前記送信パラメータグループに含まれるパラメータに関する誤差関数の勾配であって、前記分散学習装置と1以上の他の分散学習装置とでそれぞれ計算された勾配の平均を示す勾配平均を、集団通信により前記分散学習装置と1以上の他の分散学習装置との間で共有する共有部と、
    前記勾配平均を用いて、前記送信パラメータグループに含まれるパラメータを更新する更新部と、
    を実行することを特徴とする分散学習装置。
JP2018108754A 2018-06-06 2018-06-06 分散学習方法及び分散学習装置 Pending JP2019212111A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018108754A JP2019212111A (ja) 2018-06-06 2018-06-06 分散学習方法及び分散学習装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018108754A JP2019212111A (ja) 2018-06-06 2018-06-06 分散学習方法及び分散学習装置

Publications (1)

Publication Number Publication Date
JP2019212111A true JP2019212111A (ja) 2019-12-12

Family

ID=68845324

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018108754A Pending JP2019212111A (ja) 2018-06-06 2018-06-06 分散学習方法及び分散学習装置

Country Status (1)

Country Link
JP (1) JP2019212111A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021140643A1 (ja) * 2020-01-10 2021-07-15 富士通株式会社 ニューラルネットワークシステム、ニューラルネットワークの学習方法及びニューラルネットワークの学習プログラム
WO2022050440A1 (ko) * 2020-09-03 2022-03-10 엘지전자 주식회사 복수의 디바이스들의 학습 결과에 기초하여, 서버가 최종 학습 결과물을 도출하는 분산학습을 위한 통신방법 및 서버

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021140643A1 (ja) * 2020-01-10 2021-07-15 富士通株式会社 ニューラルネットワークシステム、ニューラルネットワークの学習方法及びニューラルネットワークの学習プログラム
JP7453563B2 (ja) 2020-01-10 2024-03-21 富士通株式会社 ニューラルネットワークシステム、ニューラルネットワークの学習方法及びニューラルネットワークの学習プログラム
WO2022050440A1 (ko) * 2020-09-03 2022-03-10 엘지전자 주식회사 복수의 디바이스들의 학습 결과에 기초하여, 서버가 최종 학습 결과물을 도출하는 분산학습을 위한 통신방법 및 서버

Similar Documents

Publication Publication Date Title
CN110852421B (zh) 模型生成方法和装置
CN106062786B (zh) 用于训练神经网络的计算系统
US11531932B2 (en) Systems and methods for compression and distribution of machine learning models
US11010518B2 (en) Mapping logical qubits on a quantum circuit
US20190156213A1 (en) Gradient compressing apparatus, gradient compressing method, and non-transitory computer readable medium
US20210224447A1 (en) Grouping of pauli strings using entangled measurements
US11907818B2 (en) Compression of machine-learned models via entropy penalized weight reparameterization
WO2019216277A1 (ja) 情報処理装置、演算装置、及び情報処理方法
US11615301B2 (en) Lossless exponent and lossy mantissa weight compression for training deep neural networks
US20220156633A1 (en) System and method for adaptive compression in federated learning
JP2019212111A (ja) 分散学習方法及び分散学習装置
US20230130638A1 (en) Computer-readable recording medium having stored therein machine learning program, method for machine learning, and information processing apparatus
CN114374440A (zh) 量子信道经典容量的估计方法及装置、电子设备和介质
CN115391298A (zh) 基于内容的动态混合数据压缩
CN115104305A (zh) 用于图压缩的多上下文熵编码
US20230106736A1 (en) System and method for low-distortion compaction of floating-point numbers
WO2020177863A1 (en) Training of algorithms
US20230024977A1 (en) Method of processing data, data processing device, data processing program, and method of generating neural network model
US20220083870A1 (en) Training in Communication Systems
US20220292342A1 (en) Communication Efficient Federated/Distributed Learning of Neural Networks
US11342933B2 (en) Lossy significance compression with lossy restoration
US20220188077A1 (en) Arithmetic processing device, arithmetic processing method, and storage medium
KR102429040B1 (ko) 대용량 그래프의 희소 요약 방법 및 시스템
CN116776155B (zh) 一种基于联邦学习的模型训练方法、装置、设备和介质
US10740213B1 (en) Counter overflow management for asynchronous data mover facility