(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0015】
[管理装置1の概要]
図1は、本実施形態に係る管理装置1の概要を示す図である。管理装置1は、ニューラルネットワークの学習モデルの登録を受け付け、登録された学習モデルの使用を有償で受け付ける装置である。管理装置1は、LAN(Local Area Network)やインターネット等の通信ネットワークを介してコントリビュータ端末2及びユーザ端末3と通信可能に接続されている。
【0016】
本実施形態を説明するにあたり、まず、ニューラルネットワークについて簡単に説明する。ニューラルネットワークの基本構成は、複数種類の層の重ね合わせ(又はグラフ構造)で表現される。
【0017】
図1には、順伝播型のニューラルネットワークが示されている。順伝播型のニューラルネットワークは、入力層(input layer)と、隠れ層(hidden layer)と、出力層(output layer)との3つの層から構成され、入力層から出力層へ向けて一方向に伝播する。隠れ層は、グラフ状に複数の層から構成することができる。各層は、複数のユニット(ニューロン)を持つ。各層において、前方層のユニットから後方層のユニットへつなぐ関数のパラメータを、「重み(weight)」という。本実施形態における学習とは、この関数のパラメータとして、適切な「重み」を算出することである。また、本実施形態における学習モデルは、複数の層のそれぞれの重みであり、タスクを実現するために用いられる。
【0018】
ニューラルネットワークにおける学習は、訓練データに対する出力層からの出力値と訓練データのラベルとの誤差を用いて、各層の重みを最適に更新することを意味する。その誤差を算出するために、「損失関数」(loss function)が定義される。誤差は、「誤差逆伝播法」によって出力層側から入力層側へ向けて次々に伝播し、各層の重みを少しずつ更新していく。最終的に誤差が小さくなるように、各層の重みを適切な値に調整する収束計算を実行することにより、学習モデルが作成される。
【0019】
ところで、学習モデルを作成するユーザは、予め作成されている学習モデルを再学習することによって既存の重みを更新したり、新たな層を追加したりすることによって学習モデルを作成することがある。この場合には、複数のユーザが学習モデルの作成に寄与していることとなる。以下、学習モデルの作成に寄与したユーザを「コントリビュータ」という。
【0020】
図1に示す例では、学習モデルMが生成されている。学習モデルMには、重みW1〜Wnが含まれている。ここで、
図1に示すように、入力層と、隠れ層の一部に対応する重みW1〜WiをコントリビュータAが作成し、隠れ層の他の一部に対応する重みWi+1〜WnをコントリビュータBが作成したとする。この場合、コントリビュータAと、コントリビュータBとが学習モデルMの作成に寄与している。
【0021】
本実施形態に係る管理装置1は、学習モデルの使用の見返りとして支払われた対価を、各コントリビュータに適切に分配するために、学習モデルと、学習モデルの作成に対する各コントリビュータの寄与率とを関連付けて記憶する(
図1の(1))。
【0022】
また、管理装置1は、学習モデルの使用を希望するユーザが使用するユーザ端末3から、学習モデルのライセンス登録を受け付ける(
図1の(2))。ここで、ライセンスは、学習モデルを識別するモデル識別情報としてのモデルIDと、学習モデルを使用するユーザのユーザを識別するユーザIDとを関連付けることによって管理される。モデル識別情報は、学習モデルを分割することによって得られる1又は複数のサブセットのハッシュ値に基づいて生成される。このようにすることで、他の学習モデルを用いて作成した学習モデルには、他の学習モデルに対応するモデルIDが含まれるので、管理装置1は、学習モデルを作成した1又は複数のコントリビュータを特定することができる。
【0023】
その後、管理装置1は、学習モデルの使用要求を受け付ける(
図1の(3))。管理装置1は、使用要求を受け付けるとユーザが学習モデルを使用可能か否かの認証を行う。管理装置1は、認証に成功した場合に、学習モデルを用いたタスクを実行し、実行結果をユーザ端末3に出力する(
図1の(4))。管理装置1は、学習モデルの使用に対する対価を算出し、対価の支払いをユーザ端末3のユーザに請求する。その後、管理装置1は、ユーザから支払われた対価と、学習モデルに関連付けられている寄与率とに基づいて、各コントリビュータに対して支払う報酬を算出する(
図1の(5))。このようにすることで、管理装置1は、学習モデルが使用されたことに応じて、コントリビュータに報酬を適切に支払うことができる。
以下、管理装置1の構成について説明する。
【0024】
[管理装置1の構成例]
図2は、本実施形態に係る管理装置1の構成を示す図である。
管理装置1は、記憶部11と、制御部12とを備える。
【0025】
記憶部11は、例えば、ROM(Read Only Memory)及びRAM(Random Access Memory)等である。記憶部11は、管理装置1を機能させるための各種プログラムを記憶する。例えば、記憶部11は、管理装置1の制御部12を、後述するモデル登録部13、ライセンス登録部14、使用受付部15、認証部16、学習実行部17、対価算出部18、及び報酬算出部19として機能させる管理プログラムを記憶する。また、記憶部11は、学習モデルを含む学習モデル情報と、学習モデルのライセンス情報とを記憶する。
【0026】
図3は、本実施形態に係る学習モデル情報の一例を示す図である。
図3に示すように、学習モデル情報は、登録者と、モデル名と、説明文と、学習モデルと、モデルIDと、量子化後データ列と、寄与者と、寄与率とを含む。
【0027】
登録者は、学習モデルを登録したコントリビュータを示しており、コントリビュータを識別するコントリビュータIDが格納される。モデル名は、モデルを識別するための情報である。本実施形態では、モデル名は、全ての学習モデルのそれぞれで異なるものとする。
【0028】
説明文は、モデルの内容を説明するための文字列である。モデルIDは、学習モデルを識別する情報である。量子化後データ列は、モデルIDを量子化した後のハッシュ値である。寄与者は、学習モデルの作成に寄与したコントリビュータを示しており、コントリビュータIDが格納される。ここで、寄与者及び寄与率は、1つの学習モデルに対して1又は複数関連付けられる。
【0029】
図4は、本実施形態に係るライセンス情報の一例を示す図である。
図4に示すように、ライセンス情報は、学習モデルを使用するユーザのユーザIDと、モデル名と、モデルIDとを含む。
【0030】
図2に説明を戻し、制御部12は、例えばCPU(Central Processing Unit)である。制御部12は、記憶部11に記憶されている各種プログラムを実行することにより、管理装置1に係る機能を制御する。制御部12は、管理プログラムを実行することにより、モデル登録部13、ライセンス登録部14、使用受付部15、認証部16、学習実行部17、対価算出部18、及び報酬算出部19として機能する。
【0031】
[学習モデルの登録及び更新]
モデル登録部13は、コントリビュータが使用するコントリビュータ端末2から学習モデルの新規登録又は更新を受け付ける。
図5は、本実施形態に係るモデル登録部13の構成を示す図である。
図5に示すように、モデル登録部13は、取得部131と、分割部132と、第1ハッシュ生成部133と、量子化部134と、第2ハッシュ生成部135と、寄与率管理部136と、記憶制御部137とを備える。
【0032】
取得部131は、コントリビュータ端末2から学習モデルを取得する。具体的には、取得部131は、学習モデルの新規登録を受け付ける場合には、コントリビュータ端末2から、学習モデルと、学習モデル名と、学習モデルの説明文と、学習モデルのラベルと、学習モデルを作成したコントリビュータのコントリビュータIDとを取得する。ここで、学習モデルには、複数の層のそれぞれに付与されているインデックスと、複数の層のそれぞれの重みを示す複数の重み値とが含まれている。
【0033】
また、取得部131は、学習モデルの更新を受け付ける場合、まず、コントリビュータ端末2からコントリビュータIDを取得する。取得部131は、記憶部11に記憶されている学習モデル情報を参照し、コントリビュータIDに関連付けられているモデル名を特定し、当該モデル名のうちのいずれかの選択を受け付ける。そして、取得部131は、コントリビュータ端末2から、更新後の学習モデルを取得する。取得部131は、学習モデルの更新時にも学習モデルのラベルを取得してもよい。
【0034】
分割部132は、学習モデルを1又は複数のサブセットに分割する。分割部132は、複数の層を分割し、各層に対応する重みをサブセットとする。ここで、分割部132は、取得部131が学習モデルとともに取得した、学習モデルのラベルを含めてサブセットを生成する。
【0035】
第1ハッシュ生成部133は、分割部132が生成した1又は複数のサブセットそれぞれのハッシュ値を生成して学習モデルを特定するためのモデルIDを生成する。具体的には、まず、第1ハッシュ生成部133は、1又は複数のサブセットを示す複数の重み値のそれぞれに対してハッシュ関数を適用することにより、複数の重み値のそれぞれのハッシュ値を生成する。そして、第1ハッシュ生成部133は、例えば、複数の重み値のそれぞれに対して生成したハッシュ値を、各層に付与されているインデックス順に連結することにより、これらのハッシュ値を要素とするデータ列をモデルIDとして生成する。
【0036】
量子化部134は、学習モデルの各層の重みである、分割部132が分割したサブセットのそれぞれを量子化する。例えば、量子化部134は、重み値のとりうる範囲を、複数の範囲に分割し、複数の範囲のそれぞれに代表値を設定する。量子化部134は、複数の重み値を、重み値が属する範囲に対応する代表値に変換することにより、サブセットを量子化する。このようにすることで、管理装置1は、学習モデルの細かい更新が発生した場合に、寄与率を変化させず、処理負荷を軽減することができる。
【0037】
第2ハッシュ生成部135は、学習モデルの各層の重みのハッシュ値を要素とする量子化後データ列を生成する。具体的には、まず、第2ハッシュ生成部135は、量子化部134が量子化したサブセットを示す複数の重み値のそれぞれに対してハッシュ関数を適用することにより、複数の重み値のそれぞれのハッシュ値を算出する。そして、第2ハッシュ生成部135は、複数の重み値のそれぞれに対して生成したハッシュ値を、各層に付与されているインデックス順に連結することにより、これらのハッシュ値を要素とする量子化後データ列を生成する。
【0038】
寄与率管理部136は、取得部131が取得した学習モデルの作成に関する各コントリビュータの寄与率を算定する。寄与率管理部136は、学習モデルを新規登録する場合には、記憶部11に記憶されている学習モデル情報を参照して、第1ハッシュ生成部133が生成したモデルIDに、学習モデル情報に記憶されている他の学習モデルのモデルIDが含まれているか否かを判定する。
【0039】
寄与率管理部136は、他の学習モデルのモデルIDが含まれていない場合には、新規登録する学習モデルが、登録を行うコントリビュータが独自に作成したものと判定し、当該コントリビュータの寄与率を1(100%)と算定する。
【0040】
寄与率管理部136は、他の学習モデルのモデルIDが含まれている場合には、記憶部11に記憶されている学習モデル情報に含まれている他の学習モデルを参照し、当該他の学習モデルの層数を特定する。そして、寄与率管理部136は、新規登録する学習モデルの全層数から他の学習モデルの層数を減算し、登録を行うコントリビュータが生成した層数を特定する。
【0041】
また、寄与率管理部136は、記憶部11に記憶されている学習モデル情報を参照し、他の学習モデルの寄与者及び寄与率と、当該他の学習モデルの層数とに基づいて、当該他の学習モデルを生成した各コントリビュータが生成した層数を特定する。そして、寄与率管理部136は、各コントリビュータが生成した層数の、新規登録する学習モデルの全層数に対する割合に基づいて寄与率を算定する。
【0042】
また、寄与率管理部136は、学習モデルが更新されることを契機として、寄与率を更新する。具体的には、寄与率管理部136は、記憶部11に記憶されている学習モデル情報を参照し、更新対象の学習モデルの量子化後データ列を特定する。そして、寄与率管理部136は、特定した量子化後データ列と、第2ハッシュ生成部135が生成した量子化後データ列とが異なる場合、すなわち、量子化後データ列の変更があった場合に、学習モデルが更新されたと判定し、寄与率を算定する。学習モデルが更新される場合の寄与率の算定方法は、学習モデルが新規登録される場合の寄与率の算定方法と同じであるので、説明を省略する。
【0043】
なお、寄与率管理部136は、各コントリビュータが学習モデルを生成するために、ニューラルネットワークの学習に用いたデータ量に基づいて寄与率を算出してもよい。この場合、取得部131は、学習モデルの登録時に、当該学習モデルを生成するために、ニューラルネットワークの学習に用いたデータ量を示す情報を取得し、記憶部11に記憶されている学習モデル情報に、当該データ量を示す情報を格納させておく。
【0044】
また、寄与率管理部136は、学習に用いた計算資源の総コストに基づいて寄与率を算出してもよい。この場合、取得部131は、学習モデルの登録時に、当該学習モデルを生成するために、ニューラルネットワークの学習に消費した計算資源の量を示す計算資源情報を取得し、記憶部11に記憶されている学習モデル情報に、当該計算資源情報を格納させておく。ここで、消費資源情報には、CPU使用時間を示す情報と、記憶部11の使用領域(メモリ使用量)を示す情報とが含まれる。
【0045】
また、計算資源に基づいて寄与率を算出するために、管理装置1は、ニューラルネットワークの学習を行うことにより学習モデルを生成するモデル生成部を備えてもよい。そして、モデル生成部は、コントリビュータ端末2からニューラルネットワークの学習に用いるデータを受け付け、ニューラルネットワークの学習を行う。また、モデル生成部は、コントリビュータIDと、生成された学習モデルのモデルIDと、学習において消費した計算資源を示す消費資源情報とを関連付けて記憶部11に記憶させる。寄与率管理部136は、記憶部11に記憶されている消費資源情報が示す計算資源に基づいて、各コントリビュータが学習モデルの生成に用いた計算資源の割合を特定し、当該割合に基づいて寄与率を算出する。
【0046】
寄与率管理部136は、学習モデル情報を参照し、学習モデルに対応するデータ量を示す情報と、当該学習モデルに含まれている他の学習モデルに対応するデータ量を示す情報とを特定する。そして、寄与率管理部136は、学習モデルに対応するデータ量と、他の学習モデルに対応するデータ量との割合に基づいて寄与率を算出する。学習モデルの生成では、学習に用いたデータ量が多ければ多いほど、学習効果が高くなり、学習モデルの有用度が増す。したがって、管理装置1は、学習に用いたデータ量に基づいて寄与率を算出することにより、学習モデルの有用度の向上に貢献したコントリビュータの寄与率を高く設定することができる。
【0047】
記憶制御部137は、学習モデルを記憶部11に記憶させる。記憶制御部137は、取得部131が取得したコントリビュータIDを登録者と特定する。記憶制御部137は、学習モデルの新規登録を受け付けた場合には、特定した登録者と、取得部131が取得した学習モデル、学習モデル名、説明文及びラベルと、第1ハッシュ生成部133が生成したモデルIDと、第2ハッシュ生成部135が生成した量子化後データ列と、寄与率管理部136が特定した寄与者及び寄与率と、を関連付けて学習モデル情報として記憶部11に記憶させる。
【0048】
また、記憶制御部137は、学習モデルの更新を受け付けた場合に、寄与率管理部136が量子化後データ列に基づいて学習モデルが更新されたと判定すると、学習モデル情報に記憶されている学習モデル、モデルID、量子化後データ列、寄与者及び寄与率を更新する。記憶制御部137は、取得部131が取得した学習モデルと、第1ハッシュ生成部133が生成したモデルIDと、第2ハッシュ生成部135が生成した量子化後データ列と、寄与率管理部136が特定した寄与者及び寄与率とに基づいて、学習モデル情報を更新する。
【0049】
また、記憶制御部137は、学習モデルの更新を受け付けた場合に、寄与率管理部136が量子化後データ列に基づいて学習モデルが更新されていないと判定すると、学習モデル情報に記憶されている学習モデルと、モデルIDとを、取得部131が取得した学習モデルと、第1ハッシュ生成部133が生成したモデルIDとに更新する。
【0050】
[ライセンス情報の登録]
説明を
図2に戻す。ライセンス登録部14は、ユーザ端末3のユーザからライセンスの登録を受け付ける。例えば、ライセンス登録部14は、ユーザ端末3に、モデル名と、モデルIDと、説明文とを表示させ、ユーザが使用する学習モデルの選択を受け付ける。ここで、ライセンス登録部14は、例えば、学習モデルの全層数やラベルに基づいて、学習モデルのライセンス料を算出し、ユーザ端末3にライセンス料を表示してもよい。
【0051】
ユーザ端末3は、学習モデルが選択されると、モデル名と、モデルIDと、ユーザを識別するユーザIDとを含むライセンス登録要求を管理装置1に送信する。ライセンス登録部14は、ライセンス登録要求を受信すると、ライセンス登録要求に含まれているユーザIDと、モデル名と、モデルIDとを関連付けてライセンス情報として記憶部11に記憶させる。
【0052】
[学習モデルの使用]
使用受付部15は、通信ネットワークを介して他の装置としてのユーザ端末3から学習モデルの使用要求を受け付ける。具体的には、使用受付部15は、ユーザ端末3から、ユーザが使用する学習モデルのモデル名と、ユーザIDとを含む学習モデルの使用要求を受信することにより、学習モデルの使用要求を受け付ける。なお、本実施形態では、使用受付部15は、ユーザ端末3から学習モデルの使用要求を受け付けることとしたが、これに限らない。使用受付部15は、コントリビュータ端末2から使用要求を受け付けてもよい。
【0053】
認証部16は、使用受付部15がユーザ端末3から学習モデルの使用要求を受け付けると、記憶部11に記憶されているライセンス情報を参照して、ユーザ端末3のユーザが、当該学習モデルを使用可能か否かを判定する。
【0054】
具体的には、認証部16は、学習モデルの使用要求に含まれている学習モデルのモデル名と、ユーザIDとが関連付けられてライセンス情報に記憶されている場合に、ユーザ端末3のユーザが、当該学習モデルを使用可能と判定する。
【0055】
また、認証部16は、学習モデルの使用要求に含まれている学習モデルのモデル名と、ユーザIDとが関連付けられてライセンス情報に記憶されている場合に、ユーザ端末3のユーザが、当該学習モデルを使用不可と判定する。認証部16は、学習モデルを使用不可と判定すると、使用不可であることを示すメッセージをユーザ端末3に通知する。
【0056】
学習実行部17は、ユーザが学習モデルを使用可能な場合、ユーザ端末3から取得したタスクを実行するためのデータに関する学習モデルの実行結果を出力する。具体的には、まず、学習実行部17は、ユーザ端末3のユーザが学習モデルを使用可能と認証部16が判定すると、ユーザ端末3から、タスクを実行するためのデータを1又は複数取得する。学習実行部17は、ユーザ端末3から取得したデータを入力データとし、使用要求に対応する学習モデルを使用したタスクを実行することにより実行結果を取得する。学習実行部17は、取得した実行結果をユーザ端末3に出力する。
【0057】
[学習モデルの使用に対する対価及び各コントリビュータの報酬の算出]
対価算出部18は、タスクを実行するための学習実行部17の利用態様に基づいて、ユーザに請求する請求額を算出する。例えば、対価算出部18は、タスクを実行するための学習実行部17の利用負荷に基づいて、ユーザに請求する請求額を算出する。ここで、学習実行部17の利用負荷は、ユーザが使用した学習モデルに基づくタスクを実行した際に、学習実行部17が費やした時間、すなわちCPU使用時間である。このようにすることで、管理装置1は、利用負荷という観点に基づいて請求額を公平に算出することができる。
【0058】
なお、対価算出部18は、タスクを実行するための学習実行部17の占有率に基づいて、ユーザに請求する請求額を算出してもよい。ここで、学習実行部17の占有率は、ユーザが使用した学習モデルに基づくタスクを実行した際の、学習実行部17のCPU利用率である。このようにすることで、管理装置1は、複数のユーザが使用する場合に、CPU利用率に基づいて公平に請求額を算出することができる。
【0059】
対価算出部18は、算出した請求額をユーザ端末3に通知する。ユーザ端末3のユーザは、通知された請求額を所定の方法で管理装置1の管理者に支払う。
【0060】
報酬算出部19は、ユーザ端末3による学習モデルの使用の見返りとして支払われた対価を、学習モデルの作成に関する寄与率に応じて各コントリビュータに分配する場合のそれぞれの報酬を算出する。
【0061】
具体的には、まず、報酬算出部19は、記憶部11に記憶されている学習モデル情報を参照し、対価が算出された学習モデルの各コントリビュータの寄与率を特定する。そして、報酬算出部19は、対価算出部18が算出した対価と、特定した各コントリビュータの寄与率とを乗算することにより、各コントリビュータの報酬を算出する。
【0062】
ここで、報酬算出部19は、管理装置1の管理者の報酬を算出し、対価算出部18が算出した対価から、管理者の報酬を減算してもよい。そして、報酬算出部19は、減算後の対価と、特定した各コントリビュータの寄与率とを乗算することにより、各コントリビュータの報酬を算出してもよい。報酬算出部19は、算出した請求額を所定の方法で各コントリビュータに支払う。
【0063】
[学習モデルの登録に係る処理の流れ]
続いて、管理装置1における処理の流れについて説明する。まず、学習モデルの登録又は更新に係る処理の流れについて説明する。
図6は、本実施形態に係る学習モデルの登録又は更新に係る処理の流れを示すフローチャートである。
【0064】
まず、取得部131は、学習モデルを取得する(S10)。
続いて、分割部132は、学習モデルを分割してサブセットを生成する(S20)。
【0065】
続いて、第1ハッシュ生成部133は、S20において生成されたサブセットのハッシュ値を生成し、当該ハッシュ値に基づいて学習モデルのモデルIDを生成する(S30)。
続いて、量子化部134は、サブセットを量子化する(S40)。そして、第2ハッシュ生成部135は、量子化されたサブセットのハッシュ値を生成し、当該ハッシュ値に基づいて量子化後データ列を生成する(S50)。
【0066】
続いて、寄与率管理部136は、学習モデルの作成に関する各コントリビュータの寄与率を算定する(S60)。
続いて、記憶制御部137は、学習モデルを登録又は更新することにより、学習モデル情報を更新する(S70)。
【0067】
[学習モデルの使用及び報酬算出に係る処理の流れ]
続いて、学習モデルの使用及び報酬算出に係る処理の流れについて説明する。
図7は、本実施形態に係る学習モデルの使用及び報酬算出に係る処理の流れを示すフローチャートである。
【0068】
まず、使用受付部15は、学習モデルの使用要求を受け付ける(S110)。ここで、学習モデルの使用要求には、学習モデルのモデル名とユーザIDとが含まれている。
続いて、認証部16は、使用要求が受け付けられた学習モデルが使用可能か否かの認証を行う(S120)。
【0069】
続いて、学習実行部17は、認証部16における認証に成功したことに応じて、学習モデルを使用したタスクを実行するための入力データを取得する(S130)。
続いて、学習実行部17は、取得した入力データと、使用要求に対応する学習モデルとを使用したタスクを実行する(S140)。これにより、学習実行部17は、タスクの実行結果を取得する。
【0070】
続いて、対価算出部18は、学習モデルの利用態様に基づいて学習モデルの使用に係る請求額を算出する(S150)。
続いて、報酬算出部19は、使用した学習モデルに対応し、学習モデル情報に記憶されている寄与率に基づいて、各コントリビュータの対価の報酬を算出する(S160)。
【0071】
[本実施形態における効果]
以上のとおり、本実施形態に係る管理装置1は、1又は複数のコントリビュータが作成した学習モデルと、各コントリビュータの学習モデルの作成に関する寄与率とを関連付けて記憶し、ネットワークを介してユーザ端末3から学習モデルの使用要求を受け付け、ユーザ端末3による学習モデルの使用の見返りとして支払われた対価を、学習モデルに対応する寄与率に応じて各コントリビュータに分配する場合のそれぞれの報酬を算出する。
【0072】
このようにすることで、管理装置1は、学習モデルの作成に寄与したコントリビュータに対して報酬を適切に支払うことができる。特に、学習モデルが複数のコントリビュータによって作成された場合には、それぞれのコントリビュータの学習モデルの作成に関する寄与率に基づいて、各コントリビュータの報酬を公平に算出することができる。
【0073】
また、本実施形態に係る管理装置1は、学習モデルを1又は複数のサブセットに分割し、サブセットそれぞれのハッシュ値を生成して学習モデルを特定するためのモデルIDを生成し、生成したモデルIDと、学習モデルを使用可能なユーザIDとを関連付けたライセンス情報を記憶する。このようにすることで、他の学習モデルの少なくとも一部を用いて作成した学習モデルには、他の学習モデルに対応するモデルIDが含まれることとなる。したがって、管理装置1は、学習モデルが他の学習モデルを用いて作成されているかを管理することができるとともに、学習モデルを作成した1又は複数のコントリビュータを特定することができる。
【0074】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更又は改良を加えることが可能であることが当業者に明らかである。また、特に、装置の分散・統合の具体的な実施形態は以上に図示するものに限られず、その全部又は一部について、種々の付加等に応じて、又は、機能負荷に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。
【0075】
例えば、上述の実施形態では、管理装置1が、複数の通信機器4のそれぞれにアクセスし、複数の通信機器4のそれぞれが生成したログを取得することとしたが、これに限らない。例えば、複数の通信機器4のそれぞれが生成したログを取得するログ取得装置と、管理装置1とを設けておき、管理装置1が、ログ取得装置から、複数の通信機器4のそれぞれが生成したログを取得してもよい。
【0076】
例えば、上述の実施形態では、寄与率管理部136が、各コントリビュータが生成した層数の、新規登録する学習モデルの全層数に対する割合に基づいて寄与率を算定する場合について説明した。これに替えて、寄与率管理部136は、各コントリビュータが生成した層が含む重みの、新規登録する学習モデルの各層が備える重みのデータ量の合計に対する割合に基づいて寄与率を算定してもよい。各層が備える重みのデータ量は層によって異なる場合があるので、各コントリビュータが実際に生成した重みのデータ量を寄与率に反映させることができる。