JP2012022558A - 分散計算システム - Google Patents

分散計算システム Download PDF

Info

Publication number
JP2012022558A
JP2012022558A JP2010160551A JP2010160551A JP2012022558A JP 2012022558 A JP2012022558 A JP 2012022558A JP 2010160551 A JP2010160551 A JP 2010160551A JP 2010160551 A JP2010160551 A JP 2010160551A JP 2012022558 A JP2012022558 A JP 2012022558A
Authority
JP
Japan
Prior art keywords
data
learning
worker
model
processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2010160551A
Other languages
English (en)
Other versions
JP5584914B2 (ja
Inventor
Toshihiko Yanase
利彦 柳瀬
Kosuke Yanai
孝介 柳井
Keiichi Hiroki
桂一 廣木
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2010160551A priority Critical patent/JP5584914B2/ja
Priority to US13/176,809 priority patent/US20120016816A1/en
Publication of JP2012022558A publication Critical patent/JP2012022558A/ja
Application granted granted Critical
Publication of JP5584914B2 publication Critical patent/JP5584914B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/20Ensemble learning

Abstract

【課題】分散計算機システムで学習処理の反復処理を伴う際に、学習処理の起動と終了及びデータロードを抑制し、処理速度を向上させる。
【解決手段】分散計算システムの制御部は特徴量データの割り当てと、データ適用部、モデル更新部の第1の計算機へ割り当てる。データ適用部は機械学習アルゴリズムの反復計算を担当し、学習の開始時にネットワークを通じて特徴量データを取得し、ローカル記憶装置に格納する。2回目以降の学習処理の反復時にはローカル記憶装置から特徴量データを読み込んで学習処理を行う。特徴量データは学習の終了までローカル記憶装置に保持される。データ適用部は学習結果のみをモデル更新部に送信し、モデル更新部からの次の入力を待ち受ける。モデル更新部はモデルパラメータの初期化と統合と収束判定を行い収束していれば、処理を終了し、収束していなければ、新しいモデルパラメータをデータ適用部に送信する。
【選択図】図3

Description

本発明は分散環境における計算システムに関し、特に、機械学習アルゴリズムの並列実行制御プログラム、およびこの制御プログラムによって動作する分散計算システムに関する。
近年、計算機のコモディティ化が進み、データの取得と保存が容易になってきた。そのため、大量の業務データを分析して、業務改善に生かしたいというニーズが高まっている。
大量のデータを処理する際に、複数の計算機を用いて処理を高速化する手法がとられる。しかし、従来の分散処理の実装は煩雑で、実装コストがかかることが問題となっていた。近年、分散処理の実装を容易化するソフトウェア基盤と計算機システムが注目を集めている。
ひとつの実装として特許文献1に記載されているMapReduceが知られている。MapReduceでは、各計算機に並列に計算を行わせるMap処理と、Map処理の結果を集約するReduce処理を組み合わせて分散処理を行う。Map処理は分散ファイルシステムから並列にデータを読み込むことで、効率的に並列な入出力を実現している。プログラムの作成者は分散処理部Mapと集約処理部Reduceを作成するだけでよい。計算機に対するMap処理の割り当てや、Map処理の終了待ちなどのスケジューリング、データ通信の詳細についてはMapReduceのソフトウェア基盤が実行を受け持つ。以上の理由から特許文献2〜4の分散処理と比較して、特許文献1のMapReduceは実装に要するコストを抑制できる。
計算機によりデータ分析を行い、知識を抽出する技術として機械学習が注目されている。機械学習では入力により多くのデータを用いることで得られる知識の精度を向上させることが可能であり、様々な工夫がされている。例えば、特許文献5には、大量データへの機械学習が提案されている。また、特許文献6にはMap Reduceを用いた機械学習の一手法が提案されている。特許文献5、6の手法は学習処理の分散を可能にするが、同一データの通信が何度もなされるという、非効率的なデータアクセスが行われているという問題がある。機械学習には反復的なアルゴリズムを含むものが多く、同じデータに対して繰り返しアクセスされるという特徴がある。MapReduceを機械学習に適用すると、反復処理の際にデータ再利用が行われないため、データアクセス速度が低下してしまう。
特許文献7には更新頻度に基づいて、MapReduce処理において有効にキャッシュを利用することができるキャッシュ構造を実現している。この手法はReduce処理にキャッシュを導入している。しかし、機械学習においてはMap処理に大量のデータを反復して用いるため、Reduce処理のキャッシュが寄与する速度向上はマップ部と比較して小さなものになる。
非特許文献1では、MapReduceを反復実行に適するように改変しており、MapとReduceのプロセスを実行の全体にわたって保持し、プロセスを再利用している。しかし、反復全体にわたるデータの効率的な再利用は行われていない。
米国特許第7,650,331号明細書 特開2001−167098号公報 特開2004−326480号公報 特開平11−175483号公報 米国特許第7,222,127号明細書 特表2009−505290号公報 特開2010−092222号公報
Jaliya Ekanayake 他著、"MapReduce for Data Intensive Scientific Analyses"、[online]、[平成22年6月30日検索]、インターネット<URL:http://grids.ucs.indiana.edu/ptliupages/publications/ekanayake-MapReduce.pdf>
分散計算システムを並列機械学習に用いると、大量のデータをより短時間に学習することが可能となる。しかし、MapReduceを並列機械学習に利用する場合には、実行速度の低下とメモリ利用に関する困難に直面する。
図11に示すようにMapReduceは一度だけの処理用にアーキテクチャが組まれている。Map処理を担当するプロセスは一度処理を終えると終了し、特徴量データを開放してしまう。機械学習では反復処理が必要なため、反復処理部分ではMapプロセスの起動と終了、ファイルシステム(ストレージ装置)からメモリへのデータロードが繰り返され、実行速度が低下してしまう。
MapReduceでは、ソフトウェア基盤によってデータロードの詳細を秘匿しているので、各計算機に対するデータの割り当てがシステムにゆだねられてしまうため、ユーザが管理できるファイルシステムとメモリの自由度は小さい。そのため、各計算機の合計メモリ量を超えるデータの処理が発生するとファイルシステムへのアクセスが増大して処理速度が極端に低下する、あるいは、処理が停止するなどの問題が生じる。前述の公知の技術では、これらを実現できる技術はない。
そこで本発明は、上記問題点に鑑みてなされたもので、並列的に機械学習を実行する分散計算機システムにおいて学習処理の起動と終了、及びファイルシステムからのデータロードを抑制し、機械学習の処理速度を向上させることを目的とする。
本発明は、プロセッサとメモリとローカル記憶装置を備えた第1の計算機と、プロセッサとメモリを備えて複数の前記第1の計算機に分散処理を指令する第2の計算機と、前記分散処理に用いるデータを格納したストレージと、前記第1の計算機と第2の計算機及び前記ストレージとを接続するネットワークと、を備えて、前記複数の第1の計算機で並列的に処理を行う分散計算システムであって、前記第2の計算機は、前記複数の第1の計算機に、前記分散処理として学習処理を実行させる制御部を備え、前記制御部は、前記複数の第1の計算機のうち所定の複数の第1の計算機に、学習処理を実行するデータ適用部及び前記データ適用部毎に学習処理の対象となる前記ストレージのデータを割り当てて第1のワーカーとして学習処理を実行させ、前記複数の第1の計算機のうち少なくとも一つの第1の計算機に、前記データ適用部の出力を受信して学習モデルを更新するモデル更新部を割り当てて第2のワーカーとして学習処理を実行させ、前記第1のワーカーは、前記データ適用部が、前記第2の計算機から割り当てられたデータを前記ストレージから読み込んでローカル記憶装置に格納し、前記メモリ上に予め確保したデータ領域に前記ローカル記憶装置のデータのうち未処理のデータを順次読み込んで、当該データ領域のデータに対して学習処理を実行し、当該学習処理の結果を前記第2のワーカーへ送信し、前記第2のワーカーは、前記モデル更新部が、前記複数の第1のワーカーから学習処理の結果を受信し、前記受信した複数の学習処理の結果から学習モデルを更新し、当該更新した学習モデルが所定の基準を満たすか否かを判定し、前記更新した学習モデルが所定の基準を満たしていない場合には、前記第1のワーカーへ更新した学習モデルを送信して学習処理を指令し、前記更新した学習モデルが所定の基準を満たす場合には、前記第2の計算機に前記更新した学習モデルを送信する。
したがって、本発明の分散計算システムは、データ適用部がアクセスするローカル記憶装置とメモリ上のデータ領域に学習対象のデータを学習処理の期間中保持することによって、データ適用部の起動と終了の回数とストレージとのデータの通信コストを(1/反復回数)に削減することができるので、効率的に並列的な機械学習を実行することができる。さらに、データ適用部がストレージとメモリとローカル記憶装置にアクセスすることで、分散計算システム全体のメモリの合計量を超える学習データの扱いを効率的に行うことができる。
本発明の第1の実施形態を示し、分散計算機システムで使用する計算機のブロック図である。 本発明の第1の実施形態を示し、分散計算機システムのブロック図である。 本発明の第1の実施形態を示し、分散計算機システムの機能要素を示すブロック図である。 本発明の第1の実施形態を示し、分散計算機システムで行われる全体的な処理の一例を示すフローチャートである。 本発明の第1の実施形態を示し、分散計算機システムのデータの流れを示すシーケンス図である。 本発明の第1の実施形態を示し、分散計算機システムでk−meansクラスタリング法を実現するフローチャートである。 本発明の第1の実施形態を示し、本発明に用いるデータ適用部のプログラムのうち、分散計算機システムが利用者に提供する部分と利用者が作成する部分を表した模式図である。 本発明の第1の実施形態を示し、本発明に用いるモデル更新部のプログラムのうち、分散計算機システムが利用者に提供する部分と利用者が作成する部分を表した模式図である。 本発明の第1の実施形態を示し、機械学習で用いる特徴量データの一例を示す説明図で、クラスタリングの特徴量データである。 本発明の第1の実施形態を示し、機械学習で用いる特徴量データの一例を示す説明図で、識別問題の特徴量データである。 本発明の第1の実施形態を示し、データ適用部がローカルファイルシステムの特徴量データをメモリに読み込む例を示す模式図である。 本発明の第1の実施形態を示し、データ適用部がローカルファイルシステムの特徴量データをメモリに読み込む例を示すシーケンス図である。 従来例を示し、MapReduceに基づく分散計算システムの構成例を示すブロック図である。 従来例を示し、MapReduceの処理の一例を示すフローチャートである。 従来例を示し、MapReduceに基づいて機械学習を実現するための通信手順の例を示すシーケンス図である。 本発明の第1の実施形態と、従来例MapReduceに基づいてk−meansを実行した場合の特徴量データのレコード数と実行時間の関係を表す図である。 本発明の第1の実施形態に基づいてk−meansを実行した場合のデータ適用部の数と速度変化の割合の関係を表す図である。
以下、本発明の一実施形態を添付図面に基づいて説明する。
以下の実施の形態において、要素の数等に言及する場合、特に指定された場合および原理的に明らかに特定される場合を除き、その特定の数に限定されることはなく、特定の数以上でも以下でもよい。
さらに、以下の実施の形態において、その構成要素は、特に指定された場合および原理的に明らかに必要とされる場合を除き、必ずしも必須のものではないということは明らかである。また、同様に以下の実施の形態において、構成要素の形状や位置関係について言及するときは、特に明示する場合や原理的に明らかにそうでないと考えられる場合を除き、実質的にその形状等に近似または類似するものを含むものとする。このことは上記数値および範囲に関しても同様である。
<第1実施形態>
図1は、本発明の分散計算機システムで使用する計算機のブロック図である。分散計算機システムで使用する計算機500は図1に示すような汎用の計算機500を想定しており、具体的にはPCサーバで構成している。PCサーバは中央演算装置(Central Processing Unit、CPU)510とメモリ520とローカルファイルシステム530と入力装置540と出力装置550とネットワークデバイス560とバス570を有する。CPU510からネットワークデバイス560までの各装置はバス570によって接続されている。ネットワークを介してリモートから操作する場合、入力装置540と出力装置550については省略可能である。また、ローカルファイルシステム530とは、計算機に内蔵ないし外部に接続された書き換え可能な記憶領域を指し、具体的には、ハードディスクドライブやソリッドステートドライブ、RAMディスクなどの記憶装置である。
以下簡単に、本発明の適応対象となる機械学習アルゴリズムを説明する。機械学習では特徴量データに表れる共通のパターンを抽出することを目的とする。機械学習アルゴリズムの例として、k−means(J.McQueen "Some methods for classification and analysis of multivariate observations" In Proceedings of the Fifth Berkeley Symposium on Mathematical Statistics and Probability、 pp.281-297 、1967)やSVM(Support Vector Machine;Chapelle、 Olivier: Training a Support Vector Machine in the Primal、 Neural Computation、 Vol.19、 No.5、 pp.1155-1178、 2007)がある。機械学習アルゴリズムで扱うデータとしては、パターンを抽出する対象となる特徴量データと、学習対象となるモデルパラメータがある。機械学習では、予め、モデルを決めておき、特徴データがよく当てはまるようにモデルパラメータを決定する。例えば、特徴量データ{(x1,y1),(x2,y2),...}における線形モデルでは、モデルは、
f(x)= (w,x)+b
と関数fで表される。ここで(w,x)はベクトルwとxの内積を表す。上式のwとbがモデルパラメータである。yi=f(xi)が小さい誤差で成り立つようにwとxを決めることが、機械学習の目的である。以下では特徴量データを用いて、モデルパラメータを推定することを学習と呼ぶ。
上記の k−meansやSVMなどの機械学習アルゴリズムは、データ適用の実行と、モデル更新の実行を繰り返すことにより学習を行う。データ適用とモデル更新は、アルゴリズムごとに設定されたモデルパラメータの収束判定基準を満たすまで、繰り返される。データ適用とは、現在の推定値であるモデルパラメータを用いて、モデルを特徴量データに当てはめる。例えば、上記の線形モデルであれば、現在の推定値であるwとbを持つ関数fを特徴量データに当てはめ、誤差を算出する。モデル更新では、データ適用の結果を用いて、モデルパラメータを再推定する。データ適用とモデル更新を繰り返すことにより、モデルパラメータの推定精度が高くなっていく。
図2は、本発明の分散計算機システムのブロック図である。本発明に使用する計算機は図2のように一台のマスタ用計算機600と一台以上のワーカー用計算機610−1〜610−4、がネットワーク(LAN)630を介して接続される。
マスタ用計算機600とワーカー用計算機610は、図1に示した計算機500でそれぞれ構成される。マスタ用計算機(以下、マスタ)600は後述する分散計算制御部260を実行する。ワーカー用計算機(以下、ワーカー)610−1〜610−4は後述するデータ適用部210もしくはモデル更新部240を実行する。なお、図2では4つのワーカー1〜4(610−1〜610−4)で構成した例を示し、これらの総称をワーカー610とする。ワーカー1〜3(610−1〜610−3)では、データ適用部1〜3をそれぞれ実行し、これらは同一のプログラムであるので、総称をデータ適用部210とする。各ワーカー1〜3はそれぞれのローカルファイルシステム530の特徴量データ記憶部1〜3(220)に割り当てられた特徴量データ310をそれぞれ格納し、各データ適用部1〜3が参照する。これらの特徴量データ記憶部1〜3の総称を特徴量データ記憶部220とする。
データ適用部210は、特徴量データを保持し、モデル更新部240から付与されたモデルパラメータに対して、特徴量データを当てはめ、部分出力を出力するプログラムである。
モデル更新部240は、データ適用部210から付与された部分出力を集約し、モデルパラメータを再推定し、更新するプログラムである。またモデルパラメータが収束したかどうかの判定を行う。
ワーカー4(610−4)ではモデル更新部240を実行する。また、データ適用部210とモデル更新部240は一台の計算機に共存させることも可能である。
マスタ600とワーカー610は、一般的なコンピュータネットワーク機器によって接続されており、具体的にはLAN(以下、ネットワーク)630で接続されている。また、LAN630には分散ファイルシステム620が接続される。分散ファイルシステム620は、機械学習の対象である特徴量データ310を格納するマスタデータ記憶部280を有する記憶装置(ストレージ装置)として機能し、複数の計算機から構成されており、具体的にはHDFS(Hadoop Distributed File System)を用いている。分散ファイルシステム620とマスタ600とワーカ610ーは前記のネットワーク630によって接続されている。マスタ600とワーカー610は、分散ファイルシステム620を構成する要素を兼務することができる。
マスタ600はワーカー610のIPアドレスまたはホスト名のリストを保持し、ワーカー610を管理する。ワーカー610で利用可能な計算資源はマスタ600が把握している。利用可能な計算資源とは、同時に実行できるスレッド数、使用可能なメモリ量の最大値、使用可能なローカルファイルシステム530の容量の最大値を指す。
ワーカー610を追加する場合、ワーカー610側の設定として分散ファイルシステム620へのアクセスを可能にするため、分散ファイルシステム620のエージェント等をインストールする必要がある。また、マスタ600側の設定として、ワーカー610のIPアドレスやホスト名、さらに計算機資源の情報を追加する。
マスタ600とワーカー610と分散ファイルシステム620を接続するネットワーク630は通信速度が求められるため、一つのデータセンタ内に存在している。マスタ600やワーカー610あるいはファイルシステム620のそれぞれの構成要素を別のデータセンタに置くことも可能であるが、ネットワークの帯域や遅延などの問題があるため、その場合はデータ転送の速度が低下する。
マスタ600ではワーカー610を管理する分散計算制御部260を実行する。マスタ600は、図1に示した入力装置540から機械学習を行う特徴量データ310の割り当てや、機械学習のモデル(学習モデル)とパラメータ及び分散実行のパラメータ等、機械学習の分散処理に関する設定を受け付ける。そして、マスタ600の分散計算制御部260は、上記受け付けた設定に基づいて、分散計算に使用するワーカー610と、各ワーカー610に割り当てる特徴量データ310と、機械学習の学習モデル及びパラメータをデータ適用部210とモデル更新部240に設定し、各ワーカー610に送信し、後述するように機械学習の分散計算を実行する。
図3は、本発明の分散計算機システムの機能要素を示すブロック図である。
図3に示すように、機械学習はCPUで実行可能なソフトウェアとして実装されている。機械学習のソフトウェアはマスタ600用とワーカー610用が存在している。マスタ600で動作するソフトウェアは、分散計算制御部260であり、各ワーカー610への特徴量データの割り当てとワーカー610で実行されるのソフトウェアの割り当てを行う。ワーカー610で実行されるソフトウェアは2種類存在する。
一つ目のワーカー610用のソフトウェアは分散ファイルシステム620のマスタデータ記憶部280からの特徴量データ310の取得と、特徴量データ記憶部220の読み書きと、分散計算制御部260とのデータ通信と、特徴量データ記憶部220を用いた学習処理とを行うデータ適用部210である。各ワーカー1〜3のデータ適用部210は、ワーカー4から入力データ200を受け取り、メモリ520から読みだした特徴量データを用いて処理を行うことで部分出力データ230をそれぞれ出力する。
もうひとつのソフトウェアは機械学習のパラメータの初期化と結果の統合と収束判定を行うモデル更新部240である。モデル更新部240はワーカー4(610−4)で実行されてデータ適用部210から部分出力データ230(図中部分出力1〜部分出力3)を受け取り、所定の処理を行ってシステムの出力となる出力データ250を返す。この際、収束条件を満たさない場合は、出力データ250を入力データ200とし、再度学習処理を行う。
次に、分散計算機システムの起動手順について説明する。分散ファイルシステムの使用者はマスタ600の電源を入れてOS(オペレーティングシステム)を立ち上げる。同様にすべてのワーカー610の電源を入れてOSを立ち上げる。マスタ600とワーカー610のすべてが、分散ファイルシステム620にアクセス可能な状態にする。
マスタ600に予め格納した設定ファイル(図示省略)に、機械学習で使用するワーカー610のIPアドレスやホスト名をすべて追加する。以降、分散計算制御部260、データ適用部210、モデル更新部240の各プロセスは、このIPアドレスとホスト名をもとに通信を行う。
図4は、分散計算機システムで行われる全体的な処理の一例を示すフローチャートである。
まず、ステップ100では、マスタ600の分散計算制御部260は、データ適用部210とモデル更新部240を初期化し、ワーカー1〜3にデータ適用部210を送信し、ワーカー4にモデル更新部240を送信する。なお、分散計算制御部260は、データ適用部210とモデル更新部240に学習モデルと学習パラメータを含めて送信する。
ステップ110では、マスタ600の分散計算制御部260は、分散ファイルシステム620が保持するマスタデータ記憶部280の特徴量データ310を分割し、各データ適用部210に特徴量データ310を割り当てる。特徴量データ310の分割はワーカー1〜3で重複が起こらないように行われる。
ステップ120では、ワーカー4のモデル更新部240は学習パラメータの初期化を行い、ワーカー1〜3のデータ適用部210に学習パラメータの初期パラメータを送信する。
ステップ130では、ワーカー1〜3の各データ適用部210は、分散ファイルシステム620のマスタデータ記憶部280から特徴量データ310のうち割り当てられた部分をロードし、ローカルファイルシステム530の特徴量データ記憶部220に特徴量データ1〜3としてそれぞれ保存する。分散ファイルシステム620とワーカー1〜3のデータ通信は、このステップ130のみで行われ、以降の手順では分散ファイルシステム620からの特徴量データの読み出しは行われない。
ステップ140では、ワーカー1〜3の各データ適用部210はローカルファイルシステム530からメモリ520に特徴量データ1〜3を所定量ずつ逐次読み込み、モデル更新部240から渡されたモデルパラメータに対して、特徴量データを当てはめ、中間結果を部分出力として出力する。なお、データ適用部210は、メモリ520上に特徴量データをローカルファイルシステム530から読み込む所定のデータ領域を確保し、当該データ領域へ読み込んだ特徴量データについて処理を行う。そして、データ適用部210は、ステップ140を繰り返す度に、ローカルファイルシステム530のうち未処理の特徴量データをデータ領域へ読み込んで処理を繰り返す。
ステップ150では、ワーカー1〜3の各データ適用部210は中間結果である部分出力をモデル更新部240に送信する。
ステップ160では、モデル更新部240は各ワーカー1〜3から受信したパラメータを集約し、モデルパラメータを再推定し、更新する。例えば、各データ適用部210から、特徴量データをモデルに当てはめたときの誤差が部分出力として送られてきた場合、すべての誤差値を考慮して、最も誤差が小さくなると予想される値にモデルパラメータを更新する。
ステップ170では、ワーカー4のモデル更新部240において、ステップ160で更新されたモデルパラメータが収束したかどうかの判定を行う。収束判定の基準は、機械学習のアルゴリズムごとに設定されている。学習パラメータがまだ収束していないと判定された場合は、ステップ180に進んで、マスタ600は各ワーカーに新しいモデルパラメータを送信する。そして処理140に戻り、モデルパラメータが収束するまで、データ適用部の処理とモデル更新部の処理が繰り返される。一方、モデルパラメータが収束したと判定された場合は、ループを抜けて処理を終了する。
ワーカー4のモデル更新部240は、モデルパラメータが収束したと判定されると、モデルパラメータをマスタ600に送信し、マスタ600はワーカー4から学習処理の結果であるモデルパラメータを受信すると学習処理の終了を検知し、マスタ600がワーカー1〜4に学習プロセス(データ適用部210とモデル更新部240)の終了を指示する。
ワーカー1〜4はマスタから学習プロセス終了の指示を受け取ると、メモリ520上の特徴量データと、ローカルファイルシステム530上のファイル(特徴量データ)とを開放する。ワーカー1〜3は特徴量データを開放した後、学習プロセスを終了させる。
以上の処理を、2回の反復を行う場合について具体的に記述したものが図5である。図5は、分散計算機システムのデータの流れを示すシーケンス図である。
1回目のデータ適用部140の処理では、ワーカー1〜3のデータ適用部210が分散ファイルシステム620のマスタデータ記憶部280にアクセスして特徴量データ1〜3を取得するが、2回目のデータ適用部140−2では、ファイルシステム620とデータ通信が起こっていないことが分かる。これにより、本発明はネットワーク630の負荷を軽減している。
このフローチャートによって多くの機械学習アルゴリズムは、いかなる並列数にでも並列化することができる。機械学習は以下の3つの特徴を持つ機械学習アルゴリズムである。
1)識別モデルや回帰モデルをもつ。
2)特徴量データを上記モデルに適用することでモデルパラメータの妥当性を調べる。
3)モデルパラメータの妥当性をフィードバックしてモデルパラメータを再推定し、更新する。
このうち、上記2)の手順で特徴量データを走査する部分をデータ適用部210として複数のワーカーに分散し、モデル更新部240での統合処理を行うことで、本発明は機械学習アルゴリズムを並列化している。
そのため、上記2)の手順で学習データを並列的に読み込むことができる学習アルゴリズムに本発明を適用できる。そのようなアルゴリズムとして、周知のk−means、SVM(Support Vector Machine)などがあり、代表的な機械学習手法に対して本発明を適用することが可能である。
例えば、k−meansアルゴリズムの場合、上記1)のモデル(識別モデルまたは回帰モデル)パラメータとして、各クラスタの重心ベクトルを持つ。2)のモデルパラメータの妥当性の計算に関しては、現在のモデルパラメータに基づいて、特徴量データがどのクラスタに属するかの判定をする。3)のモデルパラメータの更新では、2)で分類したクラスタごとに、属する特徴量データの重心を計算することで、クラスタの重心ベクトルを更新する。また更新前後での、クラスタ重心ベクトルの差が一定の範囲以上であれば、収束していないと判定し、新しく計算された重心ベクトルを用いて再度上記2)の手順を実行する。ここで、2)の学習データがどのクラスタに属するかの判定とを並列化することができる。
以下では、図6をもとに具体例としてk−meansクラスタリング法による数値ベクトルのクラスタリングを本発明の分散計算機システム上で実行する手順を説明する。図6は、本発明の分散計算機システムでk−meansクラスタリング法を実現するフローチャートである。
図6において、図2に示したひとつのマスタ600で分散計算制御部260が実行され、ひとつのワーカーm+1でモデル更新部240が実行され、m個のワーカー610でデータ適用部210が実行されているとする。
ステップ1000では、初期化を行う。ステップ1000は図4のステップ100からステップ130に相当する。はじめに、マスタ600において分散計算制御部260が、各データ適用部210とモデル更新部240の初期化を行い、データ適用部210とモデル更新部240を各ワーカー610に送信する。次に分散計算制御部260は各データ適用部210が担当する特徴量データを割り当てる。そして、モデル更新部240がk個の重心ベクトルC(i)をランダムに初期化する。モデル更新部240は各データ適用部210に重心ベクトルC(i)を送信する。iは現在までの反復の回数を表し、初期値をi=0とする。各データ適用部210は分散ファイルシステム620のマスタデータ記憶部280から特徴量データ310をロードし、ローカルファイルシステム530の特徴量データ記憶部220にそれぞれ保存する。
以降のステップ1010からステップ1060までの処理が図4のステップ140からステップ180に示される反復部分に相当する。
ステップ1010は現在の重心C(i)を表す。
ステップ1020で各データ適用部210は割り当てられた特徴量データ1〜3に含まれる数値ベクトルを順に重心ベクトルC(i)と比較し、もっとも距離が小さい重心ベクトルのラベルl,{l|1<l<=k,l∈Z}を付与する。ここでZは整数の集合を表す。
さらに、j番目{j|1<j<=m,j,m∈Z}のデータ適用部210は、ラベル付けされた数値ベクトルについて、ラベルごとに重心ベクトルc(i,j)を計算する。ステップ1030では各データ適用部210が上記ステップ1020の処理で得た重心ベクトルc(i,j)を表す。
ステップ1040では、各データ適用部210が計算された重心ベクトルc(i,j)をモデル更新部240に送信する。モデル更新部240が各データ適用部210から重心ベクトルを受け取り、ステップ1050では、モデル更新部240がラベルごとの重心ベクトルからラベル全体の重心ベクトルを計算し、新たな重心ベクトルc(i+1)とする。そして、モデル更新部240では、上述のテストデータと新たな重心ベクトルc(i+1)との距離を比較し、もっとも近い重心ベクトルのラベルを付与し、収束判定を行う。予め設定された収束基準が満たされた場合、処理を終了する。
一方、収束基準が満たされない場合、ステップ1060で反復回数iに1を加算し、モデル更新部240は再度重心ベクトルを各データ適用部210に送信する。そして、上述の処理を繰り返す。
上記ステップ1000〜1060の処理により、k−meansクラスタリング法によって数値ベクトルのクラスタリングを複数のワーカーで実行することができる。
図7Aは、本発明に用いるデータ適用部210のプログラムのうち、分散計算機システムが利用者に提供する部分と利用者が作成する部分を表した模式図である。また、図7Bは、本発明に用いるモデル更新部のプログラムのうち、分散計算機システムが利用者に提供する部分と利用者が作成する部分を表した模式図である。
図7A、図7Bに示すように、データ適用部210とモデル更新部240は共通部分と学習手方法に依存する部分に分けられている。 図7Aにおいてデータ適用部210の共通部分とは、分散計算制御部260やモデル更新部240、分散ファイルシステム620のマスタデータ記憶部280との通信や、特徴量データ記憶部220へのデータの保存処理や読み出しの処理方法などであり、予めデータ適用部210のデータ適用テンプレート1320に実装されている。そのため、利用者はデータ適用部210のうちk−meansデータ適用1330を作成するだけでよい。
図7Bにおいてモデル更新部240は、分散計算制御部260やデータ適用部210、分散ファイルシステム620のマスタデータ記憶部280との通信などの共通部分がモデル更新テンプレート1340に実装されている。分散計算機システムの利用者は、モデル更新部240のうち、k−means初期化1350とk−meansモデル統合1360とk−means収束判定1370を作成するだけでよい。
このように、本発明では機械学習に共通する部分はテンプレートとして用意されているため、利用者が作成するプログラムの量を減らすことができ、開発を効率的にすることが可能である。
本発明は、データ適用部210とモデル更新部240及び分散計算制御部260を上記のような実施形態の構造にすることにより、以下の2つの機能と効果を奏することができる。
(1) ネットワークを通した学習データの通信の削減
(2) プロセス起動及び終了の回数の削減
従来例に示したMapReduceを機械学習に用いる場合の例を図11と図12及び図13に示す。図11は、MapReduceに基づく分散計算システムの構成例を示すブロック図である。
図11において、従来例の分散計算機システムは、複数のMapプロセス(図中Map1〜Map3)320を実行する複数の計算機370と、Reduceプロセス340を実行するひとつの計算機371と、Mapプロセス320及びReduceプロセス340を制御するマスタプロセスを実行するマスタ360と、特徴量データを保持する分散ファイルシステム380から構成される。
図12は、MapReduceにより機械学習を行う処理の一例を示すフローチャートである。図13は、上記図12のMapReduceに基づいて機械学習を実現するための通信手順の例を示すシーケンス図である。
従来例に示したMapReduceを用いてn回の反復処理で機械学習を行ったとすると、図12、図13のステップ430に示すように分散ファイルシステム380から特徴量データを読み出す手順がn回繰り返される。
つまり、図12、図13において、ステップ400ではマスタ360が重心ベクトルの初期化を行い、ステップ410では、マスタ360は複数のMapプロセス320が担当する特徴量データを割り当て、ステップ420では、マスタ360が各Mapプロセス320を起動させて、重心ベクトルと担当する特徴量データを送信する。
ステップ430では、各Mapプロセス320が、分散ファイルシステム380のマスタデータから特徴量データを読み込んで重心ベクトルを算出する。そして、ステップ440では、各Mapプロセス320は、求めた重心ベクトルをReduceプロセス340に送信する。
ステップ450では、Reduceプロセス340が、各Mapプロセス320から受信した複数の重心ベクトルから全体の重心ベクトルを算出し、新たな重心ベクトルとして更新する。
ステップ460では、Reduceプロセス340が新たな重心ベクトルについて予め設定した基準と比較して収束したか否かを判定する。基準を満たして収束していれば処理を終了する。一方、収束していなければステップ470で、Reduceプロセス340はマスタ360に収束が未了であることを通知する。通知を受けたマスタ360が各Mapプロセス320を起動して、重心ベクトルと特徴量データを各Mapプロセスに割り当ててからステップ430に戻って上記処理を繰り返す。なお、図13には、同一のステップに同一の符号を付した。
一方、本発明では、図4のステップ130に示すように、分散ファイルシステム620のマスタデータ記憶部280から特徴量データを読み出す回数はデータ適用部210の初回の実行のみである。そのため、ネットワーク630を介した特徴量データの通信量は、従来例のMapReduceに比してn分の1になる。
同様に、プロセスの起動及び終了も図12、図13のように従来例のMapReduceではn回の反復処理でn回行われる。一方で本発明では、データ適用部210、モデル更新部240とも処理の間、終了されることはないため、プロセスの起動及び終了回数も従来例に比してn分の1になる。
以上のように、分散計算機環境において機械学習を実行する上で、本発明はネットワーク630の通信量と、CPU資源を削減することができる。つまり、データ適用部210とモデル更新部240のプロセスが保持され、かつ、メモリ上の特徴量データを再利用することができるため、プロセスの起動と終了の回数を削減し、特徴量データのロードも一回で済むため通信量とCPU負荷の抑制が可能となる。
図8A、図8Bに本発明の機械学習に用いる特徴量データの一例を示す。自然言語の文書や、画像データなどの様々な形式のデータを機械学習で扱いやすいように予め変換したデータが特徴量データである。
図8Aは、クラスタリングの特徴量データ700を示し、図8Bは、識別問題の特徴量データ710を示し、図2のマスタデータ記憶部280に格納される特徴量データである。特徴量データ700、710は、ラベルと数値ベクトルの組からなる。一行に一つのラベルと数値ベクトルが記されている。1列目がラベルを表し、2列目以降が数値ベクトルを表す。例えば、図8Aのデータの1行目では、ラベルが「1」であり、数値ベクトルが「1:0.1 2:0.45 3:0.91,...」である。数値ベクトルは「次元の番号:値」という形式で記述されており、図8Aのデータの1行目の例では、ベクトルの1次元目が0.1、2次元目が0.45、3次元目が0.91であることを表す。特徴量データ700での必須項目は数値ベクトルであり、場合によりラベルは省略される。例えば、学習時で用いられる特徴量データ700にはラベルが付与されているが、テストで用いられる場合はラベルが付与されていない。また、教師なし学習の場合には、学習で用いられる特徴量にもラベルが付与されない。
機械学習では、読み込む特徴量データの順序は結果に影響しない。この機械学習の特長を生かし、図9、図10のようにローカルファイルシステム530から特徴量データをメモリ520のデータ領域にロードする順番を最適化することで、図4に示した反復処理ごとに変えて、特徴量データのロード時間を減らすことができる。
図9は、データ適用部210がローカルファイルシステム530の特徴量データ記憶部220からメモリ520に予め設定したデータ領域に読み込む例を示す模式図である。図10は、データ適用部210がローカルファイルシステム530の特徴量データをメモリ520のデータ領域に読み込む例を示すシーケンス図である。
ここでは、ローカルファイルシステム530の特徴量データ記憶部220に保存された特徴量データのデータ量がメモリ520に設定したデータ領域のサイズの2倍になっている場合を考える。この場合、特徴量データを複数のセグメントに分け、それぞれデータセグメント1(1100)、データセグメント2(1110)と呼ぶ。なお、メモリ520上のデータ領域のサイズは、これらのデータセグメント1、2を格納可能な所定の容量で予め確保されたものである。
以下、図10をもとに反復処理のデータロードについて述べる。1回目のデータロード(1001)の際には、CPU510は、ローカルファイルシステム530からデータセグメント1(1100)を最初にメモリ520のデータ領域に読み、処理(データ1処理)が終わり次第データセグメント1を開放し、ローカルファイルシステム530からデータセグメント2(1110)をメモリ520のデータ領域に読み込む。CPU510は、処理(データ2処理)が終わっても、メモリ520のデータ領域上にあるデータセグメント2を保持する。モデル更新(240)を行った後の2回目の反復処理の際にはメモリ520のデータ領域上に保持したデータセグメント2から処理(データ2処理)を始める。同様に2*i回目{i|i∈Z}の反復に、データのセグメント1から処理を行い、2*i+1回目の反復にデータセグメント2から処理を行う。こうすることで、ローカルファイルシステム530からの特徴量データのロード回数は毎回データセグメント1から読む場合と比べて半分になり、機械学習を高速に実行できるようになる。
<実行の中断>
本発明では、機械学習中に処理を中断することが可能である。
各データ適用部210は分散計算制御部260から処理の中断の命令を受けると、実行中の学習処理を終えて計算結果をモデル更新部240に送信した後、次の回の学習処理を実行することを一時的に停止する。そして、メモリ520上に読み込まれた特徴量データを開放する。
モデル更新部240は分散計算制御部260から処理の中断の命令を受けると、データ適用部210からの部分結果を待ち受け、実行中の統合処理を終えるまで処理を続ける。その後、収束判定を保留し、分散計算制御部260からの中断解除(学習再開)の指令を待ち受ける。
<学習処理の再開>
各ワーカー1〜3はマスタ600から学習再開の命令を受けると、ローカルファイルシステム530の特徴量データ記憶部220から特徴量データをメモリ520に読み込む。マスタ600から転送された学習パラメータを用いて、反復処理を実行する。以降は通常の実行時と同様の手順に戻る。
以上のように本発明によれば、学習処理を並列的に行う分散計算機システムにおいて、マスタ600(第2の計算機)の分散計算制御部260は、特徴量データの割り当てと、データ適用部210、モデル更新部240をワーカー1〜4(第1の計算機)へ割り当てる。ワーカー1〜3のデータ適用部210は機械学習アルゴリズムの反復計算を担当し、学習処理の開始時にネットワークを介して分散ファイルシステム620(ストレージ)から特徴量データを取得し、ローカルファイルシステム530(ローカル記憶装置)に格納する。データ適用部210は、2回目以降の学習処理の反復時にはローカルファイルシステム530から特徴量データを読み込んで学習処理を行う。特徴量データは学習処理の終了までローカルファイルシステム530またはメモリ520に保持される。データ適用部210は学習処理の結果のみをモデル更新部240に送信し、モデル更新部240からの次の入力(学習モデル)を待ち受ける。モデル更新部240は学習モデル及びパラメータの初期化と、データ適用部210からの学習処理の結果の統合と収束判定を行い、学習モデルが収束していれば、処理を終了し、収束していなければ、新しい学習モデル及びモデルパラメータをデータ適用部210に送信し、学習処理を繰り返す。このとき、データ適用部210は、ネットワークを介して分散ファイルシステム620にアクセスすることなくローカルファイルシステム530の特徴量データを再利用するので、学習処理の起動と終了及び分散ファイルシステム620からのデータのロードを抑制して、機械学習の処理速度を向上させることが可能となる。
本発明によって並列化したk−means法の実行時間を計測した。実験には、マスタ600を1台とワーカー610を6台と1つの分散ファイルシステム620と1GbpsのLAN630を用いた。特徴量データ310として、4つのクラスタに属する50次元の数値ベクトルを用いた。特徴量データのレコード数を200,000点,2,000,000点,20,000,000点と変化させたて実験を行った。
マスタはCPU510を8個持ち、メモリ520を3GB持ち、ローカルファイルシステムを240GB持つ。6台のワーカーのうち4台はCPUを4個持ち、メモリを4GB持ち、ローカルファイルシステムを1TB持つ。残りの2台のワーカーはCPUを4個持ち、メモリを2GB持ち、ローカルファイルシステムを240GB持つ。メモリを4GB持つワーカー4台にデータ適用部210を8個実行させ、メモリ2GBを持つワーカー2台にデータ適用部を4個実行させた。モデル更新部240は、6台のワーカーのうち1台で1個実行させた。
図14に各データの大きさに対する反復処理1回あたりの実行時間を表す。横軸はデータの大きさであり、縦軸は実行時間[秒]である。図14は両側対数グラフとして描かれている。折れ線1400で結果が示されているMemory+LFSとはワーカー610のローカルファイルシステム530に特徴量データを保存し、メモリ520に乗っている特徴量データを利用する場合を表す。各ワーカーのメモリには200,000点の特徴量データがキャッシュされており、反復計算において再利用される。折れ線1410で結果が示されているLFSとは、ワーカー610のローカルファイルシステム530に特徴量データを保存し、メモリ520の特徴量データを利用しない場合を表す。折れ線1420で結果が示されているDFS(MapReduce)とはMapReduceを用いてK−means法を実装し、分散ファイルシステム630の特徴量データを利用した場合を表す。全てのデータにおいて、Memory+LFSはLFSより早く処理を終えており、LFSは(MapReduce)よりも早く処理を終えている。200,000点のデータを用いた時、Memory+LFSはDFS(MapReduce)と比べて61.3倍速く処理を実行している。2,000,000点のデータを用いた時、Memory+LFSはDFS(MapReduce)と比べて27.7倍速く処理を実行している。20,000,000点のデータを用いた時、Memory+LFSはDFS(MapReduce)と比べて、15.2倍速く処理を実行している。Memory+LFSは、メモリに全ての特徴量データがキャッシュされる200,000点と2,000,000点の特徴量データの場合にLFSと比べて、それぞれ3.33倍、2.96倍と大きな速度向上を示している。
次に、ワーカーの台数を1台から6台まで1台ずつ増やし、本発明によって並列化したk−means法の実行時間を計測した。ワーカーを追加する順番で、1台目から4台目のワーカーはデータ適用部210を8個持ち、5台目と6台目のワーカーはデータ適用部を4個持つ。特徴量データ310として、4つのクラスタに属する50次元の数値ベクトルを20,000,000点用いた。この実験では、6台のうち1台のワーカーにモデル更新部240を1個割り当てた。図15にデータ適用部の個数に対する速度向上率を示す。なお、速度向上率はCPUが8個の場合を基準としている。Memory+LFSの結果は折れ線1500で示されていおり、LFSの結果は折れ線1510で示されている。Meomory+LFSとLFSの両方で、ワーカーの台数が増えることにより、速度向上の割合が上がっている。Memory+LFSでは2台のワーカーで計8個のCPUを使うときに、1.53倍に速度が向上しており、6台のワーカーで計40個のCPUを使うときは13.3倍に速度が向上している。LFSでは2台のワーカーで計8個のCPUを使うときに1.48倍に速度が向上しており、6台のワーカーで計40個のCPUを使うときは9.72倍に速度が向上している。Memory+LFSとLFSでは、ワーカーの数とともに、CPUやLFSの数が増えることで処理分散が起こっていることで、速度が向上している。それに加えて、Memory+LFSの場合、メモリにキャッシュされる特徴量データの量も向上しており、速度の向上の割合がLFSの場合と比べて大きくなっている。
<第2実施形態>
次に、本発明の第2の実施の形態について説明する。第2実施の形態で用いる分散計算機システムの構成は、前記第1実施形態と同一である。
データ適用部210における学習結果のモデル更新部240への送信と、モデル更新部240における学習結果の統合が第1実施形態とは異なる。本第2実施形態例において、データ適用部210での学習処理時にメモリ520上の特徴量データのみを学習処理に使用する。メモリ520上の特徴量データの学習処理が終わると、部分的な結果をモデル更新部240へと送信する。この送信の際に、データ適用部210は、ローカルファイルシステム530の特徴量データ記憶部220のうち未処理の特徴量データをメモリ520に読み込んで入れ替える。
上記処理により、モデル更新部240の通信の待ち時間を低減することができる。以下では第1実施形態と第2実施形態の相違点についてのみ説明する。
今、ローカルファイルシステム530にはデータ適用部210で扱うことのできるメモリ量の2倍の量の特徴量データが存在すると仮定する。なお、データ適用部210は、メモリ520上に特徴量データを格納する領域と、学習結果等を格納する領域を設定するものとする。便宜上、ローカルファイルシステム530上の特徴量データ記憶部220を図9で示したようにデータセグメント1(1100)、データセグメント2(1110)の2つに分割されていると考える。
はじめに、データ適用部210がデータセグメント1を学習処理する。学習処理が終了すると通信スレッド(図示省略)と特徴量データロードスレッド(図示省略)を活性化(実行)する。データロードスレッドがデータセグメント2をロードしている間に通信スレッドが途中結果をモデル更新部240に送信する。モデル更新部は各データ適用部から途中結果を受け取ると、随時新しいモデルパラメータを更新する。データ適用部での学習処理は特徴量データがロードされると、通信スレッドの終了を待つことなく実行される。このように、データ適用部210の途中結果をモデル更新部240が把握することで、データ適用部210が学習処理を行っている間もモデル更新部240は途中結果を用いて計算(統合処理)を行うことができる。そのため、データ適用部210の学習終了時に実行する統合処理に要する時間を短縮することができる。これにより、機械学習処理のさらなる高速化を図ることができる。
<第3実施形態>
次に、本発明の第3の実施の形態を説明する。機械学習の一手法にアンサンブル学習が知られている。アンサンブル学習は独立した複数のモデルを作成し、複数のモデルを統合する学習手法である。アンサンブル学習を用いると学習アルゴリズムが並列化されていない場合でも、独立した学習モデルの構築を並列的に行うことができる。各アンサンブル手法を本発明上に実装することを考える。本第3実施形態の分散計算機システムの構成は前記第1実施形態と同一である。アンサンブル学習の際に、学習用データをデータ適用部210に固定してモデルのみを移動させることで、特徴量データの通信量を減らすことができる。以下では第1実施形態と第3実施形態の相違点についてのみ説明する。
アンサンブル学習のためにデータ適用部210をm個用いると仮定する。単一のデータ適用部210のみで動作する機械学習アルゴリズムが10種類あると仮定する。分散計算制御部260がデータ適用部210をワーカー1〜mへ送信する際に全ての機械学習アルゴリズムが送信される。1度目のデータ適用部210の処理で各ローカルファイルシステム530には特徴量データが分散ファイルシステム620のマスタデータ記憶部280から読み込まれる。
そして各データ適用部210において、1種類目のアルゴリズムの学習が行われ、学習後に結果がモデル更新部240に送信される。2度目以降の処理では、学習されていないアルゴリズムが順次学習される。その際に、機械学習アルゴリズムや特徴量データはメモリ520上、もしくはローカルファイルシステム530に存在するものを用いる。データ適用部210とモデル更新部240の処理を合計10回繰り返すことで、全てのアルゴリズムを全ての特徴量データについて学習する。
このような方法によって、データサイズの大きい特徴量データをワーカーのデータ適用部210から移動させることなく、効率的にアンサンブル学習を行うことができる。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発
明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可
能であることはいうまでもない。
なお、上記各実施形態においては、特徴量データ310を分散ファイルシステム620のマスタデータ記憶部280に格納する例を示したが、ワーカー610からアクセス可能なストレージ装置を用いることができ、分散ファイルシステム620に限定されるものではない。
また、上記各実施形態においては、分散計算制御部260とデータ適用部210及びモデル更新部240がそれぞれ独立した計算機500で実行される例を示したが、各処理部210、240、260は仮想計算機上で実行されてもよい。
以上のように、本発明は機械学習を並列して実行する分散計算システムに適用することができ、特に、反復処理を含むデータ処理を実行する分散計算機システムに適用することができる。
210 データ適用部
220 特徴量データ記憶部
240 モデル更新部
260 分散計算制御部
280 マスタデータ記憶部
310 特徴量データ
510 中央演算装置 (Central Processing Unit、CPU)
520 メモリ
530 ローカルファイルシステム
540 入力装置
550 出力装置
560 ネットワークデバイス
570 バス
600 マスタ用計算機
610 ワーカー用計算機
620 分散ファイルシステム
630 ネットワーク機器(LAN)

