(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-23
(45)【発行日】2023-10-31
(54)【発明の名称】AI処理分散方法およびシステム
(51)【国際特許分類】
G06F 9/50 20060101AFI20231024BHJP
G06N 3/10 20060101ALI20231024BHJP
【FI】
G06F9/50 150D
G06N3/10
(21)【出願番号】P 2020165675
(22)【出願日】2020-09-30
【審査請求日】2022-08-08
(73)【特許権者】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(74)【代理人】
【識別番号】100092772
【氏名又は名称】阪本 清孝
(74)【代理人】
【識別番号】100119688
【氏名又は名称】田邉 壽二
(72)【発明者】
【氏名】植田 哲郎
(72)【発明者】
【氏名】大岸 智彦
【審査官】三坂 敏夫
(56)【参考文献】
【文献】特開2019-053581(JP,A)
【文献】特開2003-208414(JP,A)
【文献】特開2018-147301(JP,A)
【文献】特開2006-260400(JP,A)
【文献】国際公開第2018/011842(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/455-9/54
G06N 3/10
(57)【特許請求の範囲】
【請求項1】
多層構造のニューラルネットワークに入力されたデータをAI情報としてソフトウェアにより層単位で演算処理するAI処理を複数の
サーバで分散処理するシステムにおいて、
前記複数のサーバが、
入力されたAI情報の分散処理を他のサーバへ委託する委託元サーバと、
委託された分散処理の少なくとも一部をAI処理して残りの分散処理を他のサーバへ委託する複数の委託先サーバとを含み、
各委託先サーバは、
AI情報を取得するAI情報取得手段と、
取得したAI情報の一部をAI処理するAI処理実行手段と、
AI処理の委託先
サーバを決定する委託先決定手段と、
前記委託先
サーバへ委託するAI処理の処理量を決定する処理量決定手段と、
前記決定した処理量のAI処理を前記
決定した委託先
サーバへ委託する分散処理委託手段とを具備し、
前記
決定した委託先
サーバが他の委託先
サーバを更に決定してAI処理を委託することを繰り返すことを特徴とするAI処理分散システム。
【請求項2】
前記各
委託先サーバが、AI情報の分散処理をその分散処理量の指定と共に受託する分散処理受託手段を更に具備し、
前記AI処理実行手段は、指定された分散処理量のAI処理を実行することを特徴とする請求項
1に記載のAI処理分散システム。
【請求項3】
前記各
委託先サーバが他の委託先サーバのメモリ空き容量
及び空き処理容量の少なくとも一方を監視する空き容量監視手段を具備し、
前記委託先決定手段は
前記メモリ空き容量
及び空き処理容量の少なくとも一方に基づいて委託先
サーバを決定することを特徴とする請求項
1または2に記載のAI処理分散システム。
【請求項4】
前記各
サーバが、他の
サーバとの距離を管理する距離管理手段を具備し、
前記委託先決定手段は
前記メモリ空き容量
及び空き処理容量の少なくとも一方ならびに距離に基づいて委託先
サーバを決定することを特徴とする請求項
3に記載のAI処理分散システム。
【請求項5】
前記処理量決定手段は委託先
サーバのメモリ空き容量
及び空き処理容量の少なくとも一方に基づいて当該委託先
サーバへ委託するAI処理の処理量を決定することを特徴とする請求項
3または4に記載のAI処理分散システム。
【請求項6】
前記AI処理がニューラルネットワークを利用したAI処理であり、入力層、中間層および出力層の各層単位で分散処理されることを特徴とする請求項
1ないし5のいずれかに記載のAI処理分散システム。
【請求項7】
前記AI処理がDNN(Deep Neural Network)であり、前記中間層が隠れ層単位で分散処理されることを特徴とする請求項
6に記載のAI処理分散システム。
【請求項8】
多層構造のニューラルネットワークに入力されたデータをAI情報としてソフトウェアにより層単位で演算処理するAI処理を
委託元サーバ及び委託先サーバを含む複数のサーバで分散処理する方法において、
委託元サーバは入力されたAI情報の分散処理を一の委託先サーバへ委託し、
各委託先サーバは、
AI情報を取得し、
取得したAI情報の一部をAI処理し、
AI処理の委託先
サーバを決定し、
前記委託先
サーバへ委託するAI処理の処理量を決定し、
前記決定した処理量のAI処理を前記
決定した委託先
サーバへ委託し、
前記
決定した委託先
サーバが他の委託先
サーバを更に決定してAI処理を委託することを繰り返すことを特徴とするAI処理分散方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、AI処理を複数のノードで分散処理するAI処理分散方法およびシステムに係り、特に、AI処理のトラヒックが発生した場所にかかわらず、分散配置された各ノードの処理負荷を平準化できるAI処理分散方法およびシステムに関する。
【背景技術】
【0002】
近年、AI処理として多層構造のニューラルネットワーク(Neural Network)を用いたディープラーニング(深層学習)が注目されている。ディープラーニングではニューラルネットワークの多階層化が進み、画像認識や音声認識等の分野で高い認識精度を発揮している。
【0003】
ニューラルネットワークは、「入力層」、「中間層」および「出力層」を有し、「中間層」が複数の深い隠れ層を持つものはDNN(Deep Neural Network)と呼ばれる。DNNのうち、「中間層」において畳込み層(Convolution Layer)とプーリング層(Pooling Layer)とが交互に繰り返す多層の積層構造を有するものはCNN(Convolutional Neural Network)と呼ばれる。
【先行技術文献】
【非特許文献】
【0004】
【文献】Zhuoran Zhao, Kamyar Mirzazad Barijough, Andreas Gerstlauer, "DeepThings: Distributed Adaptive Deep Learning Inference on Resource-Constrained IoT Edge Clusters," IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems ( Volume: 37 , Issue: 11 , Nov. 2018 )
【発明の概要】
【発明が解決しようとする課題】
【0005】
ニューラルネットワークはコンピュータ上で仮想的に構築され、ソフトウェアによって層単位で演算処理が実行されるが、その演算量は膨大なものとなるため、汎用のCPUのみならずGPU(Graphics Processing Unit)を用いて演算処理を実行することも行われている。しかしながら、例えばCNNでは畳込み層が20層ないし30層にも及ぶため、更なる負荷軽減が要請されている。
【0006】
負荷軽減は一般的に負荷分散で実現することができ、非特許文献1には複数のノードで多数のタスクを分散処理する技術が開示されている。
【0007】
しかしながら、AI処理では複数の層やステップが所定の順序で進行し、前の層の処理結果を次の層で利用することが要求される。このような一連の処理を分散処理する場合、分散の単位が不適切であると処理の一貫性が損なわれてしまう場合がある。
【0008】
また、分散先の選択が適切に行われないと一部のノードに負荷が集中し、更には一部のネットワークにトラヒックが集中するなどの弊害が生じうる。
【0009】
本発明の目的は、上記の技術課題を解決し、AI処理をその一貫性が損われず、一部のノードへの負荷集中や一部のネットワークへのトラヒック集中を防止しながら分散処理できるAI処理分散方法およびシステムを提供することにある。
【課題を解決するための手段】
【0010】
上記の目的を達成するために、本発明は、AI情報に対するAI処理を分散処理するAI処理ノードが、以下の構成を具備した点に特徴がある。
【0011】
(1) AI情報を取得するAI情報取得手段と、取得したAI情報の一部をAI処理するAI処理実行手段と、AI処理の委託先ノードを決定する委託先ノード決定手段と、前記委託先ノードへ委託するAI処理の処理量を決定する処理量決定手段と、前記決定した処理量のAI処理を前記委託先ノードへ委託する分散処理委託手段とを具備した。
【0012】
(2) AI情報の分散処理をその分散処理量の指定と共に受託する分散処理受託手段を更に具備し、前記AI処理実行手段は、指定された分散処理量のAI処理を実行するようにした。
【0013】
(3) 他のAI処理ノードの空き容量を監視する手段を具備し、前記委託先ノード決定手段は空き容量に基づいて委託先ノードを決定するようにした。
【0014】
(4) 他のAI処理ノードとの距離を管理する距離管理手段を具備し、前記委託先ノード決定手段は空き容量および距離に基づいて委託先ノードを決定するようにした。
【発明の効果】
【0015】
(1) 一のAI処理ノードにAI処理のトラヒックが発生すると他のAI処理ノードへAI処理の一部が委託され、これが他のAI処理ノードから更に他のAI処理ノードへ繰り返されて複数のAI処理ノードにAI処理が分散されるので、AI処理の発生個所近傍のAI処理ノードにAI処理の負荷が集中することを防止できるようになる。
【0016】
(2) 各AI処理ノードには空き容量に見合った量の分散処理が委託され、それ以上のAI処理は他のAI処理ノードへ委託され、これが繰り返されるので、各AI処理ノードの負荷が過大となることを防止できる。
【0017】
(3) AI処理の委託先が空き容量および委託元からの距離に基づいて決定されるので、分散処理に伴う新たなトラヒックの発生を最小限に抑えることが可能となり、トラヒックの集中も防止できるようになる。
【0018】
(4) AI処理が階層やステップといった区切りとなる処理単位で各AI処理ノードへ分散されるので、分散により処理の一貫性が損なわれることがなく、効率的な分散処理が可能になる。
【図面の簡単な説明】
【0019】
【
図1】本発明の一実施形態に係るAI処理分散システムの構成を示した図である。
【
図2】本発明が分散処理の対象とするニューラルネットワークを用いたAI処理の例を示した図である。
【
図3】委託元サーバES(m)の主要部の構成を示した機能ブロック図である。
【
図4】委託先サーバES(s)の主要部の構成を示した機能ブロック図である。
【
図5】本発明が分散処理の対象とするDNNの例を示した図である。
【発明を実施するための形態】
【0020】
以下、図面を参照して本発明の実施の形態について詳細に説明する。ただし、本発明は以下に説明する実施形態の記載内容に限定して解釈されるものではなく、本発明の思想ないし趣旨から逸脱しない範囲で、その具体的構成を変更し得ることは当業者であれば容易に理解されるであろう。
【0021】
図1は、本発明の一実施形態に係るAI処理分散システムの構成を示した図であり、ここでは本発明の説明に不要な構成は図示が省略されている。本発明のAI処理分散システムは、複数のエッジサーバESを無線基地局BSおよびネットワークNW経由で相互に接続して構成される。
【0022】
各エッジサーバESは、AI処理の対象となる大量の情報(AI情報)を、ユーザのスマートフォンやタブレットなどのモバイル端末1、監視カメラ2、あるいは走行中または駐車中の車両3から無線基地局BSおよびネットワークNW経由で取得する。
【0023】
本実施形態では、
図2に示したように「入力層」、「中間層」および「出力層」を含むニューラルネットワークを用いたAI処理に注目し、各エッジサーバESにはAI処理に必要となるアプリケーションやモデルが予め実装されている。
【0024】
このような構成において、一のエッジサーバESにモバイル端末1等からAI情報を取得するための大量のトラヒックが発生すると、当該一のエッジサーバESはAI処理の委託元サーバとして機能し、当該AI情報の分散処理を、委託先となる他のエッジサーバESへ委託して実行させる。
【0025】
当該他のエッジサーバESは委託されたAI処理の一部を実行し、残りのAI処理の分散処理を更に他のエッジサーバESへ委託して実行させる。当該更に他のエッジサーバESは、委託されたAI処理の一部を実行し、残りのAI処理の分散処理を依頼することを繰り返すことで、複数のエッジサーバESによるAI処理の分散処理が実現される。
【0026】
このように、本実施形態ではAI情報をモバイル端末1等から直接取得したエッジサーバESは委託元サーバとして機能し、当該AI情報の全部または一部は自ら処理して残り全部の分散処理を、委託先となる他のエッジサーバESへ委託する。
【0027】
図3,4は、各エッジサーバESの主要部の構成を示した機能ブロック図であり、発明の説明に不要な構成は図示が省略されている。各エッジサーバESは同一の構成で実現できるが、ここでは委託元サーバES(m)に固有の機能を
図3で説明し、委託先サーバES(s)に固有の機能を
図4で説明する。
【0028】
図3の委託元サーバES(m)において、AI情報取得部101は、モバイル端末1、監視カメラ2および/または車両3からカメラ画像、位置情報、車両情報、環境情報等のAI情報をネットワーク経由で取得する。
【0029】
空き容量監視部102は、AI処理の委託先候補として予め登録されている他のエッジサーバESの空き容量Cを監視する。空き容量CはエッジサーバESでのCPUあるいはGPUの空きの処理容量であっても良い。距離管理部103は、委託先候補の各エッジサーバESまでの距離Dを管理する。距離DはエッジサーバES間での物理的な距離以外でもネットワーク上における距離(ホップ数やラウンドトリップタイム等)であっても良い。
【0030】
委託先決定部104は、空き容量Cおよび距離Dを所定の関数またはマッピングテーブルに適用し、空き容量Cがより多く、距離Dがより短い委託先候補が優先されるように委託先サーバES(s)を決定する。
【0031】
委託量決定部105は、前記決定した委託先サーバES(s)に委託する分散処理の処理量を当該委託先サーバES(s)の空き容量Cに基づいて決定する。本実施形態では、入力層の処理のみ、または入力および中間層の処理のみ、または中間層内の特定の隠れ層の処理のみというように、委託処理量が層単位で決定される。分散処理委託部106は、前記決定した委託先サーバES(s)へ前記決定した委託処理量の分散処理を委託する。
【0032】
図4の委託先エッジサーバES(s)において、分散処理受託部107は前記AI処理の分散処理の委託を受け付ける。AI処理部108は、委託された処理量のAI処理を実行する。委託先エッジサーバES(s)は更に、前記空き容量監視部102、距離管理部103、委託先決定部104、委託量決定部105および分散処理委託部106と同一または同様の機能を具備し、委託元サーバES(m)としても機能することで残りのAI処理を他のエッジサーバESへ委託する。
【0033】
次いで、本実施形態の動作について詳細に説明する。ここでは、
図5に一例を示したように、入力層、中間層および出力層で構成され、中間層が複数の隠れ層を含み、AI処理が層単位で進行するDNNへの適用を例にして説明する。DNNでは、一般的に入力データ(例えば、画像データ)に対して、ある階層の処理結果を、その後段の階層の処理の入力とする階層的な演算処理が行われる。
【0034】
また、本実施形態ではエッジサーバES1が委託元サーバES(m)として動作し、他のエッジサーバES2,ES3,ES4,ES5が委託先サーバES(s)として動作するものとする。
【0035】
委託元サーバES(m)としてのエッジサーバES1は、ユーザのモバイル端末1、監視カメラ2あるいは車両3からDNNによる画像認識の対象となる大量のカメラ画像を取得すると、その委託先決定部104が、他のエッジサーバES2,ES3,ES4,ES5の空き容量Cの監視結果および他のエッジサーバES2,ES3,ES4,ES5までの距離Dに基づいて、空き容量Cがより多く、距離Dがより近い委託先候補を委託先サーバES(s)に決定する。本実施形態では、エッジサーバES2が最初の委託先サーバES(s)に決定される。
【0036】
委託量決定部105は、エッジサーバES2に関する前記空き容量監視部102による空き容量Cの監視結果に基づいて、エッジサーバES2への委託処理量を決定する。本実施形態では委託処理量として1層分の処理が決定されたものとして説明する。エッジサーバES1の分散処理委託部106は、エッジサーバES2へ前記決定した委託処理量(入力層のみ)のAI処理を委託する。
【0037】
エッジサーバES2は、入力層の分散処理を委託受付部107で受け付けると、AI処理部108が委託された入力層のAI処理を実行する。委託先決定部104は、他のエッジサーバES3,ES4,ES5の空き容量Cおよび距離Dに基づいて次の委託先サーバES(s)を決定する。
【0038】
なお、入力層の分散処理を完了したエッジサーバES1は空き容量Cが増加するので、エッジサーバES2の委託先決定部104はエッジサーバES1,ES3,ES4,ES5の中から次の委託先サーバES(s)を決定するようにしても良い。本実施形態では、エッジサーバES3が次の委託先に決定されたものとして説明を続ける。
【0039】
エッジサーバES2の委託量決定部105は、空き容量監視部102による空き容量Cの監視結果に基づいて、委託先のエッジサーバES3への委託処理量を決定する。本実施形態では入力層の処理が終了しているので、エッジサーバES3の空き容量Cに応じて、例えば中間層の一部の隠れ層の分散処理が委託処理量として決定される。分散処理委託部106は、エッジサーバES3へ前記決定した委託処理量のAI処理を、前記入力層の処理結果を添えて委託する。
【0040】
以下同様に、各委託先エッジサーバES(s)は委託処理量のAI処理を実行する一方、委託先候補の空き容量Cおよび当該他の委託先候補までの距離Dに基づいて次の委託先および委託処理量を決定し、決定した委託先サーバES(s)へ分散処理の結果を提供し、さらに決定した委託処理量の分散処理を委託することを当該AIが完了するまで繰り返す。
【0041】
なお、出力層の分散処理を委託されたエッジサーバES5は、もはや委託先や委託処理量を決定することなく、処理結果を例えばヒストグラム形式で出力する。
【0042】
本実施形態によれば、一のエッジサーバにAI処理のトラヒックが発生すると他のエッジサーバへAI処理の一部が委託され、これが他のエッジサーバへも繰り返されて複数のエッジサーバにAI処理が分散されるので、AI処理の発生個所近傍のエッジサーバにAI処理の負荷が集中することを防止できるようになる。
【0043】
また、本実施形態によればAI処理の委託先が、空き容量Cおよび委託元からの距離Dに基づいて決定されるので、分散処理に伴う新たなトラヒックの発生を最小限に抑えることが可能となり、トラヒックの集中も防止できるようになる。
【0044】
さらに、本実施形態によればAI処理が階層単位で分散されるので、AI処理が多重することを回避できるのみならず、ある階層のAI処理を終えたエッジサーバは次の階層のAI処理を他のエッジサーバへ依頼するので、他のAIのある階層のAI処理を行うことが可能になり、分散処理によりAI処理の一貫性が損なわれることがなく、効率的な分散処理が可能になる。
【0045】
なお、上記の実施形態ではAI処理としてDNNを例にして説明したが、本発明はこれのみに限定されるものではなく、入力層、中間層および出力層から構成され、中間層が複数の畳込み層およびプーリング層の繰り返しで構成されるCNNにも同様に適用できる。この場合、各畳込み層および各プーリング層を分散処理の単位とできる。
【0046】
また、上記の実施形態では分散処理が全てエッジサーバへ委託されるものとして説明したが、本発明はこれのみに限定されるものではなく、駐車中や走行中の車両3がAI処理用のCPUやGPUを実装したシステムを搭載していれば、当該システムに分散処理を委託するようにしても良い。
【0047】
ただし、走行中の車両3はAI処理中に委託元や委託先との距離が変化する。したがって、車両の移動速度や移動方向を推定できないのであれば、エッジサーバESを委託先として評価する場合よりも距離の条件を厳しくしておくことが望ましい。例えば、固定のエッジサーバESを分散処理の委託先として採用できる距離上限がDmaxであれば、車両移動に相当するマージンDmを見込んで距離上限をDmax-Dmと補正し、委託先として採用できる距離上限をエッジサーバESの場合よりも短くしておくことが望ましい。
【0048】
さらに、上記の実施形態ではCNN、DNNといったニューラルネットワークを利用するAI処理を例にして説明したが、本発明はこれのみに限定されるものではなく、一連の処理を時系列で層やステップに分割できるAI処理であれば、ニューラルネットワークを利用しないAI処理にも同様に適用できる。
【符号の説明】
【0049】
1…モバイル端末,2…監視カメラ,3…車両,101…AI情報取得部,102…空き容量監視部,103…距離管理部,104…委託先決定部,105…委託量決定部,106…分散処理委託部,107…分散処理受託部,108…AI処理部