(57)【要約】【課題】学習モデルが他の学習モデルを用いて作成されているかを管理する。【解決手段】管理装置１は、タスクを実現するための学習モデルを１又は複数のサブセットに分割する分割部１３２と、サブセットそれぞれのハッシュ値を生成して学習モデルを特定するためのモデルＩＤを生成する第１ハッシュ生成部１３３とを備える。管理装置１は、生成した識別情報と、学習モデルを使用可能なユーザのユーザＩＤとを関連付けたライセンス情報を記憶する記憶部１１をさらに備える。【選択図】図２
2018206199.tif 000002
【特許請求の範囲】
【請求項１】
タスクを実現するための学習モデルを１又は複数のサブセットに分割する分割部と、
前記サブセットそれぞれのハッシュ値を生成して前記学習モデルを特定するための識別情報を生成する生成部と、
を備える管理装置。
【請求項２】
前記学習モデルはニューラルネットワークを用いた学習によって生成された複数の層それぞれの重みであり、
前記分割部は、前記複数の層を分割して前記サブセットとする、
請求項１に記載の管理装置。
【請求項３】
前記分割部は、前記学習モデルのラベルを含めて前記サブセットを生成する、
請求項１又は２に記載の管理装置。
【請求項４】
前記生成部は、前記サブセットそれぞれのハッシュ値を要素とするデータ列を前記識別情報として生成する、
請求項１から３のいずれか一項に記載の管理装置。
【請求項５】
生成した識別情報と、前記学習モデルを使用可能なユーザの識別情報とを関連付けたライセンス情報を記憶する記憶部、
をさらに備える、
請求項１から４のいずれか一項に記載の管理装置。
【請求項６】
ネットワークを介して他の装置から前記学習モデルの使用要求を受け付ける受付部と、
前記ライセンス情報を参照して前記他の装置のユーザが前記学習モデルを使用可能か否かを判定する認証部と、
前記ユーザが前記学習モデルを使用可能な場合、前記他の装置から取得した前記タスクを実行するためのデータに関する前記学習モデルの実行結果を出力する学習実行部と、
をさらに備える、
請求項５に記載の管理装置。
【請求項７】
前記タスクを実行するための前記学習実行部の利用態様に基づいて、前記ユーザに請求する請求額を算出する対価算出部をさらに備える、
請求項６に記載の管理装置。
【請求項８】
前記対価算出部は、前記タスクを実行するための前記学習実行部の利用負荷に基づいて、前記ユーザに請求する請求額を算出する、
請求項７に記載の管理装置。
【請求項９】
前記対価算出部は、前記タスクを実行するための前記学習実行部の占有率に基づいて、前記ユーザに請求する請求額を算出する、
請求項７又は８に記載の管理装置。
【請求項１０】
プロセッサが、
タスクを実現するための学習モデルを１又は複数のサブセットに分割するステップと、
前記サブセットそれぞれのハッシュ値を生成して前記学習モデルを特定するための識別情報を生成するステップと、
を実行する管理方法。
【請求項１１】
コンピュータに、
タスクを実現するための学習モデルを１又は複数のサブセットに分割する機能と、
前記サブセットそれぞれのハッシュ値を生成して前記学習モデルを特定するための識別情報を生成する機能と、
を実現させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、学習モデルを管理するための管理装置、管理方法、及びプログラムに関する。
【背景技術】
【０００２】
従来、入力データに対する出力データを予測する学習モデルを機械学習に基づいて作成することが行われている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１５−０６０２３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
学習モデルは、ニューラルネットワークを用いた学習によって作成された複数の層を有している。学習モデルの作成では、他人が作成した学習モデルを再学習することによって既存の層を更新したり、新たに層を追加したりすることにより学習モデルが作成されることがある。この場合、コントリビュータが、他のコントリビュータが作成した他の学習モデルを無断で用いて学習モデルを作成することがあるという問題が発生する。
【０００５】
そこで、本発明はこれらの点に鑑みてなされたものであり、学習モデルが他の学習モデルの少なくとも一部を用いて作成されているかを管理することができる管理装置、管理方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の第１の態様に係る管理装置は、タスクを実現するための学習モデルを１又は複数のサブセットに分割する分割部と、前記サブセットそれぞれのハッシュ値を生成して前記学習モデルを特定するための識別情報を生成する生成部と、を備える。
【０００７】
前記学習モデルはニューラルネットワークを用いた学習によって生成された複数の層それぞれの重みであり、前記分割部は、前記複数の層を分割して前記サブセットとしてもよい。
【０００８】
前記分割部は、前記学習モデルのラベルを含めて前記サブセットを生成してもよい。
前記生成部は、前記サブセットそれぞれのハッシュ値を要素とするデータ列を前記識別情報として生成してもよい。
【０００９】
前記管理装置は、生成した識別情報と、前記学習モデルを使用可能なユーザの識別情報とを関連付けたライセンス情報を記憶する記憶部、をさらに備えてもよい。
前記管理装置は、ネットワークを介して他の装置から前記学習モデルの使用要求を受け付ける受付部と、前記ライセンス情報を参照して前記他の装置のユーザが前記学習モデルを使用可能か否かを判定する認証部と、前記ユーザが前記学習モデルを使用可能な場合、前記他の装置から取得した前記タスクを実行するためのデータに関する前記学習モデルの実行結果を出力する学習実行部と、をさらに備えてもよい。
【００１０】
前記管理装置は、前記タスクを実行するための前記学習実行部の利用態様に基づいて、前記ユーザに請求する請求額を算出する対価算出部をさらに備えてもよい。
前記対価算出部は、前記タスクを実行するための前記学習実行部の利用負荷に基づいて、前記ユーザに請求する請求額を算出してもよい。
前記対価算出部は、前記タスクを実行するための前記学習実行部の占有率に基づいて、前記ユーザに請求する請求額を算出してもよい。
【００１１】
本発明の第２の態様に係る管理方法は、プロセッサが、タスクを実現するための学習モデルを１又は複数のサブセットに分割するステップと、前記サブセットそれぞれのハッシュ値を生成して前記学習モデルを特定するための識別情報を生成するステップと、を実行する。
【００１２】
本発明の第３の態様に係るプログラムは、コンピュータに、タスクを実現するための学習モデルを１又は複数のサブセットに分割する機能と、前記サブセットそれぞれのハッシュ値を生成して前記学習モデルを特定するための識別情報を生成する機能と、を実現させる。
【発明の効果】
【００１３】
本発明によれば、学習モデルが他の学習モデルを用いて作成されているかを管理することができるという効果を奏する。
【図面の簡単な説明】
【００１４】
【図１】本実施形態に係る管理装置の概要を示す図である。
【図２】本実施形態に係る管理装置の構成を示す図である。
【図３】本実施形態に係る学習モデル情報の一例を示す図である。
【図４】本実施形態に係るライセンス情報の一例を示す図である。
【図５】本実施形態に係るモデル登録部の構成を示す図である。
【図６】本実施形態に係る学習モデルの登録又は更新に係る処理の流れを示すフローチャートである。
【図７】本実施形態に係る学習モデルの使用及び報酬算出に係る処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１５】
［管理装置１の概要］
図１は、本実施形態に係る管理装置１の概要を示す図である。管理装置１は、ニューラルネットワークの学習モデルの登録を受け付け、登録された学習モデルの使用を有償で受け付ける装置である。管理装置１は、ＬＡＮ（Local Area Network）やインターネット等の通信ネットワークを介してコントリビュータ端末２及びユーザ端末３と通信可能に接続されている。
【００１６】
本実施形態を説明するにあたり、まず、ニューラルネットワークについて簡単に説明する。ニューラルネットワークの基本構成は、複数種類の層の重ね合わせ（又はグラフ構造）で表現される。
【００１７】
図１には、順伝播型のニューラルネットワークが示されている。順伝播型のニューラルネットワークは、入力層（input layer）と、隠れ層（hidden layer）と、出力層（output layer）との３つの層から構成され、入力層から出力層へ向けて一方向に伝播する。隠れ層は、グラフ状に複数の層から構成することができる。各層は、複数のユニット（ニューロン）を持つ。各層において、前方層のユニットから後方層のユニットへつなぐ関数のパラメータを、「重み（weight）」という。本実施形態における学習とは、この関数のパラメータとして、適切な「重み」を算出することである。また、本実施形態における学習モデルは、複数の層のそれぞれの重みであり、タスクを実現するために用いられる。
【００１８】
ニューラルネットワークにおける学習は、訓練データに対する出力層からの出力値と訓練データのラベルとの誤差を用いて、各層の重みを最適に更新することを意味する。その誤差を算出するために、「損失関数」（loss function）が定義される。誤差は、「誤差逆伝播法」によって出力層側から入力層側へ向けて次々に伝播し、各層の重みを少しずつ更新していく。最終的に誤差が小さくなるように、各層の重みを適切な値に調整する収束計算を実行することにより、学習モデルが作成される。
【００１９】
ところで、学習モデルを作成するユーザは、予め作成されている学習モデルを再学習することによって既存の重みを更新したり、新たな層を追加したりすることによって学習モデルを作成することがある。この場合には、複数のユーザが学習モデルの作成に寄与していることとなる。以下、学習モデルの作成に寄与したユーザを「コントリビュータ」という。
【００２０】
図１に示す例では、学習モデルＭが生成されている。学習モデルＭには、重みＷ１〜Ｗｎが含まれている。ここで、図１に示すように、入力層と、隠れ層の一部に対応する重みＷ１〜ＷｉをコントリビュータＡが作成し、隠れ層の他の一部に対応する重みＷｉ＋１〜ＷｎをコントリビュータＢが作成したとする。この場合、コントリビュータＡと、コントリビュータＢとが学習モデルＭの作成に寄与している。
【００２１】
本実施形態に係る管理装置１は、学習モデルの使用の見返りとして支払われた対価を、各コントリビュータに適切に分配するために、学習モデルと、学習モデルの作成に対する各コントリビュータの寄与率とを関連付けて記憶する（図１の（１））。
【００２２】
また、管理装置１は、学習モデルの使用を希望するユーザが使用するユーザ端末３から、学習モデルのライセンス登録を受け付ける（図１の（２））。ここで、ライセンスは、学習モデルを識別するモデル識別情報としてのモデルＩＤと、学習モデルを使用するユーザのユーザを識別するユーザＩＤとを関連付けることによって管理される。モデル識別情報は、学習モデルを分割することによって得られる１又は複数のサブセットのハッシュ値に基づいて生成される。このようにすることで、他の学習モデルを用いて作成した学習モデルには、他の学習モデルに対応するモデルＩＤが含まれるので、管理装置１は、学習モデルを作成した１又は複数のコントリビュータを特定することができる。
【００２３】
その後、管理装置１は、学習モデルの使用要求を受け付ける（図１の（３））。管理装置１は、使用要求を受け付けるとユーザが学習モデルを使用可能か否かの認証を行う。管理装置１は、認証に成功した場合に、学習モデルを用いたタスクを実行し、実行結果をユーザ端末３に出力する（図１の（４））。管理装置１は、学習モデルの使用に対する対価を算出し、対価の支払いをユーザ端末３のユーザに請求する。その後、管理装置１は、ユーザから支払われた対価と、学習モデルに関連付けられている寄与率とに基づいて、各コントリビュータに対して支払う報酬を算出する（図１の（５））。このようにすることで、管理装置１は、学習モデルが使用されたことに応じて、コントリビュータに報酬を適切に支払うことができる。
以下、管理装置１の構成について説明する。
【００２４】
［管理装置１の構成例］
図２は、本実施形態に係る管理装置１の構成を示す図である。
管理装置１は、記憶部１１と、制御部１２とを備える。
【００２５】
記憶部１１は、例えば、ＲＯＭ（Read Only Memory）及びＲＡＭ（Random Access Memory）等である。記憶部１１は、管理装置１を機能させるための各種プログラムを記憶する。例えば、記憶部１１は、管理装置１の制御部１２を、後述するモデル登録部１３、ライセンス登録部１４、使用受付部１５、認証部１６、学習実行部１７、対価算出部１８、及び報酬算出部１９として機能させる管理プログラムを記憶する。また、記憶部１１は、学習モデルを含む学習モデル情報と、学習モデルのライセンス情報とを記憶する。
【００２６】
図３は、本実施形態に係る学習モデル情報の一例を示す図である。図３に示すように、学習モデル情報は、登録者と、モデル名と、説明文と、学習モデルと、モデルＩＤと、量子化後データ列と、寄与者と、寄与率とを含む。
【００２７】
登録者は、学習モデルを登録したコントリビュータを示しており、コントリビュータを識別するコントリビュータＩＤが格納される。モデル名は、モデルを識別するための情報である。本実施形態では、モデル名は、全ての学習モデルのそれぞれで異なるものとする。
【００２８】
説明文は、モデルの内容を説明するための文字列である。モデルＩＤは、学習モデルを識別する情報である。量子化後データ列は、モデルＩＤを量子化した後のハッシュ値である。寄与者は、学習モデルの作成に寄与したコントリビュータを示しており、コントリビュータＩＤが格納される。ここで、寄与者及び寄与率は、１つの学習モデルに対して１又は複数関連付けられる。
【００２９】
図４は、本実施形態に係るライセンス情報の一例を示す図である。図４に示すように、ライセンス情報は、学習モデルを使用するユーザのユーザＩＤと、モデル名と、モデルＩＤとを含む。
【００３０】
図２に説明を戻し、制御部１２は、例えばＣＰＵ（Central Processing Unit）である。制御部１２は、記憶部１１に記憶されている各種プログラムを実行することにより、管理装置１に係る機能を制御する。制御部１２は、管理プログラムを実行することにより、モデル登録部１３、ライセンス登録部１４、使用受付部１５、認証部１６、学習実行部１７、対価算出部１８、及び報酬算出部１９として機能する。
【００３１】
［学習モデルの登録及び更新］
モデル登録部１３は、コントリビュータが使用するコントリビュータ端末２から学習モデルの新規登録又は更新を受け付ける。図５は、本実施形態に係るモデル登録部１３の構成を示す図である。図５に示すように、モデル登録部１３は、取得部１３１と、分割部１３２と、第１ハッシュ生成部１３３と、量子化部１３４と、第２ハッシュ生成部１３５と、寄与率管理部１３６と、記憶制御部１３７とを備える。
【００３２】
取得部１３１は、コントリビュータ端末２から学習モデルを取得する。具体的には、取得部１３１は、学習モデルの新規登録を受け付ける場合には、コントリビュータ端末２から、学習モデルと、学習モデル名と、学習モデルの説明文と、学習モデルのラベルと、学習モデルを作成したコントリビュータのコントリビュータＩＤとを取得する。ここで、学習モデルには、複数の層のそれぞれに付与されているインデックスと、複数の層のそれぞれの重みを示す複数の重み値とが含まれている。
【００３３】
また、取得部１３１は、学習モデルの更新を受け付ける場合、まず、コントリビュータ端末２からコントリビュータＩＤを取得する。取得部１３１は、記憶部１１に記憶されている学習モデル情報を参照し、コントリビュータＩＤに関連付けられているモデル名を特定し、当該モデル名のうちのいずれかの選択を受け付ける。そして、取得部１３１は、コントリビュータ端末２から、更新後の学習モデルを取得する。取得部１３１は、学習モデルの更新時にも学習モデルのラベルを取得してもよい。
【００３４】
分割部１３２は、学習モデルを１又は複数のサブセットに分割する。分割部１３２は、複数の層を分割し、各層に対応する重みをサブセットとする。ここで、分割部１３２は、取得部１３１が学習モデルとともに取得した、学習モデルのラベルを含めてサブセットを生成する。
【００３５】
第１ハッシュ生成部１３３は、分割部１３２が生成した１又は複数のサブセットそれぞれのハッシュ値を生成して学習モデルを特定するためのモデルＩＤを生成する。具体的には、まず、第１ハッシュ生成部１３３は、１又は複数のサブセットを示す複数の重み値のそれぞれに対してハッシュ関数を適用することにより、複数の重み値のそれぞれのハッシュ値を生成する。そして、第１ハッシュ生成部１３３は、例えば、複数の重み値のそれぞれに対して生成したハッシュ値を、各層に付与されているインデックス順に連結することにより、これらのハッシュ値を要素とするデータ列をモデルＩＤとして生成する。
【００３６】
量子化部１３４は、学習モデルの各層の重みである、分割部１３２が分割したサブセットのそれぞれを量子化する。例えば、量子化部１３４は、重み値のとりうる範囲を、複数の範囲に分割し、複数の範囲のそれぞれに代表値を設定する。量子化部１３４は、複数の重み値を、重み値が属する範囲に対応する代表値に変換することにより、サブセットを量子化する。このようにすることで、管理装置１は、学習モデルの細かい更新が発生した場合に、寄与率を変化させず、処理負荷を軽減することができる。
【００３７】
第２ハッシュ生成部１３５は、学習モデルの各層の重みのハッシュ値を要素とする量子化後データ列を生成する。具体的には、まず、第２ハッシュ生成部１３５は、量子化部１３４が量子化したサブセットを示す複数の重み値のそれぞれに対してハッシュ関数を適用することにより、複数の重み値のそれぞれのハッシュ値を算出する。そして、第２ハッシュ生成部１３５は、複数の重み値のそれぞれに対して生成したハッシュ値を、各層に付与されているインデックス順に連結することにより、これらのハッシュ値を要素とする量子化後データ列を生成する。
【００３８】
寄与率管理部１３６は、取得部１３１が取得した学習モデルの作成に関する各コントリビュータの寄与率を算定する。寄与率管理部１３６は、学習モデルを新規登録する場合には、記憶部１１に記憶されている学習モデル情報を参照して、第１ハッシュ生成部１３３が生成したモデルＩＤに、学習モデル情報に記憶されている他の学習モデルのモデルＩＤが含まれているか否かを判定する。
【００３９】
寄与率管理部１３６は、他の学習モデルのモデルＩＤが含まれていない場合には、新規登録する学習モデルが、登録を行うコントリビュータが独自に作成したものと判定し、当該コントリビュータの寄与率を１（１００％）と算定する。
【００４０】
寄与率管理部１３６は、他の学習モデルのモデルＩＤが含まれている場合には、記憶部１１に記憶されている学習モデル情報に含まれている他の学習モデルを参照し、当該他の学習モデルの層数を特定する。そして、寄与率管理部１３６は、新規登録する学習モデルの全層数から他の学習モデルの層数を減算し、登録を行うコントリビュータが生成した層数を特定する。
【００４１】
また、寄与率管理部１３６は、記憶部１１に記憶されている学習モデル情報を参照し、他の学習モデルの寄与者及び寄与率と、当該他の学習モデルの層数とに基づいて、当該他の学習モデルを生成した各コントリビュータが生成した層数を特定する。そして、寄与率管理部１３６は、各コントリビュータが生成した層数の、新規登録する学習モデルの全層数に対する割合に基づいて寄与率を算定する。
【００４２】
また、寄与率管理部１３６は、学習モデルが更新されることを契機として、寄与率を更新する。具体的には、寄与率管理部１３６は、記憶部１１に記憶されている学習モデル情報を参照し、更新対象の学習モデルの量子化後データ列を特定する。そして、寄与率管理部１３６は、特定した量子化後データ列と、第２ハッシュ生成部１３５が生成した量子化後データ列とが異なる場合、すなわち、量子化後データ列の変更があった場合に、学習モデルが更新されたと判定し、寄与率を算定する。学習モデルが更新される場合の寄与率の算定方法は、学習モデルが新規登録される場合の寄与率の算定方法と同じであるので、説明を省略する。
【００４３】
なお、寄与率管理部１３６は、各コントリビュータが学習モデルを生成するために、ニューラルネットワークの学習に用いたデータ量に基づいて寄与率を算出してもよい。この場合、取得部１３１は、学習モデルの登録時に、当該学習モデルを生成するために、ニューラルネットワークの学習に用いたデータ量を示す情報を取得し、記憶部１１に記憶されている学習モデル情報に、当該データ量を示す情報を格納させておく。
【００４４】
また、寄与率管理部１３６は、学習に用いた計算資源の総コストに基づいて寄与率を算出してもよい。この場合、取得部１３１は、学習モデルの登録時に、当該学習モデルを生成するために、ニューラルネットワークの学習に消費した計算資源の量を示す計算資源情報を取得し、記憶部１１に記憶されている学習モデル情報に、当該計算資源情報を格納させておく。ここで、消費資源情報には、ＣＰＵ使用時間を示す情報と、記憶部１１の使用領域（メモリ使用量）を示す情報とが含まれる。
【００４５】
また、計算資源に基づいて寄与率を算出するために、管理装置１は、ニューラルネットワークの学習を行うことにより学習モデルを生成するモデル生成部を備えてもよい。そして、モデル生成部は、コントリビュータ端末２からニューラルネットワークの学習に用いるデータを受け付け、ニューラルネットワークの学習を行う。また、モデル生成部は、コントリビュータＩＤと、生成された学習モデルのモデルＩＤと、学習において消費した計算資源を示す消費資源情報とを関連付けて記憶部１１に記憶させる。寄与率管理部１３６は、記憶部１１に記憶されている消費資源情報が示す計算資源に基づいて、各コントリビュータが学習モデルの生成に用いた計算資源の割合を特定し、当該割合に基づいて寄与率を算出する。
【００４６】
寄与率管理部１３６は、学習モデル情報を参照し、学習モデルに対応するデータ量を示す情報と、当該学習モデルに含まれている他の学習モデルに対応するデータ量を示す情報とを特定する。そして、寄与率管理部１３６は、学習モデルに対応するデータ量と、他の学習モデルに対応するデータ量との割合に基づいて寄与率を算出する。学習モデルの生成では、学習に用いたデータ量が多ければ多いほど、学習効果が高くなり、学習モデルの有用度が増す。したがって、管理装置１は、学習に用いたデータ量に基づいて寄与率を算出することにより、学習モデルの有用度の向上に貢献したコントリビュータの寄与率を高く設定することができる。
【００４７】
記憶制御部１３７は、学習モデルを記憶部１１に記憶させる。記憶制御部１３７は、取得部１３１が取得したコントリビュータＩＤを登録者と特定する。記憶制御部１３７は、学習モデルの新規登録を受け付けた場合には、特定した登録者と、取得部１３１が取得した学習モデル、学習モデル名、説明文及びラベルと、第１ハッシュ生成部１３３が生成したモデルＩＤと、第２ハッシュ生成部１３５が生成した量子化後データ列と、寄与率管理部１３６が特定した寄与者及び寄与率と、を関連付けて学習モデル情報として記憶部１１に記憶させる。
【００４８】
また、記憶制御部１３７は、学習モデルの更新を受け付けた場合に、寄与率管理部１３６が量子化後データ列に基づいて学習モデルが更新されたと判定すると、学習モデル情報に記憶されている学習モデル、モデルＩＤ、量子化後データ列、寄与者及び寄与率を更新する。記憶制御部１３７は、取得部１３１が取得した学習モデルと、第１ハッシュ生成部１３３が生成したモデルＩＤと、第２ハッシュ生成部１３５が生成した量子化後データ列と、寄与率管理部１３６が特定した寄与者及び寄与率とに基づいて、学習モデル情報を更新する。
【００４９】
また、記憶制御部１３７は、学習モデルの更新を受け付けた場合に、寄与率管理部１３６が量子化後データ列に基づいて学習モデルが更新されていないと判定すると、学習モデル情報に記憶されている学習モデルと、モデルＩＤとを、取得部１３１が取得した学習モデルと、第１ハッシュ生成部１３３が生成したモデルＩＤとに更新する。
【００５０】
［ライセンス情報の登録］
説明を図２に戻す。ライセンス登録部１４は、ユーザ端末３のユーザからライセンスの登録を受け付ける。例えば、ライセンス登録部１４は、ユーザ端末３に、モデル名と、モデルＩＤと、説明文とを表示させ、ユーザが使用する学習モデルの選択を受け付ける。ここで、ライセンス登録部１４は、例えば、学習モデルの全層数やラベルに基づいて、学習モデルのライセンス料を算出し、ユーザ端末３にライセンス料を表示してもよい。
【００５１】
ユーザ端末３は、学習モデルが選択されると、モデル名と、モデルＩＤと、ユーザを識別するユーザＩＤとを含むライセンス登録要求を管理装置１に送信する。ライセンス登録部１４は、ライセンス登録要求を受信すると、ライセンス登録要求に含まれているユーザＩＤと、モデル名と、モデルＩＤとを関連付けてライセンス情報として記憶部１１に記憶させる。
【００５２】
［学習モデルの使用］
使用受付部１５は、通信ネットワークを介して他の装置としてのユーザ端末３から学習モデルの使用要求を受け付ける。具体的には、使用受付部１５は、ユーザ端末３から、ユーザが使用する学習モデルのモデル名と、ユーザＩＤとを含む学習モデルの使用要求を受信することにより、学習モデルの使用要求を受け付ける。なお、本実施形態では、使用受付部１５は、ユーザ端末３から学習モデルの使用要求を受け付けることとしたが、これに限らない。使用受付部１５は、コントリビュータ端末２から使用要求を受け付けてもよい。
【００５３】
認証部１６は、使用受付部１５がユーザ端末３から学習モデルの使用要求を受け付けると、記憶部１１に記憶されているライセンス情報を参照して、ユーザ端末３のユーザが、当該学習モデルを使用可能か否かを判定する。
【００５４】
具体的には、認証部１６は、学習モデルの使用要求に含まれている学習モデルのモデル名と、ユーザＩＤとが関連付けられてライセンス情報に記憶されている場合に、ユーザ端末３のユーザが、当該学習モデルを使用可能と判定する。
【００５５】
また、認証部１６は、学習モデルの使用要求に含まれている学習モデルのモデル名と、ユーザＩＤとが関連付けられてライセンス情報に記憶されている場合に、ユーザ端末３のユーザが、当該学習モデルを使用不可と判定する。認証部１６は、学習モデルを使用不可と判定すると、使用不可であることを示すメッセージをユーザ端末３に通知する。
【００５６】
学習実行部１７は、ユーザが学習モデルを使用可能な場合、ユーザ端末３から取得したタスクを実行するためのデータに関する学習モデルの実行結果を出力する。具体的には、まず、学習実行部１７は、ユーザ端末３のユーザが学習モデルを使用可能と認証部１６が判定すると、ユーザ端末３から、タスクを実行するためのデータを１又は複数取得する。学習実行部１７は、ユーザ端末３から取得したデータを入力データとし、使用要求に対応する学習モデルを使用したタスクを実行することにより実行結果を取得する。学習実行部１７は、取得した実行結果をユーザ端末３に出力する。
【００５７】
［学習モデルの使用に対する対価及び各コントリビュータの報酬の算出］
対価算出部１８は、タスクを実行するための学習実行部１７の利用態様に基づいて、ユーザに請求する請求額を算出する。例えば、対価算出部１８は、タスクを実行するための学習実行部１７の利用負荷に基づいて、ユーザに請求する請求額を算出する。ここで、学習実行部１７の利用負荷は、ユーザが使用した学習モデルに基づくタスクを実行した際に、学習実行部１７が費やした時間、すなわちＣＰＵ使用時間である。このようにすることで、管理装置１は、利用負荷という観点に基づいて請求額を公平に算出することができる。
【００５８】
なお、対価算出部１８は、タスクを実行するための学習実行部１７の占有率に基づいて、ユーザに請求する請求額を算出してもよい。ここで、学習実行部１７の占有率は、ユーザが使用した学習モデルに基づくタスクを実行した際の、学習実行部１７のＣＰＵ利用率である。このようにすることで、管理装置１は、複数のユーザが使用する場合に、ＣＰＵ利用率に基づいて公平に請求額を算出することができる。
【００５９】
対価算出部１８は、算出した請求額をユーザ端末３に通知する。ユーザ端末３のユーザは、通知された請求額を所定の方法で管理装置１の管理者に支払う。
【００６０】
報酬算出部１９は、ユーザ端末３による学習モデルの使用の見返りとして支払われた対価を、学習モデルの作成に関する寄与率に応じて各コントリビュータに分配する場合のそれぞれの報酬を算出する。
【００６１】
具体的には、まず、報酬算出部１９は、記憶部１１に記憶されている学習モデル情報を参照し、対価が算出された学習モデルの各コントリビュータの寄与率を特定する。そして、報酬算出部１９は、対価算出部１８が算出した対価と、特定した各コントリビュータの寄与率とを乗算することにより、各コントリビュータの報酬を算出する。
【００６２】
ここで、報酬算出部１９は、管理装置１の管理者の報酬を算出し、対価算出部１８が算出した対価から、管理者の報酬を減算してもよい。そして、報酬算出部１９は、減算後の対価と、特定した各コントリビュータの寄与率とを乗算することにより、各コントリビュータの報酬を算出してもよい。報酬算出部１９は、算出した請求額を所定の方法で各コントリビュータに支払う。
【００６３】
［学習モデルの登録に係る処理の流れ］
続いて、管理装置１における処理の流れについて説明する。まず、学習モデルの登録又は更新に係る処理の流れについて説明する。図６は、本実施形態に係る学習モデルの登録又は更新に係る処理の流れを示すフローチャートである。
【００６４】
まず、取得部１３１は、学習モデルを取得する（Ｓ１０）。
続いて、分割部１３２は、学習モデルを分割してサブセットを生成する（Ｓ２０）。
【００６５】
続いて、第１ハッシュ生成部１３３は、Ｓ２０において生成されたサブセットのハッシュ値を生成し、当該ハッシュ値に基づいて学習モデルのモデルＩＤを生成する（Ｓ３０）。
続いて、量子化部１３４は、サブセットを量子化する（Ｓ４０）。そして、第２ハッシュ生成部１３５は、量子化されたサブセットのハッシュ値を生成し、当該ハッシュ値に基づいて量子化後データ列を生成する（Ｓ５０）。
【００６６】
続いて、寄与率管理部１３６は、学習モデルの作成に関する各コントリビュータの寄与率を算定する（Ｓ６０）。
続いて、記憶制御部１３７は、学習モデルを登録又は更新することにより、学習モデル情報を更新する（Ｓ７０）。
【００６７】
［学習モデルの使用及び報酬算出に係る処理の流れ］
続いて、学習モデルの使用及び報酬算出に係る処理の流れについて説明する。図７は、本実施形態に係る学習モデルの使用及び報酬算出に係る処理の流れを示すフローチャートである。
【００６８】
まず、使用受付部１５は、学習モデルの使用要求を受け付ける（Ｓ１１０）。ここで、学習モデルの使用要求には、学習モデルのモデル名とユーザＩＤとが含まれている。
続いて、認証部１６は、使用要求が受け付けられた学習モデルが使用可能か否かの認証を行う（Ｓ１２０）。
【００６９】
続いて、学習実行部１７は、認証部１６における認証に成功したことに応じて、学習モデルを使用したタスクを実行するための入力データを取得する（Ｓ１３０）。
続いて、学習実行部１７は、取得した入力データと、使用要求に対応する学習モデルとを使用したタスクを実行する（Ｓ１４０）。これにより、学習実行部１７は、タスクの実行結果を取得する。
【００７０】
続いて、対価算出部１８は、学習モデルの利用態様に基づいて学習モデルの使用に係る請求額を算出する（Ｓ１５０）。
続いて、報酬算出部１９は、使用した学習モデルに対応し、学習モデル情報に記憶されている寄与率に基づいて、各コントリビュータの対価の報酬を算出する（Ｓ１６０）。
【００７１】
［本実施形態における効果］
以上のとおり、本実施形態に係る管理装置１は、１又は複数のコントリビュータが作成した学習モデルと、各コントリビュータの学習モデルの作成に関する寄与率とを関連付けて記憶し、ネットワークを介してユーザ端末３から学習モデルの使用要求を受け付け、ユーザ端末３による学習モデルの使用の見返りとして支払われた対価を、学習モデルに対応する寄与率に応じて各コントリビュータに分配する場合のそれぞれの報酬を算出する。
【００７２】
このようにすることで、管理装置１は、学習モデルの作成に寄与したコントリビュータに対して報酬を適切に支払うことができる。特に、学習モデルが複数のコントリビュータによって作成された場合には、それぞれのコントリビュータの学習モデルの作成に関する寄与率に基づいて、各コントリビュータの報酬を公平に算出することができる。
【００７３】
また、本実施形態に係る管理装置１は、学習モデルを１又は複数のサブセットに分割し、サブセットそれぞれのハッシュ値を生成して学習モデルを特定するためのモデルＩＤを生成し、生成したモデルＩＤと、学習モデルを使用可能なユーザＩＤとを関連付けたライセンス情報を記憶する。このようにすることで、他の学習モデルの少なくとも一部を用いて作成した学習モデルには、他の学習モデルに対応するモデルＩＤが含まれることとなる。したがって、管理装置１は、学習モデルが他の学習モデルを用いて作成されているかを管理することができるとともに、学習モデルを作成した１又は複数のコントリビュータを特定することができる。
【００７４】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更又は改良を加えることが可能であることが当業者に明らかである。また、特に、装置の分散・統合の具体的な実施形態は以上に図示するものに限られず、その全部又は一部について、種々の付加等に応じて、又は、機能負荷に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。
【００７５】
例えば、上述の実施形態では、管理装置１が、複数の通信機器４のそれぞれにアクセスし、複数の通信機器４のそれぞれが生成したログを取得することとしたが、これに限らない。例えば、複数の通信機器４のそれぞれが生成したログを取得するログ取得装置と、管理装置１とを設けておき、管理装置１が、ログ取得装置から、複数の通信機器４のそれぞれが生成したログを取得してもよい。
【００７６】
例えば、上述の実施形態では、寄与率管理部１３６が、各コントリビュータが生成した層数の、新規登録する学習モデルの全層数に対する割合に基づいて寄与率を算定する場合について説明した。これに替えて、寄与率管理部１３６は、各コントリビュータが生成した層が含む重みの、新規登録する学習モデルの各層が備える重みのデータ量の合計に対する割合に基づいて寄与率を算定してもよい。各層が備える重みのデータ量は層によって異なる場合があるので、各コントリビュータが実際に生成した重みのデータ量を寄与率に反映させることができる。
【符号の説明】
【００７７】
１・・・管理装置、１１・・・記憶部、１２・・・制御部、１３・・・モデル登録部、１３１・・・取得部、１３２・・・分割部、１３３・・・第１ハッシュ生成部、１３４・・・量子化部、１３５・・・第２ハッシュ生成部、１３６・・・寄与率管理部、１３７・・・記憶制御部、１４・・・ライセンス登録部、１５・・・使用受付部、１６・・・認証部、１７・・・学習実行部、１８・・・対価算出部、１９・・・報酬算出部、２・・・コントリビュータ端末、３・・・ユーザ端末
【図１】
2018206199.tif 000003
【図２】
2018206199.tif 000004
【図３】
2018206199.tif 000005
【図４】
2018206199.tif 000006
【図５】
2018206199.tif 000007
【図６】
2018206199.tif 000008
【図７】
2018206199.tif 000009