Claims (5)

  1. プロセッサとメモリとローカル記憶装置を備えた第1の計算機と、
    プロセッサとメモリを備えて複数の前記第1の計算機に分散処理を指令する第2の計算機と、
    前記分散処理に用いるデータを格納したストレージと、
    前記第1の計算機と第2の計算機及び前記ストレージとを接続するネットワークと、
    を備えて、前記複数の第1の計算機で並列的に処理を行う分散計算システムであって、
    前記第2の計算機は、
    前記複数の第1の計算機に、前記分散処理として学習処理を実行させる制御部を備え、
    前記制御部は、
    前記複数の第1の計算機のうち所定の複数の第1の計算機に、学習処理を実行するデータ適用部及び前記データ適用部毎に学習処理の対象となる前記ストレージのデータを割り当てて第1のワーカーとして学習処理を実行させ、
    前記複数の第1の計算機のうち少なくとも一つの第1の計算機に、前記データ適用部の出力を受信して学習モデルを更新するモデル更新部を割り当てて第2のワーカーとして学習処理を実行させ、
    前記第1のワーカーは、
    前記データ適用部が、前記第2の計算機から割り当てられたデータを前記ストレージから読み込んでローカル記憶装置に格納し、前記メモリ上に予め確保したデータ領域に前記ローカル記憶装置のデータのうち未処理のデータを順次読み込んで、当該データ領域のデータに対して学習処理を実行し、当該学習処理の結果を前記第2のワーカーへ送信し、
    前記第2のワーカーは、
    前記モデル更新部が、前記複数の第1のワーカーから学習処理の結果を受信し、前記受信した複数の学習処理の結果から学習モデルを更新し、当該更新した学習モデルが所定の基準を満たすか否かを判定し、前記更新した学習モデルが所定の基準を満たしていない場合には、前記第1のワーカーへ更新した学習モデルを送信して学習処理を指令し、前記更新した学習モデルが所定の基準を満たす場合には、前記第2の計算機に前記更新した学習モデルを送信することを特徴とする分散計算システム。
  2. 請求項1に記載の分散計算システムであって、
    前記データ適用部は、
    前記データをローカル記憶装置から前記メモリに読み込むときに、前記ローカル記憶装置に格納されたデータを所定の順番で読み込むことを特徴とする分散計算システム。
  3. 請求項2に記載の分散計算システムであって、
    前記データ適用部は、
    前記学習処理を終了して前記第2のワーカーに学習処理の結果を送信した後、前記第2のワーカーから学習モデルを受信して再度学習処理を行う場合には、前記メモリのデータ領域上に保持しているデータから学習処理を開始することを特徴とする分散計算システム。
  4. 請求項1に記載の分散計算システムであって、
    前記データ適用部は、
    前記ローカル記憶装置から前記データをメモリのデータ領域に読み込み、当該データ領域のデータについて学習処理が終了した後に、前記ローカル記憶装置から未処理のデータを前記メモリへ読み込む際に、前記終了した学習処理の結果を部分的な学習処理の結果として前記第2のワーカーに送信することを特徴とする分散計算システム。
  5. 請求項1に記載の分散計算システムであって
    前記第2の計算機は、
    予め複数の学習モデルを有し、
    前記第1のワーカーとして機能する第1の計算機のデータ適用部のそれぞれに前記複数の学習モデルのうちの一つを送信し、前記第2のワーカーとして機能する第1の計算機のモデル更新部に前記複数の学習モデルを送信し、
    前記第2のワーカーは、
    前記モデル更新部が、前記複数の第1のワーカーから学習処理の結果を受信すると、前記第1のワーカーに他の学習モデルを送信し、学習処理の開始を指令することを特徴とする分散計算システム。
