以下の説明では、「インターフェース装置」は、一つ以上のインターフェースデバイスでよい。当該一つ以上のインターフェースデバイスは、下記のうちの少なくとも一つでよい。
・一つ以上のI/O(Input/Output)インターフェースデバイス。I/O(Input/Output)インターフェースデバイスは、I/Oデバイスと遠隔の表示用計算機とのうちの少なくとも一つに対するインターフェースデバイスである。表示用計算機に対するI/Oインターフェースデバイスは、通信インターフェースデバイスでよい。少なくとも1つのI/Oデバイスは、ユーザインターフェースデバイス、例えば、キーボード及びポインティングデバイスのような入力デバイスと、表示デバイスのような出力デバイスとのうちのいずれでもよい。
・一つ以上の通信インターフェースデバイス。一つ以上の通信インターフェースデバイスは、一つ以上の同種の通信インターフェースデバイス(例えば一つ以上のNIC(Network Interface Card))であってもよいし二つ以上の異種の通信インターフェースデバイス(例えばNICとHBA(Host Bus Adapter))であってもよい。
また、以下の説明では、「メモリ」は、1以上のメモリデバイスであり、典型的には主記憶デバイスでよい。メモリにおける少なくとも1つのメモリデバイスは、揮発性メモリデバイスであってもよいし不揮発性メモリデバイスであってもよい。
また、以下の説明では、「永続記憶装置」は、1以上の永続記憶デバイスである。永続記憶デバイスは、典型的には、不揮発性の記憶デバイス(例えば補助記憶デバイス)であり、具体的には、例えば、Hard Disk Drive(HDD)又はSolid State Drive(SSD)である。
また、以下の説明では、「プロセッサ」は、1以上のプロセッサデバイスである。少なくとも1つのプロセッサデバイスは、典型的には、Central Processing Unit(CPU)のようなマイクロプロセッサデバイスであるが、Graphics Processing Unit(GPU)のような他種のプロセッサデバイスでもよい。少なくとも1つのプロセッサデバイスは、シングルコアでもよいしマルチコアでもよい。少なくとも1つのプロセッサデバイスは、プロセッサコアでもよい。少なくとも1つのプロセッサデバイスは、処理の一部又は全部を行うハードウェア回路(例えばField-Programmable Gate Array(FPGA)又はApplication Specific Integrated Circuit(ASIC))といった広義のプロセッサデバイスでもよい。
また、以下の説明では、「xxxテーブル」といった表現にて、入力に対して出力が得られる情報を説明することがあるが、当該情報は、どのような構造のデータでもよい。従って、「xxxテーブル」を「xxx情報」と言うことができる。また、以下の説明において、各テーブルの構成は一例であり、1つのテーブルは、2つ以上のテーブルに分割されてもよいし、2つ以上のテーブルの全部又は一部が1つのテーブルであってもよい。
また、以下の説明では、「kkk部」の表現にて機能を説明することがあるが、機能は、1以上のコンピュータプログラムがプロセッサによって実行されることで実現されてもよいし、1以上のハードウェア回路(例えばFPGA又はASIC)によって実現されてもよい。プログラムがプロセッサによって実行されることで機能が実現される場合、定められた処理が、適宜に記憶装置及び/又はインターフェース装置等を用いながら行われるため、機能はプロセッサの少なくとも一部とされてもよい。機能を主語として説明された処理は、プロセッサ或いはそのプロセッサを有する装置が行う処理としてもよい。プログラムは、プログラムソースからインストールされてもよい。プログラムソースは、例えば、プログラム配布計算機又は計算機が読み取り可能な記録媒体(例えば非一時的な記録媒体)であってもよい。各機能の説明は一例であり、複数の機能が1つの機能にまとめられたり、1つの機能が複数の機能に分割されたりしてもよい。
また、以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサによって実行されることで、定められた処理を、適宜に記憶装置及び/又はインターフェース装置等を用いながら行うため、処理の主語が、プロセッサ(或いは、そのプロセッサを有するコントローラのようなデバイス)とされてもよい。プログラムは、プログラムソースから計算機のような装置にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバ又は計算機が読み取り可能な(例えば非一時的な)記録媒体であってもよい。また、以下の説明において、2つ以上のプログラムが1つのプログラムとして実現されてもよいし、1つのプログラムが2つ以上のプログラムとして実現されてもよい。
また、以下の説明では、「モデル採否判断支援システム」は、1以上の計算機で構成されてもよいし、複数の計算リソースを含んだリソースプール(例えばクラウド基盤)上に実現されてもよい。例えば、計算機が表示デバイスを有していて計算機が自分の表示デバイスに情報を表示する場合、当該計算機がモデル採否判断支援システムでよい。「情報を表示する」ことは、モデル採否判断支援システムが有する表示デバイスに当該情報を表示することであってもよいし、モデル採否判断支援システムが遠隔の表示用計算機に情報を送信することであってもよい(後者の場合は表示用計算機によって当該情報が表示される)。
以下、本発明を実施するための形態である幾つかの実施例を図面に従い説明し、最後に、それらの実施例を総括する。なお以降で示す実施例ならびに図面は、本発明を実施するための形態の一例であって、同様の処理が可能な他の構成及び形態への適用を制限するものではない。
実施例1では、あるモータの軸受け破損の故障予兆診断を行うアプリを、アプリ開発者が開発するケースにおいて、刻々と改善されるモデルの採否決定を実施するケースを例に取る。
アプリは、モデル開発者が開発したモデルをApplication Programming Interface(API)等を用いて呼び出し、診断を実施する。ただし、軸受け破損のみを高い精度で予兆診断できるモデルが存在せず、アプリ開発者は、精度は劣るがコイル破損等、軸受け破損以外の故障も診断可能なモデルをアプリから使用する。他方、モデルを開発したモデル開発者は、複数種類の故障予兆診断の予測精度の平均値の最大化を重要な指標と考え、モデルを改善する。
このような場合、モデル開発者とアプリ開発者が注力する指標が異なるため、あるバージョンのモデルではアプリ開発者の期待した結果を得られるが、モデル開発者が注力する指標が改善された新しいモデルでは、必ずしもアプリ開発者が期待した結果を得られない。そのため、アプリ開発者は刻々と改善されるモデルに対し、都度テスト等を実施する。
実施例1では、モデル採否判断支援システムが、アプリ開発者から、マーケットプレイスシステムに対して、改善されたモデルに関して、アプリ開発者が求めるデータセットと、データセットのフィルタと、モデルの採否判断に用いる指標との指定を受け付け、当該指定に従い、改善されたモデルの評価を実施する。当該評価の結果を見て、アプリ開発者は、採否判定を行う。つまり、実施例1に係るモデル採否判断支援システムは、モデル開発者が提供するデータセットの内容をアプリ開発者に非開示の状態で、アプリ開発者が所望の評価結果を得ることを可能にする。
図2A及び図2Bは、実施例1に係るシステム全体の構成例を示した図である。以下の説明では、システムの種々の構成要素について、当該構成要素の数は「1か複数」であるが、適宜、説明を簡単にするために、当該構成要素は単数として扱われる。また、以下に説明する各計算機は、インターフェース装置、記憶装置及びそれらに接続されたプロセッサを有する。各計算機は、インターフェース装置経由で通信する。各計算機において、記憶装置が、プログラムや情報(例えばテーブルやファイル)を格納する。各計算機において、プロセッサが、プログラムを実行する。
モデル採否支援システムは、1か複数のマーケットプレイスシステム2000と、1か複数のデータ管理システム3000と、1か複数のアプリケーション運用システム4000と、1か複数のモデル運用システム5000と、1か複数の評価システム6000とを含む。
マーケットプレイスシステム2000は、モデルの管理を担い、アプリ開発者1000やモデル開発者1020の要求を受け付ける。データ管理システム3000は、モデル管理に必要なデータを管理する。アプリケーション運用システム4000は、アプリ開発者1000が開発したアプリを稼働させる。モデル運用システム5000は、モデル開発者1020が開発したモデルを運用する。評価システム6000は、モデルの評価を実施する。
1か複数のアプリ開発者1000は、1か複数のアプリ開発用計算機1010を用いてアプリの開発を行い、アプリが利用するモデルの探索や、モデルの詳細情報の収集や、モデルの評価を実施する。アプリ開発用計算機1010は、1か複数のネットワーク1100を介してマーケットプレイスシステム2000と通信する。
1か複数のモデル開発者1020は、1か複数のモデル開発用計算機1030を用いてモデルの開発を行い、マーケットプレイスシステム2000に対するモデルの登録や、モデルの評価を実施する。モデル開発用計算機1030は、1か複数のネットワーク1100を介してマーケットプレイスシステム2000と通信する。
なお、アプリ開発者1000とモデル開発者1020は、マーケットプレイスシステム2000に対してモデルの登録や評価等の実施を要求できるものであればよく、人間であっても、プログラムであってもよい。
マーケットプレイスシステム2000は、1か複数のIF(Interface)計算機2100と、1か複数のモデル管理計算機2200を含む。
IF計算機2100は、モデルIFプログラムP2000を実行する。モデルIFプログラムP2000は、アプリ開発用計算機1010やモデル開発用計算機1030を介してアプリ開発者1000やモデル開発者1020からの要求を受信し、当該要求に従う処理を実行する。
モデル管理計算機2200は、モデル管理プログラムP2100を実行する。モデル管理プログラムP2100は、IFプログラムP2000から受信した要求に応じて、モデルを管理する。
データ管理システム3000は、1か複数のデータ管理計算機3100を備える。
データ管理計算機3100は、データ管理(及び他の計算機に対するデータの入出力を行う)データ管理プログラムP3000と、モデルの情報を含むモデル管理テーブルT3000と、モデルを評価する際の入力となるデータセットを持つ情報を含むデータセット管理テーブルT3100と、モデルとデータセットを入力としてモデルの評価を行う評価プログラムの情報を含む評価プログラム管理テーブルT3200と、モデル評価に用いるデータセットの加工方法等が指定されたフィルタの情報を含むフィルタ管理テーブルT3300と、評価設定に関する情報を含む評価設定管理テーブルT3400と、モデル評価処理の実行状態の情報を含む評価ジョブ管理テーブルT3500と、モデル評価の結果情報を含む評価結果管理テーブルT3600と、モデル評価処理を実行する計算機の情報を含む計算機管理テーブルT3700と、アプリ開発者1000やモデル開発者1020の情報を含むユーザ管理テーブルT3800と、複数のユーザの集合であるテナントの情報を含むテナント管理テーブルT3900と、アプリから利用可能なモデルの情報を含む運用管理テーブルT4100と、モデルの実体であるモデルファイルF3000と、データセットの実体であるデータセットファイルF3200と、評価プログラムの実体である評価プログラムファイルF3300と、デプロイされたモデルの運用に用いられるモデル実行プログラムファイルF3400とを備える。
データ管理システム3000が備えるすべてのデータやファイルの内容の送受信は、データ管理計算機3100が有するデータ管理プログラムP3000を介して行われる。データ管理プログラムP3000の一例としてデータベースマネジメントシステム(DBMS)が挙げられるが、データ管理プログラムP3000は、データやファイルを管理することができれば、DBMS以外でもよい。また、データやファイルの永続化は、リレーショナルデータベースやNoSQL等のデータベースが用いられてもよいし、ファイルシステムが用いられてもよいし、データベース及びファイルシステム以外が用いられてもよい。
運用管理テーブルT4100と、モデル実行プログラムファイルF3400については、後述する。
なお、IFプログラムはP2000モデル一覧画面G1000(図18参照)や、モデル詳細画面G2000(図19A~図19C参照)や、モデル評価設定画面G3000(図20A~図20C参照)や、モデル登録画面G4000(図21A~図21C参照)を、例えばアプリ開発用計算機1010やモデル開発用計算機1030が備えるブラウザ等を介して提供してよい。
アプリケーション運用システム4000は、1か複数のアプリ実行計算機4200を備える。アプリ実行計算機4200は、1か複数の開発されたアプリP4100を備える。アプリP4100は、アプリ開発者1000によって、アプリケーション運用システム4000へデプロイされ、ネットワーク1100を介して、モデル運用システム5000が提供するエンドポイントへAPIを用いてアクセスし、モデルサービスP5100が提供する、推論等のモデルの機能を利用する。なお、アプリ実行計算機4200は、各アプリの稼働情報を含むログを記録したり、ログを他の計算機へ送信したりしてもよい。
モデル運用システム5000は、1か複数のモデル運用計算機5100と、1か複数のモデル実行計算機5200とを備える。モデル運用計算機5100は、実行中のモデルを管理するモデル運用プログラムP5000と、モデルへのAPIを介したアクセスを制御する経路制御プログラムP5050とを備える。モデル実行計算機5200は、1か複数の開発されたモデルの機能を提供するモデルサービスP5100を備える。モデル運用計算機5100とモデル実行計算機P5100は、各モデルの稼働情報を含むログを記録したり、ログを他の計算機へ送信したりしてもよい。
モデル運用システムについては後述する。
評価システム6000は、1か複数の評価制御計算機6100と、1か複数の評価実行計算機6200を備える。評価制御計算機6100は、モデルの評価処理を制御する評価制御プログラムP6000を備える。評価実行計算機6200は、評価処理を実行する評価実行プログラムP6100を備える。なお、評価制御計算機6100と、評価実行計算機6200は、各評価処理の経過等の情報を含むログを記録したり、ログを他の計算機へ送信したりしてもよい。
図2A及び図2Bに例示の各計算機は、1か複数のネットワーク1100によって接続される。ネットワーク1100の一例はインターネットであり、Virtual Private Network(VPN)であってもよいし、その他のネットワークであってもよい。
図3は、各計算機に共通する要素の構成例を示した図である。
計算機1910は、メモリ1920と、CPU1930と、入出力IF1940と、永続記憶装置1950と、NW-IF1960と、GPU1970とを備え、これらは内部バス1980で接続されている。
プログラムは永続記憶装置1950に格納されており、メモリ1920にロードされ、CPU1930で実行される。なお、本願のシステムが有するすべての計算機1910のメモリにはOperating System(OS)がロードされ、CPU1930で実行される。
すべての計算機は、物理的な計算機であっても、物理的な計算機上で動作する仮想的な計算機であってもよい。また、各計算機の記憶装置は必須要素ではなく、例えば外部ストレージ装置でもよく、ストレージ装置の機能を論理的に提供するストレージサービスであってもよい。
各計算機が備えるNW-IFの一例としては、Network Interface Card(NIC)が挙げられるが、これ以外であってもよい。
また、ディスプレイ等の出力装置やキーボード・マウスといった入出力IFを備えてもよいし、Secure Shell(SSH)といった手段によりネットワーク経由で当該計算機が遠隔管理される場合には、入力IFは必須の要素ではない。なお、GPU1970は、必須要素ではない。
上記の各計算機に含まれるプログラムとテーブルは、各計算機が備える記憶装置に含まれていてもよい。加えて、すべてのプログラムは各計算機が備えるCPUによって実行される。
なお、各プログラムは、前述のように異なる複数の計算機で実行されてもよいし、1つの計算機で実行されてもよい。また、各プログラムは、1つの計算機ですべてのステップが実行されてもよいし、ステップ毎に異なる計算機で実行されてもよい。
また、図3に例示の構成要素以外の構成要素や、構成要素を接続する配線等が計算機に含まれてもよい。
図4は、モデル管理テーブルT3000の構成例を示した図である。
モデル管理テーブルT3000における各レコードは、マーケットプレイスシステム2000に登録された各モデルの管理に必要なモデル情報を格納する。各レコードは、モデルの各バージョンのモデル情報を記録する。なお、モデル管理テーブルT3000に記載されるのは同じ目的を持った同種のモデルのみでなく、例えば図の構成例のように、モータ故障予兆診断に加えて、不審物検出のように、異なる種別のモデルの情報が記載されてもよい。
モデル管理テーブルT3000において、モデル毎にレコードが存在する。以下、1つのモデルを例に取る(図4の説明において「注目モデル」)。
注目モデルに対応したレコードが格納するモデル情報は、例えば、モデル情報識別子T3005と、モデル名T3010と、バージョン情報T3015と、モデルファイルT3020と、評価時要求スペックT3025と、運用時要求スペックT3030と、開示情報T3050と、課金情報T3040と、ユーザ情報T3045と、テナント情報T3050と、概要T3055と、API仕様T3060と、画像情報T3065と、モデルグループ情報T3070と、データセット識別子T3075と、モデル運用プログラムファイルT3080とを含む。
モデル情報識別子T3005は、注目モデルのモデル情報を一意に特定するための識別子を示す。当該識別子は、データ管理プログラムP3000によって付与された値(例えば連番)でよい。
モデル名T3010は、注目モデルの名称を示す。当該名称は、例えば、モデル登録画面G4000を介してモデル開発者1020によって入力された文字列でよく、モデル一覧画面G1000や、モデル詳細G2000で表示されてよい。
バージョン情報T3015は、注目モデルのバージョンを識別する値を示す。なお、同じモデルであることは、例えばモデルグループ情報T3070の値が同値である等から判断されてもよい。バージョン情報T3015の値は、例えば数値で表現してもよく、モデルのバージョンを一意に特定できれば、それ以外でもよい。
モデルファイルT3020は、注目モデルの実体としてのファイル(例えば、ディープラーニングのネットワーク情報や重みの情報を含むファイル)のファイル名を示す。当該ファイル名は、例えば、モデル登録画面G4000を介して指定されたファイル名でもよいし、モデルファイルを受信したデータ管理プログラムP3000によって一意に付与されたファイル名でもよい。
評価時要求スペックT3025は、注目モデルを評価する際に評価実行計算機6200に要求されるCPU1930やメモリ1920の性能を示す。当該性能は、例えば、評価制御プログラムP6000によってどの評価実行計算機P6200で評価を実行するかの選択に使用されてよい。
運用時要求スペックT3030は、注目モデルをモデル運用システム5000のモデル実行計算機5200で運用する際にモデル実行計算機5200に要求されるCPU1930やメモリ1920の性能を示す。当該性能は、例えば、モデル運用プログラムP5000によってどのモデル実行計算機5200でモデルを実行するかの選択に使用されてよい。
開示情報T3050は、注目モデルのモデル情報が開示される範囲(ユーザやテナント等)を制御する値を示す。例えば、モデル一覧画面G1000において、値が“All”であればすべてのユーザに開示したり、値が“user:1”の場合は、画面にアクセスしたユーザの識別子が“1”の場合のみ開示し、他のユーザには非開示にしたりする等、どのユーザに注目モデルを開示するかが制御されてもよい。なお、開示のみではなく、非開示のユーザを指定するため、“not user:1”など、否定を表現する“not”等の値が含まれてもよい。
課金情報T3040は、注目モデルを評価したり運用したりする際に用いられる値を含む。当該値は、評価や運用時を要求したユーザに対して課金される額等でよい。値について、例えば、評価を要求したユーザに対して1回の評価あたり“$0.001”要求する場合、“$0.001/Req”等と表現されてよい。
ユーザ情報T3045は、モデル登録画面G4000等を介して注目モデルの各バージョンをマーケットプレイスシステム2000に対して登録したユーザの識別子を示す。当該識別子は、例えば、ユーザ管理テーブルT3800が備えるユーザ識別子T3810の値が用いられてよい。
テナント情報T3050は、モデル登録画面G4000等を介して、注目モデルの各バージョンをマーケットプレイスシステム2000に対して登録したユーザが所属するテナントの識別子を示す。当該識別子は、例えば、テナント管理テーブルT3900が備えるテナント識別子T3810の値でよい。
概要T3055は、例えば、モデル詳細画面G2000等で、注目モデルの説明文を表示する際に使用される情報を示す。当該情報は、モデル登録画面G4000でモデル開発者1020が入力した情報(例えば、テキスト形式やMarkdown形式の情報)でよい。
API仕様T3060は、注目モデルをアプリP4100から利用する際のAPI仕様を示した情報でよい。当該情報は、例えば、モデル詳細画面G2000等で表示されてよいし、モデル登録画面G4000を介してモデル開発者1020から入力されてもよい。当該情報は、例えば、テキスト形式、Markdown形式、HyperText Markup Language(HTML)形式、JavaScript(登録商標) Object Notation(JSON)形式、及び、YAML Ain't a Markup Language(YAML)形式のいずれの形式の情報でもよい。
画像情報T3065は、例えば、モデル詳細画面G2000等で表示される注目モデルの画像を示す情報である。当該情報は、例えば、モデル登録画面G4000でモデル開発者1020から指定された情報でよい。
モデルグループ情報T3070は、注目モデルについてバージョンが異なるが同じモデルのグループに属することを特定するための識別子を示す。当該識別子は、例えば、最初に登録されたバージョンのモデル情報を含むレコードのモデル識別子T3005の値でよい。
データセット識別子T3075は、評価システム6000で実施される注目モデルの評価で使用されるデータセットを特定する識別子でよい。当該識別子は、例えば、モデル登録画面G4000で指定されたデータセットを管理するデータセット管理テーブルT3100が有するデータセット識別子T3110の値でよい。
モデル運用プログラムファイルT3080については、後述する。
図5は、データセット管理テーブルT3100の構成例を示した図である。
データセット管理テーブルT3100における各レコードは、マーケットプレイスシステム2000に登録された各モデルの評価に必要なデータセットを管理するデータセット情報を格納する。
データセット管理テーブルT3100において、データセット毎にレコードが存在する。以下、1つのデータセットを例に取る(図5の説明において「注目データセット」)。
注目データセットに対応したレコードが格納するデータセット情報は、例えば、データセット識別子T3110と、データセット名称T3120と、開示情報T3140と、課金情報T3150と、ユーザ情報T3160と、テナント情報T3170と、ファイル名T3180とを含む。
データセット情報識別子T110は、注目データセットのデータセット情報を一意に特定するための識別子を示す。当該識別子は、データ管理プログラムP3000によって付与された値(例えば連番)でよい。
データセット名称T3120は、注目データセットの名称を示す。当該名称は、例えばモデル登録画面G4000でモデル開発者1020から指定された名称でよい。
開示情報T3140は、注目データセットのデータセット情報が開示される範囲(ユーザやテナント等)を制御する値を示す。当該値は、開示情報T3050の値と同様でよい。
課金情報T3150は、注目データセットを用いてモデルを評価する際に各ユーザに対して課金される額等を表現した値を含む。当該値は、例えば、評価を要求したユーザに対して1回あたり“$0.001”を要求する場合、“$0.001/Test”等と表現されてよい。
ユーザ情報T3160は、モデル登録画面G4000等を介して注目データセットを登録したユーザの識別子を示す。当該識別子は、例えば、ユーザ管理テーブルT3800が備えるユーザ識別子T3810の値でよい。
テナント情報T3170は、モデル登録画面G4000等を介して注目データセットを登録したユーザが属するテナントの識別子を示す。当該値は、例えば、テナント管理テーブルT3900が備えるテナント識別子T3910の値でよい。
ファイル名T3180は、モデル登録画面G4000等を介して登録された注目データセットのファイルのファイル名を示す。当該ファイル名は、例えば、モデル登録画面G4000でユーザから指定されたファイル名でもよいし、データ管理プログラムP3000によって自動的に付与された値でもよい。
図6は、評価プログラム管理テーブルT3200の構成例を示した図である。
評価プログラム管理テーブルT3200における各レコードは、マーケットプレイスシステム2000に登録された各モデルの評価に必要な評価プログラムを管理する評価プログラム情報を格納する。
評価プログラムテーブルT3200において、評価プログラム毎にレコードが存在する。以下、1つの評価プログラムを例に取る(図6の説明において「注目評価プログラム」)。
注目評価プログラムに対応したレコードが格納する評価プログラム情報は、例えば、評価プログラム識別子T3210と、評価プログラムファイルT3220と、開示情報T3240と、課金情報T3250と、ユーザ情報T3260と、テナント情報T3270とを含む。
評価プログラム識別子T3210は、注目評価プログラムの評価プログラム情報を一意に特定するための識別子を示す。当該識別子は、データ管理プログラムP3000によって付与された値(例えば連番)でよい。
評価プログラムファイルT3220は、注目評価プログラムのファイルのファイル名を示す。当該ファイル名は、例えば、モデル登録画面G4000を介してユーザから指定されたファイル名でもよいし、データ管理プログラムP3000によって自動的に付与された値でもよい。
開示情報T3240は、注目評価プログラムの評価プログラム情報が開示される範囲を制御する値を示す。当該値は、開示情報T3050の値と同じでよい。
課金情報T3250は、注目評価プログラムを用いてモデルを評価する際に各ユーザに対して課金される額等を表現した値を含む。当該値は、例えば、評価を要求したユーザに対して1回あたり“$0.001”を要求する場合、“$0.001/Test”等と表現されてよい。
ユーザ情報T3260は、モデル登録画面G4000等を介して注目評価プログラムを登録したユーザの識別子を示す。当該識別子は、例えば、ユーザ管理テーブルT3800が備えるユーザ識別子T3810の値でよい。
テナント情報T3270は、モデル登録画面G4000等を介して注目評価プログラムを登録したユーザが属するテナントの識別子を示す。当該識別子は、例えば、テナント管理テーブルT3900が備えるテナント識別子T3910の値でよい。
図7は、フィルタ管理テーブルT3300の構成例を示した図である。
フィルタ管理テーブルT3300における各レコードは、フィルタ情報(マーケットプレイスシステム2000に登録された各モデルの評価する際に、どのデータセットに対して、どのようなデータの加工を実施することか可能かを示す情報)を格納する。
フィルタ管理テーブルT3300において、フィルタ毎にレコードが存在する。以下、1つのフィルタを例に取る(図7の説明において「注目フィルタ」)。
注目フィルタに対応したレコードが格納するフィルタ情報は、例えば、フィルタ情報識別子T3310と、フィルタ名T3220と、説明T3330と、データセット識別子T3340と、選択可能値T3340とを含む。
フィルタ情報識別子T3310は、注目フィルタのフィルタ情報を一意に特定するための識別子を示す。当該識別子は、データ管理プログラムP3000によって付与された値(例えば連番)でよい。
フィルタ名T3220は、注目フィルタの名称を示す。当該名称は、例えば、モデル登録画面G4000のフィルタ情報G4065でモデル開発者1020によって指定されたフィルタの名称でよく、評価設定画面G3000のフィルタ種別指定ドロップボックスG3025や、フィルタ条件テーブルG3040等の表示に使用されてよい。
説明T3330は、注目フィルタのフィルタ情報の説明文を示す。当該説明文は、モデル登録画面G4000のフィルタ種別説明文表示エリアG3030等の表示に使用されてよい。
データセット識別子T3340は、注目フィルタを適用して加工する対象のデータセット(注目フィルタが関連付けられたデータセット)の識別子を示す。当該識別子は、例えば、データセット管理テーブルT3100が備えるデータセット識別子T3010の値でよい。
選択可能値T3340は、注目フィルタが関連付いているデータセットに対してどのような条件(データセット要素の抽出に関する条件)を指定できるかという選択肢を示す。選択肢をモデル評価画面G3000に表示等することで、例えば、ファイル識別子が“1”のフィルタでは、モータの軸受け破損と、コイル破損と、正常状態のデータを持つデータセット識別子“1”のデータセットに対して、軸受け破損のみのデータを抽出したり、コイル破損のみのデータを抽出したりする等、ユーザは、評価制御プログラムP6000で実施可能な加工方法を選択できる。
図8は、評価設定管理テーブルT3400の構成例を示した図である。
評価設定管理テーブルT3400における各レコードは、評価設定情報(マーケットプレイスシステム2000に登録された各モデルの評価する際に、どのモデルに対して、どのデータセットと用いて、どのような加工を実施し、どのような評価を実施するかを示した情報)を格納する。
評価設定管理テーブルT3400において、評価設定毎にレコードが存在する。以下、1つの評価設定を例に取る(図8の説明において「注目評価設定」)。
注目評価設定に対応したレコードが格納する評価設定情報は、評価設定情報識別子T3405と、評価設定名T3410と、説明T3415と、モデル識別子T3420と、フィルタ情報概要T3425と、フィルタ組合せ情報T3430と、指標T3440と、データセットファイルT3445と、開示情報T3550と、ユーザ情報T3455と、テナント情報T3460と、自動評価/デプロイT3465と、条件T3470と、エンドポイントT3475とを含む。
評価設定情報識別子T3405は、注目評価設定の評価設定情報を一意に特定するための識別子を示す。当該識別子は、データ管理プログラムP3000によって付与された値(例えば連番)でよい。
評価設定名T3410は、注目評価設定の名称を示す。当該名称は、評価設定画面G3000の設定名称入力テキストボックスG3005でモデル開発者1020によって指定された名称でよく、モデル詳細画面G2000が備える評価結果G2030の表示等に使用されてよい。
説明T3330は、注目評価設定の説明文を示す。当該説明文は、評価設定画面G3000の説明入力テキストボックスG3010でモデル開発者1020によって入力された説明文でよく、モデル詳細画面G2000が備える評価結果G2030の表示等に使用されてよい。
モデル識別子T3420は、注目評価設定に属するモデルの識別子を示す。当該識別子は、例えば、モデル管理テーブルT3000が備えるモデル情報識別子T3005の値でよい。
フィルタ情報概要T3425は、注目評価設定に属するフィルタ情報の概要を示す。例えば、フィルタ情報概要T3425は、評価対象となるモデルに対して、どのようなデータセットに対して、どのようなフィルタ条件で加工を行い、評価を実施するかを示してよい。フィルタ情報概要T3425は、モデル評価設定画面G3000において評価を実施するユーザが指定したフィルタ条件G3040で列挙されたフィルタ条件の情報を含んでよい。
フィルタ情報概要T3425において、フィルタ条件の情報は、例えば1か複数の行で記録され、各行は“#”フィルタ情報識別子“X”、値“Y”の形式で記載され、各行の#は行番号、Xはフィルタ管理テーブルT3300が備えるフィルタ情報識別子T3310の値を示し、Yはフィルタ管理テーブルT3300が備える選択可能値T3340の値のうち、モデル評価設定画面G3000において評価を実施するユーザが選択した値が記録されてよい。
フィルタ組合せ情報T3430は、フィルタ情報概要T3425の各行に記載されたフィルタ情報をどのように組み合わせ、データを加工するか示した情報である。例えば、評価設定情報識別子T3405が“1”のレコードについて、フィルタ組合せ情報T3430が“1*2”の場合、評価制御計算機P6000によって、データセットが持つ情報うち、軸受け破損のラベルが付与されたデータのみが抽出される。さらに、演算子が“*”のため、抽出されたデータに対して、さらにフィルタ情報T3430の2番目の行に記載された選択肢、“2017/12-2018/12”によって、評価に用いるデータの期間が限定され(つまり、当該期間に属するデータのみが抽出され)、抽出されたデータがモデルの評価に用いられる。
なお、演算子が“+”の場合は、軸受け破損のラベルが付与されている、またはデータ取得時刻(例えば年月)が“2017/12”から“2018/12”のデータが抽出される。これら演算子は一例であり、例えば指定されたデータを除外する“not”や、括弧を用いた演算優先度指定等、他の演算子や記号が含まれてもよい。
指標T3440は、評価結果として得たい指標を指定する情報であり、一例として、精度を示す“Accuracy”や、適合率を示す“Precision”や、再現率を示す“Recall”や、精度と再現率の調和平均を示す“F-measure”が挙げられる。なお、指標T3440は、モデル評価画面G3000が備える、指標指定チェックボックスG3055で指定されたものが記録されてもよい。
データセットファイルT3445は、評価制御プログラムP6000により、フィルタ組合せ情報T3430の内容に従って抽出されたデータセットの内容が記録されたファイルのファイル名を示す。なお、ファイル名はデータ管理システム内3000内でファイルを一意に特定できる値であればよい。
開示情報T3450は、注目評価設定の評価設定情報が開示される範囲を制御する値を示す。当該値は、開示情報T3050の値でよい。
ユーザ情報T3455は、モデルの評価を実施したユーザの識別子を示す。当該識別子は、例えば、ユーザ管理テーブルT3800が備えるユーザ識別子T3810の値でよい。
テナント情報T3460は、モデルの評価を実施したユーザが属するテナントの識別子を示す。当該識別子は、例えば、テナント管理テーブルT3900が備えるテナント識別子T3910の値でよい。
なお、自動評価/デプロイT3465と、条件T3470と、エンドポイントT3475については、後述する。
図9は、評価ジョブ管理テーブルT3500の構成例を示した図である。
評価ジョブ管理テーブルT3500における各レコードは、評価ジョブ情報(各モデルの評価がどの評価実行計算機P6100で実行されるかという情報や、評価の評価設定情報や、評価の進捗状態等を管理する情報)を格納する。
評価ジョブ管理テーブルT3500において、評価ジョブ毎にレコードが存在する。以下、1つの評価ジョブを例に取る(図9の説明において「注目評価ジョブ」)。
注目評価ジョブに対応したレコードが格納する評価ジョブ情報は、評価ジョブ情報識別子T3510と、評価設定情報識別子T3520と、ユーザ識別子T3530と、テナント識別子T3540と、実行計算機識別子T3550と、進捗状態T3560と、開始時刻T3570と、終了時刻T3580とを含む。
評価ジョブ情報識別子T3510は、評価ジョブの評価ジョブ情報を一意に特定するための識別子を示す。当該識別子は、データ管理プログラムP3000によって付与された値(例えば連番)でよい。
評価設定情報識別子T3520は、注目評価ジョブがどのモデルに対して、どのような設定で評価を実行したか、という評価設定情報を特定するための識別子を示す。当該識別子は、例えば、評価設定管理テーブルT3400が備える評価設定情報識別子T3405の値でよい。
ユーザ識別子T3530は、モデルの評価を実施したユーザの識別子を示す。当該識別子は、例えば、ユーザ管理テーブルT3800が備えるユーザ識別子T3810の値でよい。
テナント識別子T3540は、モデルの評価を実施したユーザが属するテナントの識別子を示す。当該識別子は、例えば、テナント管理テーブルT3900が備えるテナント識別子T3910の値でよい。
実行計算機識別子T3550は、各評価を実行する評価実行計算機6200を特定する識別子を示す。当該識別子は、例えば計算機管理テーブルT3700が備える、1か複数の計算機識別子T3710の値でよい。
進捗状態T3560は、各評価の進捗状態を示す値である。当該値、例えば“100%”等のパーセンテージで表してもよいし、“データセットを加工中”や、“評価実行中”や、“完了”等の文字列で表現してもよい。
開始時刻T3570と終了時刻T3580は、注目評価ジョブの開始時刻と終了時刻を示す。開始時刻は、例えば、評価制御プログラムP6000がモデル管理計算機から評価実施の要求を受信した時刻等でよい。終了時刻は、例えば、評価実行プログラムP6100が評価プログラムファイルF3300の実行完了を検知した時刻でよい。
図10は、評価結果管理テーブルT3600の構成例を示した図である。
評価結果管理テーブルT3600における各レコードは、評価結果情報(モデルの評価を実施した結果がどのようなものであったかを示す情報)を格納する。
評価結果管理テーブルT3600において、評価結果毎にレコードが存在する。以下、1つの評価結果を例に取る(図10の説明において「注目評価結果」)。
注目評価結果に対応したレコードが格納する評価結果情報は、評価結果情報識別子T3610と、評価設定情報識別子T3620と、評価ジョブ情報識別子T3630と、結果T3640と、ログ情報T3650とを含む。
評価結果情報識別子T3610は、注目評価結果の評価結果情報を一意に特定するための識別子を示す。当該識別子は、データ管理プログラムP3000によって付与された値(例えば連番)でよい。
評価設定情報識別子T3520は、注目評価結果が得られた評価がどのモデルに対して、どのような設定で評価を実行したか、という評価設定情報を特定するための識別子を示す。当該識別子は、例えば、評価設定管理テーブルT3400が備える評価設定情報識別子T3405の値でよい。
評価ジョブ情報識別子T3630は、注目評価結果が得られた評価がどの評価実行計算機P6100で実行されるかという情報を特定するための識別子を示す。当該識別子は、例えば、評価ジョブ管理テーブルT3500が備える評価ジョブ情報識別子T3510でよい。
結果T3640は、注目評価結果として指標について得られた値を示す情報を含む。当該情報は、例えば、評価設定管理テーブルT3400が保持する評価設定情報のうち、ユーザがどのような指標での評価を求めるかを示した、指標T3440の値に対する結果値を含む。結果値は、例えば、評価実行プログラムP6100によって実行される評価プログラムファイルF3300が出力するログ情報から収集して記録してもよいし、評価プログラムファイルF3300が出力する標準出力から読み取り、記録する等してもよい。
ログ情報T3650は、注目評価結果が得られた評価に関連するログを記録した情報である。当該情報は、例えば、評価制御プログラムP6000や、評価実行プログラムP6100や、評価プログラムファイルF3300が出力するログや標準出力や標準エラーの内容を含んでもよい。
図11は、計算機管理テーブルT3700の構成例を示した図である。
計算機管理テーブルT3700における各レコードは、計算機情報(モデルの評価を実行する評価実行計算機6200のCPU1930やメモリ1920やGPU1970等のリソースの性能を示すリソース保有情報や、リソースの消費情報や、計算機への接続に必要な情報を含む情報)を格納する。
計算機管理テーブルT3700において、計算機毎にレコードが存在する。以下、1つの計算機を例に取る(図11の説明において「注目計算機」)。
注目計算機に対応したレコードが格納する計算機情報は、計算機識別子T3710と、種別T3720と、リソース保有情報T3740と、リソース消費情報T3750と、接続情報T3760とを含む。
計算機識別子T3710は、注目計算機を一意に特定するための識別子を示す。当該識別子は、データ管理プログラムP3000によって付与された値(例えば連番)でよい。
種別T3720は、注目計算機の用途を示す値である。例えば、注目計算機が評価実行計算機6200であれば、当該値は、例えば“評価”である。
リソース保有情報T3740は、注目計算機が備える計算リソースの性能(例えば、CPU1930やメモリ1920やGPU1970等のリソースの性能)を示す情報である。
リソース消費情報T3750は、注目計算機が備える計算リソースのリソース性能のうち、評価実行プログラムや、評価プログラムファイルF3300が当該計算機で実行されたことによって消費されているリソースの性能を示す。リソース消費情報T3750は、、各モデルの評価をどの評価実行計算機P6100で実行するかの判断に用いられてもよい。
接続情報T3760は、注目計算機への接続に必要な情報(例えば、評価制御プログラムP6000が評価の要求を送信する際に注目計算機へ接続するのに必要な情報、一例として、Internet Protocol(IP)アドレスや、Uniform Resource Identifier(URI)等)である。
図12は、ユーザ管理テーブルT3800の構成例を示した図である。
ユーザ管理テーブルT3800における各レコードは、ユーザ情報(アプリ開発者1000や、モデル開発者1020等、マーケットプレイスシステム2000を利用するユーザの情報)を格納する。
ユーザ管理テーブルT3800において、ユーザ毎にレコードが存在する。以下、1のユーザを例に取る(図12の説明において「注目ユーザ」)。
注目ユーザに対応したレコードが格納するユーザ情報は、ユーザ識別子T3810と、ユーザ名T3820と、パスワード3830と、ロールT3840と、メールアドレスT3850とを含む。
ユーザ識別子T3810は、注目ユーザのユーザ情報を一意に特定するための識別子を示す。当該識別子は、データ管理プログラムP3000によって付与された値(例えば連番でよい)。
ユーザ名T3820とパスワードT3830は、注目ユーザのユーザ名及びパスワード(例えば、ユーザがアプリ開発用計算機1010やモデル開発用計算機1030が備えるブラウザ等を介して、マーケットプレイスシステム2000へアクセスする際の認証情報として用いる情報)である。なお、ユーザ名T3820は、例えばモデルを開発した開発者の名前として、モデル詳細画面G2000が備えるモデル情報G2010等に表示してもよい。
ロールT3840は、注目ユーザの役割を示す。ロールT3840の値は、例えば、モデルを開発するモデル開発者1020であれば“Model developer”や、アプリを開発するアプリ開発者1000であれば“Application developer”等でよい。
メールアドレスT3850は、注目ユーザのメールアドレスを示す。当該メールアドレスは、例えばモデルを開発した開発者の名前として、モデル詳細画面G2000が備えるモデル情報G2010等に表示し、他のユーザが連絡できるようにされてもよい。
図13は、テナント管理テーブルT3900の構成例を示した図である。
テナント管理テーブルT3900における各レコードは、テナント情報(アプリ開発者1000や、モデル開発者1020等、マーケットプレイスシステム2000を利用する1か複数のユーザや評価実行計算機6200等のグループであるテナントの情報)を格納する。
テナント管理テーブルT3900において、テナント毎にレコードが存在する。以下、1つのテナントを例に取る(図13の説明において「注目テナント」)。
注目テナントに対応したレコードが格納するテナント情報は、テナント識別子T3910と、テナント名T3920と、所属ユーザ識別子T3930と、所属計算機識別子T3940と、管理ユーザ識別子T3940とを含む。
テナント識別子T3910は、注目テナントのテナント情報を一意に特定するための識別子を示す。当該識別子は、データ管理プログラムP3000によって付与された値(例えば連番)でよい。
テナント名T3910は、注目テナントの名称を示す値であり、例えば文字列でよい。
所属ユーザT3930は、注目テナントに属する1か複数のユーザを特定するための情報であり、例えば、ユーザ管理テーブルT3800が備えるユーザ情報識別子T3810の値でよい。
所属計算機識別子T3940は、注目テナントに属する評価実行計算機6200等の1か複数の計算機を特定する情報であり、例えば、計算機管理テーブルT3700が備える計算機識別子T3710の値でよい。
管理者ユーザT3930は、注目テナントを管理する1か複数のユーザを特定するための情報であり、例えば、ユーザ管理テーブルT3800が備えるユーザ情報識別子T3810の値でよい。
図14は、IFプログラムP2000のフローチャートである。
IFプログラムP2000が実行されると、ステップS1000にて、IFプログラムP2000は、要求の待ち受けを開始する。要求には、例えばマーケットプレイスシステム2000が管理するモデルの一覧取得や、モデル評価の実施等、要求の種類や、モデルを一意に特定する識別子や、要求を行ったユーザの識別子等の情報が含まれる。
ステップS1010では、要求が受信されると、処理がステップS1020へ進む。
ステップS1020では、IFプログラムP2000は、受信された要求に含まれる情報(例えば、モデル情報の取得や評価実行等、要求の種別、要求を行ったユーザの識別子等)を解析する。なお、ステップS1020にて、IFプログラムP2000は、例えば、要求の種別や、モデル識別子等、含まれるデータの形式や内容が妥当であるかを検査する処理を実行してもよい。
ステップS1030では、IFプログラムP2000は、解析された要求の種別を判定する。なお、ステップS1020で実施した検査の結果が、要求が妥当ではないとの結果の場合、ステップS1100で、IFプログラムP2000が、その旨を示す応答を生成してもよい。
ステップS1030の判定の結果が、モデル一覧取得であった場合、ステップS1040で、IFプログラムP2000が、モデル一覧画面G1000に必要な情報を収集のため、モデル管理テーブルT3000の全レコードの全情報を取得する。
ステップS1030の判定の結果が、モデル詳細情報取得であった場合、ステップS1050で、IFプログラムP2000が、モデル詳細画面に必要な情報を収集のため、要求の内容からモデルを一意に識別するモデル識別子の情報を取得のうえ、モデル管理テーブルT3000から識別子に該当するモデルの情報を取得する。
ステップS1030の判定の結果が、モデル評価画面取得又はモデル登録画面取得であった場合は、ステップS1060で、IFプログラムP2000が、モデル登録画面G3000で必要な内容を取得する、又は、モデル評価画面G4000で必要な内容を取得する。なお、各画面に表示する内容の取得方法は、後述の各画面の説明で述べる。
ステップS1030の判定の結果が、モデル登録であった場合、IFプログラムP2000が、ステップS1070で、ステップS1020で解析された要求から、モデルの登録に必要な情報を取得し、モデル管理テーブルT3000に情報を新しいレコードとして追記する。
ステップS1030の判定の結果が、モデル評価実行であった場合、ステップS1080で、IFプログラムP2000が、ステップS1020で解析された要求から、モデル評価の実行に必要な評価条件情報を取得し、評価条件管理テーブルT3400に新しいレコードを追加し、さらに、追加したレコードに含まれる識別子T3410を、評価制御計算機6100が有する評価制御プログラムP6000へ送信する。
ステップS1100では、IFプログラムP2000が、要求に応じて収集したデータを基に、例えばモデル一覧画面の情報や、モデル登録の結果等、呼び出し元の計算機へ送信する応答データを生成する。
ステップS1110では、IFプログラムP2000が、ステップS1100で生成された応答データを、呼び出し元の計算機へ送信する。
ステップS1120で、OS等からIFプログラムP2000の終了要求がない場合は、処理がステップS1010へ戻り、終了要求があった場合は、処理がステップS1130へ進みIFプログラムP2000が終了する。
なお、ステップS1020で判別される要求には、アプリ開発者1000やモデル開発者1020のユーザ情報の取得や更新、実行中のモデル評価処理の強制停止等が含まれてもよい。また、画面に表示される要素は、各画面の入出力項目に相当するパラメータを持ったAPIによって実現されてもよい。また、モデルデプロイ(ステップS1090)については、後述する。
図15は、モデル管理プログラムP2100のフローチャートである。
モデル管理プログラムP2100が実行されると、ステップS2010にて要求の待ち受けが開始される。要求には、モデル評価やモデル登録等の要求の種別等、処理に必要な要求情報が含まれる。
ステップS2020で、要求が受信されると、処理がステップS2030へ進む。
ステップS2030では、モデル管理プログラムP2100が、例えば要求の種別等、受信した要求の情報を解析する。
ステップS2040では、モデル管理プログラムP2100が、解析された結果に含まれる要求の種別が、モデル評価であるか、モデルの登録であるか、モデルのデプロイであるか、を判定する。要求種別がモデル評価であればステップS2070へ、要求種別がモデル登録であればS2060へ、要求種別がモデルデプロイであればS2065へ、処理が進む。なお、モデル評価とモデル登録の何れにも該当しない場合は、ステップS2080で、要求が正しくない旨の応答が生成されてもよい。
ステップS2070では、モデル管理プログラムP2100が、モデルの評価を実施のため、評価システム6000が有する評価制御計算機P6000に対し、評価設定情報を送信し、モデルの評価を依頼する。
ステップS2060では、モデル管理プログラムP2100が、要求情報に含まれるモデルをマーケットプレイスへ登録のため、ステップS2030で解析された要求情報に含まれるモデル情報を用いて、モデル管理テーブルT3000へ新しいレコードを追加する。このとき、同じ名称や同じモデルファイルを有するモデルのレコードが存在しないか確認し、重複する場合にはステップS2080にて、その旨を示す応答が生成されてもよい。
ステップS2065では、モデル管理プログラムP2100が、モデルのデプロイを実施のため、モデル運用システムが有するもモデル運用計算機5100に対し、モデルデプロイの要求を依頼する。
ステップS2080では、モデル管理プログラムP2100が、モデル評価、又はモデル登録の要求が成功したか否か、又は受信した要求情報に不正があり、要求に失敗したか、等を示す応答メッセージを生成する。
ステップS2090では、モデル管理プログラムP2100が、生成された応答を要求送信元であるIFプログラムP2000へ返送する。
ステップS2100では、モデル管理計算機2200が有するOS等から、モデル管理プログラムP2100の終了要求があるかが確認される。終了要求がない場合はステップS2020へ処理が戻る。終了要求があった場合は、ステップS2110へ処理が進みモデル管理プログラムP2100が終了する。
図16は、評価制御プログラムP6000のフローチャートである。
評価制御プログラムP6000が実行されると、ステップS3000にて要求の待ち受けが開始される。なお、要求は、評価対象のモデルや、使用するデータセットと、データセットの加工情報を保持した評価設定情報を含む。
ステップS3010で、要求が受信されると、処理がステップS3020へ進む。
ステップS3020では、評価制御プログラムP6000が、要求に含まれる評価設定情報識別子を取得し、評価設定管理テーブルT3400から評価設定情報識別子をキーに該当するレコードを特定し、評価設定情報を取得する。
ステップS3030では、評価制御プログラムP6000が、後続のステップで実施するモデルの評価に必要な、データセットの収集を行う。例えば、まず、評価制御プログラムP6000が、取得した評価設定情報からフィルタ情報概要T3425を取得し、フィルタ情報に含まれるフィルタ情報識別子をキーに、フィルタ管理テーブルT3300から該当するレコードを特定する。なお、評価設定情報の当該レコードに複数のフィルタ情報が含まれる場合、評価制御プログラムP6000が、その個数分だけフィルタ管理テーブルT3300から該当するフィルタ情報を取得する。評価制御プログラムP6000が、取得されたフィルタ情報から、データセット識別子T3340を取得する。評価制御プログラムP6000が、取得したデータセット識別子T3340をキーに、データセット管理テーブルT3100に含まれるファイル名T3180を取得し、データ管理計算機3100から取得したデータセットのファイルを収集する。
ステップS3040では、評価制御プログラムP6000が、収集されたデータセットに対し、フィルタ組合せ情報に応じた加工を実施する(例えば、様々なモータの故障状態が含まれるデータに対し、軸受け破損のみのデータを抜き出す加工を施すことで、評価用のデータ(加工済データ)を作成する。ステップS3040の総裁の一例は、例えば下記の通りである。
すなわち、ステップS3040では、まず、評価制御プログラムP6000が、どのような加工を施すかを示した情報を含む、フィルタ情報を取得する。評価制御プログラムP6000が、ステップS3020で取得した評価設定情報のうち、フィルタ情報概要T3425の値をキーに、フィルタ管理テーブルT3300からフィルタ情報識別子T3300が該当するレコードをフィルタ情報として取得する。なお、フィルタ情報概要T3425に複数の値が含まれる場合は、評価制御プログラムP6000が、その数だけ繰り返しを行うことで、複数のフィルタ情報を取得する。加えて、評価制御プログラムP6000が、取得したフィルタ情報に含まれる、データセット識別子の値を取得する。
次に、評価制御プログラムP6000が、評価設定管理テーブルT3400に含まれる、フィルタ組合せ情報T3430の情報を参照する。参照したフィルタ組合せ情報T3430は、複数のフィルタを組み合わせてどのようにデータを加工するか示したものである。例えば、フィルタ組合せ情報T3430が“1*2”という条件が記載されている場合、取得したフィルタ情報識別子を持つフィルタ情報が、それぞれ、1:故障モードの限定、2:期間指定であり、“*”はAND条件とした場合を考える。まず、評価制御プログラムP6000が、1番目のフィルタ情報が持つフィルタ情報識別子をキーにフィルタ管理テーブルT3300のフィルタ情報を取得する。さらに、評価制御プログラムP6000が、取得したフィルタ情報に含まれるデータセット識別子T3340を用い、データセット管理テーブルT3100のデータセット識別子T3110が該当するレコードを探索する。探索されたレコードから、評価制御プログラムP6000が、ファイル名T3180を取得(test1.dat)し、これが加工対象のデータとなる。次に、評価制御プログラムP6000が、加工対象のデータに関し、評価設定管理テーブルT3400のフィルタ情報T3430に含まれる値を参照する。このケースでは、値が”軸受け破損”となるため、評価制御プログラムP6000が、加工対象データから、軸受け破損のラベルが付与されたデータ(データセット要素)のみを抽出する加工を施す。さらに、フィルタ組合せ情報T3430が“1*2”であり、演算子が“*”のため、抽出されたデータに対して、評価制御プログラムP6000が、フィルタ情報T3430の2番目のフィルタ情報に関しても同様の手順を適用し、“2017/12‐2018/12”までの期間に属するデータのみを抽出する。すなわち、評価制御プログラムP6000が、加工対象データ(tes1.dat)に対して、軸受け破損のラベルが付与され2017/12から2018/12までの期間のデータのみが、モデル評価に用いられる加工済データセットとして抽出される。
なお、演算子が“+”の場合は、軸受け破損のラベルが付与されている、又はデータ取得時刻が2017/12から2018/12のデータが抽出される。これら演算子は一例であり、例えば指定されたデータを除外する“not”や、括弧を用いた演算優先度指定等、他の演算子や記号が含まれてもよい。
加工済データセットは、データ管理プログラムP3000を介して、データ管理計算機3100に格納される。なお、格納されるデータセットの名称はランダムに決められてもよいし、連番などで決定されてもよく、決定された名称は評価設定管理テーブルT3400のデータセットファイルT3445に記録される。
ステップS3050では、評価制御プログラムP6000が、リソースの消費状況等を考慮し、モデル評価プログラムF3300を実行する、評価実行計算機6200を選択する。具体的には、例えば、評価制御プログラムP6000が、計算機管理テーブルT3700に含まれる計算機の情報のうち、種別T3720が“評価”となっている計算機を抽出し、さらにリソース消費状況T3750が示すリソース消費量が最も少ない計算機を選択してもよい。或いは、例えば、評価制御プログラムP6000が、モデル管理テーブルT3000から評価対象モデルの情報を取得し、評価時要求スペックと、計算機管理テーブルT3700が備えるリソース保有情報T3740と、リソース消費情報T3750から、評価対象モデルが要求するスペックを満たし、かつリソースに空きがある計算機を選択してもよい。
ステップS3060では、評価制御プログラムP6000が、モデルの評価の状況を記録するため、評価ジョブ管理テーブルT3500に新たなレコードを追加する。なお、追加されるレコードにおいて、評価設定情報識別子T3520は、評価設定情報識別子T3405であり、ユーザ識別子T3530は、ユーザ管理テーブルT3800に含まれるユーザ識別子T3810のうち評価を要求したユーザの識別子であり、実行計算機識別子T3550は、選択された評価実行計算機6200の識別子であり、開始時刻T3570は、現在の時刻を示す値であり、終了時刻T3580は、例えば“-”であり、進捗状態T3560は“0%”である。なお、評価ジョブ識別子T3510は、一意な値がデータ管理プログラムP3000によって付与され、記録される。
ステップS3070では、評価制御プログラムP6000が、選択された評価実行計算機6200に対して、モデルの評価の実行を要求する。当該要求は、評価実行計算機6200が備える評価実行プログラムP6100へ送信される。評価実行計算機6200の特定には、計算機管理テーブルが備える接続情報T3760に記載された、例えばIPアドレスを用いて行われてもよい。なお、送信される要求には、評価設定情報識別子と、評価ジョブ識別子T3510とが含まれる。
ステップS3080では、評価制御プログラムP6000が、評価実行計算機P6100で実行された評価の状況を監視するため、評価監視スレッドS3500を開始する。それにより、ステップS3510が実行される。その後、処理がステップS3090へ進む。すなわち、スレッドによって、ステップS3080以降のステップと、ステップS3510以降のステップは評価制御計算機6100内で並列に実行される。
ステップS3090では、評価制御プログラムP6000が、モデルの評価を要求したモデル管理プログラムP2100に対する応答を送信する。なお、送信される応答は、評価の実行開始や、いずれかのステップで異常が発生したことを知らせるエラーメッセージを含んでよい。
ステップS3100では、評価制御計算機6100が有するOS等から、評価制御プログラムP6000の終了要求があるかが確認される。終了要求がない場合は、ステップS3010へ処理が戻る。終了要求があった場合は、ステップS3110へ処理が進み評価制御プログラムP6000が終了する。
評価監視スレッドに含まれるステップS3510では、実行されたモデルの評価の状態監視が開始され、処理がステップS3520へ進む。
ステップS3520では、評価監視スレッドが、評価実行計算機P6100に対して、評価ジョブ識別子を持つジョブの実行状況を問合せ、返答を得る。評価実行計算機P6100からの返答の値は、例えば“実行中”や、“停止中”のように、状態を文字列や数字で表したものであっても、“10%”や“20%”のように、進捗度を示すような数字であってもよく、評価監視スレッドが、得られた返答の値を評価ジョブ管理テーブルT3500の進捗状態T3550に記録する。加えて、評価監視スレッドが、評価実行計算機P6100が備える、CPU1930やメモリ1920のリソース消費状況も併せて収集し、計算機管理テーブルT3700のリソース消費状況T3750を更新する。
ステップS3030では、評価監視スレッドが、返答の値がモデル評価の完了を意味する値であるかを判定し、例えば“完了”や“100%”であれば、ステップS3550へ進み、それ以外の場合はステップS3540へ進んだうえ、ステップS3510へ戻る。
ステップS3550では、評価監視スレッドが、評価ジョブ管理テーブルT3500の進捗状態T3550に“100%”や“完了”の値を記録する。ステップS3360へ処理が進み、評価監視スレッドが終了する。
図17は、評価実行プログラムP6100のフローチャートである。
評価制御プログラムP6100が実行されると、ステップS4000にて、評価制御プログラムP6000からの要求が受信され、ステップS4010へ処理が進む。
ステップS4010では、評価実行プログラムP6100が、要求に含まれる評価設定情報識別子をキーに、評価設定管理テーブルT3400から、評価設定情報を取得する。
ステップS4020では、評価実行プログラムP6100が、取得された評価設定情報に含まれるデータセットファイルT3445を、データ管理プログラムP3000を介して取得する。
ステップS4030では、評価実行プログラムP6100が、取得された評価設定情報に含まれるモデル識別子T3420をキーに、モデル管理テーブルT3000から、評価対象となるモデルの情報を取得する。さらに、評価実行プログラムP6100が、取得されたモデルの情報に含まれるモデルファイルT3015を、データ管理プログラムP3000を介して取得する。
ステップS4040では、評価実行プログラムP6100が、取得された評価設定情報に含まれるモデル識別子T3420をキーに、評価プログラム管理テーブルT3200から、対象となるモデルの評価に必要な評価プログラムファイルT3220を特定する。さらに、評価実行プログラムP6100が、特定された評価プログラムファイルT3220に記載の評価プログラムを、データ管理プログラムP3000を介して取得する。
ステップS4050では、評価実行プログラムP6100が、指標T3440から指標の情報を特定する。評価実行プログラムP6100が、取得したデータセットファイルと、モデルファイルと、特定された指標の情報とを取得した評価プログラムへ入力として、当該評価プログラムを実行することで、モデル評価を開始する。評価プログラムが終了後、処理がステップS4060へ進む。
ステップS4060では、評価実行プログラムP6100が、指標等の評価結果情報を、例えば評価プログラムが出力したログファイルや、標準出力を介して取得し、評価結果管理テーブルT3600へ、新しいレコードとして追加する。なお、追加されるレコードにおいて、評価設定情報識別子T3620は、要求に含まれる評価設定情報識別子であり、評価ジョブ情報識別子T3630は、要求に含まれる評価ジョブ情報識別子であり、結果T3640は、取得した評価結果情報であり、ログ情報T3650は、例えば評価プログラムが出力したログファイルや、標準出力の内容でよい。
ステップS4070では、評価実行プログラムP6100が終了する。
以下、本実施例において表示され得るUI(User Interface)の一例である画面(典型的にはGUI(Graphical User Interface))を説明する。各画面は、例えば、データ管理プログラムP3000が取得し提供する情報を基にIFプログラムP2000によってアプリ開発用計算機1010又はモデル開発用計算機1030に表示される。
図18は、モデル一覧画面G1000の一例を示した図である。
モデル一覧画面G1000は、登録されているモデルの一覧を示す画面である。画面G1000は、アプリ開発用計算機1010とモデル開発用計算機1030のいずれにも表示され得る。例えば、画面1000Gが、アプリ開発用計算機1010に表示された場合、アプリ開発者1000が、画面1000Gに表示されている一覧の中から閲覧したいモデルを選択し得る。また、例えば、画面1000Gが、モデル開発用計算機1030に表示された場合、モデル開発者1020が、登録済のモデルを確認したり、新たにモデルを登録するためにモデル登録ボタンG1030を押下したりし得る。
画面1000Gは、複数のUI、例えば、マーケットプレイスシステム2000へ登録された1か複数のモデルのモデル画像G1010と、モデル名称G1020と、新しいモデルを登録するモデル登録ボタンG1030とを備える。
画面G1000に表示される各モデルの情報は、モデル管理テーブルT3000から取得される。例えば、画像G1010は、画像情報T3060から、名称G1020は、モデル名T3005から、それぞれ取得され表示される。なお、データ管理プログラムP3000が、モデル管理テーブルT3000が備える開示情報T3030の値を参照し、当該値を基に、アクセス元のユーザに画面G1000を開示するか否かを制御する。制御の一例は、例えば下記の通りである。
・値が“All”であれば、アクセス元がいずれのユーザであっても画面G1000を開示する。
・値が“user:1”の場合は、アクセス元のユーザの識別子が“1”の場合のみ画面G1000を開示する。
モデル登録ボタンG1030は、マーケットプレイスシステム2000に新しいモデルを登録する画面G4000へ遷移するためのボタン(GUI部品の一例)である。データ管理プログラムP3000は、アクセス元のユーザのユーザ識別子をキーにユーザ管理テーブルT3800から当該ユーザの情報を取得し、取得したロールT3840がモデル開発者を示す”Model developer”の場合のみボタンG1030を表示してもよい。
各モデルの画像G1010や、モデル名称G1020がマウスポインタでクリックされるといった所定のユーザ操作がされると、モデル詳細画面G2000へ遷移されてよい。
図19A~図19Cは、モデル詳細画面G2000の一例を示した図である。
モデル詳細画面G2000は、画面G1000から選択されたモデルの詳細情報を示す。画面G2000は、複数のUI、例えば、モデル名称G2005と、モデル画像G2007と、モデル情報G2010と、モデルバージョンG2015と、モデル概要G2020と、モデルAPIG2025と、モデル評価結果G2030(図19B)と、新規モデル評価ボタンG2035(図19B)と、新モデルバージョン登録ボタンG2040と、デプロイ済み情報G2050(図19C)と、新規デプロイボタンG4055(図19C)とを備える。
モデル名称G2005と、モデル画像G2007と、モデル概要G2020と、モデルAPIG2025は、それぞれ、モデル管理テーブルT3000に含まれる、モデル名T3005と、画像情報T3060と、概要T3050と、API仕様T3055と、から取得された情報である。
なお、表示されるUI(項目)は、図示に例示の項目以外にも、例えば、モデル管理テーブルT3000が備える課金情報T3040が有する課金情報等を含んでもよい。
モデル情報G2010は、モデル管理テーブルT3000に含まれるバージョン情報T3010から取得された情報や、ユーザT3040の値をキーにユーザ管理テーブルT3800から取得された情報(対象のモデルを開発したユーザの情報、及び、ユーザ名T3820から取得された情報)である。
モデルバージョンG2015は、異なるバージョンのモデルの詳細を表示するためのドロップダウンボックスであり、モデル管理テーブルT3000に対して、モデルグループ情報T3070が同値のレコードにおけるモデル情報のバージョン情報T3010から取得され表示される。
評価結果情報G2030は、対象のモデルに対して実行された評価の結果を示したものであり、評価結果管理テーブルT3600に含まれる結果T3640から取得された情報や、評価設定情報識別子T3620をキーに評価設定管理テーブルT3400から取得された評価設定情報である。
新規モデル評価ボタンG2035は、アプリ開発者1000又はモデル開発者1020から新たに当該モデルの評価を実施することの要求を受け付けるためのボタンである。当該ボタンG2035が押下されることによって、画面がモデル評価設定画面G3000へ遷移する。
新モデルバージョン登録ボタンG2040は、モデル開発者1020から当該モデルの新しいバージョンを登録することの要求を受け付けるためのボタンである。当該ボタンG2040が押下されることによって、画面がモデル登録画面G4000へ遷移する。
デプロイ済み情報G2050は、画面に表示されたモデルの各バージョンをデプロイした情報を表示するテーブルである。当該テーブルには、例えば、デプロイされたモデルのバージョン情報、APIを用いたアクセスに使用するエンドポイント、デプロイ時刻等の各情報と、デプロイされたモデルとエンドポイントを削除するボタン等が表示される。
新規デプロイボタンG4055は、画面で表示されたモデルのバージョンを新たにデプロイすることの要求を受け付けるためのボタンである。
デプロイ済み情報G2050と、新規デプロイボタンG4055については、後述する。
図20A~図20Cは、モデル評価設定画面G3000の一例を示した図である。
モデル評価設定画面G3000は、評価対象のモデルと、使用するデータセットと、使用するフィルタと、評価指標と、評価結果の開示範囲との指定を受け付ける画面である。画面G3000は、複数のUI、例えば、評価名称テキストボックスG3005と、対象バージョン入力テキストボックスG3007と、説明文テキストボックスG3010と、データセット選択ドロップダウンボックスG3020(図20B)と、フィルタ種別指定ドロップダウンボックスG3025(図20B)と、フィルタ種別説明文表示エリアG3030(図20B)と、条件値入力ドロップダウンボックスG3035(図20B)と、フィルタ条件テーブルG3040(図20C)と、フィルタ条件追加ボタンG3045(図20B)と、フィルタ組合せ条件指定テキストボックスG3050(図20C)と、指標指定チェックボックスG3055と、開示指定テキストボックスG3060と、評価実行ボタンG3065と、自動評価/デプロイチェックボックスG3070と、条件入力テキストボックスG3075と、エンドポイント入力テキストボックスG3080と、を備える。
なお、表示されるUI(項目)は、図示に例示の項目以外にも、例えば、モデル管理テーブルT3000が備える課金情報T3040や、データセット管理テーブルT3100が備える課金情報T3150や、評価プログラム管理テーブルT3200が備える課金情報T3250が有する課金情報等を含んでもよい。
評価名称テキストボックスG3005は、評価の名称を入力するテキストボックスである。当該ボックスG3005に入力された値は、評価設定管理テーブルT3400に評価設定名T305として記録される。
対象バージョン入力テキストボックスG3007は、評価対象となるモデルのバージョンの入力を受け付けるテキストボックス、又は、選択式のドロップダウンボックス等である。なお、当該ボックスG3007は、モデルのバージョン番号等、モデルのバージョンを特定できる値の入力を受け付けるほか、最も新しいモデルのバージョンを示す“latest”等を受け付けてもよい。
説明文テキストボックスG3010は、評価の説明(例えばテキスト形式やMarkdown形式のテキスト)の入力を受け付けるテキストボックスである。当該ボックスG3010に入力された説明は、評価設定管理テーブルT3400に説明T3410として記録される。
データセット選択ドロップダウンボックスG3020は、フィルタを適用するデータセットの選択を受け付けるドロップダウンボックスボックスである。データ管理プログラムP3000は、モデル管理テーブルT3000が備えるデータセット識別子T3075をキーに、データセット管理テーブルT3100を検索し、テストデータ識別子T3110が合致するレコード群のファイル名T3180を、データセット選択ドロップダウンボックスG3020の選択肢として表示する。
フィルタ種別指定ドロップボックスG3025は、データセットに対して、どのような種別のフィルタを適用するか、の選択を受け付けるドロップダウンボックスボックスである。また、条件値入力ドロップダウンボックスG3035は、フィルタ種別指定ドロップボックスG3025で選択されたフィルタの種別に対応した選択肢を表示し、フィルタリングする条件の指定を受け付けるドロップダウンボックスである。フィルタ種別指定ドロップボックスG3025の選択肢は、モデル管理テーブルT3000が備えるデータセット識別子T3075をキーにフィルタ管理テーブルT3300から特定されたレコードのフィルタ名に従う。条件値入力ドロップダウンボックスG3035の選択肢は、当該特定されたレコードの選択可能値T3340に従う。
なお、フィルタ種別指定ドロップボックスG3025の選択肢が選択された際に、フィルタ管理テーブルT3300が備える説明T3330が、フィルタ種別説明文表示エリアG3030へ表示さえてもよい。
フィルタ条件追加ボタンG3045は、データセット選択ドロップダウンボックスG3020と、フィルタ種別指定ドロップボックスG3025と、条件値入力ドロップダウンボックスG3035とを介して選択されたフィルタを、フィルタ条件テーブルG3040へ追加することの要求を受け付けるボタンである。当該ボタンG3045が押された場合、当該選択されたフィルタに関する情報が、フィルタ条件テーブルG3040に追加される。
フィルタ組合せ条件指定テキストボックスG3050は、フィルタ条件テーブルG3040に表示されたフィルタを、どのように組み合わせてモデル評価用のデータセットを生成するか、の指定を受け付けるボックスである。
指標指定チェックボックスG3055は、評価結果として得たい指標の指定を受け付けるチェックボックスである。チェックボックスG3055の一例として、精度を示す“Accuracy”や、適合率を示す“Precision”や、再現率を示す“Recall”や、精度と再現率の調和平均を示す“F-measure”がある。
開示指定テキストボックスG3060は、本画面G3000にて入力された評価設定情報と、評価を実施して得られた結果情報を、どのユーザに開示するかの指定(つまり開示範囲の指定)を受け付けるテキストボックスである。開示範囲として入力され得る値の一例として、すべてのユーザへの開示を示す“All”や、特定のユーザへの開示に限定するためのユーザ名又はユーザ識別子がある。
評価実行ボタンG3065は、前述の評価設定情報を用いてモデルの評価を開始することの要求を受け付けるためのボタンである。
自動評価/デプロイチェックボックスG3070は、例えば最新のモデルがモデル開発者1020によってマーケットプレイスシステム2000に登録された際に、自動的にモデルの評価を画面で入力された評価設定情報を用いて評価を実施し、評価の結果が、条件入力テキストボックスG3075に入力された条件に合致する場合に、モデル運用システム5000に対する当該モデルのデプロイを実施するかを指定することを受け付けるチェックボックスである。
条件入力テキストボックスG3075は、自動評価/デプロイチェックボックスG3070にチェックが付けられた場合、モデル運用システム5000に対する当該モデルのデプロイを自動的に実施する条件の入力を受け付けるテキストボックスである。
エンドポイント入力テキストボックスG3080は、自動評価/デプロイチェックボックスG3070にチェックが付けられており、条件入力テキストボックスG3075に入力された条件に評価の結果が合致する場合、デプロイされたモデルの機能を利用するためのAPIのエンドポイントに関する情報の入力を受け付けるテキストボックスである。
なお、自動評価/デプロイチェックボックスG3070と、条件入力テキストボックスG3075と、エンドポイント入力テキストボックスG3080については、後述する。
図21A~図21Cは、モデル登録画面G400の一例を示した図である。
モデル登録画面G4000は、モデルの登録を受け付ける画面である。画面G4000は、複数のUI、例えば、モデル名入力テキストボックスG4010と、バージョン入力テキストボックスG4015と、画像パス入力テキストボックスG4020と、画像参照ボタンG4023と、モデルファイルG4027と、評価プログラムG4028と、実行プログラムG4029と、モデル概要入力テキストボックスG4030と、API仕様入力テキストボックスG4035と、データセットファイルパス入力テキストボックスG4040(図21B)と、データセット参照ボタンG4045(図21B)と、データセット名称入力テキストボックスG4050(図21B)と、データセット追加ボタンG4055(図21B)と、アップロード済みデータセット管理テーブルG4060(図21B)と、フィルタ管理テーブルG4065(図21C)と、フィルタ情報追加ボタンG4075(図21C)と、開示入力テキストボックスG4070と、モデル登録ボタンG4080とを備える。
なお、表示される情報項目は、図示に例示の項目以外にも、例えば、課金情報T3040として記録する課金情報の入力を受け付ける項目を含んでもよい。
モデル名入力テキストボックスG4010は、登録されるモデルの名称の入力を受け付けるテキストボックスである。当該ボックスG4010に入力された値は、モデル管理テーブルT3000にモデル名T3005として記録される。
バージョン入力テキストボックスG4015、登録されるモデルのバージョンの入力を受け付けるテキストボックスである。当該ボックスG4015に入力された値は、モデル管理テーブルT3000にバージョン情報T3010として記録される。
画像パス入力テキストボックスG4020は、モデル一覧画面G1000や、モデル詳細画面G2000で表示する画像ファイルについて、モデル開発用計算機におけるファイルのパスの入力を受け付けるテキストボックスである。パスは、手動で入力されてもよいし、画像参照ボタンG4023を押下しOSが提供するファイル選択ダイアログにて指定されたファイルのパスが入力されてもよい。
画像アップロードボタンG4025は、画像パス入力テキストボックスG4020で指定されたパスに存在する画像ファイルをデータ管理システム3000へ送信し格納することの要求を受け付けるボタンである。当該ボタンG4025が押下された場合に、画像ファイルがデータ管理システム3000に格納される。
モデルファイルG4027は、モデルの実体であるモデルファイルの指定を受け付けるテキストボックスである。指定されたモデルファイルは、モデルの評価やモデルの運用時に使用される。
評価プログラムG4028は、モデルを評価システム6000で評価する際に用いられるプログラムの指定を受け付るテキストボックスである。
実行プログラムG4029は、モデル運用システム5000にデプロイされたモデルファイルを運用するためのプログラムの指定を受け付けるテキストボックスである。なお、実行プログラムG4029については後述する。
モデル概要入力テキストボックスG4030、登録されるモデルの概要(例えば、テキスト形式やMarkdown形式のテキスト)の入力を受け付けるテキストボックスである。当該ボックスG4030に入力された値は、モデル管理テーブルT3000に概要T3055として記録される。
API仕様入力テキストボックスG4035、登録されるモデルを利用するためのAPI仕様(例えば、テキスト形式や、Markdown形式や、JSON形式や、YAML形式等のテキスト)の入力を受け付けるテキストボックスである。当該ボックスG4035に入力された値は、モデル管理テーブルT3000にAPI仕様T3060として記録される。
データセットファイルパス入力テキストボックスG4040は、モデルの評価に利用されるデータセットについて、モデル開発用計算機1030におけるファイルのパスの入力を受け付けるテキストボックスである。当該パスは、手動で入力されてもよいし、データセット参照ボタンG4045が押下されOSが提供するファイル選択ダイアログにて指定されたファイルのパスが入力されてもよい。
データセット名称入力テキストボックスG4050は、データセットの名称の入力を受け付けるテキストボックスである。当該ボックスG4050に入力された値は、データセット管理テーブルT3100にデータセット名称T3120として記録される。
データセット追加ボタンG4055は、データセット名称入力テキストボックスG4050で指定したパスに存在するデータセットのファイルを、データ管理システム3000へ送信し、格納することの要求を受け付けるボタンである。当該ボタンG4055が押下された場合に、データセットファイルF3200がデータ管理システム3000に格納される。
アップロード済みデータセット管理テーブルG4060は、格納されたデータセットの情報を表示するテーブルであり、各行に1つのデータセットの情報が表示される。なお、各行に配置された削除ボタンが押下されることで、データ管理システム3000から該当するデータセットファイルF3200が削除されてもよい。
フィルタ管理テーブルG4065は、格納されたデータセットをモデルの評価に用いる場合、指定可能なフィルタの情報を示したテーブルであり、各行に1つのフィルタ情報を入力できる。なお、フィルタ情報追加ボタンG4075が押下されることで、フィルタ管理テーブルG4065に新たな行が加えられてもよい。
開示入力テキストボックスG4070は、登録するモデルの情報を、どのユーザに開示するかの指定(つまり開示範囲の指定)を受け付けるテキストボックスである。開示範囲として入力され得る値の一例は、上述した通り(例えば、すべてのユーザへの開示を示す“All”)である。
モデル登録ボタンG4080は、モデルファイルG4027で指定したパスに存在するモデルファイルを、データ管理システム3000へ送信して格納し、本画面G4000で入力されたモデル情報を用いて、IFプログラムP2000へモデルの登録要求を送信し、マーケットプレイスシステム2000に対する新しいモデルの登録を実行することの要求を受け付けるボタンである。
本実施例によれば、アプリ開発者1000に対してデータセットを非開示にした状態で、アプリ開発者1000の迅速なモデル採否判断と負荷軽減を支援することができる。
更に、上述したように、本実施例では、モデル開発者1020によって開発されたモデルのデプロイ、及びモデルを評価した結果に応じて、モデルのデプロイを自動的に行うことが可能である。これにより、アプリ開発者1000に対してデータセットを非開示にした状態で、アプリ開発者1000の迅速なモデル採否判断と負荷軽減を支援することに加え、各モデルをモデル運用システム5000へデプロイし、各アプリから利用できる状態が実現される。さらに、モデルが更新された際に自動的に評価が実行され、デプロイされることで、アプリが呼び出すモデルを常に最新のものに保つ等の実現が期待される。以下、この点について述べる。
例えば、図2A及び図2Bを参照すれば、一例として下記が言える。
・デプロイされたモデルの運用に必要なモデル運用情報を含む運用管理テーブルT4100と、モデルファイルF3000を読み込みモデルの機能を利用するためのAPIを提供するモデル実行プログラムファイルF3400と、モデル運用システム5000とがある。
・モデル運用システム5000は、1か複数のモデル運用計算機5100と、1か複数のモデル実行計算機5200とを備える。モデル運用計算機5100は、実行中のモデルを管理するモデル運用プログラムP5000と、モデルへのAPIを介したアクセスを制御する経路制御プログラムP5050とを備える。モデル実行計算機5200は、1か複数の開発されたモデルの機能を提供するモデルサービスP5100を備える。モデル運用計算機5100とモデル実行計算機P5100は、各モデルの稼働情報を含むログを記録する手段や、ログを他の計算機へ送信する機能を備えてもよい。
・経路制御プログラムP5050はデプロイされたモデルへのAPIによるアクセス経路を制御できるものであればよい。
また、例えば、図4を参照すれば、一例として下記が言える。
・モデル運用プログラムファイル情報T3080は、モデルを運用する際に必要となるモデル実行プログラムファイルF3400のファイル名を示す。当該情報T3080には、例えば、モデル登録画面G4000が備える実行プログラムG4029にユーザが指定したファイルがデータ管理システム3000に登録された際にデータ管理プログラムP3000によって付与された名称が記録されてよい。
また、例えば、図8を参照すれば、一例として下記が言える。
・自動評価/デプロイT3465は、例えば最新のモデルがモデル開発者1020によってマーケットプレイスシステム2000に登録された際に、自動的にモデルの評価を画面で入力された評価設定情報を用いて評価を実施し、評価の結果が、条件入力テキストボックスG3075に入力された条件に合致する場合に、モデル運用システム5000に対する当該モデルのデプロイを実施するかを指定する値を示す。当該値は、例えば“Yes”、“No”等の2値の値でよい。
・条件G3075は、自動評価/デプロイT3465の値が例えば“Yes”であり、モデル運用システム5000に対する当該モデルのデプロイを自動的に実施する際の、条件を示す。
・エンドポイントT3475は、自動評価/デプロイT3465の値が例えば“Yes”であり、条件G3075に記載の条件を満たす場合、デプロイされたモデルの機能を利用するためのAPIのエンドポイントに関する情報を示す。
また、例えば、図16を参照すれば、一例として下記が言える。
・ステップS3550の後段に、ステップS3555が加えられる。これにより、モデルの評価の結果に従って、自動でモデルデプロイが実施される。
・ステップS3555では、評価制御プログラムP6000が、評価設定管理テーブルT3400が含む、自動評価/デプロイT3465を参照する。例えば自動評価/デプロイの有効かを示す“Yes”が記載されている場合、評価制御プログラムP6000が、条件T3470に記載の条件情報を参照する。評価制御プログラムP6000が、条件情報とステップS3550で得られた評価結果の情報を比較する。条件に合致する場合は、評価制御プログラムP6000が、モデル管理システム500が備える、モデル運用プログラムP5000へ、モデルデプロイの要求を送信する。
・モデル評価の自動実行は、例えばモデル評価設定画面G3000が備える自動評価/デプロイチェックボックスG3070が有効化されており、評価設定管理テーブルT3400が含む自動評価/デプロイT3465が“Yes”の場合、当該評価を定期的に実行する処理をモデル管理プログラムP2100が有するステップS2070にて実施したり、対象のモデルが更新されたタイミングで再度評価を実施したりするよう、監視する機能をモデル管理計算機2200が備えてもよい。
以上のような図面に加えて、更に、図22及び図23を参照して説明することができる。
図22は、運用管理テーブルT4100の構成例を示した図である。
運用管理テーブルT4100における各レコードは、デプロイされたモデルの運用に必要な運用情報を格納する。
運用管理テーブルT4100において、運用(モデルデプロイ)毎にレコードが存在する。以下、1つの運用を例に取る(図22の説明において「注目運用」)。
注目運用に対応したレコードが格納する運用情報は、例えば、運用情報識別子T4110と、モデル情報識別子T4120と、ユーザ識別子T4130と、テナント識別子T4150と、実行計算機識別子T4160と、エンドポイント情報T4170と、デプロイ時刻T4180とを含む。
運用情報識別子T4110は、注目運用の運用情報を一意に特定するための識別子を示す。当該識別子は、データ管理プログラムP3000によって付与された値(例えば連番)でよい。
モデル情報識別子T4120は、注目運用としてデプロイされるモデルの情報を含んだモデル情報を特定するための識別子を示す。当該識別子は、例えば、モデル管理テーブルT3000が備えるモデル情報識別子T3005の値でよい。
ユーザ識別子T4130は、注目運用に対応したユーザの識別子を示す。当該識別子は、例えば、ユーザ管理テーブルT3800が備えるユーザ識別子T3810の値でよい。
テナント識別子T4150は、注目運用に対応したユーザが属するテナントの識別子を示す。当該識別子は、例えば、テナント管理テーブルT3900が備えるテナント識別子T3910の値でよい。
実行計算機識別子T3550は、注目運用としてデプロイされたモデルに対応したモデル実行プログラムファイルを実行するモデル実行計算機5200を特定する識別子を示す。当該識別子は、例えば、計算機管理テーブルT3700が備える計算機識別子T3710の値でよい。
エンドポイント情報T4170は、注目運用としてデプロイされたモデルの機能を利用するためのAPIのエンドポイントのURIを示す。なお、エンドポイント情報T4170は、モデルの機能を利用するために必要な情報であれば、URIに代えて又は加えてURI以外の情報を含んでもよい。
デプロイ時刻T4180は、注目運用としてモデルをデプロイした時刻を示す。当該時刻の情報は、モデル詳細画面G2000にて、ユーザがデプロイされたモデルの情報を参照するために表示されてもよい。
図23は、モデル運用プログラムP5000のフローチャートである。
モデル運用プログラムP5000が実行されると、ステップS5000にてデプロイ要求が受信され、処理がステップS5010へ進む。
ステップS5020では、モデル運用プログラムP5000が、要求の内容を解析し、モデル識別子を含むモデル情報と、要求を実施したユーザのユーザ情報識別子とテナント情報識別子を含むユーザ情報とテナント情報と、エンドポイント情報とを特定する。ユーザ情報とテナント情報は、ユーザ情報識別子とテナント情報識別子を用いてユーザ管理テーブルT3800とテナント管理テーブルT3900から特定される。モデル情報は、モデル情報識別子を用いてモデル管理テーブルT3000から取得される。モデル情報から、モデルファイルT3020と、モデル実行プログラムT3080、運用時要求スペックT3030とが特定される。さらに、エンドポイント情報は、得られたユーザ情報とモデル情報に含まれるユーザ情報識別子と、モデル情報識別子と、モデルのバージョン情報とを用いて生成された情報、例えば“https://abcd.com/deployed_model/ユーザ情報識別子/モデル情報識別子/バージョン情報”である。
ステップS5020では、モデル運用プログラムP5000が、リソースの消費状況等を考慮し、モデル実行プログラムF3400を実行するモデル実行計算機5200を選択する。ステップS5020では、例えば、モデル運用プログラムP5000が、計算機管理テーブルT3700に含まれる計算機の情報のうち、種別T3720が”運用”となっているものを抽出し、さらにリソース消費状況T3750が最も少ないものを選択してもよい。或いは、例えば、モデル運用プログラムP5000が、特定したモデル情報に含まれる運用時要求スペックT3030と、計算機管理テーブルT3700が備えるリソース保有情報T3740と、リソース消費情報T3750とから、デプロイ対象モデルが要求するスペックを満たし、かつリソースに空きがある計算機を選択してもよい。
ステップS5030では、モデル運用プログラムP5000が、選択されたモデル実行計算機5200に対して、特定されたモデルファイルT3020と、モデル実行プログラムT3080の情報を含む、デプロイ実施要求を送信する。なお、デプロイ実施要求を受信したモデル実行計算機5200は、モデルファイルF3000とモデル実行ファイルF3400をデータ管理システム3000から収集し、モデル実行ファイルF3400を実行する。
ステップS5040では、モデル運用プログラムP5000が、特定したモデル情報識別子と、ユーザ情報識別子と、テナント識別子と、エンドポイント情報と、現在の時刻の情報とを含んだ新たなレコードを、運用管理テーブルT4100に追加する。
ステップS5050では、モデル運用プログラムP5000が、選択されたモデル実行計算機5200の情報と、特定したエンドポイントの情報とを、経路制御プログラムP5050へ送信し、当該モデルへアクセスするため、ネットワーク観点の経路設定を実施することで、モデル運用システムの内外に存在するアプリP4100等から、エンドポイントへのAPIを用いたアクセスを可能にする。
ステップS5060では、モデル運用プログラムP5000が、デプロイ要求を送信したモデル管理プログラムP2100に対し、デプロイが成功した旨や何らかのエラーで失敗した旨を含む応用を送信する。ステップS5070でモデル運用プログラムP5000が終了する。
以上の通り、本実施例では、アプリ開発者1000に対してデータセットを非開示にした状態で、アプリ開発者1000の迅速なモデル採否判断と負荷軽減を支援することに加え、各モデルをモデル運用システムへデプロイし、各アプリから利用できる状態が実現される。さらに、モデルが更新された際に自動的に評価が実行され、デプロイされることで、アプリが呼び出すモデルを常に最新のものに保つ等の実現が期待される。