(57)【要約】【課題】重要な情報についてセキュリティを確保しながら、機械学習済モデルの運用管理を行う。【解決手段】機械学習モデル運用管理システムは、モデル構築サーバと、運用サーバと、を備える。モデル構築サーバは、受信した学習用データに基づいて機械学習済モデルを構築する。運用サーバは、ロボットコントローラに保存された機械学習済モデルがロボットの動作を決定するために動作する場合に、当該ロボットコントローラが生成する運用情報を受信する。モデル構築サーバによって構築した機械学習済モデルのデータには、当該機械学習済モデルを一意に識別するモデル識別情報が付与される。ロボットコントローラは、自身に保存された機械学習済モデルに対する使用権限を有しているか否かを外部へ問い合わせ、使用権限を有していた場合に、当該機械学習済モデルを使用可能な状態とする。運用サーバは、運用情報を、モデル識別情報と関連付けて記憶する。【選択図】図１
2020138296.tif 000002
【特許請求の範囲】
【請求項１】
ロボットの動作を機械学習モデルに学習させるためのデータである学習用データを受信して、当該学習用データに基づいて機械学習済モデルを構築するモデル構築サーバと、
ロボットコントローラに保存された前記機械学習済モデルがロボットの動作を決定するために動作する場合に、当該ロボットコントローラが生成する運用情報を受信する運用サーバと、
を備え、
ロボットコントローラは、自身に保存された機械学習済モデルに対する使用権限を有しているか否かを、当該機械学習済モデルを一意に識別するモデル識別情報を送信して問い合わせ、使用権限を有していた場合に当該機械学習済モデルを使用可能な状態とし、
前記運用サーバは、前記運用情報を、前記機械学習済モデルを一意に特定する情報と関連付けて記憶することを特徴とする機械学習モデル運用管理システム。
【請求項２】
ロボットの動作を機械学習モデルに学習させるためのデータである学習用データを受信して、当該学習用データに基づいて機械学習済モデルを構築するモデル構築サーバと、
ロボットコントローラに保存された前記機械学習済モデルがロボットの動作を決定するために動作する場合に、当該ロボットコントローラが生成する運用情報を受信する運用サーバと、
ロボットコントローラと通信可能な管理サーバと、
を備え、
前記管理サーバ及び前記運用サーバのうち少なくとも何れかは、ロボットコントローラが機械学習済モデルに対する使用権限を有するか否かを判定し、使用権限を有するロボットコントローラに対して当該機械学習済モデルの使用を許可し、
前記運用サーバは、前記運用情報を、前記機械学習済モデルを一意に特定する情報と関連付けて記憶することを特徴とする機械学習モデル運用管理システム。
【請求項３】
請求項１又は２に記載の機械学習モデル運用管理システムであって、
前記運用サーバは、前記機械学習済モデルにより運用したロボットについて、運用状況を管理するための情報を出力可能であることを特徴とする機械学習モデル運用管理システム。
【請求項４】
請求項１から３までの何れか一項に記載の機械学習モデル運用管理システムであって、
前記運用情報には、前記機械学習済モデルにより運用したロボットの作業ログ情報が含まれ、
前記運用サーバは、前記作業ログ情報を出力可能であることを特徴とする機械学習モデル運用管理システム。
【請求項５】
請求項１から４までの何れか一項に記載の機械学習モデル運用管理システムであって、
前記ロボットコントローラは、主記憶装置と、補助記憶装置と、を備え、
前記ロボットコントローラは、前記補助記憶装置に保存された学習済モデルに対する使用権限を有しているかを問い合わせた結果、使用権限を有していた場合に、当該機械学習済モデルを主記憶装置に展開し、
前記ロボットコントローラは、前記主記憶装置に展開された機械学習済モデルの出力に基づいて前記ロボットを動作させることを特徴とする機械学習モデル運用管理システム。
【請求項６】
モデル構築サーバが、ロボットの動作を機械学習モデルに学習させるためのデータである学習用データを受信して、当該学習用データに基づいて機械学習済モデルを構築するモデル構築工程と、
ロボットコントローラが、自身に保存された機械学習済モデルに対する使用権限を有しているか否かを、当該機械学習済モデルを一意に識別する情報であるモデル識別情報を送信して問い合わせ、使用権限を有していた場合に当該機械学習済モデルを使用可能な状態とする準備工程と、
ロボットコントローラに保存された前記機械学習済モデルがロボットの動作を決定するために動作する場合に、当該ロボットコントローラが生成する運用情報を運用サーバが受信する運用情報受信工程と、
を含み、
前記運用情報受信工程で、前記運用サーバは、前記運用情報を、前記機械学習済モデルを一意に特定する情報と関連付けて記憶することを特徴とする機械学習モデル運用管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、主として、機械学習モデルの運用管理システムに関する。
【背景技術】
【０００２】
従来から、ロボットの作業動作に関するモデルを構築することができる機械学習装置を備えたロボット制御装置が知られている。特許文献１は、この種のロボット制御装置を開示する。
【０００３】
特許文献１のロボットシステムは、乱雑に置かれたワークを取り出すときのロボットの最適な動作を人間の介在無しに学習できる機械学習装置を備える。特許文献１には、ワークの取り出し動作を学習する学習モデルを機械学習装置が有すること、及び、複数のロボットで学習モデルを共有できることが記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１７−３０１３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、ロボットに学習させるためにセンサによって状況を詳細に記録した学習データ、及び、当該学習データにより構築された学習モデルのデータは、セキュリティの観点で重要な価値を有すると考えられる。しかし、特許文献１では、これらの情報をどのように管理するかについて言及されていない。従って、特許文献１では、例えば学習モデルのデータが不正にコピーされて用いられることによるビジネス機会の喪失等のおそれがあり、改善が望まれていた。
【０００６】
本発明は以上の事情に鑑みてされたものであり、その目的は、重要な情報についてセキュリティを確保しながら、機械学習済モデルの運用管理を適切に行うことにある。
【課題を解決するための手段】
【０００７】
本発明の解決しようとする課題は以上の如くであり、次にこの課題を解決するための手段とその効果を説明する。
【０００８】
本発明の第１の観点によれば、以下の構成の機械学習モデル運用管理システムが提供される。即ち、この機械学習モデル運用管理システムは、モデル構築サーバと、運用サーバと、を備える。前記モデル構築サーバは、ロボットの動作を機械学習モデルに学習させるためのデータである学習用データを受信して、当該学習用データに基づいて機械学習済モデルを構築する。前記運用サーバは、ロボットコントローラに保存された前記機械学習済モデルがロボットの動作を決定するために動作する場合に、当該ロボットコントローラが生成する運用情報を受信する。ロボットコントローラは、自身に保存された機械学習済モデルに対する使用権限を有しているか否かを、当該機械学習済モデルを一意に識別するモデル識別情報を送信して問い合わせ、使用権限を有していた場合に当該機械学習済モデルを使用可能な状態とする。前記運用サーバは、前記運用情報を、前記機械学習済モデルを一意に特定する情報と関連付けて記憶する。
【０００９】
本発明の第２の観点によれば、以下の構成の機械学習モデル運用管理システムが提供される。即ち、この機械学習モデル運用管理システムは、モデル構築サーバと、運用サーバと、管理サーバと、を備える。前記モデル構築サーバは、ロボットの動作を機械学習モデルに学習させるためのデータである学習用データを受信して、当該学習用データに基づいて機械学習済モデルを構築する。前記運用サーバは、ロボットコントローラに保存された前記機械学習済モデルがロボットの動作を決定するために動作する場合に、当該ロボットコントローラが生成する運用情報を受信する。前記管理サーバは、ロボットコントローラと通信可能である。前記管理サーバ及び前記運用サーバのうち少なくとも何れかは、ロボットコントローラが機械学習済モデルに対する使用権限を有するか否かを判定し、使用権限を有するロボットコントローラに対して当該機械学習済モデルの使用を許可する。前記運用サーバは、前記運用情報を、前記機械学習済モデルを一意に特定する情報と関連付けて記憶する。
【００１０】
本発明の第３の観点によれば、以下の機械学習モデル運用管理方法が提供される。即ち、この機械学習モデル運用管理方法は、モデル構築工程と、準備工程と、運用情報受信工程と、を含む。前記モデル構築工程では、モデル構築サーバが、ロボットの動作を機械学習モデルに学習させるためのデータである学習用データを受信して、当該学習用データに基づいて機械学習済モデルを構築する。前記準備工程では、ロボットコントローラが、自身に保存された機械学習済モデルに対する使用権限を有しているか否かを、当該機械学習済モデルを一意に識別する情報であるモデル識別情報を送信して問い合わせ、使用権限を有していた場合に当該機械学習済モデルを使用可能な状態とする。前記運用情報受信工程では、ロボットコントローラに保存された前記機械学習済モデルがロボットの動作を決定するために動作する場合に、当該ロボットコントローラが生成する運用情報を運用サーバが受信する。前記運用情報受信工程で、前記運用サーバは、前記運用情報を、前記機械学習済モデルを一意に特定する情報と関連付けて記憶する。
【００１１】
これにより、モデル構築サーバをユーザが信頼できる場所で運用することで、ユーザが安心して学習用データをモデル構築サーバに送信して機械学習済モデルを構築させることができる。一方、運用サーバにおいては機械学習済モデルのデータを保存せず、当該モデルを一意に特定する情報を用いるだけである。また、運用サーバで記憶される運用情報に、機密性の高い情報を含めないようにすることで、運用サーバをセキュリティ上厳重な場所に配置する必要性が小さくなる。この結果、システムの構築コスト及びランニングコストを低減することができる。
【発明の効果】
【００１２】
本発明によれば、重要な情報についてセキュリティを確保しながら、機械学習済モデルの運用管理を適切に行うことができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施形態に係る機械学習モデル運用管理の全体的な構成を示す模式図。
【図２】学習済モデルを構築する場合の処理について説明する模式図。
【図３】構築した学習済モデルをロボットシステムで運用する場合の処理について説明する模式図。
【発明を実施するための形態】
【００１４】
次に、図面を参照して本発明の実施の形態を説明する。図１は、本発明の一実施形態に係る機械学習モデル運用管理システム１の全体的な構成を示す模式図である。図２は、学習済モデルを構築する場合の処理について説明する模式図である。図３は、構築した学習済モデルをロボットシステム１０で運用する場合の処理について説明する模式図である。
【００１５】
図１に示す機械学習モデル運用管理システム１は、ロボットシステム１０における機械学習モデルの運用を管理する。機械学習モデル運用管理システム１は、モデル構築サーバ２０と、運用サーバ３０と、管理サーバ４０と、を備える。
【００１６】
ロボットシステム１０は、ロボット１１を用いて作業を行うシステムである。ロボット１１に行わせる作業としては様々であるが、例えば、組立て、加工、塗装、洗浄等がある。
【００１７】
詳細は後述するが、ロボット１１は、データを機械学習することで構築されたモデルを用いて制御される。そのため、ロボットシステム１０は、基本的にはユーザの補助を必要とせず、作業を自律的に行うことができる。また、ロボット１１は、自律的に作業を行うだけでなく、ユーザの操作に応じて作業を行うこともできる。
【００１８】
以下の説明では、機械学習することで構築されたモデルを、学習済モデル（機械学習済モデル）と呼ぶことがある。また、ロボット１１が作業を自律的に行うことを自律運転と呼び、ユーザの操作に応じてロボット１１が作業を行うことを手動運転と呼ぶことがある。
【００１９】
最初に、ロボットシステム１０について説明する。
【００２０】
図１に示すように、ロボットシステム１０は、ロボット１１と、ロボットコントローラ１２と、操作部１３と、を備える。ロボット１１及び操作部１３のそれぞれは、ロボットコントローラ１２に対して有線又は無線により互いに接続されており、信号の送受信を行うことができる。
【００２１】
ロボットシステム１０（具体的には、ロボットコントローラ１２）は、インターネット等の通信ネットワークを介して、後述のモデル構築サーバ２０及び管理サーバ４０のそれぞれと通信可能に構成されている。
【００２２】
ロボット１１の種類は限定しないが、本実施形態では、ロボット１１は、公知のマスタスレーブ式の多関節型ロボットである。ロボット１１は、台座に取り付けられたアーム部を備える。アーム部は複数の関節を有しており、各関節にはアクチュエータが備えられている。アーム部の先端には、作業内容に応じて選択されたエンドエフェクタが取り付けられている。エンドエフェクタにはアクチュエータが備えられている。ロボット１１は、ロボットコントローラ１２から入力された制御信号に基づいて、アーム部及びエンドエフェクタのアクチュエータを動作させる。これにより、ロボット１１に作業を行わせることができる。
【００２３】
図示しないが、ロボット１１には、ロボット１１の動作及び周囲環境等を検出するためのセンサが取り付けられている。センサは、例えば、動作センサ、力センサ、カメラ等とすることができる。動作センサは、ロボット１１のアーム部の各関節の回転角度又は角速度を検出することができる。力センサは、ロボットの動作時に、ロボットが受けた力（例えば、作業対象であるワークからの反力）を検出することができる。カメラは、ロボット１１又は周辺の状況を撮像することができる。ただし、上記のセンサの説明は例示であって、一部のセンサを省略したり、他のセンサを付加したりすることができる。
【００２４】
動作センサは、ロボット１１の動作を検出する。力センサ及びカメラが検出するデータは、ロボット１１の周囲の環境を検出する。以下の説明では、これらのセンサが検出した情報を総合したものを状態情報と呼ぶことがある。状態情報は、ロボット１１及びその周囲の状態を示すものである。
【００２５】
ロボットシステム１０は、操作部１３を備える。操作部１３は、ロボット１１を手動で操作するために用いられる。操作部１３は、ロボット１１の近くに配置されても良いし、ロボット１１から十分に隔離された場所に配置されても良い。操作部１３の構成は様々に考えられるが、例えばレバー、ペダル等を備える構成とすることができる。
【００２６】
図示しないが、操作部１３には操作検出センサが備えられている。操作検出センサの構成は任意であるが、例えば、操作部１３の操作位置を検出するセンサ、操作力を検出するセンサ、加速度を検出するセンサ等とすることが考えられる。操作検出センサは、検出結果をロボットコントローラ１２に出力する。
【００２７】
ロボットコントローラ１２は、ＣＰＵ及び記憶装置を備える公知のコンピュータである。記憶装置は、主記憶装置と補助記憶装置に分けることができる。主記憶装置は、例えばＲＡＭとすることができる。主記憶装置は、ＣＰＵのメインバス等に接続されており、高速で読込／書込を行うことができる。補助記憶装置は、例えばＨＤＤ、ＳＳＤとすることができる。補助記憶装置は、ＣＰＵの外部バスに接続されており、主記憶装置と比較して読込／書込は低速であるが、大容量の記憶を実現することができる。
【００２８】
補助記憶装置には、ロボット制御プログラム、データ収集プログラム、通信プログラム、使用管理プログラム等の各種ソフトウェアが記憶される。更に、補助記憶装置には、学習済モデルのデータを記憶することができる。
【００２９】
ロボット１１が手動運転で動作する場合、ユーザによる操作部１３の操作が操作検出センサによって検出される。ロボットコントローラ１２は、操作検出センサの検出結果に応じて、ロボット１１を動作させる制御信号を生成する。これにより、ロボット１１を手動で操作することができる。以下の説明では、操作検出センサの検出結果を操作情報と呼ぶことがある。操作情報は、ユーザの操作を示すものである。
【００３０】
ロボットコントローラ１２は、ロボット１１の手動運転により作業を行うときに、ロボット１１及びその周囲の状態を示す状態情報と、ユーザの操作を示す操作情報と、を収集して、学習用データを生成することができる。この学習用データは、ロボットコントローラ１２において動作する学習済モデルを構築するために用いられる。学習済モデルの構築は、後述のモデル構築サーバ２０において行われる。
【００３１】
ロボット１１が自律運転で動作する場合、ロボットコントローラ１２には、モデル構築サーバ２０において構築された学習済モデルのデータが事前に読み込まれる。学習済モデルは、推論フェーズで動作することで、入力と出力の関係を推定し、状況に応じてロボットの動作を決定することができる。本実施形態では、入力は状態情報であり、推定される出力は操作情報である。
【００３２】
自律運転時において、ロボットコントローラ１２は状態情報を学習済モデルに入力し、当該学習済モデルが出力する操作情報の推定結果に基づいて、ロボット１１を動作させる制御信号を生成する。これにより、ロボット１１を自律的に動作させることができる。
【００３３】
詳細は後述するが、ロボットコントローラ１２は、学習済モデルをモデル構築サーバ２０から暗号化された状態で取得し、ロボットコントローラ１２の補助記憶装置に保存する。暗号化された学習済モデルを復号するために、所定の使用管理プログラムが、ロボットコントローラ１２に予めインストールされている。
【００３４】
使用管理プログラムをロボットコントローラ１２にインストールする作業の過程で、ロボットコントローラ１２のユーザは、管理サーバ４０に対して、ユーザ識別情報及びコントローラ識別情報を予め登録する必要がある。ユーザ識別情報は、ユーザを一意に識別するための情報である。ユーザ識別情報としては、例えば、メールアドレス、又は、ユーザ登録番号等とすることが考えられる。コントローラ識別情報は、ロボットコントローラ１２を一意に識別するための情報である。コントローラ識別情報としては、例えば、ネットワークアダプタのＭＡＣアドレス、又は、上述の補助記憶装置のボリュームシリアル番号等とすることが考えられる。
【００３５】
次に、モデル構築サーバ２０について説明する。
【００３６】
モデル構築サーバ２０は、ＣＰＵ、ＲＯＭ、ＲＡＭ、ＨＤＤ等を備えるコンピュータである。コンピュータはＧＰＵを備えると、後述の学習を短時間で行うことができ、好ましい。
【００３７】
本実施形態において、モデル構築サーバ２０は、互いに通信しながら連携して動作する複数のコンピュータによって実現されている。モデル構築サーバ２０は、ロボットシステム１０のメーカが運営するデータセンターに設置されている。ただし、モデル構築サーバ２０は、１つのコンピュータによって実現されても良い。モデル構築サーバ２０は、ロボットシステム１０が稼動する工場等の設備に設置されても良いし、ロボットシステム１０のユーザが運営するデータセンターに設置されても良い。
【００３８】
モデル構築サーバ２０は、インターネット等の通信ネットワークを介して、ロボットシステム１０（具体的には、ロボットコントローラ１２）及び運用サーバ３０のそれぞれと通信可能に構成されている。
【００３９】
モデル構築サーバ２０は、ロボットコントローラ１２から受信した学習用データを用いて、学習済モデルを構築する。学習済モデルの構築は、機械学習の学習フェーズに相当する。
【００４０】
具体的に説明すると、図２のシーケンス番号［１］に示すように、ユーザは、ロボットシステム１０において手動運転を行って作業を行ったときの状態情報と操作情報をロボットコントローラ１２に収集させ、学習用データを作成する。その後、シーケンス番号［２］に示すように、ユーザはロボットコントローラ１２を操作して学習用データをモデル構築サーバ２０に送信し、学習済モデルの構築を指示する。このとき、学習用データを送信したユーザを特定する情報が、ロボットコントローラ１２からモデル構築サーバ２０に送信される。ユーザを特定する情報としては、例えば上記のユーザ識別情報とすることが考えられる。このユーザが、学習済モデルのデータの作成者として扱われる。
【００４１】
機械学習モデルの形式は限定しないが、例えば、一般的な構成のニューラルネットワークを用いたモデルとすることが考えられる。この場合、機械学習モデルは、入力層と、隠れ層と、出力層と、を有する。それぞれの層には、脳細胞を模擬した複数のユニットが配置されている。入力層と出力層との間には隠れ層が配置され、この隠れ層は適宜の数の中間ユニットによって構成される。情報は、入力層、隠れ層、出力層の順に流れる。隠れ層の数は適宜定められる。
【００４２】
各入力ユニットと各中間ユニットとは、情報が流れる経路によって結合され、各中間ユニットと各出力ユニットとは、情報が流れる経路によって結合される。それぞれの経路において、上流側のユニットの情報が下流側のユニットの情報に与える影響（重み）が設定されている。
【００４３】
モデル構築サーバ２０は、シーケンス番号［３］に示すように、学習済モデルを構築する。具体的に説明すると、モデル構築サーバ２０は、ロボットコントローラ１２から受信した学習用データに含まれる状態情報をモデルに入力し、当該モデルから出力された操作情報を、学習用データに含まれる操作情報と比較する（教師あり学習）。モデル構築サーバ２０は、２つの操作情報の間の誤差が小さくなるように、公知のアルゴリズムである誤差逆伝播法によって上記の重みを更新する。以上の処理を継続的に行うことにより、学習を実現することができる。
【００４４】
一般的に、学習フェーズには膨大な計算量が必要になる。従って、学習済モデルの構築をロボットコントローラ１２自身で仮に行う場合、現実的な時間で完了させることが難しい。この点、本実施形態では、モデル構築サーバ２０を例えば機械学習に特化した大規模なコンピュータ資源とすることで、学習済モデルの構築を短時間で行うことができる。従って、学習済モデルの構築及び運用を機動的に行うことができる。
【００４５】
学習が完了すると、モデル構築サーバ２０は、学習済モデルに対し、当該学習済モデルを一意に識別するＩＤを自動的に付与する。以下では、このＩＤをモデルＩＤと呼ぶことがある。その後、モデル構築サーバ２０は、シーケンス番号［４］に示すように、モデルＩＤとともに、学習済モデルのデータをロボットコントローラ１２に送信する。本実施形態において、学習済モデルのデータは、実質的には、ニューラルネットワークの各ユニット間の重みを示すデータである。ロボットコントローラ１２は、シーケンス番号［５］に示すように、モデル構築サーバ２０から受信した学習済モデルのデータを補助記憶装置に保存する。
【００４６】
シーケンス番号［４］で、モデル構築サーバ２０は、学習済モデルのデータを適宜暗号化してから、ロボットコントローラ１２に送信する。従って、ロボットコントローラ１２は、シーケンス番号［５］で学習済モデルのデータを保存しても、当該データに対して復号処理を行わない限り、学習済モデルを使用することができない。暗号化にあたっては、例えばＡＥＳ２５６等の公知の暗号化アルゴリズムを用いることができる。暗号化は非対称鍵暗号を用いて行われ、暗号鍵と復号鍵の鍵ペアは、学習済モデル毎に異なるように、モデル構築サーバ２０において例えばランダムに生成される。従って、暗号化された学習済モデルのデータを復号するための復号鍵は、学習済モデル毎に異なる。
【００４７】
シーケンス番号［５］で、学習済モデルのデータは、ロボットコントローラ１２の補助記憶装置に１又は複数のファイルとして保存される。従って、ユーザは、学習済モデルのデータが保存されたファイルを、リムーバブル記憶媒体に保存して他のロボットコントローラ１２にコピーしたり、例えば電子メールの添付ファイル等の手段で他のコンピュータに送信したりすることができる。しかし、学習済モデルは、上述の使用管理プログラムがインストールされたロボットコントローラ１２に保存され、かつ、ユーザが正当な使用権限を有していないと、復号できず、実質的に使用することができない。
【００４８】
次に、運用サーバ３０について説明する。
【００４９】
図１に示す運用サーバ３０は、ＣＰＵ、ＲＯＭ、ＲＡＭ、補助記憶装置等を備えるコンピュータである。運用サーバ３０は、インターネット等の通信ネットワークを介して、モデル構築サーバ２０及び管理サーバ４０のそれぞれと通信可能に構成されている。
【００５０】
モデル構築サーバ２０は、学習済モデルを構築すると、運用サーバ３０に対して、上述のモデルＩＤと、学習済モデルの所有者を示すユーザ識別情報と、暗号化された学習済モデルを復号するための復号鍵の情報と、を送信する。運用サーバ３０は、受信した情報をデータベースに保存する。
【００５１】
運用サーバ３０は、学習済モデルの使用権限を発行する機能を有する。具体的に説明すると、モデル構築サーバ２０が学習済モデルの構築を完了すると、学習済モデルの作成者であるユーザは、適宜のクライアントコンピュータを利用して運用サーバ３０にアクセスすることで、構築された学習済モデルの使用条件を指定することができる。使用条件は様々であり、例えば、使用を許可するユーザ、使用を許可するロボットコントローラ１２、使用期間の制限、使用回数の制限等を挙げることができる。使用を許可するユーザの指定は、上述のユーザ識別情報を用いて行うことができる。使用条件には、同時に使用できるロボットコントローラ１２の上限数等の他の条件が含まれても良い。
【００５２】
運用サーバ３０は、学習済モデルの作成者であるユーザが指定した使用条件に基づいて、図３のシーケンス番号［６］に示すように、当該モデルの使用権限を示す情報を発行する。この情報は使用権限を一意に識別する情報であるため、使用ＩＤということもできる。運用サーバ３０は、シーケンス番号［７］に示すように、使用権限情報を管理サーバ４０へ送信する。この使用権限情報には、モデルＩＤ、使用が許可されるユーザを示すユーザ識別情報、使用が許可されるロボットコントローラを示すコントローラ識別情報、使用が許可される期間、使用が許可される回数、及び復号鍵等が含まれる。
【００５３】
運用サーバ３０は、使用権限情報を発行する機能のほか、モデル構築サーバ２０において構築された学習済モデルに関し、運用状況を管理する機能を有している。この機能の詳細は後述する。
【００５４】
次に、管理サーバ４０について説明する。
【００５５】
管理サーバ４０は、ＣＰＵ、ＲＯＭ、ＲＡＭ、ＨＤＤ等を備えるコンピュータである。管理サーバ４０は、インターネット等の通信ネットワークを介して、ロボットシステム１０（ロボットコントローラ１２）及び運用サーバ３０のそれぞれと通信可能に構成されている。
【００５６】
管理サーバ４０は、モデル構築サーバ２０において構築された学習済モデルに関し、ロボットシステム１０が当該学習済モデルを使用可能か否かについて、運用サーバ３０から受信した使用権限情報に基づいて判定する。
【００５７】
以下、例を示して具体的に説明する。あるユーザが、ロボットコントローラ１２に保存されている学習済モデルを使ってロボット１１を自律運転させたいと希望したとする。図に示す例では、学習済モデルの使用を希望するユーザと、当該学習済モデルの作成者であるユーザと、が同一であるが、勿論異なっていても良い。
【００５８】
使用を希望するユーザは、ロボットコントローラ１２を適宜操作して、暗号化されている学習済モデルのデータを指定する。すると、シーケンス番号［８］に示すように、ロボットコントローラ１２の使用管理プログラムが自動的に管理サーバ４０にアクセスし、ユーザ識別情報及びコントローラ識別情報と、対象の学習済モデルのモデルＩＤと、を送信して、使用権限があるか否かを問い合わせる。この問合せに用いるユーザ識別情報及びコントローラ識別情報としては、ロボットコントローラ１２に使用管理プログラムをインストールしたときに登録されたものが用いられる。
【００５９】
管理サーバ４０は、ロボットコントローラ１２からの問合せを受信すると、シーケンス番号［９］に示すように、正当な使用権限を有しているか否かを判定する。正当な使用権限を有していると判断した場合は、管理サーバ４０は、シーケンス番号［１０］に示すように、使用を許可する旨をロボットコントローラ１２に送信するとともに、学習済モデルの復号鍵を送信する。復号鍵を受信したロボットコントローラ１２は、シーケンス番号［１１］に示すように、当該復号鍵を用いて学習済モデルのデータを復号し、復号後のデータをロボットコントローラ１２の主記憶装置に展開する。これにより、学習済モデルによるロボット１１の自律運転が可能な状態になる。
【００６０】
このように、本実施形態では、学習済モデルのデータが、ロボットコントローラ１２の主記憶装置に展開される。従って、入出力処理のボトルネックが殆どないので、学習済モデルの推論フェーズでの動作が極めて高速であり、ロボット１１の制御のような実時間性が必要なシステムに好適である。
【００６１】
通常は、ロボットコントローラ１２が使用管理プログラムにより管理サーバ４０から取得する方法以外に、復号鍵を得る方法はない。また、復号鍵による学習済モデルのデータの復号は使用管理プログラムによって内部的に行われるので、ユーザが使用を許可されたとしても、当該ユーザが復号鍵を見ることはできない。従って、ロボットコントローラ１２の補助記憶装置に記憶されている学習済モデルのデータが仮に他のロボットコントローラ１２に複製されても、正当な権限外で学習済モデルを使用することはできない。この結果、学習済モデルの不正コピーによるビジネス機会の喪失、及び、学習済モデルの不適切な転用による信頼性の低下等を防止することができる。
【００６２】
ロボットシステム１０の自律運転のために学習済モデルが指定されたこと、ロボット１１が自律運転を開始／停止したこと等は、ロボットコントローラ１２から管理サーバ４０に対して、シーケンス番号［１２］に示すように随時送信される。この送信は、ロボットコントローラ１２の使用管理プログラムにより自動的に行われる。自律運転を行うロボット１１が作業に失敗した場合は、作業に失敗した旨と、そのときのセンサ情報等を含む失敗ログ（作業ログ情報）が、ロボットコントローラ１２から管理サーバ４０に送信される。ただし、失敗ログの内容は、上述の学習データほど詳細な情報を記述したものではないので、学習データと比較して機密性は高くない。
【００６３】
以下では、ロボットコントローラ１２から管理サーバ４０に送信される、学習済モデルの運用状況を示す情報を、運用情報と呼ぶことがある。運用情報としては、上述したとおり、例えば、学習済モデルが指定された日時、自律運転の開始／停止の日時、作業の成功の日時、作業の失敗の日時及び失敗ログ等を挙げることができる。ただし、運用情報はこれらに限定されず、ロボットコントローラ１２から管理サーバ４０に様々な情報を送信することができる。
【００６４】
ロボットコントローラ１２が生成して送信する運用情報には、運用状況を管理するための各種の情報が含まれる。運用状況を管理するための情報としては、例えば、学習済モデルが用いられたロボットシステム１０において自律運転を行ったときの作業成功率、ロボットシステム１０の自律運転の稼動状況等を挙げることができる。上述した自律運転の開始／停止の日時は、自律運転の稼動状況の情報を示す情報の一例である。
【００６５】
管理サーバ４０は、ロボットコントローラ１２から受信した運用情報を、シーケンス番号［１３］に示すように、ユーザ識別情報及びコントローラ識別情報を対応付けた形で運用サーバ３０に転送する。運用サーバ３０は、シーケンス番号［１４］に示すように、運用情報を保存する。具体的には、運用サーバ３０は、運用情報をモデルＩＤに関連付けた形でデータベースに記憶する。
【００６６】
以上のように構成することで、運用サーバ３０は様々な情報を収集することができる。従って、例えば、学習済モデルの所有者であるユーザは、適宜のクライアントコンピュータを用いて運用サーバ３０にアクセスすることで、当該学習済モデルがどのユーザのどのロボットシステム１０（ロボットコントローラ１２）によって使用されたか等の情報を知ることができる。
【００６７】
学習済モデルの所有者であるユーザは、運用サーバ３０にアクセスして適宜操作することで、学習済モデルについて既に発行した使用権限の内容を変更することもできる。使用権限の変更には、使用権限の取消も含まれる。使用権限が変更されると、運用サーバ３０は使用権限情報を再発行して管理サーバ４０に送信する。管理サーバ４０は、新しい使用権限情報に基づいて、学習済モデルの使用の可否を判定する。
【００６８】
学習済モデルの所有者であるユーザは、運用サーバ３０にアクセスして適宜操作することで、学習済モデルのデータの消去を遠隔で指示することもできる。データ消去の指示は、運用サーバ３０から管理サーバ４０に送信される。それ以後は、管理サーバ４０は、該当の学習済モデルの使用可否に関する問合せをロボットコントローラ１２から受信した場合には、使用不可である旨とともに、学習済モデルのデータを削除する指示をロボットコントローラ１２に送信する。これを受信したロボットコントローラ１２の使用管理プログラムは、該当の学習済モデルのデータが保存されたファイルを、補助記憶装置から自動的に削除する。これにより、セキュリティ性を大幅に高めることができる。
【００６９】
次に、運用サーバ３０が有するモニタリング機能について説明する。
【００７０】
具体的には、運用サーバ３０は、運用状況を管理するための各種の情報を、図３のシーケンス番号［１５］に示すように出力する。運用情報を管理するための情報は、ロボットコントローラ１２が作成し、ロボットコントローラ１２から管理サーバ４０を介して運用サーバ３０に送信される。
【００７１】
運用状況を管理するための情報としては、上述したとおり、例えば、学習済モデルが用いられたロボットシステム１０において自律運転を行ったときの作業成功率、ロボットシステム１０の自律運転の稼動状況等を挙げることができる。また、運用サーバ３０は、ロボットシステム１０の自律運転が失敗したときの失敗ログを出力することもできる。
【００７２】
特別な権限を有するユーザ（例えば、ロボットコントローラ１２のメーカの担当者）は、適宜のクライアントコンピュータを利用して運用サーバ３０に接続することで、上記の情報を閲覧することができる。この情報により、例えば、ある学習済モデルのパフォーマンスが以前と比較して良くなったり悪くなったりしている場合に、その変化に気付くことができる。従って、学習済モデルを用いたロボットシステム１０のユーザに対して、学習済モデルの運用及び改善等に関して有用な助言を容易に行うことができる。特に、ロボットコントローラ１２のメーカの担当者は、学習済モデルの再学習の必要性について、閲覧した情報に基づいて検討し、ロボットシステム１０のユーザに助言することができる。上記の情報は、当該学習済モデルの所有者であるユーザ、又は、学習済モデルの使用を許可されたユーザが閲覧できるようにしても良い。
【００７３】
上記のように構成された機械学習モデル運用管理システム１では、学習済モデルの構築は、運用サーバ３０及び管理サーバ４０とは物理的に異なるサーバであるモデル構築サーバ２０において行われる。学習済モデルの構築には学習データが必要になるが、学習データはセンサによって詳細に状況を記録したものであり、重要性及び機密性が高い情報が含まれている。学習済モデルのデータも同様に、セキュリティ上の価値が高い情報である。この点、モデル構築サーバ２０を、ロボットシステム１０のメーカが運営するサーバ、又は、学習済モデルを構築したいユーザ自身が運営するサーバとすることで、重要な情報が外部に流出する不安を和らげ、ユーザに安心感を与えることができる。一方、モデルＩＤ及び稼動状況の情報等、セキュリティ上の価値が相対的に低い情報は、モデル構築サーバ２０とは異なる場所の運用サーバ３０及び管理サーバ４０において取り扱うことで、利便性を高めることができる。また、運用サーバ３０及び管理サーバ４０について、例えばクラウドコンピューティングサービスを利用して構築することで、全体のコストを低減することができる。
【００７４】
ところで、学習データは、ロボット１１を実際に動作させ、当該ロボット１１及び周辺の状態をセンサによって検出することで得られる。従って、当該学習データに基づいて構築された学習済モデルは、その時点でのロボット１１のアクチュエータ及びセンサの性能を反映したものである。一方、長年の利用に伴って、アクチュエータ及びセンサの性能は多少変化する。従って、ある時点では良好な性能を示していた学習済モデルが、時間の経過によって当初の性能を達成できなくなる場合も考えられる。また、ロボット１１で行うべき作業が変化することも考えられる。従って、学習済モデルを用いたロボットシステム１０については、運用開始後も状況を適宜監視して必要な措置を行うことが、良好なパフォーマンスを継続的に発揮するために必要である。
【００７５】
この点、本実施形態では、例えばロボットシステム１０のメーカのサービス担当者が運用サーバ３０にアクセスすることで、学習済モデルを利用した自律運転によるロボット１１の作業成功率、稼動状況、失敗ログ等を閲覧することができる。従って、ロボットシステム１０のメーカは、学習済モデルの再学習及びそのタイミング、エンドエフェクタの交換、アクチュエータ及びセンサの交換等について、ユーザに対して適切に提案することができる。これにより、ユーザによるロボットシステム１０の運用が容易になり、また、機械学習に関する負担を軽減することができる。
【００７６】
運用サーバ３０及び管理サーバ４０における使用権限及び情報等の管理は、学習済モデル毎（言い換えれば、モデルＩＤ毎）に行うことができる。従って、ユーザが複数の学習済モデルを構築した場合に、それぞれを適切に管理することができる。複数の学習済モデルを構築してストックしておけば、例えば、ロボット１１に行わせたい作業に良く似た作業についてユーザが過去に学習済モデルを構築していた場合に、その学習済モデルを流用することができる。この場合、過去に作業を行った実績のある学習済モデルを用いることで、ユーザが安心してロボットシステム１０を運用することができる。また、学習データを準備する手間を軽減できる。
【００７７】
学習済モデルのモデルＩＤは、所有者を示すユーザ識別情報と対応付けて、管理サーバ４０のデータベースに記憶される。これにより、学習済モデルの所有者が誰かを把握することができる。また、モデルＩＤとユーザ識別情報との対応付けを変更することで、ユーザからユーザへ、学習済モデルの所有権を移転することができる。
【００７８】
このように、機械学習モデル運用管理システム１では、学習済モデルの所有権の移転をデータ上で実現することができる。従って、ユーザは、自身が作成した学習済モデルを他のユーザに譲渡する際に、収益の機会を得ることができる。このように、本実施形態の機械学習モデル運用管理システム１は、ＡＩコンテンツビジネスの基盤として活用するのに好適である。
【００７９】
管理サーバ４０において保存される学習済モデルの稼動情報は、当該学習済モデルについてロボットシステム１０での運用が開始された日時、及び、運用が終了した日時を含むようにすることができる。この情報は、学習済モデルの作成者であるユーザが、他のユーザに従量課金制（例えば、時間制）で使用を許可する場合の費用請求の根拠として用いることができる。使った分だけ支払う従量課金ビジネスモデルは、許可に基づいて使用する側の納得が得られ易い利点がある。本実施形態の機械学習モデル運用管理システム１は、このような従量課金に好適に適用できるので、ＡＩコンテンツを用いたユーザの収益の幅を良好に広げることができる。
【００８０】
以上に説明したように、本実施形態の機械学習モデル運用管理システム１は、モデル構築サーバ２０と、運用サーバ３０と、管理サーバ４０と、を備える。モデル構築サーバ２０は、ロボット１１の動作を機械学習モデルに学習させるためのデータである学習用データを受信して、当該学習用データに基づいて学習済モデルを構築する。運用サーバ３０は、ロボットコントローラ１２に保存された学習済モデルがロボットの動作を決定するために（推論フェーズで）動作する場合に、ロボットコントローラ１２が生成する運用情報を受信する。ロボットコントローラ１２は、自身に保存された学習済モデルに対する使用権限を有しているか否かを、当該学習済モデルを一意に識別するモデルＩＤを送信して問い合わせ、使用権限を有していた場合に当該学習済モデルを使用可能な状態とする。管理サーバ４０は、ロボットコントローラ１２と通信可能である。管理サーバ４０は、ロボットコントローラ１２が機械学習済モデルに対する使用権限を有するか否かを判定し、使用権限を有するロボットコントローラ１２に対して機械学習済モデルの使用を許可する。運用サーバ３０は、運用情報を、モデルＩＤと関連付けて記憶する。
【００８１】
これにより、モデル構築サーバ２０をユーザが信頼できる場所で運用することで、ユーザが安心して学習用データをモデル構築サーバ２０に送信して機械学習済モデルを構築させることができる。一方、運用サーバ３０においては機械学習済モデルのデータを保存せず、当該モデルを一意に特定する情報を用いるだけである。また、運用サーバ３０に記憶させるためにロボットコントローラ１２から送信される運用情報に、機密性が高い情報を含めないようにすることで、運用サーバ３０をセキュリティ上厳重な場所に配置する必要性が小さくなる。この結果、システムの構築コスト及びランニングコストを低減することができる。
【００８２】
また、本実施形態の機械学習モデル運用管理システム１において、運用サーバ３０は、学習済モデルにより運用したロボット１１について、運用状況を管理するための情報を出力可能である。
【００８３】
これにより、例えば、ロボット１１が自律運転を行ったときの作業成功率等を把握できるので、効果的なモニタリングを実現することができる。また、例えば時間の経過による作業成功率等の変化を見ることで、学習済モデルの運用を改善すべき状況に容易に気付くことができる。
【００８４】
また、本実施形態の機械学習モデル運用管理システム１においては、ロボットコントローラ１２が生成する運用情報には、機械学習済モデルにより運用したロボットの作業ログ情報が含まれる。運用サーバ３０は、前記作業ログ情報（例えば、作業に失敗したときの失敗ログ）を出力可能である。
【００８５】
これにより、特定の状況を作業ログ情報によって分析できるので、学習済モデルの運用の改善のための具体的な方法を容易に検討することができる。
【００８６】
また、本実施形態の機械学習モデル運用管理システム１において、ロボットコントローラ１２は、主記憶装置と、補助記憶装置と、を備える。ロボットコントローラ１２は、補助記憶装置に保存された学習済モデルに対する使用権限を有しているかを問い合わせた結果、使用権限を有していた場合に、学習済モデルを主記憶装置に展開する。ロボットコントローラ１２は、主記憶装置に展開された学習済モデルの出力に基づいてロボット１１を動作させる。
【００８７】
これにより、学習済モデルの推論フェーズでの動作が極めて高速に行われるので、実時間性が要求されるロボット１１の制御に好適である。
【００８８】
また、本実施形態においては、以下に示す方法で、学習済モデルの運用管理が行われている。即ち、この運用管理方法は、モデル構築工程と、準備工程と、運用情報受信工程と、を含む。モデル構築工程では、モデル構築サーバ２０が、ロボット１１の動作を機械学習モデルに学習させるためのデータである学習用データを受信して、当該学習用データに基づいて学習済モデルを構築する。準備工程では、ロボットコントローラ１２が、自身に保存された学習済モデルに対する使用権限を有しているか否かを、当該学習済モデルを一意に識別する情報であるモデルＩＤを送信して問い合わせ、使用権限を有していた場合に学習済モデルを使用可能な状態とする。運用情報受信工程では、ロボットコントローラ１２に保存された学習済モデルがロボットの動作を決定するために動作する場合に、ロボットコントローラ１２が生成する運用情報を運用サーバ３０が受信する。運用情報受信工程で、運用サーバ３０は、運用情報を、学習済モデルを一意に特定する情報（モデルＩＤ）と関連付けて記憶する。
【００８９】
これにより、モデル構築サーバ２０をユーザが信頼できる場所で運用することで、ユーザが安心して学習用データをモデル構築サーバ２０に送信して機械学習済モデルを構築させることができる。一方、運用サーバ３０においては機械学習済モデルのデータを保存せず、当該モデルを一意に特定する情報を用いるだけである。また、運用サーバ３０に記憶させるためにロボットコントローラ１２から送信される運用情報に、機密性が高い情報を含めないようにすることで、運用サーバ３０をセキュリティ上厳重な場所に配置する必要性が小さくなる。この結果、システムの構築コスト及びランニングコストを低減することができる。
【００９０】
以上に本発明の好適な実施の形態を説明したが、上記の構成は例えば以下のように変更することができる。
【００９１】
学習済モデルの所有者であるユーザが、使用権限の設定及び変更を、運用サーバ３０の代わりに管理サーバ４０に対して行うようにすることもできる。
【００９２】
ロボットコントローラ１２は、運用情報を、運用サーバ３０に直接送信しても良い。
【００９３】
ロボットコントローラ１２が機械学習済モデルに対する使用権限を有するか否かの判定は、管理サーバ４０の代わりに運用サーバ３０が行っても良い。例えば、運用サーバ３０がロボットコントローラ１２と直接的に通信して、ロボットコントローラ１２に対して機械学習済モデルの使用を許可することが考えられる。使用権限の判定及び使用の許可は、管理サーバ４０及び運用サーバ３０の両方が行うように構成しても良い。
【００９４】
運用サーバ３０と管理サーバ４０とを統合し、１つのサーバとすることもできる。
【００９５】
上記の実施形態において、ロボットコントローラ１２が管理サーバ４０に使用権限の有無を問い合わせる場合に、モデルＩＤが用いられている。しかし、学習済モデルを一意に識別するための情報として、モデル構築サーバ２０が付与するモデルＩＤとは異なるものが用いられても良い。例えば、モデルＩＤの代わりに、学習済データを保存したファイルのハッシュ値を管理サーバ４０に送信して、管理サーバ４０に使用権限の有無を問い合わせることもできる。ハッシュ値は、公知のアルゴリズムを用いて計算することができる。ハッシュ値は、運用サーバ３０において、学習済モデルを一意に特定するための情報として用いることもできる。
【００９６】
ロボットコントローラ１２から管理サーバ４０への作業ログ情報の送信は、ロボット１１が作業に失敗した場合に限らず、成功した場合に行われても良い。
【００９７】
使用権限情報は、１つの使用権限情報（使用ＩＤ）毎に、学習済モデルの１回だけの使用を認めるように設定することができる。この場合、ユーザが使用したい回数分のチケットを購入するようなビジネスモデルを実現できる。
【００９８】
学習済モデルは、状態情報と操作情報との関係を推定する代わりに、状態情報とロボット１１への制御信号との関係を推定しても良い。
【符号の説明】
【００９９】
１  機械学習モデル運用管理システム
１１  ロボット
１２  ロボットコントローラ
２０  モデル構築サーバ
３０  運用サーバ
４０  管理サーバ
【図１】
2020138296.tif 000003
【図２】
2020138296.tif 000004
【図３】
2020138296.tif 000005