JP2010160551A 2010-07-15 2010-07-15 分散計算システム Expired - Fee Related JP5584914B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010160551A JP5584914B2 (ja) 2010-07-15 2010-07-15 分散計算システム
US13/176,809 US20120016816A1 (en) 2010-07-15 2011-07-06 Distributed computing system for parallel machine learning

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010160551A JP5584914B2 (ja) 2010-07-15 2010-07-15 分散計算システム

Publications (2)

Publication Number Publication Date
JP2012022558A true JP2012022558A (ja) 2012-02-02
JP5584914B2 JP5584914B2 (ja) 2014-09-10

Family

ID=45467710

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010160551A Expired - Fee Related JP5584914B2 (ja) 2010-07-15 2010-07-15 分散計算システム

Country Status (2)

Country Link
US (1) US20120016816A1 (ja)
JP (1) JP5584914B2 (ja)

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014020735A1 (ja) * 2012-08-02 2014-02-06 富士通株式会社 データ処理方法、情報処理装置およびプログラム
JP2016507093A (ja) * 2013-01-11 2016-03-07 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 回帰モデルを計算するための方法、コンピュータ・プログラム、およびシステム
JP2016048536A (ja) * 2014-08-27 2016-04-07 財團法人資訊工業策進會 クラスタコンピューティングシステム用のマスタデバイス、スレーブデバイスおよびそのコンピューティング方法
JP2016076217A (ja) * 2014-10-06 2016-05-12 フィッシャー−ローズマウント システムズ,インコーポレイテッド 地域的ビッグデータノード、プロセスプラントの動作を向上する方法、プロセスプラント内で地域的ビッグデータをサポートするためのシステム
JP2017162209A (ja) * 2016-03-09 2017-09-14 富士通株式会社 分散処理実行管理プログラム、分散処理実行管理方法および分散処理実行管理装置
JP2018036779A (ja) * 2016-08-30 2018-03-08 株式会社東芝 電子装置、方法及び情報処理システム
KR20180035073A (ko) * 2016-09-28 2018-04-05 주식회사 케이티 Dnn의 분산 훈련 시스템 및 분산 훈련 방법
JP2019507442A (ja) * 2016-03-04 2019-03-14 アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited 機械学習システムのトレーニング方法及びトレーニングシステム
JP2019511054A (ja) * 2016-03-26 2019-04-18 アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited 分散クラスタ型訓練方法及び装置
JP2020064491A (ja) * 2018-10-18 2020-04-23 国立大学法人神戸大学 学習システム、学習方法、およびプログラム
US10671028B2 (en) 2013-03-15 2020-06-02 Fisher-Rosemount Systems, Inc. Method and apparatus for managing a work flow in a process plant
JPWO2020194622A1 (ja) * 2019-03-27 2020-10-01
US20200319936A1 (en) * 2017-10-26 2020-10-08 Nec Corporation Distributed processing management apparatus, distributed processing method, and computer-readable recording medium
JP2020532008A (ja) * 2017-08-22 2020-11-05 ノースロップ グラマン システムズ コーポレーション ニューラルネットワークの分散学習および重み分配のためのシステム、および方法
US10866952B2 (en) 2013-03-04 2020-12-15 Fisher-Rosemount Systems, Inc. Source-independent queries in distributed industrial system
US10909137B2 (en) 2014-10-06 2021-02-02 Fisher-Rosemount Systems, Inc. Streaming data for analytics in process control systems
KR20210012791A (ko) * 2019-07-26 2021-02-03 한국전자통신연구원 기계학습 기반 예측 모델 재학습 장치 및 그 방법
JP2022008781A (ja) * 2020-06-28 2022-01-14 ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド 分散型トレーニング方法、システム、デバイス、記憶媒体、及びプログラム
US11385608B2 (en) 2013-03-04 2022-07-12 Fisher-Rosemount Systems, Inc. Big data in process control systems
KR20220104595A (ko) * 2021-01-18 2022-07-26 성균관대학교산학협력단 중단 없는 기계학습 클러스터 재구성 방법
US11886155B2 (en) 2015-10-09 2024-01-30 Fisher-Rosemount Systems, Inc. Distributed industrial performance monitoring and analytics

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8918388B1 (en) * 2010-02-26 2014-12-23 Turn Inc. Custom data warehouse on top of mapreduce
US8612368B2 (en) * 2011-03-01 2013-12-17 International Business Machines Corporation Systems and methods for processing machine learning algorithms in a MapReduce environment
US8873836B1 (en) * 2012-06-29 2014-10-28 Emc Corporation Cluster-based classification of high-resolution data
TWI495066B (zh) * 2012-08-31 2015-08-01 Chipmos Technologies Inc 晶圓級封裝結構及其製造方法
CN103942195B (zh) * 2013-01-17 2017-07-25 ***股份有限公司 一种数据处理***以及数据处理方法
US9563854B2 (en) * 2014-01-06 2017-02-07 Cisco Technology, Inc. Distributed model training
US10672078B1 (en) * 2014-05-19 2020-06-02 Allstate Insurance Company Scoring of insurance data
US11094015B2 (en) 2014-07-11 2021-08-17 BMLL Technologies, Ltd. Data access and processing system
CN105446896B (zh) * 2014-08-29 2018-05-04 国际商业机器公司 映射化简应用的缓存管理方法和装置
US20160132787A1 (en) * 2014-11-11 2016-05-12 Massachusetts Institute Of Technology Distributed, multi-model, self-learning platform for machine learning
TWI547822B (zh) * 2015-07-06 2016-09-01 緯創資通股份有限公司 資料處理方法及系統
JP6558188B2 (ja) * 2015-09-30 2019-08-14 富士通株式会社 分散処理システム、学習モデル作成方法、データ処理方法、学習モデル作成プログラムおよびデータ処理プログラム
US10402469B2 (en) 2015-10-16 2019-09-03 Google Llc Systems and methods of distributed optimization
WO2017084020A1 (zh) 2015-11-16 2017-05-26 华为技术有限公司 模型参数融合方法及装置
US10366234B2 (en) * 2016-09-16 2019-07-30 Rapid7, Inc. Identifying web shell applications through file analysis
US20180089587A1 (en) 2016-09-26 2018-03-29 Google Inc. Systems and Methods for Communication Efficient Distributed Mean Estimation
US11196800B2 (en) 2016-09-26 2021-12-07 Google Llc Systems and methods for communication efficient distributed mean estimation
US10769549B2 (en) * 2016-11-21 2020-09-08 Google Llc Management and evaluation of machine-learned models based on locally logged data
US11120361B1 (en) 2017-02-24 2021-09-14 Amazon Technologies, Inc. Training data routing and prediction ensembling at time series prediction system
CN111756754B (zh) * 2017-07-28 2023-04-07 创新先进技术有限公司 一种训练模型的方法及装置
US10331608B2 (en) 2017-09-22 2019-06-25 International Business Machines Corporation Replacing mechanical/magnetic components with a supercomputer
US10997525B2 (en) 2017-11-20 2021-05-04 International Business Machines Corporation Efficient large-scale kernel learning using a distributed processing architecture
WO2019209059A1 (en) * 2018-04-25 2019-10-31 Samsung Electronics Co., Ltd. Machine learning on a blockchain
CN109754072B (zh) * 2018-12-29 2020-06-23 中科寒武纪科技股份有限公司 网络离线模型的处理方法、人工智能处理装置及相关产品
US11947570B2 (en) * 2019-09-03 2024-04-02 International Business Machines Corporation Data augmentation
CN112615794B (zh) * 2020-12-08 2022-07-29 四川迅游网络科技股份有限公司 一种面向业务流量特征的智能加速***和方法
US20220351069A1 (en) * 2021-04-30 2022-11-03 International Business Machines Corporation Federated training of machine learning models
CN113835899B (zh) * 2021-11-25 2022-02-22 支付宝(杭州)信息技术有限公司 针对分布式图学习的数据融合方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05108595A (ja) * 1991-10-17 1993-04-30 Hitachi Ltd ニユーラルネツトワークの分散学習装置
JPH0660051A (ja) * 1991-09-18 1994-03-04 Matsushita Electric Ind Co Ltd ニューラルネットワーク回路
JP2001167098A (ja) * 1999-12-07 2001-06-22 Hitachi Ltd 大量データの分散並列分析方法
JP2004326480A (ja) * 2003-04-25 2004-11-18 Hitachi Ltd 大量データの分散並列分析方法
US7222127B1 (en) * 2003-11-14 2007-05-22 Google Inc. Large scale machine learning systems and methods

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005091214A1 (ja) * 2004-03-18 2005-09-29 Denso It Laboratory, Inc. 車両用情報処理システム、車両用情報処理方法およびプログラム
JP4512201B2 (ja) * 2007-12-21 2010-07-28 株式会社日立製作所 データ処理方法及びシステム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0660051A (ja) * 1991-09-18 1994-03-04 Matsushita Electric Ind Co Ltd ニューラルネットワーク回路
JPH05108595A (ja) * 1991-10-17 1993-04-30 Hitachi Ltd ニユーラルネツトワークの分散学習装置
JP2001167098A (ja) * 1999-12-07 2001-06-22 Hitachi Ltd 大量データの分散並列分析方法
JP2004326480A (ja) * 2003-04-25 2004-11-18 Hitachi Ltd 大量データの分散並列分析方法
US7222127B1 (en) * 2003-11-14 2007-05-22 Google Inc. Large scale machine learning systems and methods

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
CHENG-TAO CHU ET AL., MAP-REDUCE FOR MACHINE LEARNING ON MULTICORE, JPN6014001326, 8 December 2006 (2006-12-08), ISSN: 0002839812 *
MATEI ZAHARIA ET AL.: "Spark: Cluster Computing with Working Sets", PROCEEDINGS OF THE 2ND USENIX WORKSHOP ON HOT TOPICS IN CLOUD COMPUTING (HOTCLOUD'10), JPN6014001325, 22 June 2010 (2010-06-22), ISSN: 0002839811 *
堀崎 行太,山中 教行,竹内 一郎,古橋 武: "PCクラスタシステムにおけるミニバッチ学習の概念を用いたニューラルネットワークの並列学習", 電子情報通信学会技術研究報告, vol. 102, no. 508, JPN6014001323, 6 December 2002 (2002-12-06), JP, pages 19 - 22, ISSN: 0002724754 *

Cited By (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014020735A1 (ja) * 2012-08-02 2014-02-06 富士通株式会社 データ処理方法、情報処理装置およびプログラム
JP2016507093A (ja) * 2013-01-11 2016-03-07 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 回帰モデルを計算するための方法、コンピュータ・プログラム、およびシステム
US11385608B2 (en) 2013-03-04 2022-07-12 Fisher-Rosemount Systems, Inc. Big data in process control systems
US10866952B2 (en) 2013-03-04 2020-12-15 Fisher-Rosemount Systems, Inc. Source-independent queries in distributed industrial system
US11573672B2 (en) 2013-03-15 2023-02-07 Fisher-Rosemount Systems, Inc. Method for initiating or resuming a mobile control session in a process plant
US11169651B2 (en) 2013-03-15 2021-11-09 Fisher-Rosemount Systems, Inc. Method and apparatus for controlling a process plant with location aware mobile devices
US11112925B2 (en) 2013-03-15 2021-09-07 Fisher-Rosemount Systems, Inc. Supervisor engine for process control
US10671028B2 (en) 2013-03-15 2020-06-02 Fisher-Rosemount Systems, Inc. Method and apparatus for managing a work flow in a process plant
US10691281B2 (en) 2013-03-15 2020-06-23 Fisher-Rosemount Systems, Inc. Method and apparatus for controlling a process plant with location aware mobile control devices
JP2016048536A (ja) * 2014-08-27 2016-04-07 財團法人資訊工業策進會 クラスタコンピューティングシステム用のマスタデバイス、スレーブデバイスおよびそのコンピューティング方法
JP2016076217A (ja) * 2014-10-06 2016-05-12 フィッシャー−ローズマウント システムズ,インコーポレイテッド 地域的ビッグデータノード、プロセスプラントの動作を向上する方法、プロセスプラント内で地域的ビッグデータをサポートするためのシステム
US10909137B2 (en) 2014-10-06 2021-02-02 Fisher-Rosemount Systems, Inc. Streaming data for analytics in process control systems
US11886155B2 (en) 2015-10-09 2024-01-30 Fisher-Rosemount Systems, Inc. Distributed industrial performance monitoring and analytics
JP2019507442A (ja) * 2016-03-04 2019-03-14 アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited 機械学習システムのトレーニング方法及びトレーニングシステム
US11257005B2 (en) 2016-03-04 2022-02-22 Alibaba Group Holding Limited Training method and training system for machine learning system
JP7004661B2 (ja) 2016-03-04 2022-01-21 アリババ・グループ・ホールディング・リミテッド 機械学習システムのトレーニング方法及びトレーニングシステム
JP2017162209A (ja) * 2016-03-09 2017-09-14 富士通株式会社 分散処理実行管理プログラム、分散処理実行管理方法および分散処理実行管理装置
US11636379B2 (en) 2016-03-26 2023-04-25 Alibaba Group Holding Limited Distributed cluster training method and apparatus
JP2019511054A (ja) * 2016-03-26 2019-04-18 アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited 分散クラスタ型訓練方法及び装置
JP2018036779A (ja) * 2016-08-30 2018-03-08 株式会社東芝 電子装置、方法及び情報処理システム
KR102194280B1 (ko) 2016-09-28 2020-12-22 주식회사 케이티 Dnn의 분산 훈련 시스템 및 분산 훈련 방법
KR20180035073A (ko) * 2016-09-28 2018-04-05 주식회사 케이티 Dnn의 분산 훈련 시스템 및 분산 훈련 방법
JP7393512B2 (ja) 2017-08-22 2023-12-06 ノースロップ グラマン システムズ コーポレーション ニューラルネットワークの分散学習および重み分配のためのシステム、および方法
JP2020532008A (ja) * 2017-08-22 2020-11-05 ノースロップ グラマン システムズ コーポレーション ニューラルネットワークの分散学習および重み分配のためのシステム、および方法
US11656917B2 (en) 2017-10-26 2023-05-23 Nec Corporation Distributed processing management apparatus, distributed processing method, and computer-readable recording medium
US20200319936A1 (en) * 2017-10-26 2020-10-08 Nec Corporation Distributed processing management apparatus, distributed processing method, and computer-readable recording medium
JP2020064491A (ja) * 2018-10-18 2020-04-23 国立大学法人神戸大学 学習システム、学習方法、およびプログラム
JP7181585B2 (ja) 2018-10-18 2022-12-01 国立大学法人神戸大学 学習システム、学習方法、およびプログラム
WO2020194622A1 (ja) * 2019-03-27 2020-10-01 日本電気株式会社 情報処理装置、情報処理方法、及び非一時的なコンピュータ可読媒体
JPWO2020194622A1 (ja) * 2019-03-27 2020-10-01
US11922677B2 (en) 2019-03-27 2024-03-05 Nec Corporation Information processing apparatus, information processing method, and non-transitory computer readable medium
KR102434460B1 (ko) 2019-07-26 2022-08-22 한국전자통신연구원 기계학습 기반 예측 모델 재학습 장치 및 그 방법
KR20210012791A (ko) * 2019-07-26 2021-02-03 한국전자통신연구원 기계학습 기반 예측 모델 재학습 장치 및 그 방법
JP7138150B2 (ja) 2020-06-28 2022-09-15 ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド 分散型トレーニング方法、システム、デバイス、記憶媒体、及びプログラム
JP2022008781A (ja) * 2020-06-28 2022-01-14 ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド 分散型トレーニング方法、システム、デバイス、記憶媒体、及びプログラム
KR20220104595A (ko) * 2021-01-18 2022-07-26 성균관대학교산학협력단 중단 없는 기계학습 클러스터 재구성 방법
KR102549144B1 (ko) 2021-01-18 2023-06-30 성균관대학교산학협력단 중단 없는 기계학습 클러스터 재구성 방법

Also Published As

Publication number Publication date
US20120016816A1 (en) 2012-01-19
JP5584914B2 (ja) 2014-09-10

Similar Documents

Publication Publication Date Title
JP5584914B2 (ja) 分散計算システム
CN110301128B (zh) 基于学习的资源管理数据中心云架构的实现方法
Anghel et al. Benchmarking and optimization of gradient boosting decision tree algorithms
Scolati et al. A containerized big data streaming architecture for edge cloud computing on clustered single-board devices
Yang et al. Intermediate data caching optimization for multi-stage and parallel big data frameworks
JP2010092222A (ja) 更新頻度に基づくキャッシュ機構
Nguyen et al. Towards automatic tuning of apache spark configuration
KR20210036226A (ko) 복수의 엣지와 클라우드를 포함하는 분산 컴퓨팅 시스템 및 이의 적응적 지능 활용을 위한 분석 모델 제공 방법
Teijeiro et al. Implementing parallel differential evolution on spark
EP4198771A1 (en) Data processing method and apparatus, computer readable medium, and electronic device
Zheng et al. Target-based resource allocation for deep learning applications in a multi-tenancy system
Ward et al. Colmena: Scalable machine-learning-based steering of ensemble simulations for high performance computing
Clemente-Castelló et al. Performance model of mapreduce iterative applications for hybrid cloud bursting
JP5673473B2 (ja) 分散計算機システム及び分散計算機システムの制御方法
Lei et al. CREST: Towards fast speculation of straggler tasks in MapReduce
Wang et al. Phase-reconfigurable shuffle optimization for Hadoop MapReduce
Ohno et al. Accelerating spark RDD operations with local and remote GPU devices
Zdravevski et al. Feature ranking based on information gain for large classification problems with mapreduce
dos Anjos et al. Smart: An application framework for real time big data analysis on heterogeneous cloud environments
US20210390405A1 (en) Microservice-based training systems in heterogeneous graphic processor unit (gpu) cluster and operating method thereof
CN106778812B (zh) 聚类实现方法和装置
Wu et al. Paraopt: Automated application parameterization and optimization for the cloud
Bu et al. An improved PSO algorithm and its application to grid scheduling problem
Chen et al. Task Scheduling for Multi-core and Parallel architectures
Ovalle et al. Distributed Cache Strategies for Machine Learning Classification Tasks over Cluster Computing Resources

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120316

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140121

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140324

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140415

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140605

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140702

R150 Certificate of patent or registration of utility model

Ref document number: 5584914

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees